The ratio measures light. It does not measure readability.
The common read: The contrast ratio tracks how readable a pair is, so against a mid grey the two obvious text colours score about the same.
The number measures light, not reading. The formula divides the lighter colour's relative luminance plus 0.05 by the darker colour's plus 0.05, and relative luminance is the light a display emits. Dividing by a small number makes the ratio grow fast near black, so black and white text score equally only on a background with a luminance of about 0.18, between #757575 and #767676. #a3a3a3 has a luminance of 0.3663, well above that point, which is why black scored over three times higher than white on the previous screen.
Two properties follow from the definition itself, and both surprise people who have used the number for years. The ratio is symmetric: the specification takes the lighter colour as L1 and the darker as L2, so swapping the text and the background cannot change the result, and the formula has no input that says which of the two you are setting type in. And hue is deliberately absent. The Understanding document says so directly, and gives the reason.
The W3C also fixed the colour space and defined nothing beyond it. The luminance definition is written for sRGB, with a note advising authors to evaluate in sRGB unless they know another space is in play, and there is no normative treatment of display-p3, oklch or rec2020 anywhere in WCAG 2.2. Tailwind moved its whole default palette to oklch in January 2025. Two tools gamut-mapping that palette differently will report two different ratios for one token, and nothing in the specification says which is right.
For example, a developer reports "the contrast check is flaky, it passed locally and failed in CI"; the ticket is assigned to the audit tool, then to the CI cache, and is closed by pinning a version. The check was not flaky: the input was outside the space the formula is defined for.
Treat the number as what it is, a photometric comparison with a conformance threshold added on top: it will tell you when a pair is definitely too close, and it will not tell you that a pair is comfortable to read.

