Skip to content

Accessibility

Every block, audited — and what the audit cannot see

Every one of the 433 artifacts in this catalog — 307 blocks and 126 pages — is checked against 18 rules covering 10 WCAG 2.2 success criteria on every build. The current result is 0 violations and 1 advisory.

This is evidence, not a conformance statement. We do not claim these components conform to WCAG 2.2 AA, and you should not represent to your own customers that they do on the strength of this page. A static audit reads source text; it cannot see rendered colour, focus order or reflow, and 10 criteria are therefore not evaluated at all. They are listed below rather than omitted.

What is checked

Each rule below runs against the exact source a visitor copies — not against a rendered page — because the source is the artifact. Failing any of them fails the build, so a violation cannot ship and then be noticed later.

WCAG success criteria checked on every build, with the severity of a failure
CriterionLevelWhat it catchesOn failure
1.1.1ANon-text contentBuild fails
1.1.1ADecorative graphics hidden from assistive techBuild fails
4.1.2AName, role, valueBuild fails
4.1.2ADisclosure state exposedReported, does not fail
2.1.1AKeyboardBuild fails
2.4.3ANo positive tabindexBuild fails
1.3.1AInfo and relationshipsBuild fails
3.3.2ALabels or instructionsBuild fails
3.3.8AAAccessible authentication (minimum)Build fails
2.5.8AATarget size (minimum)Reported, does not fail
2.5.7AADragging movementsReported, does not fail
4.1.2AName, role, value — icon-only controlsBuild fails
1.3.1AInfo and relationships — label associationBuild fails
3.3.2ALabels or instructions — placeholder is not a labelBuild fails
4.1.2AName, role, value — hidden but focusableBuild fails
4.1.2AName, role, value — dialogsBuild fails
1.4.2AAudio controlBuild fails
1.3.1AInfo and relationships — heading orderReported, does not fail

Covering 1.1.1, 1.3.1, 1.4.2, 2.1.1, 2.4.3, 2.5.7, 2.5.8, 3.3.2, 3.3.8, 4.1.2.

What is not checked

These 10 criteria cannot be decided from source text. Nothing below is a known failure — it is a known blind spot, which is a different and more useful thing to be told.

Part of that blind spot is measured separately, in a real browser: text at 200% size, reflow at 320px, forced colors, reduced motion, right-to-left and dark contrast. Those results are on the stress-test matrix, and they are a measurement of what a browser could detect, not a conformance claim either.

  • 1.4.3 / 1.4.11 Contrast (minimum, non-text)

    Components are styled with CSS variables the consuming project supplies. Whether one passes depends on a palette this check does not control.

  • 1.3.2 Meaningful sequence

    Needs rendered reading order, not source order.

  • 2.4.3 Focus order

    Needs a rendered tab sequence.

  • 1.4.10 Reflow

    Needs a viewport at 320 CSS pixels.

  • 2.5.3 Label in name

    Needs the rendered visible label to compare against the accessible name.

  • 3.2.3 / 3.2.4 Consistent navigation and identification

    A property of the whole site, not of one component.

  • 2.4.11 Focus not obscured (minimum)

    New in WCAG 2.2. Whether a sticky header covers the focused element depends on the rendered page a component lands in, not on the component.

  • 3.2.6 Consistent help

    New in WCAG 2.2. Asks whether help is in the same place across a set of pages, which is a property of the consuming site.

  • 3.3.7 Redundant entry

    New in WCAG 2.2. Needs to know whether two fields in a multi-step flow ask for the same information, which is a question about meaning rather than markup.

  • 2.4.13 Focus appearance

    New in WCAG 2.2, and Level AAA — outside the AA target, listed so a reader can see it was considered rather than missed.

Contrast is the one worth dwelling on. Every artifact here is styled through CSS variables, and the palette that decides whether text passes 4.5:1 is the one your project supplies. We check our own default palette; we cannot check yours. The contrast checker is free and takes about ten seconds per pair.

Current findings

  • sidebar-file-tree

    • 4.1.2 expanded-controls

Reproduce it

The audit is a script in the repository, not a service. Clone and run it and you get this page's numbers, or you get different ones and we are wrong — which is the point of publishing the method rather than a badge.

npm run audit:a11y

If you are bound by the EAA

The European Accessibility Act has been enforceable since June 2025 and reaches non-EU sellers who trade into the EU. It obliges you, not your component library — no vendor can discharge it for you, and any who say otherwise are selling a badge. What a library can honestly offer is evidence you can put in front of an auditor, which is what this page is. The remaining 10 criteria are yours to test in the product you assemble, because that is the only place they exist.