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 page, or open an HTML file

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.

WCAG 2.2 · LEVEL A AND AA · 22 AUTOMATED CHECKS

What it checks

Twenty-two automated checks against WCAG 2.2 at levels A and AA, in the categories where machine testing is actually reliable.

Success criterionLevelWhat is caught
1.1.1 Non-text ContentAImages with no alt attribute, and alt text that repeats a file name instead of describing the picture
1.3.1 Info and RelationshipsASkipped heading levels, missing or duplicated h1, data tables with no header cells, no main landmark
1.3.5 Identify Input PurposeAAPersonal-data fields with no autocomplete value
1.4.3 Contrast (Minimum)AAText below 4.5:1, or 3:1 for large text, measured from the rendered colours with transparency flattened
1.4.4 Resize TextAAViewport tags that block pinch-zoom
2.2.2 Pause, Stop, HideAAuto-playing media and continuously moving elements
2.4.2 Page TitledAMissing or empty page title
2.4.3 Focus OrderAPositive tabindex values that jump the tab order
2.4.4 Link PurposeALinks with no accessible name, and vague text such as “click here”
2.4.7 Focus VisibleAAStylesheets removing the focus outline without replacing it
2.5.8 Target Size (Minimum)AANew in 2.2. Interactive controls smaller than 24 by 24 pixels
3.1.1 Language of PageAMissing lang attribute on the html element
3.3.2 Labels or InstructionsAForm fields with no label, and placeholders standing in for labels
4.1.2 Name, Role, ValueAButtons with no accessible name, frames with no title, duplicate ids breaking label and aria references

What no automated tool can check

This is the part most accessibility tools are quiet about, and it matters more than the part they can measure.

Whether the alt text is any good

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.

Whether the page can be used with a keyboard

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.

Whether it makes sense out loud

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.

Common questions

Does it check form labels?

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.

Does this replace a real accessibility audit?

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.

Can I check a live URL?

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.

Is my page uploaded anywhere?

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.

What is new in WCAG 2.2?

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.

Why does the contrast check miss some text?

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.