APCA — The Contrast Algorithm Behind WCAG 3.0

APCA (Advanced Perceptual Contrast Algorithm) is the candidate replacement for WCAG 2.1’s contrast formula. It returns a perceptual score (Lc) instead of a ratio.

At a glance

Output
Lc score from -108 to +106
Body-text guideline
Lc ≥ 75 (positive) or ≤ -75 (negative)
Large-text guideline
Lc ≥ 60 (positive) or ≤ -60 (negative)
Status
WCAG 3.0 candidate — not yet legally binding

APCA is the contrast algorithm being developed for WCAG 3.0 (currently a working draft). Unlike WCAG 2.1’s simple luminance ratio, APCA models how the human visual system actually perceives contrast — accounting for spatial frequency, polarity (dark-on-light vs light-on-dark), and the non-linear way our eyes adapt.

Why APCA was needed

WCAG 2.1’s formula (the (L1 + 0.05) / (L2 + 0.05) ratio) is symmetric — black-on-white returns the same number as white-on-black. But human perception is *not* symmetric: dark text on a light background is easier to read than the reverse at the same luminance ratio.

WCAG 2.1 also overweights the green channel and produces unintuitive results for saturated colors. Yellow on white returns a fail (correctly), but blue on black often passes WCAG 2.1 even when the actual readability is poor.

How APCA scoring works

APCA computes a perceptual luminance for each color (using a different gamma curve than sRGB), then combines them with polarity-aware coefficients. Positive Lc indicates dark text on light background; negative Lc indicates the reverse.

Practical thresholds in the current draft: Lc 90+ for very small or thin text, Lc 75+ for body text, Lc 60+ for large text or non-critical content, Lc 45+ for fluent reading of larger or non-text-only elements.

Should I switch to APCA today?

Use APCA as a *secondary* check today, not a replacement. Compliance frameworks still reference WCAG 2.1, and the design community broadly understands AA/AAA. APCA shines as a tiebreaker — when WCAG 2.1 marginally passes a pair that *looks* hard to read, APCA usually flags it.

Frequently asked questions

Is APCA a WCAG standard yet?
No — it is the leading candidate for WCAG 3.0, which itself remains a W3C Working Draft as of 2026. Legal compliance frameworks (ADA, EN 301 549, AODA) all still reference WCAG 2.1.
What does a negative Lc mean?
Light text on a dark background. APCA preserves the polarity sign so you can tell the design polarity from the score itself — Lc -85 is white-ish text on near-black; Lc +85 is the inverse.
Why does APCA give different verdicts?
Because it models perception rather than raw luminance. Pairs that WCAG 2.1 marginally passes but humans struggle to read (mid-blue on dark teal, e.g.) often fail APCA. Pairs that WCAG 2.1 fails for technical reasons but humans read fine (saturated red on saturated green) sometimes pass APCA — though never use that as a reason to ship inaccessible content.

Related guides

Related Tools