Skip to main content
7BBusyBoss

Color Contrast Checker — WCAG AA / AAA Ratio

Verify foreground and background contrast against WCAG standards. Shows the luminance-based ratio and pass/fail for AA and AAA normal and large text.

No limitsZero data leaksSuper fast

Color Contrast Checker

Contrast ratio
17.40 : 1
AAPass
Normal text · ≥4.5
AAPass
Large text · ≥3
AAAPass
Normal text · ≥7
AAAPass
Large text · ≥4.5
Live preview

Large heading sample

The quick brown fox jumps over the lazy dog. This is a normal-size paragraph showing how your body text reads on the chosen background.

#1A1A1Aon#FFFFFF

You're on 7BusyBoss — 300+ free tools that run instantly in your browser. No signup, nothing uploaded.

Browse all Color Tools
About this tool

The ratio and the four thresholds

Contrast runs from 1:1 for identical colours to 21:1 for black on white. Those are the absolute limits; nothing can be outside them.

  • AA, normal text — 4.5:1
  • AA, large text — 3:1
  • AAA, normal text — 7:1
  • AAA, large text — 4.5:1

Two things are varying there, and it is worth separating them. AA against AAA is how strict the level is — 4.5 versus 7 for the same text. Normal against large relaxes the requirement within a level, because a bigger glyph stays legible at lower contrast; that is why AA large text asks for 3 rather than 4.5, and it is a concession about size, not about rigour.

Contrast is luminance, not colour difference

This is the misunderstanding behind almost every surprising result. Contrast measures relative luminance, using fixed WCAG coefficients: 0.2126 for red, 0.7152 for green, 0.0722 for blue.

Look at how unequal those are. Green carries over seven times the weight of blue.

Yellow on white proves the point. Yellow is red plus green at full strength, and green is doing most of the luminance work, so saturated yellow is nearly as bright as white itself: 1.07:1. It is unmistakably a different colour and effectively invisible as text. The same weighting running the other way explains why a saturated blue reads far darker than its vividness suggests.

Once the coefficients are in mind, contrast results stop being mysterious and become predictable.

The practical grey scale

Grey removes hue from the question, so the thresholds show plainly. On white:

  • #9494943.03:1, clears large text only
  • #7676764.54:1, just passes AA for body text
  • #595959 — exactly 7.00:1, reaches AAA

The lesson is uncomfortable for a lot of design work: light grey on white is almost always a failure. Body text needs to be darker than most people expect, and anything lighter than that middle value is below the AA line unless the type is large.

What the ratio does not measure

  • Reading comfort. Maximum contrast is not maximum comfort — pure black on pure white at full brightness is fatiguing for long reading, and the ratio has nothing to say about that.
  • Colour blindness. Two colours can have excellent contrast and still be indistinguishable to someone who cannot separate red from green. Which is the real rule underneath: never let colour alone carry information.
  • Text over an image or gradient. The background differs per pixel, so a single ratio is meaningless.

For that last case the practical method is to sample the lightest and darkest points the text actually crosses rather than an average. If it fails at either extreme it fails in production, and averaging hides exactly the spot where it breaks.

Why it matters beyond compliance

Low contrast fails first on a phone in daylight, on a cheap screen, and for eyes that no longer focus as they did. That is a large share of any real audience rather than an edge case — which is why contrast is better treated as a usability property than a box to tick.

Everything runs in your browser. To build a set of colours that passes by construction rather than by testing afterwards, see the colour palette generator.

How to use the Color Contrast Checker

Takes about a minute. No signup, no download, your data stays in your browser.

  1. 1
    Open the tool. Scroll up to the Color Contrast Checker above — it loads instantly in your browser, no install needed.
  2. 2
    Enter your values. The fields come pre-filled with realistic defaults so you can see how it works — replace them with your own numbers.
  3. 3
    Read the result. The output updates instantly. Copy or share it — nothing is uploaded to a server, everything stays on your device.

Frequently asked questions

Common questions about the Color Contrast Checker.

Why does yellow on white fail when the colours look so different?

Because contrast measures luminance rather than colour difference. Yellow is red plus green at full strength, and the WCAG maths weights green at 0.7152 against blue at 0.0722, so saturated yellow is nearly as bright as white. The result is 1.07:1 — effectively invisible as text, despite the hue being obviously different.

How dark does grey need to be on white?

Darker than most people assume. On white, #949494 gives 3.03:1 and only clears the large-text bar, #767676 gives 4.54:1 and just passes AA for body text, and #595959 gives exactly 7.00:1 for AAA. Light grey body text on white is almost always below the line.

What is the difference between AA and AAA, and between normal and large?

Two separate things. AA against AAA is how strict the level is — 4.5 against 7 for normal text. Normal against large relaxes the figure within a level because bigger glyphs stay legible at lower contrast, which is why AA large text asks 3 rather than 4.5. One is about rigour, the other about type size.

Does passing contrast mean the design is colour-blind friendly?

No. Two colours can have excellent contrast and still be indistinguishable to someone who cannot separate red from green, because contrast only measures luminance. The rule that follows is to never let colour alone carry meaning — pair it with a label, an icon, or a shape.

How do I check text sitting on a photo?

Sample the lightest and the darkest points the text actually crosses, rather than an average. A single ratio is meaningless when the background changes per pixel, and averaging conceals precisely the spot where the text disappears. If it fails at either extreme it fails in the real product.

Is maximum contrast always best?

Not for comfort. Pure black on pure white at full brightness passes every threshold and is tiring over a long read, so the ratio is a floor rather than a target. Clear the threshold comfortably, then choose within the passing range for how the text actually feels to read.

Community rating

Discussion (0)

No comments yet. Start the discussion.