Statement
Accessibility, stated honestly
This is the statement. The engineering record — every rule, every finding it ever caught, and the counts behind both — is on /quality/aria, and the manual checklist this site has not yet run in a browser is published there in full rather than summarised here.
What is verified on every build
- ✓Every one of the site's pages is scanned at build time for images without alt text, controls with no accessible name, duplicate ids, heading-order skips and a missing lang attribute.
- ✓Every page carries one h1, its own canonical URL and its own share card — checked across the served sitemap, not sampled.
- ✓Contrast is computed on the token pairs the site actually uses, and the results are published rather than summarised.
- ✓Colour is never the only signal: the components that encode state in colour also state it in text or shape, and the catalog records that per asset.
- ✓Keyboard operability is part of every demo's declared behaviour, and the declaration is compared with the scene's own code on every run.
What is not verified, and cannot be by a build step
An automated pass can prove a name exists. It cannot tell you whether the name means anything, whether a focus ring is visible on the surface it actually sits on, or where focus goes when a sheet closes. 7 checks are written down for that reason and none of them has been run in a browser by this project — there is no browser in the build, and the site will not imply otherwise.
- 01Tab from the top of a page to the end, with no mouse
- 02Close an overlay while focus is inside it
- 03Check where focus returns after a dialog closes
- 04Look at the focus ring against the surface it sits on
- 05Listen to what the screen reader says, not just that it can
- 06Set reduced motion and open the animated scenes
- 07Zoom to 200% and use only touch-sized targets
Each one, with how to run it and what counts as a failure, is on /quality/aria.
About motion
Every scene that animates declares what happens when your system asks for reduced motion: loops stop, entrances play once or not at all, and nothing that only animation revealed is taken away — the information stays, in a label, a rule or a still frame. The contract is written down in the repo, quoted on the aria page, and enforced scene by scene.
Plain language
The essays are swept for paragraphs over 90 words — hard to translate, harder to skim. The count is recorded in the build report each batch; the sweep exists so the number can only move through a decision, never through neglect.
Reporting a problem
This site has no backend and no issue tracker of its own, so there is no form to submit that would quietly go nowhere. What it has is a public repository: an issue there is read by a person, and a fix ships with the measurement that justifies it. If you have hit a barrier — a control you cannot reach, a message you cannot hear, a target you cannot hit — that is a defect, not a preference.