Font weight
Why "bold" matters at all. Contrast rules are stricter for small text than for big text. Text only gets the relaxed rule (3:1 instead of 4.5:1) if it is big enough, or medium-sized and genuinely bold — bold strokes are thicker, so they stay readable at a smaller size.
What the Detector treats as bold. Font weight is a number from 100 (thinnest) to 900 (heaviest). Regular text is 400. The Detector counts text as bold only at 700 or higher — that's real bold, the same thing you get from the B button in a text editor.
Why medium (500) doesn't count. A medium weight sits between regular and bold. Its strokes are barely thicker than normal text, so it isn't easier to read — it's much closer to regular text than to bold. The same applies to semibold (600): heavier than regular, but still not bold.
What that means in practice. Medium and semibold text are checked against the normal-text rule (4.5:1), exactly like regular text. Only 700+ gets the relaxed 3:1 rule, and only when the text is also at least 14pt (about 18.7px).
Quick reference:
| Weight | Name | Treated as bold? | Rule applied |
|---|---|---|---|
| 400 | regular / normal | No | 4.5:1 |
| 500 | medium | No | 4.5:1 |
| 600 | semibold | No | 4.5:1 |
| 700 | bold | Yes | 3:1 if also ≥ 14pt |
| 800 / 900 | extra-bold / black | Yes | 3:1 if also ≥ 14pt |
One thing that can look inconsistent, but isn't. A finding may describe the text as "600 (semibold)" while still applying the 4.5:1 rule. That is correct: the description tells you the exact weight the page uses, and the rule follows the 700 cutoff. The wording and the verdict are two separate things.
This isn't our choice. The 700 cutoff comes from WCAG itself, which defines large text as 18pt, or 14pt bold. Every mainstream checker (axe, Lighthouse) draws the line in the same place, so results stay comparable.
Related
How the size itself is measured, and why the guidelines are written in points while the Detector reads pixels, is covered in How the Detector measures text size.
