WCAG Contrast Checker

Check text and background color contrast ratio against WCAG 2.1 accessibility standards. Ensure your typography is readable for all users.

Contrast Ratio

:1

AA Normal Text (4.5:1)
AA Large Text (3:1)
AAA Normal Text (7:1)
AAA Large Text (4.5:1)

Live Preview

Large Text Preview (24px+ bold)

Large Text Preview (18.66px+ bold)

Normal body text at 16px. The quick brown fox jumps over the lazy dog. Pack my box with five dozen liquor jugs.

Small text at 14px. This size is commonly used for secondary content, captions, and metadata.

Fine print at 12px. Legal text, footnotes, and disclaimers often use this size.

How It Works

Contrast ratio is calculated using the WCAG 2.1 relative luminance formula:

L = 0.2126 * R + 0.7152 * G + 0.0722 * B
where R, G, B are linearized sRGB values:
  if sRGB <= 0.04045: linear = sRGB / 12.92
  else:            linear = ((sRGB + 0.055) / 1.055) ^ 2.4

Contrast Ratio = (L1 + 0.05) / (L2 + 0.05)
  where L1 = lighter, L2 = darker

Frequently Asked Questions

The WCAG contrast ratio is defined in the Web Content Accessibility Guidelines 2.1, Success Criterion 1.4.3. It is calculated as (L1 + 0.05) / (L2 + 0.05), where L1 is the relative luminance of the lighter colour and L2 is the relative luminance of the darker colour. Relative luminance is a linearised measure of perceived brightness, calculated from the sRGB values of a colour using gamma correction. The ratio ranges from 1:1 (no contrast, same colour) to 21:1 (black on white, maximum contrast).
WCAG 2.1 Level AA—the standard required by most accessibility laws including the EU Web Accessibility Directive and the US Section 508—requires a contrast ratio of at least 4.5:1 for normal text (below 18 pt or 14 pt bold) and 3:1 for large text (18 pt or larger, or 14 pt bold). Level AAA, a higher voluntary standard, requires 7:1 for normal text and 4.5:1 for large text. The upcoming WCAG 3.0 introduces a new metric called APCA (Advanced Perceptual Contrast Algorithm) that accounts for font weight and size more precisely, though it has not yet been adopted in law.
Yes. Placeholder text in HTML <input> elements must meet the same contrast requirement as regular text under WCAG 2.1 SC 1.4.3. Browsers typically render placeholder text at a reduced opacity (around 40–50 % of the normal colour), which commonly causes placeholder text to fail the 4.5:1 threshold. The correct fix is to set an explicit colour on the ::placeholder pseudo-element—never relying on the browser default—with sufficient contrast against the input's background.
WCAG 2.1 SC 1.4.11 (Non-text Contrast) requires that UI components—including form borders, focus indicators, and icons—meet a 3:1 contrast ratio against adjacent colours. This is a separate criterion from text contrast. An icon button with no text label must have sufficient contrast between the icon itself and its background. Focus indicators introduced in WCAG 2.1 SC 1.4.11 and strengthened in WCAG 2.2 SC 2.4.11 (Focus Appearance) must now have a contrast ratio of at least 3:1 against the unfocused state.
Yes, and both colour schemes must be independently validated. A combination that passes in light mode may fail in dark mode if the dark background changes the contrast ratio. Designers using the CSS prefers-color-scheme media query should test every colour token pair in both schemes. Brand colours with low saturation (near-neutral greys and pastels) are particularly prone to failing in one mode even when they pass in the other, because the luminance of the background shifts significantly between modes.

Related Typography Terms

Learn More