How Scoring Works
Every scan checks a website's pages against the Web Content Accessibility Guidelines (WCAG). Each page starts at 100 and loses points for each kind of confirmed failure, depending on how severe it is. The site's score is the average of its pages. Every point lost traces back to a specific WCAG requirement.
- Engine: axe-core 4.13 by Deque
- WCAG 2.2, Levels A and AA
- 65 automated rules
- Confirmed failures only
What we check
We use axe-core (opens in a new tab), Deque's open-source accessibility engine, which also powers Google Lighthouse and Microsoft's accessibility tools. We run only the rules that map to a WCAG 2.2 Level A or AA success criterion. Rules that are good practice but not part of WCAG are not used.
axe-core reports a failure only when it is certain. When it can't be sure (for example, text over a background image, where contrast can't be measured), it marks the item for a person to review. Those items are listed in the report as To review and do not change the score.
How a page is scored
A page starts at 100. For each rule that fails on the page, it loses points by severity, using axe-core's own severity rating:
| Severity | Points lost | Example |
|---|---|---|
| Critical | 10 | A button with no name, so a screen reader announces only "button" |
| Serious | 6 | Text with too little contrast against its background |
| Moderate | 3 | A page that blocks zooming in |
| Minor | 1 | A deprecated ARIA role |
A rule costs the same whether it fails on one element or on forty. Forty unnamed buttons usually come from one template and one fix, so a long page isn't punished for being long. The report still lists every affected element.
Example: a page has an unnamed button (critical) and some low-contrast text (serious).
100 − 10 − 6 = 84
How a site is scored
The site score is the average of the scores of every page we scanned, rounded to a whole number.
A site scores 100 only if every scanned page scores 100. If any page has a failure, the site score is at most 99, even when the average would round up to 100.
Example: three pages score 84, 100 and 97.
(84 + 100 + 97) ÷ 3 = 93.7, so the site scores 94.
Which pages we scan
Starting from the address given, the scanner follows links within the same website, up to the page limit set for the scan. It skips files such as images and stylesheets, and system addresses that aren't pages people read (for example WordPress feeds and login pages). Each page is checked after it has finished loading, so content that a page fixes up as it loads is checked as a visitor would see it.
If a cookie or terms pop-up covers the page, the scanner accepts it, as a visitor would, and then checks the page.
What is left out of the score
| Item | Why |
|---|---|
| Pages the site refused | Some sites block automated visitors and show an "Access Denied" page instead. Scoring that page would measure the block page, not the site. |
| Pages that couldn't be loaded | A timeout or a dropped connection says nothing about a page's accessibility. |
| Pages still hidden behind a pop-up | If a pop-up couldn't be closed, the scanner couldn't see the page. |
| File downloads | Some links download a document instead of opening a web page. |
| Embedded content from other sites | Issues inside a YouTube player or a map come from that other company, and the site owner can't fix them. WCAG itself allows this through a "statement of partial conformance" for third-party content. These issues are listed separately, and the report also shows the score with them counted. |
| Items marked To review | axe-core couldn't confirm them automatically; a person needs to check them. |
Pages left out are listed in the report with the reason, and are not counted in "Pages scanned". If no page at all could be scanned (for example, the site's firewall refused every page), the run is marked Not scored. It gets no score, it is left out of Compliance History and the US map, and the report lists why each page was left out.
PASS and FAIL
PASS means no critical failure was found on any scanned page, in every report, whoever it is for. Critical is axe-core's highest severity: the kind of failure most likely to stop someone from using a page at all. A site can PASS and still have serious or moderate failures to fix; the score shows those.
PASS is not a certificate of WCAG conformance. See the limits below.
What automated testing can't tell you
Automated tools catch a large share of accessibility problems, but not all of them. Deque's own research puts it at a little over half of issues by volume. Some things need a person to judge, for example:
- whether an image's description actually describes it
- whether a page makes sense when read in order or used with a keyboard alone
- whether video captions are accurate
- whether instructions and error messages are clear
A high score means the automated checks found few problems. Full conformance needs a manual review as well.
Why a score can change between scans
Live websites change: news, rotating banners and embedded content differ from day to day. A score can move by a point or two between scans even when nobody has changed the site's code. That is why Compliance History shows the trend over time rather than a single number.