Website review
This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.
What is Colour Contrast Checker?
Colour Contrast Checker is a browser-based tool for testing whether a foreground and background colour pair meets WCAG contrast requirements. Enter or adjust the two colours and it reports the contrast ratio alongside pass/fail results for AA and AAA at both large and normal text sizes. The example on the page uses #ffe66d on #222222, showing a 12.72 ratio that passes all four checks.
It suits designers, developers and content editors who need a quick accessibility sanity check on text colours, buttons, form labels or link styles before shipping. The page also includes a typeface selector and example copy sized for large text (18pt/24px) and normal text (16px), so you can preview how the combination reads rather than only reading a number.
What it does and does not cover
- It checks contrast between two colours against WCAG thresholds.
- It shows the hex value with a copy-to-clipboard option, plus RGB and HSL values.
- It offers a reverse-colours action and a save-colours option.
- It is about colour contrast, not a full accessibility audit. It does not assess keyboard navigation, alt text, focus states or semantic markup.
Practical next step
Pick the actual colour values from your design system, test the smallest text size you use, and treat AA as the baseline for body copy. If a pair fails, adjust lightness first: darkening the foreground or lightening the background usually moves the ratio faster than shifting hue.
For broader guidance on the underlying standard, see the W3C. If you are choosing palette colours from scratch, a contrast checker works best alongside a general colour tool such as Coolors.
How do I check if my text and background colours pass WCAG contrast requirements?
Use a contrast checker to compare the foreground text colour against the background colour, then read the pass/fail result for each WCAG level and text size. On Colour Contrast Checker, you enter or pick a background colour and a foreground colour, and the page reports results such as Pass AA Large, Pass AAA Large, Pass AA Normal and Pass AAA Normal, alongside the contrast ratio.
What the WCAG thresholds mean
| WCAG level | Normal text | Large text |
|---|---|---|
| AA | 4.5:1 | 3:1 |
| AAA | 7:1 | 4.5:1 |
"Large text" generally means around 18pt (24px) regular, or 14pt (about 18.66px) bold. The checker labels large text as 18pt/24px and normal text as 16px, which matches that split closely enough for practical checking.
How to check your own colours
- Get the exact hex codes for your text and background. Browser developer tools or a design file both work.
- Enter the background colour first, then the foreground colour. Order matters, because swapping them changes which is text and which is the surface.
- Read the ratio and the four pass/fail labels. A ratio like 12.72 passes every category, which is the comfortable zone for body copy.
- Test the real states, not just the default: link colours, hover and focus styles, placeholder text, disabled buttons, text over images or gradients, and dark-mode variants.
- If a combination fails, adjust lightness rather than hue first. Darkening a mid-tone text colour usually raises contrast with less visual disruption than switching to a different colour family.
A concrete scenario
Suppose your brand yellow is #ffe66d and your body text is #222222. That pairing gives a very high ratio and passes AA and AAA for both normal and large text, so it is safe for headings, buttons and long paragraphs. Now imagine the same yellow used behind a mid-grey caption. The ratio collapses, and the caption may only pass as large text, or fail entirely. The fix is to darken the caption text until it clears 4.5:1, or move the caption onto a white or near-black surface.
Trade-offs to keep in mind
- Meeting AAA everywhere can flatten a palette, because very light brand colours rarely support dark text at 7:1 without going almost black.
- A passing ratio does not guarantee readability. Thin font weights, small sizes, letter spacing and busy backgrounds all reduce legibility even when the numbers pass.
- Automated checks cover colour contrast only. They do not judge whether colour alone carries meaning, which is a separate accessibility requirement.
Next step
Pick your two most-used text-on-background pairs, check them, and note the ratios in your design tokens or style guide so future changes do not silently break them. For broader auditing, WebAIM publishes widely used contrast guidance, and W3C hosts the WCAG success criteria that define these thresholds.
What do the AA and AAA labels mean for large versus normal text?
The AA and AAA labels are WCAG conformance levels for text contrast. They are not two separate checks for "large" and "normal" text; each label applies to both, but the required contrast ratio is lower for large text. In the tool's example, the pairing #ffe66d on #222222 passes all four badges — AA Large, AAA Large, AA Normal and AAA Normal — because its ratio (shown as 12.72) exceeds every threshold.
The thresholds in practice
| Level | Normal text | Large text |
|---|---|---|
| AA | at least 4.5:1 | at least 3:1 |
| AAA | at least 7:1 | at least 4.5:1 |
"Large" in this context means roughly 18pt (24px) regular weight, or 14pt (about 18.66px) bold. The checker's own labels — "Large Text - 18pt/24px" and "Normal Text - 16px" — reflect that distinction, so the same colour pair can pass AA Large while failing AA Normal.
What this means for your choice
- AA is the level most accessibility policies and procurement requirements reference. Aim here as a baseline.
- AAA is stricter and can be hard to hit with brand colours, especially for body copy. It is a reasonable target for long-form reading text, but not always realistic for every UI element.
- Passing AAA Large does not mean the text is readable at body size; the large-text threshold is deliberately more lenient because bigger glyphs are easier to resolve.
A practical next step
Test your actual foreground and background hex values, not just your intended ones — hover states, disabled states and text over images often fail first. If a brand colour misses AA Normal, try darkening or lightening it a few steps rather than changing hue, then re-check. For a broader set of accessibility checks beyond contrast, W3C Web Accessibility Initiative publishes the underlying guidance, and WebAIM offers plain-language explanations of the same criteria.
Can I save or share the colour combinations I test?
Yes, but only in a limited way. Colour Contrast Checker includes a Save colours control alongside the foreground/background swatches and the Reverse colours button, and each colour value has its own Copy #ffe66d to clipboard action. That means you can preserve a tested pair either by saving it within the tool or by copying the hex codes out and pasting them into your design file, a style guide, or a message to a colleague.
What it does not appear to offer is a shareable link that reopens a specific combination, or an export of a full palette. So the practical workflow is:
- Save colours when you want the pair to persist in the tool for later reference.
- Copy the hex value for each swatch when you need the combination somewhere else — a Figma variable, a CSS custom property, a brand document.
- Reverse colours to check the same pair in the opposite direction, since contrast ratios are symmetric but your use case may not be.
For a concrete scenario: a designer finalising a marketing site tests #222222 body text on a #ffe66d callout background, sees it pass AA and AAA for both normal and large text, saves the pair, then copies both hex codes into the team's token file so developers apply the same values. The saved entry is a personal reference, not a shared artefact — the handoff happens through the copied codes.
If sharing with stakeholders is the priority, treat the tool as a verification step rather than a distribution channel: test here, then record the pair (with its pass/fail result and the text size it was checked at) in whatever document your team already uses. A short line such as "#222222 on #ffe66d — passes AA and AAA at 16px normal text" is more useful to a reviewer than a saved swatch they cannot open.
How do I choose a Google font to preview my text in the contrast checker?
Open the Typeface selector on Colour Contrast Checker, choose a Google font from that list, and the "Example copy" panel updates so you can judge the colour pair in that typeface rather than in a default font.
What the selector actually changes
- It swaps the font used for the preview text; it does not change your colour values, hex codes or RGB/HSL readouts.
- The contrast result (the pass/fail badges for AA/AAA Large and AA/AAA Normal) is calculated from the foreground and background colours, not from the typeface. Changing the font will not move the numbers.
- The size presets — "Large Text - 18pt/24px" and "Normal Text - 16px" — stay as they are, so you can compare the same string at two sizes in the chosen face.
How to choose a font for a realistic preview
Pick the face closest to what your site actually renders, because letterform weight and stroke thickness affect perceived legibility even when the ratio is identical:
| Your site's typography | What to select | Why |
|---|---|---|
| Body copy in a neutral sans (Roboto, Open Sans, Inter) | A similar regular-weight sans | Matches the stroke thickness your readers see at 16px |
| Headings in a light or thin weight | The same family at its lighter cut, if offered | Thin strokes look weaker at the same contrast ratio |
| Editorial or brand serif | A comparable serif | Serifs add fine detail that can blur at low contrast |
| Display or decorative face | The nearest available option | Useful as a rough sanity check, not a precise match |
A practical workflow
- Set your foreground and background colours first and note the ratio.
- Choose the font that matches your real body text, then read the "Example copy" line at Normal Text size.
- Switch to your heading font and check the same colours at Large Text size.
- If the body-text version looks strained while the heading version looks fine, treat the colour pair as a heading-only combination.
Decision criterion
Use the numeric pass/fail as the compliance check and the font preview as the comfort check. A pair that passes AA Normal but reads poorly in your chosen face is a signal to darken the foreground or lighten the background slightly, or to reserve that combination for larger text. If you want a second opinion in a different interface, WebAIM hosts a long-standing contrast checker you can cross-reference.
What should I do if my colours fail the contrast check?
If the checker reports a fail, treat it as a prompt to adjust either the text colour, the background, or both — not as a verdict that your design is unusable. The goal is to reach the WCAG thresholds for the text size you are actually using, then confirm the result still looks like your brand.
Colour Contrast Checker shows the practical levers: a ratio readout with separate Pass/Fail results for AA Large, AAA Large, AA Normal and AAA Normal, plus RGB/HSL values and a "Reverse colours" control. Those four separate verdicts matter because large text (roughly 18pt/24px, or 14pt bold) is held to a lower bar than body text.
Work through it in this order
- Check which threshold you missed. A combination that passes AA Large but fails AA Normal is fine for a headline and not fine for a paragraph. Decide what the text actually is before changing anything.
- Try reversing the colours first. If dark-on-light fails, light-on-dark may pass with the same two hues, which preserves your palette.
- Darken or lighten the text, not the background, when possible. Backgrounds usually carry more of the brand and are harder to shift without affecting the whole page.
- Adjust lightness in HSL rather than nudging RGB. A small change in the L value moves contrast predictably; random RGB tweaks often shift hue as a side effect.
- Re-check every state. Hover, focus, disabled, placeholder and link colours are separate combinations and each needs its own pass.
A worked example
Suppose you have a yellow background (#ffe66d) with near-black text (#222222). That pairing passes all four categories, so it is a safe template: if your brand yellow is lighter than this, darken the text toward black; if your text is a mid-grey, push it darker until AA Normal passes. If you cannot move either colour, the fallback is to keep the colour for large display type and use a compliant neutral for body copy.
When to change the design instead
- If reaching AA Normal destroys the colour you need for brand reasons, use that colour for large text, icons or decorative elements and set body copy in a compliant neutral.
- If the text sits on an image or gradient, test the lightest and darkest parts of the background, not an average.
- If a colour is fixed by a client or accessibility policy, change the type size and weight instead — larger, bolder text has a lower contrast requirement.
For background on the thresholds themselves, the W3C publishes the WCAG contrast guidance. If you are checking a whole interface rather than single pairs, a browser-based audit tool such as WebAIM can scan a live page and flag every failing element at once, which is faster than testing combinations by hand.
User reviews (0)