Accessibility Statement
What we have measured on the public AiLabrix pages, how we measured it, and what is still open. Written to be checkable rather than reassuring.
Last updated: 2026-07-26 · v1.0/pricing, /trust, /compliance
and /contact. The authenticated application is not covered by this
statement.
What was measured, and how
Two harnesses in the repository render the pages in Chromium and measure the result, so any claim below can be re-checked and any regression is caught rather than discovered by a user:
tools/audit_landing.py— contrast of every text element against its effective background, heading outline, accessible names, duplicate ids, running animations, and video behaviour. Run in English, Italian, and withprefers-reduced-motion: reduce.tools/audit_wcag_reflow.py— reflow at a 320 px viewport, text resized to 200%, the WCAG text-spacing overrides, keyboard tab order, form labels, and focus-indicator contrast, across all five pages.
Both compare against a pinned baseline and fail if a number gets worse. The
statically decidable half is additionally asserted in
tests/test_marketing_page_contract.py, which runs with the normal
test suite.
Criteria verified
- 1.4.3 Contrast (minimum) — no text below the required ratio. Two colours were changed to reach this: a division tag measured 3.77:1 and a badge that sat on a semi-transparent background over a video, where the ratio depended on the frame behind it.
- 1.4.10 Reflow — no horizontal scrolling at 320 px, and no content pushed out of reach. Three separate causes were fixed: a footer grid that never collapsed to one column, cards holding a chart canvas that refused to shrink, and a responsive grid that had been frozen into a fixed one.
- 1.4.4 Resize text — usable at 200% text size.
- 1.4.11 Non-text contrast — the focus indicator. It was measured at 1.12:1 against the dark footer, meaning a keyboard user could not see where they were; it is now a two-tone ring that contrasts on either side.
- 1.4.12 Text spacing — no loss of content with the WCAG line, letter, word and paragraph spacing applied.
- 1.4.13 Content on hover or focus — navigation menus are dismissible with Escape and stay open while the pointer is over them.
- 1.3.1 Info and relationships — one
h1per page and no skipped heading levels. Four decorative headings inside an illustrative interface mock-up were turned into non-heading elements. - 2.1.1 / 2.1.2 Keyboard — every control is reachable and focus never becomes trapped. Three decorative buttons inside the mock-up were removed from the tab order.
- 2.2.2 Pause, stop, hide — the looping demo video has a play/pause control, and it does not start on its own when the visitor has asked for reduced motion. Decorative animations stop under the same preference.
- 1.2.1 Audio-only and video-only — the silent demo video has a text description next to it.
- 3.3.2 Labels or instructions — every form field on the contact page has a programmatic label.
- 1.1.1 Non-text content — every image has an alternative, and the interface mock-up is exposed as a single labelled image rather than as dozens of meaningless fragments.
Known limitations
- Illustrative interface mock-up. The animated browser window on the home page is presented as a single image with a text description. Text inside it is decorative and is not intended to be read; it is not an accessible substitute for the product itself.
- Wide data tables. The sub-processor table and the standards table scroll horizontally inside their own container. This is permitted for tabular data, but it does require horizontal scrolling of that region on a narrow screen.
- Third-party accessibility widget. The pages load an open-source user-side adaptation widget (high contrast, font size, animation pause and more) from a pinned version with an integrity check. It is an addition to the work above, never a substitute for it.
- WCAG 2.2. Our target is 2.1 AA. Some 2.2 criteria — notably target size (2.5.8) — are not yet met everywhere: a few footer links are below 24 px in height.
- Level AAA is not a target. Body text at the secondary grey passes AA and does not pass AAA.
- The authenticated application (dashboard, review gates, administration) has not been audited to this standard yet.
Reporting a barrier
If something on these pages blocks you, please write to [email protected] with the page address and what happened. We will reply within five working days. If you use assistive technology, telling us which software and version helps us reproduce the problem.
How this statement is kept honest
The claims above are generated from measurements, not from intent. If a change regresses one of them, the harnesses fail against their baseline and the statement is wrong until the code is fixed — not until someone remembers to edit this page. Any criterion we have not measured is listed under limitations rather than left unmentioned.