WCAG 2.2 Color Contrast Checker

Check any text and background pair against WCAG 2.2 — 1.4.3 (AA), 1.4.6 (AAA) and 1.4.11 non-text contrast — with the exact ratio, never rounded up into a pass. Get the nearest passing colour that keeps your hue, and see the pair through four types of colour blindness.

100% free · No sign-up · No watermarks

Colours

Hex, rgb() or hsl(). Alpha is composited.

Preview

Large heading text

Normal body text at 14 px. The quick brown fox jumps over the lazy dog.

Outlined buttonA text link

Colour-blindness preview

Simulated with Machado et al. (2009), full severity.

  • AaProtanopia (no red cones)5.17:1
  • AaDeuteranopia (no green cones)6.26:1
  • AaTritanopia (no blue cones)5.04:1
  • AaAchromatopsia (no colour)6.00:1

Contrast ratio

5.98:1

WCAG 2.2 contrast verdicts
CheckCriterionNeedsResult
Normal text1.4.3 AA4.5:1Pass
Large text1.4.3 AA3:1Pass
UI components & graphics1.4.11 AA3:1Pass
Normal text1.4.6 AAA7:1Fail
Large text1.4.6 AAA4.5:1Pass

Nearest passing colours

Same hue, lightness adjusted in OKLCH.

AA — 4.5:1

Already passes.

AAA — 7:1

Change text

#0053c0 · 7.00:1

Change background: no colour with this hue reaches the target.

Large text means at least 24 CSS px, or 18.66 CSS px bold. Ratios are truncated, never rounded, so 4.49:1 is shown as failing 4.5:1.

What contrast ratio does WCAG 2.2 require?

WCAG 2.2 level AA requires a contrast ratio of at least 4.5:1 for normal text and 3:1 for large text and UI components. Level AAA raises those to 7:1 for normal text and 4.5:1 for large text. Large text means at least 24 CSS px regular or 18.66 CSS px bold.

  • Normal text, AA (1.4.3): 4.5:1
  • Large text, AA (1.4.3): 3:1
  • UI components and graphics, AA (1.4.11): 3:1
  • Normal text, AAA (1.4.6): 7:1
  • Large text, AAA (1.4.6): 4.5:1

How to use the WCAG Contrast Checker

  1. Enter the text colour and the background colour as hex, RGB or HSL.
  2. Read the exact ratio and the AA and AAA verdicts for each text size.
  3. If it fails, take the suggested colour, which keeps your hue and changes only lightness.

Why use the WCAG Contrast Checker

Private by design

No account needed. What you type stays in your browser unless you ask for an AI suggestion or name a URL to fetch.

Exact WCAG 2.2 thresholds

Each check uses the success criterion's own numbers, such as 4.5:1, 24×24 CSS px or a 2 px perimeter, with no rounding up into a pass.

Named criteria

Verdicts cite the success criterion they test, so a result can go straight into an audit report.

Frequently asked questions

What contrast ratio does WCAG 2.2 require?

For level AA, 4.5:1 for normal text and 3:1 for large text (1.4.3), and 3:1 for UI component boundaries, states and meaningful graphics (1.4.11). Level AAA raises text to 7:1 and large text to 4.5:1 (1.4.6). The thresholds did not change from WCAG 2.1 — what 2.2 added are new criteria such as focus appearance and target size, which have their own tools here. For common colour pairs, see the contrast reports.

What counts as large text?

At least 18 point (24 CSS px) regular, or 14 point (about 18.66 CSS px) bold. Below that, the 4.5:1 normal-text threshold applies, however heavy the font looks.

Why does 4.49:1 fail when other checkers say 4.5?

WCAG thresholds are exact: a ratio of 4.499:1 does not meet 4.5:1. Some tools round to one decimal and show it as a pass. This checker truncates instead, so a pair it shows as passing really does pass.

How does it handle transparent colours?

A translucent foreground is flattened onto its background first, because that blended colour is what reaches the eye and what WCAG measures. A translucent background is flattened onto white, the browser default.

How are the suggested colours chosen?

The suggestion keeps your colour's hue and chroma in the OKLCH colour space and changes only lightness, searching both darker and lighter, then returns whichever passing colour moved least. Your brand blue stays recognisably blue rather than becoming a generic navy.

Does passing contrast mean colour-blind users can read it?

Contrast is about lightness difference, which colour-vision deficiencies mostly preserve, so a passing pair is usually still legible. Where colour alone carries meaning — red for errors, green for success — you also need 1.4.1 Use of Color. The colour-blindness previews show what those users actually see.

Updated · Built by Niraj Kumar