Measured 2026-08-08 · refreshed monthly · a sample, not a census
The .gov accessibility index
We ran an automated WCAG 2.1 Level AA scan against the homepage of a sample of 300 state or territory domains from the federal .gov registry, and published every result, including the ones that failed, timed out, or refused us.
This is a sample of 300 entities drawn from 1405 registry rows of state or territory type, not a census of them. The draw is deterministic and spread across jurisdictions so no one state dominates. The exact rule and seed are on the methodology page, so anyone with the public registry file can reproduce the same cohort.
Every percentage on this site is computed over the 155 entities whose homepage was successfully analyzed, never over the whole sample. 89 of those 155 had at least one violation detected by axe-core against the wcag21a, wcag21aa, wcag2a, wcag2aa rule set. The remaining 145 of 300 sampled entities produced no measurement at all; those outcomes are listed below and are published as failures, never as clean results and never inside a rate.
These results come from one automated pass with axe-core. Automated testing detects a subset of WCAG issues; a page with no detected violations has not been shown to conform to WCAG 2.1 Level AA, and a page with detected violations has not been shown to violate any law. This is a dated measurement, not a legal determination and not a certification.
What happened to every entity we tried
| Outcome | Entities | Share | Meaning |
|---|---|---|---|
| Scanned | 155 | 51.7% | The homepage loaded and was analyzed. |
| Blocked by the site | 22 | 7.3% | The site refused the request (bot protection or access control). |
| Timed out | 23 | 7.7% | The homepage did not finish loading within the timeout. |
| HTTP error | 6 | 2.0% | The homepage returned an HTTP error status. |
| Connection failed | 32 | 10.7% | The connection could not be completed. |
| DNS did not resolve | 55 | 18.3% | The domain did not resolve in DNS at scan time. |
| Skipped (robots.txt) | 6 | 2.0% | The site's robots.txt disallows our crawler, so we did not scan it. |
| Scan error | 1 | 0.3% | The page loaded but the engine could not analyze it. |
Distribution by impact
| Impact | Pages with at least one | Share of analyzed pages | Rule violations |
|---|---|---|---|
| critical | 39 | 25.2% | 65 |
| serious | 82 | 52.9% | 136 |
| moderate | 10 | 6.5% | 10 |
| minor | 0 | 0.0% | 0 |
Most common violations
| Rule | Impact | Pages | Elements | WCAG | What axe checks |
|---|---|---|---|---|---|
color-contrast | serious | 30 | 303 | 1.4.3 | Elements must meet minimum color contrast ratio thresholds |
link-name | serious | 28 | 121 | 2.4.4, 4.1.2 | Links must have discernible text |
button-name | critical | 19 | 26 | 4.1.2 | Buttons must have discernible text |
aria-prohibited-attr | serious | 17 | 25 | 4.1.2 | Elements must only use permitted ARIA attributes |
aria-allowed-attr | critical | 15 | 17 | 4.1.2 | Elements must only use supported ARIA attributes |
image-alt | critical | 12 | 59 | 1.1.1 | Images must have alternative text |
list | serious | 11 | 26 | 1.3.1 | <ul> and <ol> must only directly contain <li>, <script> or <template> elements |
frame-title | serious | 11 | 12 | 4.1.2 | Frames must have an accessible name |
meta-viewport | moderate | 10 | 10 | 1.4.4 | Zooming and scaling must not be disabled |
link-in-text-block | serious | 9 | 16 | 1.4.1 | Links must be distinguishable without relying on color |
aria-required-children | critical | 7 | 14 | 1.3.1 | Certain ARIA roles must contain particular children |
html-has-lang | serious | 6 | 6 | 3.1.1 | <html> element must have a lang attribute |
aria-hidden-focus | serious | 4 | 27 | 4.1.2 | ARIA hidden element must not be focusable or contain focusable elements |
document-title | serious | 4 | 4 | 2.4.2 | Documents must have <title> element to aid in navigation |
label | critical | 4 | 4 | 4.1.2 | Form elements must have labels |
listitem | serious | 3 | 113 | 1.3.1 | <li> elements must be contained in a <ul> or <ol> |
nested-interactive | serious | 3 | 4 | 4.1.2 | Interactive controls must not be nested |
aria-command-name | serious | 3 | 3 | 4.1.2 | ARIA commands must have an accessible name |
aria-progressbar-name | serious | 3 | 3 | 1.1.1 | ARIA progressbar nodes must have an accessible name |
aria-required-parent | critical | 2 | 33 | 1.3.1 | Certain ARIA roles must be contained by particular parents |
Most commonly implicated WCAG success criteria
| Success criterion | Pages |
|---|---|
| 4.1.2 | 55 |
| 1.4.3 | 30 |
| 2.4.4 | 28 |
| 1.3.1 | 18 |
| 1.1.1 | 17 |
| 1.4.4 | 10 |
| 1.4.1 | 9 |
| 3.1.1 | 6 |
| 2.4.2 | 4 |
| 2.1.1 | 1 |
| 2.1.3 | 1 |
By state and territory
| State or territory | Attempted | Analyzed | Analyzed with a violation |
|---|---|---|---|
| Alabama | 6 | 4 | 1 |
| Alaska | 6 | 5 | 3 |
| American Samoa | 5 | 4 | 3 |
| Arizona | 5 | 0 | 0 |
| Arkansas | 6 | 2 | 0 |
| California | 4 | 2 | 1 |
| Colorado | 6 | 3 | 1 |
| Connecticut | 5 | 4 | 3 |
| Delaware | 5 | 5 | 4 |
| District of Columbia | 5 | 1 | 1 |
| Florida | 5 | 4 | 2 |
| Georgia | 6 | 3 | 1 |
| Guam | 3 | 2 | 2 |
| Hawaii | 4 | 3 | 0 |
| Idaho | 5 | 1 | 1 |
| Illinois | 5 | 3 | 0 |
| Indiana | 5 | 1 | 0 |
| Iowa | 6 | 4 | 0 |
| Kansas | 6 | 3 | 3 |
| Kentucky | 6 | 3 | 2 |
| Louisiana | 6 | 5 | 3 |
| Maine | 6 | 3 | 1 |
| Maryland | 6 | 2 | 2 |
| Massachusetts | 5 | 4 | 2 |
| Michigan | 6 | 3 | 3 |
| Minnesota | 5 | 2 | 1 |
| Mississippi | 4 | 4 | 2 |
| Missouri | 4 | 2 | 1 |
| Montana | 6 | 5 | 3 |
| Nebraska | 6 | 2 | 2 |
| Nevada | 6 | 2 | 1 |
| New Hampshire | 6 | 3 | 0 |
| New Jersey | 6 | 5 | 3 |
| New Mexico | 6 | 3 | 3 |
| New York | 5 | 1 | 1 |
| North Carolina | 6 | 5 | 4 |
| North Dakota | 6 | 4 | 1 |
| Northern Mariana Islands | 3 | 1 | 1 |
| Ohio | 5 | 1 | 1 |
| Oklahoma | 6 | 3 | 3 |
| Oregon | 6 | 6 | 5 |
| Pennsylvania | 6 | 4 | 1 |
| Puerto Rico | 3 | 1 | 1 |
| Rhode Island | 6 | 3 | 1 |
| South Carolina | 6 | 3 | 3 |
| South Dakota | 5 | 3 | 2 |
| Tennessee | 5 | 2 | 0 |
| Texas | 6 | 3 | 2 |
| U.S. Virgin Islands | 3 | 2 | 1 |
| Utah | 6 | 2 | 2 |
| Vermont | 6 | 0 | 0 |
| Virginia | 6 | 2 | 0 |
| Washington | 6 | 2 | 1 |
| West Virginia | 6 | 2 | 1 |
| Wisconsin | 6 | 3 | 3 |
| Wyoming | 5 | 0 | 0 |
The corpus and the method, in brief
The entity list is CISA's authoritative .gov registry (cisagov/dotgov-data, public domain), filtered to the State or territory domain type, then sampled down to 300 entities. Corpus fingerprint: sha256 16041b3dcffcdb81….
Each entity's homepage was loaded once in headless Chromium and analyzed with axe-core using the wcag21a, wcag21aa, wcag2a, wcag2aa tag set, which is the WCAG 2.1 Level A and AA rule set. We fetch and honor each site's robots.txt, identify ourselves in the User-Agent, cap concurrency, and make one homepage request per entity per run.
Full methodology: sampling rule and seed, engine versions, limits, conduct rules, and regulatory context with sources · Download the whole dataset (CC BY 4.0).
Reproduce any result
The engine is open source. Any row here can be re-run on your own machine:
npx github:st0rm-bless3d/a11yscan#v0.1.1 https://example.gov/ --min-impact serious
The CLI's default rule set is wider than this index's. It also enables wcag22aa and axe's best-practice rules, so it reports a superset of what we count here. See the methodology for the exact tag set.