accessibility , updated
WCAG 2.2 AA, and how it is tested.
This site aims at WCAG 2.2 level AA on every page, and is built that way from the start rather than patched afterwards.
How the site meets it
- Real landmarks on every page — header, primary navigation, main and footer — with a skip link as the first thing you reach by keyboard.
- One h1 per page, and headings in order under it.
- A two-tone focus ring on every link, button and field: a solid outline for the shape, a halo for contrast. Windows high-contrast mode drops the halo and keeps the outline.
- Every text and background pair passes 4.5:1; the closest is a caption on the stone band at 4.78:1. Amber is a fill on light grounds and only becomes text on black.
- Nothing is carried by colour alone. The current page in the navigation is bold as well as marked, and figures are labelled in text.
- Touch targets of at least 44px on phones.
- Readable from 320px wide and at 200% zoom with no sideways scrolling. Type is set in rem, so browser text size settings work.
- No motion is needed to read anything, and decorative marks are hidden from screen readers and from high-contrast mode.
- Pages carry no JavaScript unless they hold a demo, so nothing breaks when scripts do not run.
Every push is checked automatically: the markup is validated, the accessibility lint rules run over it, and Lighthouse has to score 100 for accessibility or the build fails.
Manual tests
| Setup | What is checked | Result |
|---|---|---|
| Keyboard only — Safari, Chrome, Firefox | every control reachable in a sensible order, focus always visible, skip link works | not run yet |
| VoiceOver with Safari, macOS | landmarks, heading outline, link and button names, table headers | not run yet |
| VoiceOver with Safari, iPhone | reading order, touch targets, the navigation rail | not run yet |
| 200% zoom and a 320px window | no horizontal scrolling, nothing clipped or overlapping | not run yet |
| Windows high contrast (forced colours) | focus ring, filled buttons and data bars still visible | not run yet |
Known limitations
Not written up yet.
Report a problem
If something here gets in your way, email ahmed@amsozzer.com with the address of the page and what happened. Tell me what you were using — browser, screen reader, zoom level — and I will fix it.