Back to Image Tools

Contrast Checker · WCAG 2.2 + APCA (WCAG 3 draft) Side-by-Side — Vectobox

Free accessibility contrast checker showing WCAG 2.2 ratio and APCA Lc (WCAG 3 draft) on one page. Highlights the ~20% of color pairs WCAG 2 misclassifies, with APCA fontLookup table, sample gallery, and lightness-axis adjust. Pure browser, zero tracking.

Pure browser. Zero upload. Your colors never leave this tab.

Foreground
hex / rgb() / name
Background
hex / rgb() / name
Live Preview

The quick brown fox14 px / 400

The quick brown fox18 px / 400

The quick brown fox24 px / 700

The quick brown fox32 px / 700

WCAG 2.2Threshold 0.04045 per WCAG 2.1 (2021-05)
21.00: 1
APCA (WCAG 3 draft)Dark text on light bg (BoW)
+106.0Lc
Min font (400 wt): 12 px
Min font (700 wt): 12 px
px400700
10
11
1210090
139585
149075
158575
167565
187560
217055
246045
285540
325035
364530
424030
483530
603030
723030
963030

What is APCA?

APCA (Accessible Perceptual Contrast Algorithm, G-4g) is the contrast model developed by Andrew Somers and adopted as a candidate algorithm in the WCAG 3 draft. Unlike the WCAG 2 ratio, APCA returns a signed Lc value (-108 to +106): positive means dark text on light background, negative means light text on dark background, and the threshold for readable body text is |Lc| ≥ 75.

Why does WCAG 2 disagree with APCA?

The WCAG 2 formula (L1+0.05)/(L2+0.05) was tuned for high-contrast black-on-white scenarios. It systematically over-passes light-on-mid-gray pairs (e.g. white text on #777 hits 4.48:1 — just barely failing AA — yet APCA scores it at Lc -68, well into the readable range) and under-passes warm mid-tones such as orange text on white. APCA's perceptually weighted exponents fix both directions.

Font lookup, not a single threshold

APCA does not use a single magic number. Whether a color pair passes depends on font size and weight: 14 px / 400 wt body needs |Lc| ≥ 90, but 24 px / 700 wt headings only need |Lc| ≥ 45. The table on this page surfaces both the minimum acceptable size for weight 400 and weight 700 at the current Lc, so you can decide what role the pair can safely play.

Adjust along the lightness axis

The Adjust buttons run a 25-step binary search on HSL.L, keeping hue and saturation fixed, until |Lc| reaches 75 (or WCAG ratio reaches 4.5). When the target is unreachable — for example fg and bg are both near-white — the tool returns the best approximation and flags the result.

FAQ

What is APCA and how is it different from WCAG 2?
APCA G-4g is a perceptually weighted contrast algorithm proposed for WCAG 3. It returns a signed Lc value (≈ -108 to +106) carrying polarity, while WCAG 2 returns a symmetric ratio (≥ 1) that ignores which color is text vs. background. The two algorithms agree on extreme contrast but disagree on roughly one in five real-world color pairs.
Which standard should I use today?
WCAG 2.x remains the legal baseline under Section 508 (US) and the European Accessibility Act, so passing AA is still required. APCA is currently a candidate algorithm in the WCAG 3 working draft — treat it as a more accurate design QA layer on top of WCAG 2, not a replacement.
Why do my colors pass WCAG but fail APCA?
The WCAG 2 ratio is calibrated around black-on-white contrast. Light-on-mid-gray pairs (white text on #777, gray text on white) often clear 4.5:1 only because the +0.05 floor in the formula stretches mid-tones. APCA's mid-tone exponents are more conservative for those cases.
Is my data sent anywhere?
No. Every WCAG ratio, APCA Lc, font lookup, and binary search runs in your browser. There are no network requests, no analytics on the calculation, and no telemetry on the colors you enter.

Related Tools