Testing for accessibility

Accessibility testing is three activities, not one. Automated scanning finds a narrow band of machine-checkable defects. Manual testing with a keyboard and assistive technology finds most of the rest. Testing with disabled users finds the problems that conform to the standard and still do not work.

The number you should remember

Run npm run test:a11y in this repository and read the summary it prints. Of the 86 WCAG 2.2 success criteria, 31 have any automated rule mapped to them at all. The other 55 have none. And even the 31 are only partly covered — a scanner can see that an alt attribute is missing; it can never see that the alt text is wrong.

This is not a criticism of the tools. It is the reason the rest of this section exists.

The three layers

The order to test in

Cheapest and broadest first, so the expensive human time is spent on things only humans can find.

A practical testing sequence for one page
StepWhat you doTimeWhat it catches
1Run axe on the page, in every important state1 minMachine-checkable defects
2Tab through the whole page, mouse unplugged5 min2.1.1, 2.1.2, 2.4.3, 2.4.7, 2.4.11
3Zoom to 200%, then set the viewport to 320 px5 min1.4.4, 1.4.10, 1.3.4
4Apply the text-spacing overrides2 min1.4.12
5Read the page with a screen reader15 min1.1.1, 1.3.1, 2.4.4, 4.1.2, 4.1.3
6Trigger every error, every status message, every dialog10 min3.3.1, 3.3.3, 4.1.3, 2.4.3
7Read the content critically for jargon, instructions and timing10 min1.3.3, 2.2.1, 3.1.x, 3.3.2

Testing a whole site

The sequence above is for one page. Auditing a site means choosing which pages to apply it to, and that choice determines whether your audit is worth anything. That is what WCAG-EM is for.