Add a11y-matrix to Accessibility Testing Tools - #125
Open
henriqueyuri00 wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a11y-matrix to Accessibility Testing Tools.
Disclosure: I built this. Completely fine to close if self-submissions aren't welcome.
- [Name](url) - Description.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:
incompleteresults as well asviolations, kept clearly separate. Text at exactly 1:1 contrast against its own background — invisible — is reported by axe asincomplete, not a violation, because it cannot prove the element was not deliberately hidden. Pipelines that assert onviolationsdiscard it.scrollWidthagainst 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.