Free accessibility checker

Run axe-core's WCAG rules against your page, plus document language and image alt text, and see exactly which rules fired and why, in one scan, no signup.

We read one page, in one state, without signing in. Being clear about the edges is the point: a scanner that implies it sees everything is the one to distrust. See exactly what we can't see →

  • 4 checks each pass, fail, or needs review
  • Under a minute one page, one scan
  • No signup no account, no email

What we check

  • Document language

    <html lang="..."> attribute on the root element

    Present, with any non-empty value. We do not validate that the value is a real language code.

    Without it, a screen reader has to guess the page language, and a wrong guess makes every word mispronounced for someone who cannot see the text to catch the error.

    Learn more about Document language →
  • Image alt text

    <img alt="..."> attribute on every image element

    We count every <img> on the page and report how many are missing alt, for example 3 of 12 images missing alt.

    An image with no alt text is invisible to a screen reader: if it carries information, a chart, a coupon code, a required form icon, that information simply does not exist for a blind visitor.

    Learn more about Image alt text →
  • Automated WCAG rules (axe-core)

    Every axe-core rule that returns a violation on the page, for example color-contrast, aria-required-attr, label, or link-name

    One finding per rule that fired, not one per element. color-contrast failing on eight elements is a single finding reading "<the rule description> (8 elements)", scored major when axe rates the rule critical or serious and minor otherwise. The finding counts; the task for it in your improvement roadmap names them: up to ten of the site's own elements per rule, by CSS selector, with the text colour, background colour and contrast ratio on a contrast rule, then how many more the rule failed on. A locked report shows the roadmap without them, and a report from a scan made before we kept them asks you to scan again.

    Each rule maps to a real WCAG barrier, for instance text a screen reader announces with no accessible name, or a contrast ratio too low to read. axe-core is the same open-source engine behind Lighthouse's accessibility score, not a proprietary guess at what matters.

  • Rules axe could not resolve automatically

    Rule instances axe-core marks incomplete, most often color contrast against an image or a gradient background it cannot compute a single color for

    Never scored as a pass or a fail: reported as needing manual review, and kept out of the score in both directions.

    Counting these as passes would claim a check that never actually happened. Counting them as fails would penalize a page for something automated tooling cannot determine. Surfacing them as open questions is the only honest option, which is why total findings on a real page can look higher than a tool that quietly drops this bucket.

What we can't see

  • Anything behind an interaction: keyboard traps, focus order, modal behaviour. We read one page in one state.
  • Checks axe reports as needing manual review are not scored either way. We surface them rather than counting them as passes.
  • Every element past the first ten a rule fired on. We keep up to ten per rule and the full count, so a rule failing on forty elements names ten and says thirty more. The fix guidance we generate for each rule cites https://dequeuniversity.com/rules/axe/4.10/<rule-id>, which is that rule verbatim, and the axe DevTools extension or Lighthouse in your own browser will highlight all of them on the same page.
  • A page axe could not finish testing. If axe fails or times out on a page that loaded, we retry it once; if it fails again, the scan fails on our side and asks you to try later, rather than showing a report with zero findings. A page that loads slowly gets one longer axe run, and if that does not finish either, it is reported as too slow to test, not as clean.
  • Screen reader compatibility in practice: axe-core checks the markup a screen reader would use, not what any specific screen reader actually announces.
  • Accessibility on pages other than the one scanned, or behind a login.

Ready to see where you stand?

Scan your site and get your Engineering Score with a prioritized roadmap in under a minute, no signup required.

Scan your site

Session expired

Your session has expired for security. Please log in again to continue.