Accessibility gate
Wanderer's Playwright suite runs axe-core
against every screen the suite already visits (vloot, antwoord, trends,
onderbouwing, regelpagina) and fails the build on findings of impact
serious or critical. See tests/playwright/support/axe.ts.
What a green run proves — and what it doesn't
A green run means "no automated-tooling-detectable errors of this type." It does not mean "accessible." axe-core finds roughly a third of what can be wrong with a page: it catches contrast ratios, missing form labels, empty table headers and similar structural issues, but it cannot judge whether a screen reader user can actually complete a task, whether the keyboard focus order makes sense, or whether alternative text is meaningful rather than merely present.
The gate is a floor, not a certificate. A full WCAG 2.1 AA review — keyboard paths, screen-reader transcripts, focus order — is separate work that has to include a human, and a formal toegankelijkheidsverklaring (accessibility statement) is a further step still, required for Dutch public-sector buyers under the Tijdelijk besluit digitale toegankelijkheid.
What it currently checks
- Colour contrast on every element the suite's pages render, including
the verdict badges (
ja/nee/onbekend/n.v.t.,soeverein/voldoende/afhankelijk/onbekend) at their real rendered size (13.6px, normal weight) — WCAG 2.1 AA requires 4.5:1 for text that size. - That colour is never the only distinction between two verdicts: each badge also carries its own word.
- Only
serious/criticalimpact findings fail the build;moderate/minorfindings (axe's own "should fix", not "must fix") are not gated on.
Known gaps
- The suite does not visit
/demo(it isn't mounted by anyplaywright.config.tsproject), so that screen has no axe coverage. /ui/orgs/<slug>/fleetrenders its own "vloot" heading but is a different screen from/ui/(also called "vloot" in the task that introduced this gate); only/ui/is covered.