🎨Image

Color Contrast in Web Design: The WCAG Rules That Actually Matter

Grey text on white backgrounds looks clean in Figma. In the real world, it fails accessibility standards and millions of users can't read it. Here's what to do instead.

6 min readFebruary 6, 2026By FreeToolKit TeamFree to read

Light gray text on white. #6b7280 on #f9fafb. It looks minimal and modern in every design system. It also fails WCAG AA contrast requirements by a significant margin. I see this constantly in design reviews.

The Contrast Ratio

Contrast ratio is a mathematical measure of the luminance difference between two colors. 1:1 is no contrast (same color). 21:1 is maximum contrast (pure black on pure white). WCAG AA requires 4.5:1 for normal body text.

Some common failures:

  • #6b7280 on white: ~4.0:1 — fails AA for body text
  • #9ca3af on white: ~2.5:1 — fails by a lot (placeholder text commonly this color)
  • #d1d5db on white: ~1.5:1 — nearly invisible to low-vision users

Why This Matters Practically

About 1 in 12 men and 1 in 200 women have some form of color vision deficiency. Older users experience reduced contrast sensitivity. Users in bright outdoor lighting see reduced screen contrast. Anyone in these groups — a significant portion of your users — struggles with insufficient contrast even if it looks fine to you in a dark office.

Legal exposure is also real. ADA lawsuits over accessibility failures have been increasing. A publicly accessible website with contrast failures is a documented compliance problem.

Achieving Good Contrast Without Sacrificing Design

The trick is being intentional about where you reduce contrast. Body text, navigation, calls to action, form labels — these need 4.5:1. Decorative elements, disabled states, and placeholder text (which WCAG explicitly excludes from the requirement) can use lower contrast.

Specific fixes:

  • Replace #6b7280 body text with #4b5563 — achieves 5.4:1 on white, passes AA
  • Replace light gray placeholder text (#9ca3af) with #6b7280 — achieves 4.0:1 (still fails for body text but is an improvement)
  • For large text (18px+), 3:1 ratio suffices — this gives you more design flexibility

Frequently Asked Questions

What is the WCAG color contrast requirement?+
WCAG 2.1 Level AA (the standard most legally required accessibility guidelines reference) requires a minimum contrast ratio of 4.5:1 for normal text (under 18pt or 14pt bold) and 3:1 for large text (18pt or larger, or 14pt bold and larger). WCAG Level AAA requires 7:1 for normal text and 4.5:1 for large text — this is the highest standard, required for some government and accessibility-focused sites. The ratio is measured between the foreground text color and its background color. Pure black on pure white is 21:1 — maximum contrast. Many design trends use much lower ratios that fail these requirements.
How do I check color contrast ratio?+
Several free tools: WebAIM's Contrast Checker (webaim.org/resources/contrastchecker/) is the most used — enter hex values and get the ratio instantly with pass/fail for WCAG AA and AAA. Accessible Colors (accessible-colors.com) suggests the nearest accessible color if your combination fails. Browser DevTools built into Chrome, Firefox, and Edge show contrast ratios in the color picker when inspecting elements. Figma has built-in accessibility checking through the Accessible plugin or the new native accessibility panel in newer versions. For automated testing, axe-core integrates into CI/CD pipelines and flags contrast failures.
Does color contrast apply to icons and graphics?+
Yes, with different requirements. WCAG 2.1 Success Criterion 1.4.11 (Non-text Contrast) requires a 3:1 ratio for meaningful UI components and graphical objects. A icon-only button where the icon conveys meaning needs 3:1 contrast against its background. Chart lines and data points in infographics need 3:1 against adjacent colors. Decorative elements — images that are purely aesthetic and don't convey meaningful information — are exempt. The 3:1 requirement for non-text elements is lower than the 4.5:1 for text, but it still catches many design problems like thin-line icons on light gray backgrounds.
Can you have too much contrast?+
Technically no — pure black on white (21:1) is maximum contrast and meets all standards. Practically, very high contrast in large text blocks can cause eye strain for some users with certain visual processing differences. The phenomenon is sometimes called Irlen syndrome or visual stress, where high contrast white backgrounds with black text create 'visual noise.' Some designers prefer #1a1a1a on white (20.4:1) over pure black for extended reading contexts. There's no WCAG maximum contrast requirement, but for long-form reading contexts, very slightly off-black text may actually be more comfortable for a small subset of users while still meeting all contrast requirements.

🔧 Free Tools Used in This Guide

FT

FreeToolKit Team

FreeToolKit Team

We build free browser-based tools and write practical guides that skip the fluff.

Tags:

designaccessibilitycolorwcag