Overview
Text must have a contrast ratio of at least 4.5:1 against its background (3:1 for large text ≥18pt or bold ≥14pt).
Low color contrast is the most commonly detected accessibility issue on the web—WebAIM found contrast failures on over 80% of home pages. It affects far more people than teams expect: anyone with low vision, color blindness (about 1 in 12 men), aging eyes, or simply using a phone in bright sunlight. Light-gray text looks elegant in a mockup but becomes unreadable for millions of users, and it’s one of the most common citations in accessibility audits.
The Problem
This pattern is inaccessible — avoid it.
The Fix
Use this accessible pattern instead.
Step-by-step
Use a contrast checker (WebAIM, browser DevTools, or ADAGuard) to measure text/background pairs.
For normal text (<18pt, not bold): minimum ratio 4.5:1.
For large text (≥18pt or bold ≥14pt): minimum ratio 3:1.
Adjust the foreground or background color until the ratio is met.
Don't rely on color alone to convey meaning — use icons, patterns, or labels too.
Common Mistakes
Using light gray (#999, #ccc) text on white because it “looks clean” in design tools.
Forgetting placeholder text, disabled states, and text set over images or gradients.
Conveying status with color alone (red = error) with no icon or text.
Checking contrast only in the design file, not the shipped CSS.
How to Test for It
Use the WebAIM Contrast Checker or the contrast ratio in Chrome DevTools’ color picker.
Run ADAGuard or axe to flag every failing text/background pair automatically.
Switch on a grayscale filter to catch meaning that relies on color alone.
Framework Notes
How to apply this fix in your stack.