Skip to content
ColorArchive
Accessibility
2028-10-14

Color Accessibility Beyond WCAG 2.1: What the New Standards Actually Require

WCAG 2.1's contrast ratio formula was derived from a 1988 luminance model that systematically underestimates low-spatial-frequency text legibility and overestimates legibility for small, thin-weight text. The successor standard — APCA (Advanced Perceptual Contrast Algorithm) — corrects these errors with a model calibrated against psychophysical research. This issue explains what changes, what stays the same, and how to audit a design system under both standards during the transition period.

Highlights
WCAG 2.1's contrast ratio formula treats 4.5:1 as the universal threshold for normal text — but this single number was never calibrated for font weight or size. A 400-weight 14px label and a 700-weight 32px heading have the same contrast requirement under WCAG 2.1, despite having radically different legibility at any given contrast level. APCA addresses this with a lookup table: the required contrast value varies by font size and weight, allowing bold large text to use lower contrast (Lc 45) while small light text requires much higher contrast (Lc 90+).
The most consequential practical difference between WCAG 2.1 and APCA: WCAG 2.1 allows white text on mid-range colors (e.g., a medium blue at 4.6:1) that APCA flags as insufficient. Simultaneously, WCAG 2.1 fails combinations that APCA permits (e.g., black on certain mid-dark backgrounds that WCAG 2.1 rejects but APCA passes at larger font sizes). The errors go in both directions — some WCAG 2.1 compliant combinations are genuinely hard to read; some WCAG 2.1 failures are fine at large, bold sizes.
Practical transition strategy: audit your design system against both WCAG 2.1 (for current legal compliance) and APCA (for production-readiness when WCAG 3.0 ships). The combination reveals three categories — combinations that pass both, combinations that fail both (fix immediately), and combinations that pass one but not the other (document and flag for migration). The dual-standard audit is the only way to understand your real accessibility liability as standards evolve.

Why WCAG 2.1 contrast ratios are wrong

WCAG 2.1's contrast ratio formula uses a relative luminance calculation (Y = 0.2126R + 0.7152G + 0.0722B, linearized) and computes the ratio as (L1 + 0.05) / (L2 + 0.05). This formula was derived from the IEC 61966-2-1 sRGB standard and the CIE luminance model — a model optimized for object detection in lighting systems, not for reading small text. The formula is spatially unaware: it has no concept of spatial frequency, font weight, or the physiological difference between reading a 10px label and a 32px heading. The original WCAG developers knew this — the standard explicitly notes that the formula is an approximation — but the simplicity made it useful for automated auditing.

APCA: what the new model does differently

APCA (Advanced Perceptual Contrast Algorithm, developed by Andrew Somers) replaces the ratio formula with a signed contrast value (Lc) that accounts for polarity (dark text on light vs. light text on dark), spatial frequency (font size and weight), and the non-linear relationship between physical contrast and perceived legibility. The key practical difference: APCA outputs a value from -108 to +106 (negative = light text on dark, positive = dark text on light), and required Lc varies from 15 (large placeholder text that doesn't need to be read carefully) to 90+ (body text that users read for extended periods). Automated auditors implementing APCA include Sa11y, the APCA Contrast Calculator, and updated versions of several browser DevTools contrast checkers.

Newer issue
Color Systems at Scale: How Large Design Teams Maintain Color Consistency
2028-10-07
Older issue
How Color and Typography Interact: The Four Variables That Control Reading Comfort
2028-10-21