Accessibility conformance testing

Measured against the W3C’s spec. Not against our opinion.

React component libraries, tested for keyboard and screen reader conformance. Every check cites a clause. Maintainers see their findings first.

Evidence a maintainer can argue with,not one more opinion about accessibility.

01 · ADAPTER

Fifty lines, written by the library

An adapter mounts a library’s components into a fixed harness. It is the only library-specific code in the project, and it is published in full.

02 · HARNESS

The runner never learns whose code it is

It speaks HTTP to a fixed URL and nothing else. A test cannot favour a library it has no way to identify.

03 · MEASURE

We read the tree a screen reader reads

Role, name and state come from the browser’s own accessibility tree, not from guessing which attributes happen to be present.

04 · NOTIFY

Fourteen days, and the code we ran

Nothing is published until the maintainer has their findings, the adapter source, and a right of reply we print in full.

7libraries measured
64checks, each citing a clause
5components per library
every run repeated

You got an issue from us?

Then you are reading this before anyone else can. Here is exactly what happens next, and none of it is a surprise.

  • 01Nothing about your library is on our index, and nothing will be for at least fourteen days.
  • 02The report includes the whole adapter. If we mounted your component wrongly, you can prove it in minutes.
  • 03Reply and we publish your response beside the score, in full and unedited.
  • 04Ship a fix inside the window and the fixed score is the one we publish.

Check our working

The strongest argument against a bad measurement is not our promise. It is that you can run the whole thing yourself.

  • MITEvery adapter, spec and score is open source.
  • JSONEvery result is a file in the repository, with exact versions.
  • W3CEvery check cites the APG clause or WCAG criterion it measures.
  • An intermittent result is discarded rather than published.

We publish our own mistakesin the same place as everyone else’s.

Decision 001

Assertions are grounded in the W3C APG, not our own judgement

The central threat to this project is a maintainer successfully framing a result as "one person's opinion about accessibility". Grounding in APG means a dispute is with the W3C's documented pattern, not with us.

Decision 002

The accessibility tree is read via CDP, not inferred from the DOM

DOM inspection cannot answer the questions that matter. "Is the background hidden from assistive technology" depends on computed accessibility-tree exposure, aria-hidden, inert, sibling visibility, browser heuristics, not on which attributes happen to be present.

Decision 003

React Spectrum is a calibration control, not a subject

We need a known-good reading to distinguish "this library is broken" from "our test is broken". Without one, the first published false positive is indistinguishable from a true finding, and the project's credibility is gone before it has any.

Read all 21 decisions

What this cannot tell you

A high score means no violations were detected by automated testing. It does not mean the component is accessible. Automated tests cannot judge whether a label is meaningful, whether a reading order makes sense, or whether the experience is usable with a screen reader. Those need human judgement and disabled users. This is a floor, not a ceiling.