I find muted text easy to overlook. It sits quietly under a heading or beside a date, doing exactly what I wanted visually. Then the contrast checker passes it, and there seems to be nothing left to question.
Here are two versions of the same text. The light sample uses a mid grey on an off-white background. The dark sample uses a lighter grey on a warm near-black. I'm using a separate palette here, not this site's colors, so we can look at the decision on its own.
Apr 16, 2026
Read this
#74706cWCAG 4.56:1 passAPCA Lc 69 meets 60Apr 16, 2026
Read this
#a5a19cWCAG 7.08:1 passAPCA Lc 51 under 60The dark pair gets the higher WCAG ratio: 7.08:1 against 4.56:1. APCA ranks their contrast the other way round: about Lc 51 in dark and Lc 69 in light.
WCAG 2 ratio
- Dark 7.08:1
- Light 4.56:1
APCA Lc
- Light 69
- Dark 51
That doesn't prove which sample every reader finds easier. It does show that the two measurements are not interchangeable.
What the numbers describe
WCAG 2 calculates a ratio from the colors' relative luminance. Swapping foreground and background leaves that ratio unchanged. Its AA text criterion sets a minimum of 4.5:1 for normal text and 3:1 for large text.
APCA models lightness contrast differently for light text on dark and dark text on light. Its signed Lc value keeps that direction: negative means light text on dark. Use the size of the number when you consult its typography guidance. The charts here show it without the sign.
I would keep the WCAG check and use APCA as another input. An APCA result is not a substitute for WCAG 2 conformance, and neither calculation is a reading test with users.
A palette needs roles
Here is a five-step grey ramp on the same near-black background. Each step increases contrast. The useful question is where to use each step.
WCAG 2 ratio on #181512, out of 21
APCA Lc on #181512, out of 106
#181512, from the hex codes. WCAG ratios and APCA Lc values use different scales, so neither is a percentage of the other. Filled bars reach the line.The second step already passes the WCAG normal-text minimum at 5.17:1, while its APCA Lc is about 38. The lightest step reaches 12.24:1 and Lc 79.
I would start with the lighter end for sustained reading. Before assigning a middle step to a label, I would check the actual font size, weight, and the APCA font guidance. "Secondary" describes its place in the hierarchy. It doesn't tell us how much effort reading it should take.
For the dark sample, one step lighter is enough. #a5a19c becomes #bbb7b2, and APCA moves from Lc 51 to 63.
Apr 16, 2026
Read this
#a5a19cWCAG 7.08:1 passAPCA Lc 51 under 60Apr 16, 2026
Read this
#bbb7b2WCAG 9.12:1 passAPCA Lc 63 meets 60Keep the color. Change the type.
The samples below use exactly the same foreground and background. The color scores do not change. The typography does.
Your next payment is due on Friday.
Your next payment is due on Friday.
Your next payment is due on Friday.
#bbb7b2 on #181512 throughout: WCAG 9.12:1, APCA Lc 63. The lines are 13px regular, 18px regular and 24px bold.This is why I wouldn't turn Lc 60 into a blanket rule for labels. APCA's simplified guidance ties that level to at least 24px regular or 16px bold reference text. A small, regular label needs a closer look.
Check the next state too
A color can survive the default-state check and change on hover. Fading #d8d3cf to 80% opacity over #181512 produces #b2ada9 after compositing and rounding to 8-bit sRGB.
Apr 16, 2026
Read this
#d8d3cfWCAG 12.24:1 passAPCA Lc 79 meets 60Apr 16, 2026
Read this
#b2ada9WCAG 8.18:1 passAPCA Lc 57 under 60Its WCAG ratio falls from 12.24:1 to 8.18:1. Its APCA Lc falls from about 79 to 57.
Both WCAG ratios still pass for normal text. But the hover has spent about a third of the contrast without changing the label's size or weight. I would try an underline before making a useful link fainter.
I'd keep the darker greys away from small text people need to read. I'd try the lighter steps at the actual reading size, then check links again in their hover and focus states. That takes longer than checking two hex values. It also answers more of the questions I care about.