Skip to content
WebsiteValidator

Checkers

Accessibility Checker

Two WCAG engines — one in a real browser, one on your markup

Accessibility cannot be checked from source. Colour contrast depends on computed styles, focus order depends on the rendered tree, and an element hidden by CSS is a different thing from one absent from the markup - so this runs a real a real headless browser and evaluates the page as a browser built it.

Quick runs this page's high-signal checks in about 3 seconds, no browser. Full adds Core Web Vitals, the accessibility engines and a screenshot, and takes about a minute.

Try:
  • Free, no signupNo account, no card
  • No AI in the score986 deterministic rules
  • Nothing publishedYour scans stay yours
  • Answers in secondsQuick scan, no browser

A primary WCAG rule engine runs live and merges into the same scoring pipeline as everything else with no special casing. A second, independent engine runs alongside it, because different engines encode different WCAG techniques and one alone is not exhaustive - on a real site the second surfaced findings the first reported nothing about.

The second engine's findings are reported and never scored. Its rules overlap the first's heavily, and counting both would penalise the same missing label twice - the same double-counting that inflated scores once before and was fixed. Coverage without distortion is the right trade.

Why this matters

The page works for you. Who is it failing?

You can see the layout, you use a mouse, and you already know what every field wants. Take those away - the page read aloud, a keyboard with no mouse, text at 200% - and parts of it stop working: a button with no name, a field announced as blank, grey text nobody can read. Almost nobody who hits that writes in to say so. They leave, and it looks like an ordinary bounce.

What it costs you when this is wrong

  • A field a screen reader announces as blank

    A screen reader reads the label, not the placeholder - and the placeholder disappears the moment someone starts typing. A field with neither is announced as an edit box with no name, so the person filling it in is guessing. You find out from an order that arrives half empty, or a phone call asking what the third box was for.

  • Grey on white, and zoom switched off

    Contrast is a measured ratio, not a matter of taste: WCAG asks for 4.5:1 on normal text, and light grey on white can fall well below that. Put user-scalable=no in the viewport tag and a phone will not let anyone enlarge it either. Nobody reports this - they abandon the checkout and you record a bounce.

  • The keyboard goes somewhere nobody can see

    Tab through your own site and watch where the focus ring goes. A closed menu marked aria-hidden that still holds focusable links will swallow it, a positive tabindex reorders the page unpredictably, and with no skip link every visit begins by tabbing through the entire navigation. Complaints about this arrive quoting the criterion number, which is later than you want to hear about it.

Why run it here

  • Two engines, two points in the page's life

    The scoring engine runs inside the browser after your scripts have finished, so it judges the page as built. The second engine reads the HTML your server actually sent, before any script ran. Markup that exists in only one of those two states still gets checked.

  • The same page, not a second load

    The scoring engine attaches to the page the renderer already opened rather than fetching the URL again. Two loads of a page with anything time-dependent on it are two different DOMs, so the second load can report findings about a page nothing else in your report ever saw. One load, one DOM, one set of facts.

  • 105 live rules, and 100 more written here

    The live engine's rules are not the whole module. A further hundred are maintained in this repository - a placeholder used as the only label, zoom disabled in the viewport tag, a details element with no summary - each citing the standard it comes from and the date that reference was last checked. 205 accessibility rules in total, 146 of them scored.

This check runs on its own here, and as part of the full audit alongside the other 985 rules. Either way the findings carry their evidence and their citation, and the report is never published or kept.

How to fix accessibility issues

Automated testing catches roughly a third of WCAG failures, and the third it catches are the ones with mechanical fixes. Start there, then test by hand.

  1. Give every image an alt attribute — descriptive when it carries meaning, empty (alt="") when it is decorative. Both are correct; a missing attribute is not.

  2. Raise text contrast to at least 4.5:1 against its background, or 3:1 for text above 18.66px bold or 24px regular.

  3. Associate every form input with a visible <label>. A placeholder is not a label and disappears the moment someone types.

  4. Give every interactive element an accessible name, and make sure it is reachable and operable with a keyboard alone.

  5. Set the lang attribute on <html> so screen readers choose the right pronunciation rules.

What happens when you run it

  1. Enter your address

    Just the domain is enough — example.com, with or without the https. No account, no card, no crawl of your whole site.

  2. We render it like a visitor

    Your page opens in a real browser and JavaScript runs to completion, so what gets audited is the page a person actually sees — not the raw HTML your server sent. A screenshot comes back with the report as evidence of exactly what we measured.

  3. You get findings you can act on

    Up to 986 checks run against that rendered page. Each finding names the rule, quotes the evidence found on your page, cites the public specification behind it, and says what to change. Nothing is a judgement call — run it twice on an unchanged page and the score is identical.

What runs this check

  • WCAG 2.2 rule engines
  • Live accessibility tree

Named because provenance is the product. Every finding in your report says which of these produced it, so you can check the reasoning rather than take a score on faith.

Questions

Does passing make me ADA or EAA compliant?
No. Automated testing catches roughly a third of WCAG issues; the rest need human judgement - is this alt text meaningful, is this focus order logical, does this error message actually explain the problem. Any tool claiming to certify compliance automatically is overselling.
Which WCAG version?
WCAG 2.2 levels A and AA, which is what almost every regulation references. AAA criteria are reported where checkable but not scored, because WCAG itself does not require AAA of general-purpose sites.

Also checks

This page answers these searches too — they are the same job, so they share one page rather than being split across near-identical ones:

  • wcag checker
  • a11y checker
  • ada compliance checker
  • web accessibility test

Other checkers

Run the accessibility checker now

No signup, no credit card. Quick answers in seconds; a full audit takes about a minute.

Run a free scan

No signup. No credit card. Nothing stored but the result.