Skip to main content
Perceptual Contrast · WCAG 3 Candidate

APCA Contrast Checker

Measure perceived contrast the way human vision actually works — polarity-aware, font-size aware, and font-weight aware. Get your Lc value in real time.

APCA is polarity sensitive — swapping colors changes the result. Always recheck after a swap.

Your Font

16px
Lightness Contrast (Lc)
Dark text on light background

Share

Includes a FocusFlow tag — share with your team or post on social.

APCA Use-Case Levels

Lc 90 Preferred — body text
Lc 75 Minimum — body text
Lc 60 Minimum — fluent text
Lc 45 Minimum — large text
Lc 30 Minimum — any text
Lc 15 Invisibility point
16px · weight 400

The quick brown fox jumps over the lazy dog. Readability depends on more than color hue — perceived lightness contrast, font size, and font weight all work together.

Minimum Font Sizes at this Lc

Interpolated from the APCA font lookup table (reference: fluent readability).

Weight 300 Light 400 Regular 700 Bold
Min. size

Rough WCAG 2 Equivalents

Lc 90 ≈ AAA 7:1
Lc 75 ≈ AA 4.5:1
Lc 60 ≈ AA large 3:1
Lc 45 ≈ large UI text

Approximations only — APCA and WCAG 2 measure contrast differently and can disagree. Need a WCAG 2 AA/AAA verdict? Use our WCAG Color Contrast Checker.

Candidate method for WCAG 3

APCA is the candidate contrast method for WCAG 3, and is currently in public beta. WCAG 3 is still in development and subject to change prior to adoption — WCAG 2.x remains the standard to conform to today.

Learn more: Why APCA · WCAG 3 draft — visual contrast of text · Discussion forum

What Is APCA?

APCA — the Accessible Perceptual Contrast Algorithm — is a contrast assessment method designed to match how human vision actually perceives text on self-illuminated screens. Instead of a ratio like 4.5:1, it outputs an Lc (lightness contrast) value roughly between −108 and +106.

Three things make APCA different from the classic WCAG 2 ratio:

  • Polarity aware. Dark text on a light background (positive Lc) is scored differently from light text on dark (negative Lc) — because your eyes see them differently.
  • Spatially aware. Thin, small fonts need more contrast than large, bold ones. APCA pairs every Lc value with minimum font sizes per weight.
  • Perceptually uniform. Lc values scale with perceived contrast, so Lc 90 genuinely feels like “more contrast” than Lc 60 — something WCAG 2 ratios often get wrong, especially with dark colors.

APCA Lc Levels Explained

Use the absolute Lc value (ignore the +/− polarity sign) against these levels:

Lc level Use case Reference minimum (weight 400)
Lc 90 Preferred for fluent body text and long reading ≥ 14px
Lc 75 Minimum for body text columns ≥ 16px
Lc 60 Minimum for content text that is not body text ≥ 24px (or 16px bold)
Lc 45 Minimum for large text and headlines ≥ 42px (or 24px bold)
Lc 30 Absolute minimum — spot text only (placeholders, copyright lines) Not for content
Lc 15 Point of invisibility for many users — certain non-text elements only Not for text

Note: for body text below Lc 75, APCA guidance adds Lc 15 to the table minimums — i.e. 24px body text should target Lc 75, not Lc 60. Sub-fluent spot text may drop Lc 15–25 from table values, but never below Lc 30.

APCA vs WCAG 2 Contrast Ratio

WCAG 2.x APCA
Output Ratio (e.g. 4.5:1) Lc value (e.g. Lc 75)
Polarity Ignored — same result both ways Dark-on-light ≠ light-on-dark
Font size / weight Only “large text” carve-out Full size × weight lookup table
Status Current standard (AA / AAA) Candidate for WCAG 3 — public beta

The practical takeaway: use both. Check legal conformance with the WCAG contrast checker, then fine-tune readability with APCA — it will catch pairs that technically pass WCAG 2 but are genuinely hard to read, and rescue readable pairs WCAG 2 wrongly fails.

Frequently Asked Questions

What is APCA?

APCA (Accessible Perceptual Contrast Algorithm) is a perceptually accurate method for predicting the contrast of text on self-illuminated displays. It produces an Lc (lightness contrast) value that accounts for color polarity, font size, and font weight. It is the candidate contrast method for WCAG 3, currently in public beta.

What is a good Lc value?

For body text, aim for Lc 75 or higher, with Lc 90 preferred for long fluent reading. Lc 60 is the minimum for large content text such as headlines, Lc 45 for very large text only, and Lc 30 is the absolute minimum for any readable text. Lc 15 is considered the point of invisibility for many users.

How is APCA different from the WCAG 2 contrast ratio?

WCAG 2 uses a simple luminance ratio (such as 4.5:1) that treats dark-on-light and light-on-dark identically and ignores font size and weight. APCA is polarity aware and ties its guidance to the actual font size and weight in use, which matches human perception much more closely.

Is APCA an official accessibility standard?

Not yet. APCA is the candidate contrast method for WCAG 3, which is still a W3C working draft and subject to change. WCAG 2.x remains the current legal standard in most jurisdictions, so APCA should be used alongside — not instead of — WCAG 2 contrast checks.

Why can the same two colors pass in one direction and fail in the other?

Human vision perceives dark text on a light background differently from light text on a dark background. APCA models this with separate math for each polarity: dark text on light returns a positive Lc value, while light text on dark returns a negative Lc value. Swapping text and background colors always requires a fresh check.

Related Accessibility Tools

APCA is a method for predicting text contrast on self-illuminated displays for web-based content. Some use-cases are prohibited by license, including the following: use in medical, clinical evaluation, human safety related, aerospace, transportation, automotive, military applications, are strictly prohibited without a specific license in writing granting such use. Algorithm: APCA 0.0.98G-4g (W3), © 2019–2022 Andrew Somers / Myndex Research.