Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Understanding APCA

The Advanced Perceptual Contrast Algorithm (APCA) is a new method for calculating contrast that aligns much closer to how the human eye actually perceives light and color.

Is this standard? Yes. APCA is the candidate contrast method for WCAG 3.0 (the next generation of web accessibility standards). While WCAG 2.x is the current legal baseline in many places, APCA represents the future of accessibility science. By using it, you are future-proofing your design and providing a better experience for users today, even if the math is different.

Unlike the older WCAG 2.x ratio (e.g., 4.5:1), APCA produces a score called Lc (Lightness Contrast).

Why not WCAG 2.x?

The old math was simple, but flawed. It treated all colors equally. But your eye doesn’t.

The “Font Weight” Problem

WCAG 2.x treats all text the same, regardless of how thin or thick it is. But your eye needs much more contrast to see a thin line than a thick block.

WCAG Passes (4.5:1) Passes
Thin Text
Technically passes WCAG AA.
Hard to read.
WCAG Fails (3.5:1) Fails
Bold Text
Technically fails WCAG AA.
Easy to read.

APCA understands this. It would give the thin text a lower score and the bold text a higher score, matching your perception.

The “Polarity” Problem

WCAG 2.x treats White on Black exactly the same as Black on White. But your eye doesn’t.

Positive Polarity
Dark on Light
The eye resolves this detail very well.
Negative Polarity
Light on Dark
The eye needs slightly more contrast here to avoid "halation".

The Solver accounts for this. It picks slightly different lightness values for Dark Mode to ensure the perceptual contrast remains constant.

The Lc Score

APCA outputs a score from Lc 0 (invisible) to Lc 106 (pure black on pure white).

ScorePerceptionUse Case
Lc 15Barely visibleWatermarks, decorative borders
Lc 30SubtleDisabled text, placeholders
Lc 45Readable (Large)Large headlines, non-critical text
Lc 60Readable (Body)The gold standard for body text
Lc 75PreferredPreferred for long-form reading
Lc 90High ContrastSpotlights, critical actions

Visualizing Contrast

Lc 15 (Decorative)
Lc 30 (Disabled)
Lc 45 (Headlines)
Lc 60 (Body Text)
Lc 90 (High Contrast)
Lc 15 (Decorative)
Lc 30 (Disabled)
Lc 45 (Headlines)
Lc 60 (Body Text)
Lc 90 (High Contrast)

Note: The opacity values above are approximations for demonstration. The actual system calculates precise lightness values.