The 12 checks we run before sign-off
The European Accessibility Act covers any commercial site that serves EU consumers. For most of our clients, the practical scope is WCAG 2.1 AA — and that maps to twelve recurring failure points we see across audits.
- Contrast ratio ≥ 4.5:1 for body text, 3:1 for large text
- Every
<img>has a meaningfulalt(oralt=""if decorative, withrole="presentation") - Heading hierarchy descends without skipping levels
- Focus order matches DOM order on tab
- Focus indicator is visible (not the browser default outline removed)
- Touch targets ≥ 44×44 CSS pixels (WCAG 2.5.5)
- Form fields have associated
<label>elements - Error messages are programmatically linked to the offending field via
aria-describedby - Page is operable without a mouse (test with Tab + Enter only)
- Page is readable at 200% zoom without horizontal scroll
<html lang="...">is set- Motion respects
prefers-reduced-motion
What we don't bother with
ARIA roles you can express with native HTML. We've never had a single audit issue from "should have used role='button'" — only from "should have used <button> instead of <div role='button'>."