Headings, hero copy, and call-to-action buttons are usually large text, and WCAG deliberately holds large text to a lower contrast bar than body copy. Many teams over-tighten their palette because they apply the 4.5:1 body-text rule to everything. This checker applies the correct relaxed thresholds so you can use a lighter brand colour on a heading without failing accessibility.
How it works
The tool computes the WCAG contrast ratio between two colours and then chooses thresholds based on whether the text qualifies as large:
- Each colour is converted to relative luminance using the linearised sRGB formula
0.2126*R + 0.7152*G + 0.0722*B. - The contrast ratio is
(Llighter + 0.05) / (Ldarker + 0.05). - Text qualifies as large when it is at least 24px regular, or at least 18.66px bold (14pt at 700 weight).
- For large text, AA requires
3:1and AAA requires4.5:1. For normal text the stricter4.5:1and7:1apply.
The live preview renders your actual colours at the size and weight you entered, so you can confirm the numeric verdict visually.
Example and notes
- A muted slate
#5b6472on white is4.43:1— that fails AA for body text but passes AA for a 24px heading. - The 14pt-bold exemption is easy to miss:
14pt boldis large, but14pt regularis not. Always tick the Bold box only when the real weight is 700+. - Point-to-pixel conversion assumes the common 96 DPI /
1pt = 1.333pxbaseline (18pt ≈ 24px, 14pt ≈ 18.66px). If your design uses a different root size, judge by the rendered pixel size. - Meeting large-text contrast covers the contrast criterion only — it does not exempt you from minimum touch-target size, focus indicators, or other WCAG success criteria.