Accessibility April 2026 · 9 min read

WCAG Color Contrast Guide for Web Designers

Poor color contrast makes your site inaccessible to millions of users with visual impairments — and it's one of the most common and easiest-to-fix accessibility issues.

What Is Color Contrast and Why Does It Matter?

Color contrast ratio measures the luminance difference between a text color and its background. A ratio of 1:1 means no contrast (same color); 21:1 is maximum contrast (black on white).

The Web Content Accessibility Guidelines (WCAG) define minimum contrast ratios to ensure readable text for users with low vision, color blindness, or who are using their device in bright sunlight.

Beyond ethics, poor contrast has legal implications — websites failing WCAG standards have faced lawsuits under the ADA in the US and equivalent laws in the EU and UK.

WCAG 2.1 Contrast Requirements

Level AA (Minimum — What You Must Hit)

Level AAA (Enhanced — Optional but Recommended)

⚠️ Gray text on white — 4.54:1 (barely AA for normal text)
✅ Darker gray on white — 7.0:1 (AAA for normal text)
✅ White on blue — 8.59:1 (AAA)
❌ White on yellow — 1.96:1 (fails AA)
✅ Dark text on yellow — 8.32:1 (AAA)

Common Color Contrast Mistakes

Light gray text on white backgrounds

Designers often use #999 or #aaa for secondary text on white backgrounds because it looks elegant. These typically fail WCAG AA. The minimum gray that passes AA on white is approximately #767676.

White text on pastel backgrounds

Light blue, mint green, lavender — these backgrounds look good but make white text nearly invisible. Always test before using.

Colored text on colored backgrounds

Red text on orange, or blue on purple — these can feel like contrasting colors to sighted users but have poor luminance ratios. Color blindness also affects the perceived difference. Always measure luminance contrast, not just hue distance.

Placeholder text

Input placeholder text is frequently styled with very low contrast. It should still meet 4.5:1 — users need to read what to type.

How to Measure Contrast

Use StudioLimb's WCAG Contrast Checker to measure any color pair instantly. Enter your text color and background color to see:

Fixing Failing Contrast

Strategy 1: Darken the text color

The most straightforward fix. If your secondary text uses #9ca3af on white, try #6b7280 or #4b5563 to reach AA compliance while maintaining the muted aesthetic.

Strategy 2: Darken the background slightly

If you're set on a specific text color, adding a subtle tint to the background can push the ratio over the threshold without disrupting the design.

Strategy 3: Increase font size or weight

Large or bold text has a lower contrast requirement (3:1 vs 4.5:1). If a decorative heading fails at 18px/regular, it may pass at 24px/regular or 18px/bold. Use this for headlines — never for body copy.

Contrast for Brand Colors

Many brand palettes include bright colors that fail on white backgrounds. A pragmatic approach: use the brand color as an accent (borders, icons, highlights) but pair text with a darkened variant or against a colored background where the ratio passes.

Don't Rely on Color Alone

WCAG also requires that information is never conveyed by color alone. Form error states must include an icon or text label, not just a red border. Chart legends must use patterns or labels, not just different colors.

contrast

Contrast Checker

Check WCAG AA & AAA instantly

color_lens

Color Palette Generator

Generate accessible color schemes