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 elementPresent, 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 elementWe 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-nameOne 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. We keep the rule and the count, not the eight nodes: the element list is discarded when the page is captured, so the finding tells you which rule and how many places, not which elements.
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 forNever 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.
- Which specific elements a rule fired on. We store the count, not the nodes, so a finding tells you that color-contrast failed on eight elements without pointing at the eight. 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 the elements on the same page.
- A run of axe that never finished. We give axe a bounded window and swallow a timeout rather than failing the scan, so a run that timed out produces zero violations, which on the report looks the same as a page with nothing wrong. Zero axe findings on a large or slow page is a reason to rerun, not a pass.
- 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.
EngineeringScore