Take a yellow and a blue that both declare the same lightness, 50%. Put them side by side. The yellow burns, the blue is almost black.

This is not an optical illusion. Their actual lightness is 0.93 and 0.07, a factor of thirteen, for two values the code declares identical. For twenty years I built palettes on that lie, and I corrected it by eye without ever asking myself why it needed correcting.

What OKLCH changes

In that notation, the declared lightness is the perceived lightness. Two colours at the same value look equally light, whatever their hue.

It sounds like a comfort detail. It is the property that makes everything else computable. A contrast ratio becomes readable directly in the code, without opening a tool: I look at two values and I know whether my text passes. That is the difference between a colour you try and a colour you decide.

One value declared at the same level, two actual lightnesses at the two ends of the axis Two parallel horizontal axes, at the same scale. On the top one, a single square marker sitting in the middle carries the label the yellow and the blue at 50%, because the code gives them the same value. Two dotted lines run down from that marker towards the lower axis, spreading apart: they reach two markers far away from each other, the first near the left edge at 0.07, the second near the right edge at 0.93. Under the lower axis, an accented measuring line joins the two markers and carries the label a factor of thirteen. WHAT THE CODE DECLARES the yellow and the blue at 50% THEIR ACTUAL LIGHTNESS 0.07 0.93 a factor of thirteen
One declared value, and two positions that nothing brings closer on the lightness axis.

The brown I had not seen coming

My dark theme carried a hint of warmth, barely measurable. On a small surface, invisible.

On the background of a whole page, it read as a frank brown. Two reasons, and OKLCH names both: the hue fell squarely in the orange, and at low lightness the eye judges colour far more easily than in full light. The light theme and the dark theme carried the same intent of a warm neutral. Only the dark one shouted it.

Turning the hue towards slate blue was enough. In the old notation I would not have found the culprit, because the number at fault does not exist there: it mixes the purity of a colour and its lightness into a single value, and so says neither.

Accessibility stops being a check

That is the real contribution, and it is a contribution of method. When lightness means something, the legibility threshold becomes a property of the construction, not a check you run at the end hoping it holds.

You still have to aim it at the right place. I had set my contrast against the page background, properly, with measurements to back it. Except that text does not only sit on the page background: it also sits on cards and alternating bands. My text held 4.9:1 on the background and 3.8:1 on the cards, below the threshold, and nothing had flagged it.

The same text on two backgrounds, on either side of the threshold Two rows. Each begins with a square block standing for a background, the page background as a light wash then the cards as a denser one, and continues as a horizontal bar whose length is the measured contrast ratio. The top bar, the background one, carries 4.9:1 and runs past the dotted vertical line that crosses the whole figure. The bottom bar, the cards one, carries 3.8:1, is marked with an accent wash and stops short of that line. At the bottom, two labels on either side of the line: does not pass on the left, passes on the right. THE SAME TEXT, TWO BACKGROUNDS the threshold background 4.9:1 cards 3.8:1 does not pass passes
Measured against the background the text passed; against the cards, the same declaration falls on the wrong side.

The lesson is not in the notation, it is in the use: you measure against the worst background the text meets, never against the main one.

What I take from it

OKLCH is often presented as a wider colour space. That is true, and it is secondary.

What counts is that a colour there finally declares its lightness without lying. Regular ramps, themes that switch without needing realignment, contrasts guaranteed rather than observed: all of it follows from that single piece of honesty.