Accessibility compliance often gets treated as a checkbox โ€” something legal requires and developers resent. But color contrast is one of the rare cases where accessibility and good design overlap almost perfectly. Content that's easy to read for users with visual impairments is also easier to read for everyone, on every device, in every lighting condition. Getting contrast right isn't a concession to compliance; it's just good craft.

Why this matters beyond compliance

Color vision deficiency affects roughly 1 in 12 men and 1 in 200 women โ€” about 300 million people worldwide. The most common form, red-green color blindness, doesn't eliminate color perception but significantly reduces the ability to distinguish certain hues. When designs rely on color alone to communicate meaning, or use low-contrast combinations that depend on subtle hue differences, a meaningful portion of your audience is simply excluded.

Beyond color vision deficiency, poor contrast affects everyone in specific situations: reading outdoors in direct sunlight, using an older or lower-quality display, viewing a screen with glare, or accessing your site on a phone with the brightness turned down. High contrast isn't a niche accommodation โ€” it's a signal that your design works under real-world conditions.

For organizations building public-facing digital products, WCAG compliance is also increasingly a legal requirement. The EU's European Accessibility Act came into full effect in 2025, and ADA lawsuits in the US regularly cite contrast failures as evidence of inaccessible design.

What is contrast ratio?

Contrast ratio is a number that measures the difference in luminance between two colors โ€” typically text and its background. The scale runs from 1:1 (both colors are identical, zero contrast) to 21:1 (pure black on pure white, maximum contrast).

The ratio is calculated from the relative luminance of each color โ€” a measure of perceived brightness that accounts for the fact that the human eye is more sensitive to green than red or blue. The formula is standardized by the W3C, which means any compliant tool will give you the same number for the same two colors.

You don't need to calculate this manually. Any contrast checker (including the free Utively tool below) does it instantly from hex, RGB, or HSL values. The important thing is understanding what the resulting number means, and what threshold you're aiming for.

WCAG 2.1 requirements explained

WCAG (Web Content Accessibility Guidelines) defines three conformance levels. Level A is the minimum; most organizations and legal frameworks target Level AA.

Level AA โ€” the standard target

Level AA is required by most accessibility regulations and is the benchmark for the vast majority of web and app projects:

Level AAA โ€” enhanced accessibility

Level AAA is aspirational for most teams โ€” not required by most standards, but worth targeting for content-heavy sites or products used by older audiences:

Placeholder text, captions on media, decorative images, and text that is part of a logo are exempt from contrast requirements under WCAG 2.1. However, form input placeholder text in particular is often a problem in practice โ€” many designs use it for functional guidance, making it effectively non-decorative.

The most common failing combinations

These color pairings appear in real-world designs constantly and routinely fail WCAG AA:

Text color Background Ratio Result
#999999 (light grey) #ffffff (white) 2.85:1 Fails AA for all text
#ffffff (white) #4a90e2 (medium blue) 3.13:1 Fails AA for body text, passes for large text only
#ffff00 (yellow) #ffffff (white) 1.07:1 Fails catastrophically โ€” near-invisible
#767676 (mid grey) #ffffff (white) 4.54:1 Barely passes AA for normal text
#ffffff (white) #e74c3c (standard red) 3.99:1 Fails AA for normal text, passes for large text

The light grey on white combination is by far the most common failure. Many design systems use grey text for secondary information, captions, or metadata โ€” and most of those greys fail. #767676 is the approximate boundary: anything lighter than that on white will fail AA for body text.

How to fix failing contrast

When a combination fails, you have several levers to pull:

Contrast checking in design tools

Most major design tools now have contrast checking built in or readily available:

The practical workflow for most teams: check in Figma during design, then do a final pass against the live or staging URL before launch. The two-step approach catches cases where CSS values in production differ from design specs.

Free Color Contrast Checker

Enter any two colors and instantly see the contrast ratio, WCAG AA and AAA pass/fail status, and how the combination looks at different text sizes โ€” no sign-up required.

Check your contrast ratios โ†’