Measured, not asserted. Here are the numbers.
An accessibility statement that says “we care about accessibility” is worth nothing. This one lists what is checked automatically before the site is published, and what the last check found. The checks are part of the build, so a regression stops the site rather than shipping.
Every text-and-background pair is measured. The only pair below it is the giant figure, at 3.14:1 — which meets the AA threshold for large text.
Every link, button, field and summary is measured at 390px wide. Last check: none below.
No horizontal scrolling at 320, 360, 390, 768, 1024, 1440 or 1920 pixels.
45 tab stops walked in order; every one shows a visible outline.
What is checked, and how
Each line is a check that runs in `verifier.py`. Where a thing is not checked, the line says so instead of implying it is fine.
Contrast
Every element that contains text is measured against the background actually painted behind it, not against an assumed colour. The build fails if a new pair falls below 4.5:1. Colour is never the only carrier of meaning: every figure marked in red also carries its number in words.
WCAG 2.1 SC 1.4.3 and 1.4.1 · measured by site/audit_design.py
Keyboard
The whole page is walked with the Tab key and every stop must show a visible outline. Three form fields once had a local rule that removed theirs; that is why this check exists.
WCAG 2.1 SC 2.1.1 and 2.4.7 · measured before each publication
Motion
Every animation on the site — reveals, counters, the drawn logo, the parallax — is disabled when the browser asks for reduced motion. Checked by loading the page with that preference and confirming that no section stays hidden and every figure is present.
WCAG 2.1 SC 2.3.3 · prefers-reduced-motion honoured throughout
Without JavaScript
The page is readable with scripts disabled: every section is visible and every figure shows its real value. The counters carry their number in the HTML and the script resets them to zero only to animate — a page that showed “0” without JavaScript would state the opposite of what it measures.
Checked with scripts off; 16 of 16 sections visible
Structure and names
One h1 per page, no skipped heading level, landmarks present, every button and field named, decorative SVG hidden from assistive technology, and no two links sharing a label while pointing elsewhere.
WCAG 2.1 SC 1.3.1, 2.4.6, 4.1.2 · Lighthouse accessibility 100 on every page
Text size and line length
Body text is 18px on desktop with a line height of 1.7, and no paragraph runs past 75 characters — measured on the rendered page, not assumed from a max-width.
Last check: one paragraph of 48 above 75 characters
What is NOT checked automatically
Screen-reader announcement order, the usefulness of every alt text, and whether the language is plain enough. Automated checks catch shape, not sense. If something here is hard to use with your tools, write and it gets fixed — that report is worth more than another audit.
Stated so that the checks above are not read as a full guarantee.
No accessibility conformance is claimed as a formal certification. What is claimed is that the checks listed above run before every publication and that the site is not published when one fails.
The measurements come from an automated browser, which is not a person using assistive technology. A real report from a real user takes precedence over any number on this page.