APCA: The New Contrast Standard
On this page
- What you'll learn
- What APCA is
- How Lc works
- Why Lc can be positive or negative
- Why APCA beats WCAG 2 for dark mode
- The Lc thresholds
- How to read APCA in a contrast grid
- APCA contrast versus WCAG 2 at a glance
- When to reach for APCA
- Frequently asked questions
- What is APCA contrast?
- What does Lc mean in APCA?
- Why is APCA better than WCAG 2 for dark mode?
- What Lc value do I need for body text?
- Is APCA an official standard yet?
- How do I read APCA in a contrast grid?
If you have hit a wall where WCAG 2 passes a pairing that still looks hard to read, APCA contrast is the answer you have been looking for. APCA is a newer way to measure contrast that matches human vision far more closely, and it is especially better at handling dark mode, where the old formula often gets things wrong.
This post is for designers and developers who already know the WCAG basics and want to understand the next standard. I will explain what APCA is, how its Lc value works, why it beats WCAG 2 for dark interfaces, the Lc thresholds to aim for, and how to read APCA inside a contrast grid. By the end you will know when to trust which model.
What you'll learn
- What APCA is and where it came from
- How the Lc value works and why it can be negative
- Why APCA handles dark mode better than WCAG 2
- The Lc thresholds for body and large text
- How to read APCA scores in a contrast grid
What APCA is
APCA stands for the Accessible Perceptual Contrast Algorithm. It is a modern method for measuring the readability of text against a background, built to replace the aging WCAG 2 contrast math in future versions of the standard.
The key word is perceptual. APCA models how human eyes actually perceive lightness and text, rather than using a simple luminance ratio. It was developed as part of the work toward WCAG 3, and you can read the source on the APCA reference repository.
In short, APCA tries to answer a better question. Instead of asking how different are these two brightness numbers, it asks how readable is this text for a real person. That shift produces scores that track reading comfort much more closely.
How Lc works
APCA reports its result as a value called Lc, short for Lightness contrast. Where WCAG gives a ratio like 4.5:1, APCA gives a number that runs roughly from negative 108 to positive 106. The magnitude is what matters for readability.
A higher absolute Lc means more contrast and easier reading. An Lc near zero means the text is nearly invisible. So an Lc of 90 is strong, an Lc of 60 is moderate, and an Lc of 15 is far too low for any text.
Why Lc can be positive or negative
This is the clever part. The sign of Lc tells you the polarity, which is the direction of the contrast. A positive Lc means dark text on a light background. A negative Lc means light text on a dark background.
This matters because human eyes do not read both directions the same way. Light text on a dark background needs different contrast than dark text on light to feel equally legible. WCAG 2 ignores this entirely, while APCA builds it in.
Why APCA beats WCAG 2 for dark mode
Dark mode is where WCAG 2 shows its age most. The old formula treats contrast as a symmetric ratio, so it assumes light-on-dark and dark-on-light behave identically. They do not.
In practice, light text on a dark background can look thinner and harder to read than the same ratio in light mode. WCAG 2 can give a dark-mode pairing a passing ratio that still strains the eyes. It can also be overly strict on some dark pairings that actually read fine.
Because APCA models perceived lightness and respects polarity, it catches these dark-mode traps. A pairing that scores well in APCA is genuinely readable in dark mode, not just mathematically passing. If you ship dark themes, APCA is the model that protects you. Our dark mode color palette guide leans on it heavily.
The Lc thresholds
APCA does not use one universal number, because readability depends on text size and weight. Larger, heavier text needs less contrast, so its threshold is lower. As a practical rule of thumb, use these absolute Lc targets.
| Text use | Minimum absolute Lc |
|---|---|
| Body text, normal weight | Lc 75 or more |
| Large or bold text | Lc 60 or more |
| Large headlines and display | Lc 45 to 60 |
| Non-text, like borders | Lc 45 or more |
Remember these are absolute values, so an Lc of negative 78 in dark mode clears the body threshold just as positive 78 would in light mode. The full APCA guidance has detailed lookup tables tied to exact font sizes, but Lc 75 for body and Lc 60 for large covers most decisions.
Treat these as minimums, not goals. Aiming a little above the line gives you comfortable headroom, especially for long-form reading. The thresholds are intentionally tuned to perceived readability, which is why they feel different from WCAG ratios.
How to read APCA in a contrast grid
A contrast grid tests every color in a palette against every other color at once. When the grid shows APCA, each cell holds an Lc value instead of a WCAG ratio. Reading it well takes a small shift in habit.
First, look at the magnitude. Cells with high absolute Lc, like 80 or 90, are strong pairings. Cells near zero are unusable. Second, note the sign, which tells you the polarity of that pairing without you having to think about which color sits on top.
| 50 | 300 | 500 | 900 | |
| 50 | 0 | -22 | -68 | -98 |
| 500 | +72 | +38 | 0 | -40 |
| 900 | +98 | +74 | +40 | 0 |
In Zepixo Colors, the 11 by 11 grid toggles between WCAG ratio and APCA Lc with one click. You can scan the same palette under both models and design with confidence. Seeing the sign flip as you cross the lightness midpoint is a quick way to spot polarity.
Want to see APCA on your own palette? Open the Zepixo Colors workspace and toggle the contrast grid to APCA Lc to read every pairing at once.
APCA contrast versus WCAG 2 at a glance
Both models are useful today, and they answer slightly different questions. WCAG 2 is the current legal baseline, while APCA is the more accurate model coming next. Here is how they compare.
| Aspect | WCAG 2 | APCA |
|---|---|---|
| Output | Ratio, 1:1 to 21:1 | Lc, about -108 to +106 |
| Perceptual lightness | Approximate | Modeled |
| Polarity aware | No | Yes |
| Dark mode accuracy | Weaker | Stronger |
| Legal baseline today | Yes | Not yet |
The smart workflow is to pass WCAG 2 for compliance and use APCA to sanity-check readability, especially in dark themes. They are not rivals so much as a present standard and a future one. For the WCAG side, see our WCAG color contrast explained guide.
When to reach for APCA
If you only need to satisfy a legal or contractual requirement, WCAG 2 AA is still what most audits check. APCA earns its place the moment readability and polish matter, which for serious products is most of the time.
Reach for APCA when you build dark mode, when you fine-tune text on colored surfaces, or when a WCAG pass still looks off to your eye. It tends to confirm your instinct that a pairing is weak even when the old ratio says it is fine. The accessibility docs show how Zepixo surfaces both so you never have to choose blind.
Frequently asked questions
What is APCA contrast?
APCA is the Accessible Perceptual Contrast Algorithm, a modern method for measuring text readability against a background. It models how human eyes perceive lightness and respects polarity. It is being developed to replace the WCAG 2 contrast formula in future standards.
What does Lc mean in APCA?
Lc stands for Lightness contrast, the value APCA reports. It runs roughly from negative 108 to positive 106, and a higher absolute value means more readable text. The sign indicates polarity, with positive for dark text on light and negative for light text on dark.
Why is APCA better than WCAG 2 for dark mode?
WCAG 2 treats contrast as a symmetric ratio and ignores polarity, so it can pass dark-mode text that still reads poorly. APCA models perceived lightness and accounts for light-on-dark differently from dark-on-light. That makes its dark-mode verdicts much more reliable.
What Lc value do I need for body text?
As a practical rule, aim for an absolute Lc of 75 or more for normal body text. Large or bold text can pass at Lc 60 or more. These are minimums, so leaving headroom above them improves comfort.
Is APCA an official standard yet?
Not as a required baseline. APCA is part of the research toward WCAG 3 and is not yet the legal standard. The practical approach is to meet WCAG 2 for compliance today and use APCA to improve real readability.
How do I read APCA in a contrast grid?
Look at the absolute value of each Lc cell first, since higher means more readable. Then read the sign to know the polarity of that pairing. In the Zepixo grid you toggle between WCAG ratio and APCA Lc with one click.
APCA is the model that finally matches what your eyes tell you, dark mode included. Try toggling your palette to Lc once and you will see weak spots the old ratio missed.
Shaheer Malik
Founder of Zepixo — building the whole brand studio in one tab. Try Zepixo →