Accessibility
We treat accessibility as a feature of this site, not an afterthought — the points below describe what's actually built, not aspirations.
Full keyboard play
The board is playable entirely from the keyboard: arrow keys move the selected cell, number keys 1-9 place a digit, N toggles notes mode, Backspace erases, and Ctrl/Cmd+Z undoes (Shift to redo). The selected cell uses a roving tabindex, so tabbing into the board and navigating it behaves the way a native widget should, not like 81 separate stops.
Screen reader support
Every cell has a specific aria-label describing its row, column, and current value — including whether it's a given, empty, or in conflict with another cell — rather than relying on visual state alone. The board itself carries grid/gridcell roles so assistive technology announces it as a structured grid, not an unlabeled block of buttons.
Nothing is color-only
Every meaningful state on the board is encoded in more than color. Selection gets a border change, not just a fill. Cells sharing the selected digit get an outline independent of the row/column/box highlight wash. Conflicting cells get a small dot glyph next to the digit in addition to a color wash. This was a deliberate design decision (see DESIGN.md), not a default we happened to end up with.
Verified color contrast
Every color pair used for text or meaningful UI state — in both light and dark mode — was checked against the WCAG relative-luminance formula directly, not eyeballed, and meets or exceeds the AA threshold (4.5:1 for normal text, 3:1 for large text and non-text UI like grid lines). Two colors in the original palette were specifically adjusted after that check failed to meet the threshold, before they shipped.
Reduced motion
If your system is set to reduce motion, every transition and animation on this site — including the hint highlight pulse — collapses to an instant change or a static highlight instead of animating.
Touch targets
Every interactive control outside the grid itself — number pad keys, action buttons, toggles — is at least 44x44px, sized for one-handed mobile use, not just desktop pointer precision.
What's not yet fully audited
A dedicated keyboard-only and screen-reader pass across every page (not just the game board) is scheduled before launch, alongside a broken-link check and Lighthouse accessibility run. If you hit a specific barrier before then, please let us know — specifics are far more useful than "accessibility is bad."