Accessibility statement
Webidoo Engineering is committed to making root - the design system and this documentation site - usable by as many people as possible, including people who use assistive technology.
This statement says what is conformant, what is not, how that is checked, and what to do when something here fails you. It was last reviewed on 26 August 2026, against the version this site was built from.
What this statement covers
Two things, which are held to the same standard and tested differently:
- the components this system publishes - every package flagged Ready for Dev, as installed from npm and rendered in a consumer's own page;
- this documentation site - every page under this domain.
It does not cover a product built with root. A component that meets WCAG in isolation can be composed into a page that does not, and only that page's own team can test that page.
Conformance status
Partially conformant with WCAG 2.2 level AA. Partially conformant means some parts do not fully conform. The parts, and why, are listed under known limitations - they are not footnotes to the claim, they are the claim.
5
wcag2a, wcag2aa, wcag21a, wcag21aa, wcag22aa - read from the spec itself
21
Each at its first live example, in the built site
5
A dialog scanned closed is a dialog nobody scanned
How it is checked
Automatically, on every push, against the built site rather than a development server - what is tested is the artefact that deploys:
- axe-core runs over each Ready-for-Dev component's live example, over overlays in their open state (a dialog scanned closed is a dialog nobody scanned), and over the shell's own surfaces: the footer on four page types, the showcase's four compositions, and the roadmap's assessment form;
- keyboard and focus tests run per component, in a real browser, as part of the unit suite: focus order, roving tabindex, escape handling, and what a control does on Enter and Space;
-
contrast
is measured palette by palette, in both color schemes, for the two components whose whole surface is a
color pair - Tag and Badge - and by axe everywhere else it renders. That gate is what caught
root-badgeat 4.1:1 inneutraland 4.12:1 inalternate, which are fixed: where a ramp's mid step leaves no readable label, the ground moves a step rather than the text.
Every one of those gates blocks a merge. The commands are on the quality page, beside where they run.
Known limitations
Written here because a conformance claim without them is not a claim:
- The automated scan reaches one example per component page, the first one. A violation in a component's third example is not caught.
- Components that are not flagged Ready for Dev are not scanned at all. They are on this site with a warning on every page and are not published to npm.
- Every heading on a documentation page is a tab stop. The heading is wrapped in a link to itself so a reader can copy a section's URL by aiming at its title; the cost is a stop in the tab order for each one.
- Automated testing finds a fraction of what a person finds. Nothing on this site has been through a formal audit with screen-reader users. axe checks contrast, names, roles and structure; it cannot tell you whether a flow makes sense.
- Compatibility is stated only where it is tested. The gates run in Chromium. The components use native elements and platform behavior rather than re-implemented widgets, which is what makes them likely to work with whatever a reader uses - but "likely" is the accurate word, and no combination of browser and assistive technology has been formally certified here.
Feedback
If something on this site or in a component blocks you, open an issue on the repository - the link is in the footer of every page - or write to Webidoo Engineering. Say what you were trying to do, what happened, and what you were using; a URL and a component name are usually enough to reproduce it.
Accessibility defects are treated as defects: they are not a separate backlog, and a component that fails one does not pass the gate that publishes it.
How this statement was prepared
Self-assessment by the team that maintains the system, against what the repository can be shown to check.
The automated results are reproducible by anybody with a clone - pnpm test:e2e runs the same
gate this statement describes - and the limitations above are the parts that assessment cannot cover.