Skip to content
APCAWCAGaccessibilitycolor contrastweb designWCAG 3.0

APCA vs WCAG 2.1: Which Color Contrast Standard Should You Use?

HB
Hue Blender
·5 min read

If you have shipped accessible interfaces in the last decade, you know 4.5:1 by heart. WCAG 2.1's contrast ratio is the legal baseline almost everywhere on the web — and it is also the math that fails you when a chromatic green just looks wrong despite passing AA. Enter APCA: a perceptually grounded alternative that is technically accurate, polarity-aware, and frequently misunderstood.

This article is for designers and developers who already know WCAG 2.1 and have bumped into APCA without a clear map of how the two relate.

The Problem WCAG 2.1 Was Built To Solve (and Where It Falls Short)

WCAG 2.1 defines contrast using a single ratio: (L1 + 0.05) / (L2 + 0.05), where L is the relative luminance of each color. The thresholds are familiar:

  • 4.5:1 — minimum for normal body text (Level AA).
  • 3:1 — minimum for large text (18pt+ regular or 14pt+ bold) and non-text UI components.
  • 7:1 / 4.5:1 — the AAA equivalents.

Fast, deterministic, easy to test — and with three well-documented blind spots.

1. Type Size and Weight Are an Afterthought

WCAG 2.1 only distinguishes "normal" from "large" text. A 12px regular paragraph and a 36px regular paragraph face the exact same 4.5:1 requirement. Font weight is nearly invisible to the formula too.

2. Polarity Is Ignored

Light text on a dark background and dark text on a light background are not perceptually symmetric. Glare, pupil dilation, and the visual system's response to local contrast all behave differently in dark mode. WCAG 2.1's ratio is symmetric — swapping foreground and background gives the same number.

3. Chromatic Colors Can Mislead the Math

Mid-saturation greens, oranges, and reds can pass 4.5:1 while feeling muddy in practice. Conversely, vivid pure green (#00FF00) on white scores roughly 1.4:1 and fails AA, even though it is unambiguously visible. The ratio measures brightness difference, not perceived legibility.

What APCA Actually Is

APCA — Advanced Perceptual Contrast Algorithm — computes a lightness contrast value (Lc) using a polarity-aware power function. Output range: Lc -108 to Lc +106.

  • Positive Lc — dark text on a light background.
  • Negative Lc — light text on a dark background.
  • For threshold comparisons, use |Lc|.

Three structural differences from WCAG 2.1:

  • Polarity awareness — different exponents for dark-on-light vs. light-on-dark, reflecting vision asymmetry.
  • Spatial frequency — type size and weight are inputs to the threshold, not afterthoughts.
  • Perceptual uniformityLc 60 represents roughly the same perceived contrast across all hues.

APCA Thresholds in Practice (Bronze Simple Mode)

  • |Lc| ≥ 90 — fluent body text at 14–16px regular weight.
  • |Lc| ≥ 75 — body text at 18px+ regular or 14px bold.
  • |Lc| ≥ 60 — larger labels and short content blocks: 24px regular, 18px at weight 600, 16px bold.
  • |Lc| ≥ 45 — large headline-style text around 36px regular or 24px bold.
  • |Lc| ≥ 30 — absolute floor for spot-readable text and non-text UI: placeholders, disabled states, icons.

A 36px bold heading and a 14px regular caption are no longer judged by the same yardstick.

When To Use Each Standard

WCAG 2.1 Level AA is referenced by ADA Title II (US), EN 301 549 (EU, backbone of the European Accessibility Act), and AODA (Ontario, Canada). If your site has any compliance exposure, WCAG 2.1 AA is not optional. Pass it first.

APCA Is Better Guidance for Real Readability

APCA is not yet a normative legal requirement. But it produces better real-world reading experiences, especially in:

  • Dark-mode interfaces, where WCAG 2.1's symmetry overstates contrast.
  • Design systems with large type-scale ramps, where two tiers (normal/large) are too coarse.
  • Brand palettes built around chromatic mid-tones, where WCAG 2.1 can pass weak colors and fail legible ones.

The Pragmatic Stack

Treat WCAG 2.1 AA as the floor, and APCA as a design-quality signal. If a pair fails WCAG 2.1 AA, it is a bug. If it passes WCAG but APCA flags it, treat that as a strong smell worth investigating before shipping.

A Concrete Comparison

Case 1 — Light gray on white. #A0A0A0 on #FFFFFF. WCAG ratio ~2.5:1, fails AA. APCA ~Lc 36, below body-text threshold. Both agree: not usable for text.

Case 2 — Mid green on white. #3D8B37 on #FFFFFF. WCAG ~4.6:1, passes AA. APCA ~Lc 68, fine at 18px+ but borderline for fine body copy. Both roughly agree; APCA gives a more nuanced size recommendation.

Case 3 — Mid green on dark green. #5B8E5B on #1A4A1A. WCAG ~4.5:1, a technical pass. APCA: much lower |Lc|, correctly flagging low-polarity, same-brightness contrast. APCA is closer to what your eyes are telling you.

What WCAG 3.0 Actually Says (As of 2026)

  • WCAG 3.0 is still a W3C Working Draft (latest: early 2026).
  • It replaces A / AA / AAA tiers with a Bronze / Silver / Gold rating model.
  • APCA appeared in early WCAG 3.0 drafts but was removed in the July 2023 working draft while contrast research continues. As of mid-2026, the visual contrast guideline is still under peer review.
  • A full W3C Recommendation is realistically expected around 2028–2029.

WCAG 3.0 is not a 2026 compliance target. Learn APCA because it sharpens your design instincts today — not because it is "the next standard," a designation that has not yet been confirmed.

Tools for Both Standards

  • Hue Blender's Contrast Checker reports WCAG 2.1 AA/AAA and APCA Lc simultaneously, so you can spot the cases where they disagree.
  • Color Blindness Simulator covers the other half of the picture — even a contrast-perfect palette can collapse for users with protanopia, deuteranopia, or tritanopia.

Recommendation

Ship work that meets WCAG 2.1 AA — that is the line that matters legally. Layer APCA on top as a quality bar, especially for dark mode, dense type ramps, and chromatic brand palettes. Watch WCAG 3.0 drafts as they evolve, but do not refactor your design tokens around a standard that is still years from Recommendation. Knowing APCA today is preparation, not premature adoption.

Try it yourself

Mix any colors with our Kubelka-Munk pigment simulation tool and get instant HEX, RGB, CMYK codes.

Open Mixer

Related Articles

Related Tools