Charts · 14

Contrast, two ways that disagree

WCAG 2 contrast is a ratio of two luminances, and it has three problems a designer meets weekly: it is symmetric, so white on orange scores the same as orange on white; it over-rewards mid greys on black; and it fails colours that read perfectly well as headings. APCA, the candidate method for WCAG 3, is perceptual, cares which colour is the text, and gives a size and weight rather than a pass. Pick a pair and read both numbers next to the actual text.

Body text at 16px regular. The quick brown fox jumps over the lazy dog, and the contrast is what lets you read it without effort.

Caption at 12px, where every method gets strict.

Heading at 28px bold

WCAG 2.x ratio

4.54:1

AA

(L1 + 0.05) / (L2 + 0.05). Symmetric: swapping text and background gives the same number. AA needs 4.5:1 for body, 3:1 for large text; AAA 7:1.

APCA Lc

72 Lc

large or bold · min body size 18px

Perceptual, polarity-aware: swapped, this pair scores 77 Lc. Negative means light text on dark. Body text wants 75+, 90 preferred; 60 for large or bold; 45 for headings.

The famous edge case: exactly 4.54:1, the minimum grey WCAG 2 allows for body text.

Where they disagree: grey text across the whole range

Grey text on white

Aa21.0106
Aa19.5106
Aa17.5104
Aa15.1102
Aa12.699
Aa10.494
Aa8.589
Aa7.084
Aa5.779
Aa4.873
Aa4.067
Aa3.461
Aa2.855
Aa2.448
Aa2.141
Aa1.834
Aa1.627
Aa1.420
Aa1.313
Aa1.10
Aa1.00

Top: WCAG ratio (bold when ≥ 4.5). Bottom: APCA Lc (bold when ≥ 75). Read where the two thresholds fall.

Grey text on black

Aa1.00
Aa1.10
Aa1.20
Aa1.40
Aa1.70
Aa2.08
Aa2.513
Aa3.018
Aa3.723
Aa4.429
Aa5.335
Aa6.341
Aa7.447
Aa8.654
Aa10.061
Aa11.568
Aa13.176
Aa14.883
Aa16.791
Aa18.8100
Aa21.0108

Top: WCAG ratio (bold when ≥ 4.5). Bottom: APCA Lc (bold when ≥ 75). Read where the two thresholds fall.

Notes

WCAG 2 ratio: (L1 + 0.05) / (L2 + 0.05) with L the relative luminance from linearised sRGB, thresholds 4.5:1 (AA body), 3:1 (AA large, 18pt or 14pt bold), 7:1 (AAA). It is the legal standard in most jurisdictions and the one your audit will use. APCA Lc is computed here with the published APCA-W3 0.1.9 constants (soft black clamp 0.022, exponents 0.56/0.57 for dark-on-light and 0.65/0.62 for light-on-dark, scale 1.14, offset 0.027); the font-size guidance is the simplified lookup: Lc 90 for preferred body, 75 for minimum body, 60 for large or bold, 45 for headlines, 30 for non-text. APCA is still a candidate, not yet normative, and WCAG 3 remains a working draft as of 2026; the honest position is to ship to WCAG 2 and design with APCA.

The grey ramps make the disagreement visible: on white the two thresholds land close together (#767676 is the last grey WCAG 2 passes, and APCA agrees it is marginal), on black WCAG 2 passes greys that APCA rates around Lc 40, which is why so many dark-mode interfaces with “passing” secondary text are hard to read. Sources: WCAG 2.2, Success Criterion 1.4.3; APCA-W3 documentation and the apca-w3 reference implementation, Myndex Research; Sommers, Andrew, Why APCA.