Addaly is in open beta. Things will change, and AI answers can be wrong — check anything that matters.

Design, Before Any Software

Hierarchy, type, colour and spacing — the part of design you can do with a pencil, before any software.

Lesson 38 of 749 min

Where the contrast standard is wrong, and what is unsettled

A standard worth following and worth understanding

The WCAG 2 contrast formula is the basis of accessibility law in a great many countries. You should meet it. You should also know its limits, because a designer who believes the number is the whole truth will ship text that conforms and is still hard to read — and will argue about it from a position that cannot be defended.

There are four known problems.

1. It cannot see the typeface

The formula takes two colours. It knows nothing about size, weight, letterform, or how much of the glyph is actually ink.

So a 12px Light face and a 17px Semibold face at identical colours produce an identical ratio, and one of them is comfortable while the other is not. The large-text carve-out at 24px or 18.66px bold is the standard's only acknowledgement of this, and it is a single crude step rather than a curve.

The practical response: treat 4.5:1 as the floor for body text at 16px regular, and require more headroom as the text gets smaller or lighter. A 12px caption at 4.5:1 is technically conformant and practically poor.

2. It treats light-on-dark and dark-on-light as equivalent

Black on white and white on black compute to the same 21:1. They do not look the same.

Light text on a dark background suffers from halation: the bright glyph appears to bleed outwards into the dark field, thickening the strokes and filling the counters. It is worse for readers with astigmatism, which is a substantial share of adults, and worse again on OLED screens where the pixels beside a lit glyph are genuinely off.

WCAG 2 has no term for polarity at all. Two identical ratios, two different reading experiences, and the standard cannot distinguish them.

3. It overrates very dark pairs

The 0.05 flare constant assumes a fixed amount of ambient light reflecting from the screen. That assumption dominates at the dark end.

Take #000000 against #333333. The computed ratio is about 3.7:1, which passes for large text. Look at it in a bright room and the two are nearly indistinguishable — the real flare in daylight is far higher than the constant assumes, and it swamps the difference. Dark-on-dark pairs consistently score better than they read.

4. It overrates very light pairs in the other direction

The same constant has the opposite effect near white: pairs of pale colours can be visually distinguishable while scoring poorly, which is why designers sometimes find the standard forbids a combination that works perfectly well in practice for non-text elements.

APCA, and why this is not resolved

The Accessible Perceptual Contrast Algorithm was developed to address exactly these failures. It is polarity-aware, it accounts for font size and weight, and it returns a lightness contrast value on a different scale rather than a ratio.

Here is the honest state of it, as of now:

  • It has been under consideration for WCAG 3, which is a working draft with no adoption date and which will not replace WCAG 2 quickly even after it is published.
  • Legal requirements in the EU, the UK, the US, India and elsewhere currently reference WCAG 2.0 or 2.1. Conformance means WCAG 2.
  • APCA's own thresholds have been revised during development, and tools implementing it have disagreed with each other at various points.
  • Some accessibility practitioners argue it is a clear improvement; others have raised concerns about complexity and about whether it is better for all users or only on average.

This is genuinely contested territory, being worked out in public by people who disagree in good faith. Anybody who tells you that WCAG 2 is simply wrong, or that APCA is simply the answer, is overstating a live disagreement.

What to actually do

  1. Meet WCAG 2 AA. It is the requirement, and it catches the great majority of real failures.
  2. Exceed it for small or light text. Headroom is free.
  3. Look at the result on a real device, including in bright light and in dark mode, and believe your eyes when they disagree with a passing number.
  4. For dark mode, do not assume a passing light-mode pair inverts. Recheck, and expect to need a slightly lighter font weight to compensate for halation.
  5. Use APCA as a second opinion, not as a conformance claim.
The number is a floor that can be enforced. It is not a ceiling and it is not a measurement of comfort. Both statements are true at once, and holding both is the difference between following a standard and understanding one.

The one thing to keep

The WCAG 2 contrast formula ignores size, weight and polarity and mis-scores very dark and very light pairs, so meet it as the enforceable floor while adding headroom for small or light text and checking dark mode separately — APCA addresses these gaps but is a draft, not a requirement.

Before you move on

A dark-mode theme inverts a light-mode pair that scored 8:1. The computed ratio is unchanged, but testers say the dark version looks blurry and the letters feel thicker. What is the most likely explanation?

Pick the one you would defend. Nobody sees your answer.

No ads. No data sale. No public scores on people. Ever.

© 2026 Addaly