Check a page
We fetch the page, check its HTML, then open it in a real browser and check what renders. You get a report at its own address, worst issues first, each with the guide that fixes it. One page per scan, plus up to four pages it links to. Automated checks find only part of the issues; a person reviews the rest.
For a page behind a login, or on your own machine, run the same check locally:
npx -y github:vojtaholik/good-a11y check http://localhost:3000Page to check
Takes 20 to 90 seconds. What we store
What we check
Anything not checked here needs a person to review it.
Of the 50 WCAG 2.1 Level A and AA success criteria, 25 have at least one automated check: 9 on the served HTML, 23 on the rendered page and 6 asked of a model. 25 have none, and a person reviews them.
WCAG 2.2 adds 6 criteria, newer than the reference benchmark: 2 have an automated check, 4 have none.
A check covers only part of what its criterion asks, so a criterion with a check still needs a manual review. The rendered page is checked with axe-core and our own probes; a model's answers are shown apart and never counted as issues.
| Success criterion | How we test it |
|---|---|
| 1.1.1 Non-text Content (Level A) | served HTML
rendered page
|
| 1.2.1 Audio-only and Video-only (Prerecorded) (Level A) | Not automated. A person compares the audio or video with its alternative. |
| 1.2.2 Captions (Prerecorded) (Level A) | rendered page
|
| 1.2.3 Audio Description or Media Alternative (Prerecorded) (Level A) | Not automated. A person watches the video and its description. |
| 1.2.4 Captions (Live) (Level AA) | Not automated. A person watches the live captions. |
| 1.2.5 Audio Description (Prerecorded) (Level AA) | Not automated. A person watches the video and its audio description. |
| 1.3.1 Info and Relationships (Level A) | served HTML
rendered page
asked of a model (labelled, never counted as an issue)
|
| 1.3.2 Meaningful Sequence (Level A) | Not automated. A person compares the reading order with the layout; layouts can reorder content and keep its meaning. |
| 1.3.3 Sensory Characteristics (Level A) | Not automated. A person reads instructions that may rely on shape, size or position. |
| 1.3.4 Orientation (Level AA) | Not automated. A person turns the screen; this is not checked yet. |
| 1.3.5 Identify Input Purpose (Level AA) | served HTML
rendered page
|
| 1.4.1 Use of Color (Level A) | rendered page
|
| 1.4.2 Audio Control (Level A) | rendered page
|
| 1.4.3 Contrast (Minimum) (Level AA) | rendered page
|
| 1.4.4 Resize Text (Level AA) | served HTML
rendered page
|
| 1.4.5 Images of Text (Level AA) | Not automated. A person looks at each image for text that could be real text. |
| 1.4.10 Reflow (Level AA) | rendered page
|
| 1.4.11 Non-text Contrast (Level AA) | Not automated. A person checks borders and icons; shadows and gradients make automated results unreliable. |
| 1.4.12 Text Spacing (Level AA) | rendered page
|
| 1.4.13 Content on Hover or Focus (Level AA) | Not automated. A person hovers and focuses to see what appears. |
| 2.1.1 Keyboard (Level A) | rendered page
|
| 2.1.2 No Keyboard Trap (Level A) | rendered page
|
| 2.1.4 Character Key Shortcuts (Level A) | Not automated. A person tries the single-key shortcuts. |
| 2.2.1 Timing Adjustable (Level A) | served HTML
rendered page
|
| 2.2.2 Pause, Stop, Hide (Level A) | rendered page
|
| 2.3.1 Three Flashes or Below Threshold (Level A) | Not automated. A person watches the page for flashing. |
| 2.4.1 Bypass Blocks (Level A) | rendered page
|
| 2.4.2 Page Titled (Level A) | served HTML
rendered page
|
| 2.4.3 Focus Order (Level A) | Not automated. A person compares the focus order with the reading order. |
| 2.4.4 Link Purpose (In Context) (Level A) | served HTML
rendered page
asked of a model (labelled, never counted as an issue)
|
| 2.4.5 Multiple Ways (Level AA) | Not automated. A person checks that each page can be found in two ways. The report lists the search and site map the scan saw, but navigation and links between pages can be enough, so no automated result is given. |
| 2.4.6 Headings and Labels (Level AA) | Not automated. A model question exists, but it stays hidden until it is accurate on real pages. A person reads the headings and labels. |
| 2.4.7 Focus Visible (Level AA) | rendered page
|
| 2.4.11 Focus Not Obscured (Minimum) (Level AA)WCAG 2.2 (newer than the reference benchmark) | rendered page
|
| 2.5.1 Pointer Gestures (Level A) | Not automated. A person tries the gestures. |
| 2.5.2 Pointer Cancellation (Level A) | Not automated. A person tries pressing and releasing. |
| 2.5.3 Label in Name (Level A) | Not automated. The automated rule was wrong too often on real pages, so it is left out. A person compares visible labels with names. |
| 2.5.4 Motion Actuation (Level A) | Not automated. A person tries the motion controls. |
| 2.5.7 Dragging Movements (Level AA)WCAG 2.2 (newer than the reference benchmark) | Not automated. A person tries the dragging. |
| 2.5.8 Target Size (Minimum) (Level AA)WCAG 2.2 (newer than the reference benchmark) | rendered page
|
| 3.1.1 Language of Page (Level A) | served HTML
rendered page
asked of a model (labelled, never counted as an issue)
|
| 3.1.2 Language of Parts (Level AA) | rendered page
asked of a model (labelled, never counted as an issue)
|
| 3.2.1 On Focus (Level A) | rendered page
|
| 3.2.2 On Input (Level A) | Not automated. Changing controls on someone else's site could set off real actions, so a person checks it. |
| 3.2.3 Consistent Navigation (Level AA) | Not automated. A person compares the navigation on several pages of the site. |
| 3.2.4 Consistent Identification (Level AA) | Not automated. A person compares how the same things are named on several pages of the site. |
| 3.2.6 Consistent Help (Level A)WCAG 2.2 (newer than the reference benchmark) | Not automated. A person compares where help sits on several pages of the site. |
| 3.3.1 Error Identification (Level A) | asked of a model (labelled, never counted as an issue)
|
| 3.3.2 Labels or Instructions (Level A) | rendered page
|
| 3.3.3 Error Suggestion (Level AA) | asked of a model (labelled, never counted as an issue)
|
| 3.3.4 Error Prevention (Legal, Financial, Data) (Level AA) | Not automated. Needs a real transaction, which the checker never makes. |
| 3.3.7 Redundant Entry (Level A)WCAG 2.2 (newer than the reference benchmark) | Not automated. Needs a process of several steps. |
| 3.3.8 Accessible Authentication (Minimum) (Level AA)WCAG 2.2 (newer than the reference benchmark) | Not automated. Needs a login, which the checker never uses. |
| 4.1.1 Parsing (Level A) | Not automated. Always met by content in HTML (STD-WCAG21-2); WCAG 2.2 removes it. |
| 4.1.2 Name, Role, Value (Level A) | served HTML
rendered page
|
| 4.1.3 Status Messages (Level AA) | Not automated. A person sets off the status messages and listens for them. |