Skip to content

Add a11y-matrix to Accessibility Testing Tools - #125

Open
henriqueyuri00 wants to merge 1 commit into
ZoranPandovski:mainfrom
henriqueyuri00:add-a11y-matrix
Open

Add a11y-matrix to Accessibility Testing Tools#125
henriqueyuri00 wants to merge 1 commit into
ZoranPandovski:mainfrom
henriqueyuri00:add-a11y-matrix

Conversation

@henriqueyuri00

Copy link
Copy Markdown

Adds a11y-matrix to Accessibility Testing Tools.

Disclosure: I built this. Completely fine to close if self-submissions aren't welcome.

  • Added to an existing section, alphabetically (before axe DevTools)
  • Matches the surrounding entry format: - [Name](url) - Description.
  • Checked the existing list and the open pull requests — not a duplicate
  • One line added, nothing else touched, no trailing whitespace

What it does that the tools already listed do not

axe-core, Pa11y and Lighthouse all evaluate the page in whatever state the browser is currently rendering. In CI that is always the same one: light colour scheme, no motion preference, forced colors off, desktop viewport.

a11y-matrix loads the page once per user-preference state and reports only the findings that exist in one state and not in the baseline — so each is attributed to the preference that exposed it, rather than added to an anonymous count.

Two details that are load-bearing:

  • It collects axe's incomplete results as well as violations, kept clearly separate. Text at exactly 1:1 contrast against its own background — invisible — is reported by axe as incomplete, not a violation, because it cannot prove the element was not deliberately hidden. Pipelines that assert on violations discard it.
  • It measures WCAG 1.4.10 reflow directly (document scrollWidth against viewport width) rather than inferring it, since axe has no rule for 1.4.10.

Evidence it finds real things

I ran it against 36 public homepages — W3C, MDN, React, Kubernetes, GitHub, Wikipedia, GOV.UK, the BBC, several design systems.

24 of 34 stable sites (71%) had at least one finding the baseline run never surfaced; 16 of 34 (47%) had a violation rather than something needing review. Median two per site. Six were clean in all seven states: W3C, WebAIM, MDN, Playwright, Primer, GOV.UK.

There is a control run: the same state twice, nothing changed, produced 7 spurious findings across all 36 sites, so the signal clears the noise by roughly forty to one. The two unstable sites are excluded from that figure rather than left in the denominator.

Method, counting rules, caveats and raw per-site data are all committed, so the interpretation can be argued with without re-running anything.

Runs with npx github:henriqueyuri00/a11y-matrix <url>. CI exercises the composite action for real: a deliberately broken fixture must fail the build and a clean one must not.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant