Check a page against
WCAG 2.2
Paste your HTML and get back the failures, ranked by how much they hurt, each one naming the success criterion it breaks and what to change. Runs on your device.
Paste your HTML and get back the failures, ranked by how much they hurt, each one naming the success criterion it breaks and what to change. Runs on your device.
It is rendered in a locked-down frame on your device and checked there. Nothing is uploaded, and no script in your page is allowed to run.
Twenty-two automated checks against WCAG 2.2 at levels A and AA, in the categories where machine testing is actually reliable.
| Success criterion | Level | What is caught |
|---|---|---|
| 1.1.1 Non-text Content | A | Images with no alt attribute, and alt text that repeats a file name instead of describing the picture |
| 1.3.1 Info and Relationships | A | Skipped heading levels, missing or duplicated h1, data tables with no header cells, no main landmark |
| 1.3.5 Identify Input Purpose | AA | Personal-data fields with no autocomplete value |
| 1.4.3 Contrast (Minimum) | AA | Text below 4.5:1, or 3:1 for large text, measured from the rendered colours with transparency flattened |
| 1.4.4 Resize Text | AA | Viewport tags that block pinch-zoom |
| 2.2.2 Pause, Stop, Hide | A | Auto-playing media and continuously moving elements |
| 2.4.2 Page Titled | A | Missing or empty page title |
| 2.4.3 Focus Order | A | Positive tabindex values that jump the tab order |
| 2.4.4 Link Purpose | A | Links with no accessible name, and vague text such as “click here” |
| 2.4.7 Focus Visible | AA | Stylesheets removing the focus outline without replacing it |
| 2.5.8 Target Size (Minimum) | AA | New in 2.2. Interactive controls smaller than 24 by 24 pixels |
| 3.1.1 Language of Page | A | Missing lang attribute on the html element |
| 3.3.2 Labels or Instructions | A | Form fields with no label, and placeholders standing in for labels |
| 4.1.2 Name, Role, Value | A | Buttons with no accessible name, frames with no title, duplicate ids breaking label and aria references |
This is the part most accessibility tools are quiet about, and it matters more than the part they can measure.
A checker can tell you the attribute exists. It cannot tell you that a photograph of a burning building is described as “building”. Accuracy is a judgement, and it needs a person.
Tab through your own page without touching the mouse. Can you reach everything, see where you are, escape from every menu, and complete the main task? That five-minute test finds more real problems than any scan.
Screen readers are free and already installed: VoiceOver on Mac and iPhone, Narrator on Windows, TalkBack on Android. Ten minutes with one will change how you build things permanently.
Yes. Fields with no label at all are reported, and so are fields where a placeholder is standing in for one — a common pattern that disappears the moment someone starts typing and usually fails contrast as well.
No. Automated tools reliably catch about a third of WCAG issues. They cannot tell whether alt text is accurate, whether the tab order makes sense, or whether an error message is understandable. Use this to clear the mechanical failures, then test with a keyboard and a screen reader.
Not from here. A browser will not let one site read another site's pages, and working around that would mean sending the address to a server — which is exactly what this site does not do. Open the page, view source, and paste it in.
No. It is rendered inside a locked-down frame on your own device and examined there. Scripts in your page are blocked from running, and a content policy stops the frame making any external request.
Nine success criteria were added, of which Target Size (Minimum) at 2.5.8 is the one automated testing can check reliably. Interactive controls need to be at least 24 by 24 pixels. The checks that test it are marked in the results.
Contrast is computed from rendered styles, so external stylesheets — which the frame deliberately refuses to load — are not applied. Paste a page with its CSS inline, or include the style block, for accurate results.