Color Accessibility Checker

Drop in foreground and background hex values, read the contrast ratio, WCAG pass rows, color vision previews, and a suggested fix when the pair fails.

Sample text
21:1
21:1AAA

Good for body text and UI.

Color vision
Try a pair

Brand palettes ship with a hero blue, a muted gray for captions, a green for success states. Each pair looks fine on a slide. On a phone in sunlight, half of them fail WCAG before anyone opens a ticket.

Color accessibility starts with luminance, not taste. This page measures the gap between two hex values, maps the result to AA and AAA rows, then shows how eight color vision types read the same pair.

Limitation

Vision previews on this page use simplified matrix approximations, not clinical simulation. A pair passing here still needs a label, icon, or pattern when red versus green carries meaning. Contrast alone never replaces redundant cues.

What the ratio number means

WCAG contrast is relative luminance between foreground and background. The formula compares the lighter value to the darker one, adds a small offset, and returns a ratio like 4.5:1 or 7:1. Higher is sharper. Lower washes out.

LevelNormal textLarge textUI components
AA4.5:1 minimum3:1 minimum3:1 against adjacent colors
AAA7:1 minimum4.5:1 minimumSame 3:1 for graphics

Large text means 18px regular or 14px bold and up. Logos and inactive controls follow different rules. This checker focuses on body copy, headings, and button labels where failures show up most often.

Why the vision strip sits beside WCAG

Contrast ratio does not ask whether two hues look identical to someone with protanopia. A green success badge beside a red error badge might clear 4.5:1 against white while remaining indistinguishable for roughly 8% of men.

Protanopia / Deuteranopia
Red-green confusion. Status colors need shape or wording, not hue alone.
Tritanopia
Blue-yellow confusion. Cool accent on a warm background deserves a second check.
Achromatopsia
Full grayscale. Only luminance remains, so ratio and simulation should agree.
Anomaly types
Milder shifts than full blindness. The strip shows partial loss, not diagnosis.

Not the same page as the contrast checker

The Contrast Checker loads preset chips and renders normal versus large text samples side by side. Good for a quick pass on a marketing hero.

This page keeps color vision previews, alternative pair chips, CSS variable export, and a plain-text report in one panel. Pick the checker when you only need ratio plus AA/AAA. Stay here when the handoff includes simulation and export for a design review.

When AA is enough

Public sector sites in the EU often cite EN 301 549, which references WCAG 2.1 Level AA. Most product teams ship AA for body text and treat AAA as a stretch goal for long-form reading blocks.

Fixing a failing pair without starting over

The suggestions panel appears when the ratio drops below a threshold. Darken text on light backgrounds. Lighten text on dark backgrounds. The alternative chips rank six preset pairs from a neutral gray set so you see workable ratios without opening a spreadsheet.

Need to nudge one side while keeping brand hue? Run the failing hex through Darken Color or Lighten Color, paste the result back here, and re-check. Building a full palette first? Generate candidates in the Palette Generator, then validate each text/background slot on this page before handoff.

What the Report button exports

Report downloads a .txt summary: ratio, grade, hex pair, and four WCAG booleans. Not a PDF audit certificate. Not a legal attestation. Enough for a Slack thread or a Jira comment when a designer asks for proof before merge.

For deeper simulation with severity sliders and shareable URLs, open the Color Blindness Simulator. For a second opinion on ratio math alone, the Contrast Analyzer runs the same luminance formula with a different layout.

Reviewed August 2026. All math runs client-side. Hex values never leave your browser tab.

Questions about WCAG contrast on this page

Answers tied to what the checker measures, not generic accessibility theory.

Does a passing ratio guarantee an accessible page?

No. Ratio covers luminance between two flat colors. Gradients, text over photos, focus rings, and icon-only buttons need separate checks. Vision previews here are approximations, not medical tests.

Why do I see AA Large instead of a simple pass or fail?

Ratios between 3:1 and 4.5:1 meet WCAG for large or bold text only. The grade label reflects that middle band so you do not treat a 3.2:1 pair as safe for 14px body copy.

How are the alternative color chips chosen?

The tool tests six neutral foreground and background hex values against each other, keeps pairs at or above 3:1, sorts by ratio, and shows the top six. They are starting points, not brand-matched suggestions.

What is the difference between the vision cells and the main preview?

The main preview shows your exact hex pair. Each vision cell applies a simplified transform to both colors so you see whether the pair collapses toward similar luminance under protanopia, deuteranopia, tritanopia, or grayscale.

Does the CSS export include fallbacks?

The download writes two custom properties for foreground and background. No font stack, no focus styles, no dark-mode media query. Paste into your own stylesheet and extend from there.

Are my colors sent to a server?

No. Hex input, ratio math, simulation, and file export all run in the browser. Refreshing the page resets to the default black-on-white pair.

Copied.