Rules · color-contrast
Failure reference
Text without enough contrast.
Low-contrast text is unreadable in sunlight, on cheap panels, and for the roughly one in twelve users with a color-vision or low-vision condition. The scanner measures the actual rendered ratio.
What fails — and who it fails
The failure, in plain language.
Body text and interactive labels need 4.5:1 against their background (3:1 for large text). Brand-light greys and tinted buttons routinely land at 2–3:1 — legible to a designer on a calibrated screen, gone for everyone else.
Detection — what the machine can and cannot judge
How the scanner finds it.
- Foreground and background colors are read from the rendered page — computed styles, not the stylesheet — and the exact ratio is reported per element.
- Text over gradients or images is marked for review rather than guessed.
- What automation cannot judge: brand trade-offs. The fix is usually one design token, and the finding shows exactly which one.
The legal reading — factual, not fearful
Where this sits in enforcement.
1.4.3 is Level AA and one of the most frequently evidenced criteria in assessor reports: the ratio is a number, and a number is an exhibit. It is also the cheapest large-scale fix on most sites — a token change clears every instance at once.
The fix — by pattern
2 patterns cover nearly every instance.
- --btn-primary: #8FB4FF; /* 2.9:1 on white */
+ --btn-primary: #1B3FA0; /* 8.6:1 on white */+ font-size ≥ 24px with a measured ratio ≥ 3:1 passesFix the template, not the page — one change typically clears every instance at once. The triage engine groups findings by template pattern for exactly that reason.
Verification — resolution is evidence, not a checkbox
Fixed means a scan said so.
On monitored domains, mark the finding fixed and the next scan verifies it: zero remaining instances converts the finding to Resolved, and both the claim and the confirmation land in the append-only ledger. Criteria that need human judgement close through sign-off in the coverage matrix — covered by the right method, never by assumption.
See where your templates stand.
A complimentary assessment renders up to 25 public pages in an EU-hosted browser and shows every instance of this failure — grouped, ranked, and honest about what still needs a human.