Two specs, one question, and the reason we surface both.
Every contrast pair on every curated inspiration runs through two audits. WCAG 2.1, the legacy spec everyone has heard of — relative luminance ratio, AA threshold at 4.5 for normal text, AAA at 7.0. And APCA Lc, the perceptual contrast model from the WCAG 3 draft — sign-aware lightness contrast on a scale that runs from minus 108 to plus 106, with thresholds tuned to actual reading research.
We do this because the two specs disagree, sometimes badly, on identical pairs. The accessibility-matrix UI on every detail page shows you both verdicts side by side. When they disagree, we trust APCA on body text and WCAG on regulatory compliance, and we tell you why.
Where WCAG 2.1 misleads, especially in dark mode.
The legacy formula is a relative luminance ratio: take the lighter color's luminance plus 0.05, divide by the darker color's luminance plus 0.05. That math was state-of-the-art in 2008. It is a mathematical model of how light reflects off a printed page, and it has two empirical problems on a screen.
First, it is not perceptually uniform. A pair that scores 4.5 in pure black versus pure gray feels harder to read than a pair that scores 4.5 in midnight blue versus dusty rose. The math says they are equivalent. Your eye says they are not. APCA's research literature is the citation for this disagreement.
Second, it punishes dark mode. A near-white text on a near-black background scores ratio values north of 18, which the spec calls excellent. The same pair scores APCA Lc around minus 98, which the new spec also calls excellent. Both agree. But subtler dark-mode pairs — a soft cream on a deep teal, say, in the Resend palette — can score WCAG 4.6 (AA pass) while scoring APCA Lc at minus 60 (adequate, not excellent). The disagreement is meaningful: WCAG says you are fine, APCA says you are at the edge of comfortable reading at body sizes.
If your accessibility report only checks WCAG, you are passing the audit and failing the user. The two outcomes are not the same.
What APCA does better, in plain English.
Three improvements stand out. APCA is sign-aware: a positive Lc means dark text on light background, a negative Lc means light text on dark background. The two regimes have measurably different perception, and a single signed number captures the difference. APCA is body-text-tuned: the thresholds are aligned to a reading research literature that did not exist when WCAG 2.1 was written. APCA is closer to perceptually uniform: a five-point Lc difference reads roughly the same regardless of where you are on the scale.
Where APCA still falls short, and why we don't replace WCAG with it.
APCA is a draft. It is part of the WCAG 3 working draft, which has not been ratified, will not be ratified for years, and may change before it is. If your audit needs to satisfy a procurement officer at a Fortune 500 or a regulator running a Section 508 audit, WCAG 2.1 is still the standard the standard.
APCA also has gaps. It does not model anti-aliased text rendering across font weights cleanly. It does not have a clean answer for transparent backgrounds composited over patterned surfaces. It does not extend cleanly to the situations our extractor sometimes sees — a button with a 30% opacity hover state on top of a gradient with a 4% radial overlay. Both specs punt on that one. Honest engineering is admitting it.
What threshold we actually use, in production, for the gallery.
Body text on every inspiration in the gallery has to clear two bars before we publish: WCAG 2.1 AA on normal sizes, and APCA Lc absolute value at or above 75. If a pair fails one and passes the other, we annotate the disagreement in the brief. We have rejected exactly two candidate inspirations on this criterion alone in the past year — both passed WCAG, both failed APCA at minus 58, both shipped a body text experience we could not in good conscience put a curator's signature on.
If you are running an audit pipeline against your own product, our recommendation is the same: surface both specs, trust APCA for body, trust WCAG for compliance, document the disagreements. The tooling to do this is small — apca-w3 plus your existing WCAG library, plus a JSON schema with both fields. The clarity it produces is large.
Founder & editor, AI2 Design. Fifteen years in product design, one stubborn opinion: depth still beats breadth.
@ai2design_



