Accessibility
Access over exclusion, in the interface too.
A platform built to remove barriers cannot put new ones up. Sankofa Code targets WCAG 2.1 Level AA and clears Level AAA on contrast. Here is exactly what that means in practice, including the parts that still need work.
What is in place
Keyboard navigable throughout
Every control is reachable and operable by keyboard alone. A skip link is the first stop, so you can jump past the navigation straight into the lesson.
Visible focus
A three-pixel gold focus ring, offset from the element, appears on whatever you have selected. It meets contrast requirements in both themes.
Screen reader labelling
Every input, editor and icon-only button carries a descriptive label. The theme toggle announces what it will switch to, not just its icon.
Results are announced
Quiz feedback, code output and grading results sit in polite live regions, so a screen reader reads them when they appear instead of leaving you to hunt.
Contrast beyond the standard
Body text measures 15.3:1 in light mode and 15.9:1 in dark, against a WCAG AAA requirement of 7:1. Tinted panels were measured individually, not assumed.
Reduced motion respected
If your system asks for reduced motion, animations and scroll behaviour are switched off rather than merely shortened.
Increased contrast respected
If your system asks for more contrast, secondary text and borders strengthen automatically.
Semantic structure
One h1 per page, headings in order, real landmarks, and lists marked up as lists so a screen reader can skim them.
Text scales
Type and spacing use relative units, so browser zoom and larger default font sizes reflow the page rather than clipping it.
No motion or colour dependence
Nothing is communicated by colour alone. Pass and fail carry a symbol and a word as well as a hue.
What still needs work
Naming these plainly is more useful to you than a claim of perfection.
The code editor is complex
Monaco is the industry-standard editor and has its own screen reader mode, but it remains a heavy component. Every lesson also shows its code as plain, selectable text above the editor, and no lesson requires the editor to be read in order to be understood.
Python takes a moment to wake
The first Python run downloads the language engine. There is a visible status, but on a slow connection it can take several seconds with no other signal.
No formal third-party audit yet
Everything above was tested and measured directly, including contrast ratios computed against real rendered backgrounds. An independent audit by disabled testers has not happened, and that is the honest next step.
Found a barrier?
Tell us what got in your way and we will fix it. Access reports are treated as bugs, not feature requests, and they go to the front of the queue.
Report an access barrier