Color Contrast and Accessibility: WCAG Made Simple
Roughly one in twelve men and a smaller share of women have some form of color vision deficiency, and a far larger group — anyone on a cheap screen, in bright sunlight, or simply over forty — struggles with low-contrast text. Color contrast is not a niche compliance topic; it directly affects how many of your visitors can actually read your content. Here is what the standards say, translated into plain language.
What "contrast ratio" actually means
Contrast ratio compares the relative luminance (perceived brightness) of two colors, expressed from 1:1 (identical colors, like white on white) to 21:1 (pure black on pure white). The formula weights green most heavily because human eyes are most sensitive to it — which is why a mid-green and a mid-red can look "obviously different" to you yet have nearly identical luminance and terrible contrast for a colorblind reader.
The WCAG thresholds
The Web Content Accessibility Guidelines (WCAG) define two levels that matter in practice:
| Level | Body text | Large text (18pt+ or 14pt bold) |
|---|---|---|
| AA (the standard target) | 4.5:1 | 3:1 |
| AAA (enhanced) | 7:1 | 4.5:1 |
AA is the level referenced by most accessibility laws and lawsuits, and the level you should treat as your minimum. UI components such as button borders, form field outlines, and icons need at least 3:1 against their surroundings. Purely decorative elements and disabled controls are exempt.
The most common failures
- Gray on white. The classy light-gray body text (#999999 on white) fails AA at 2.8:1. Going just a bit darker, to around #767676, is the lightest pure gray that passes for body text on white.
- White text on brand colors. White on a bright orange or light green button often fails. Either darken the button color or switch the label to a near-black.
- Text over photos. A headline over a busy image will pass in one area and fail in another. The fixes: a dark overlay on the photo, a solid text background, or a strong text shadow.
- Color as the only signal. "Errors are shown in red" excludes colorblind users. Pair color with an icon, a label, or an underline — links inside paragraphs should be distinguishable by more than hue alone.
How to check your colors
You do not need to compute luminance by hand. Browser developer tools show the contrast ratio directly: inspect any text element in Chrome, click the color swatch in the Styles panel, and a contrast section appears with AA/AAA pass-fail marks and a handy line on the color picker showing exactly where compliance begins. Free web-based checkers do the same from a pair of HEX codes, and tools like WAVE or Lighthouse will scan a full page and list every failing element at once.
Fixing contrast without ruining your palette
Designers often resist accessibility because they assume it means abandoning their palette. It rarely does. Three surgical fixes:
- Shift lightness, keep hue. Your brand blue failing on white usually only needs a 10–15% lightness reduction. The hue — the part people recognize — stays identical.
- Use the brand color on big things, not text. A light brand color can fill backgrounds, illustrations, and borders freely; it just cannot carry body text. Reserve a darker variant for type.
- Create a two-tier palette. Many design systems publish each brand color in a light "surface" version and a dark "text-safe" version. One palette, two jobs, zero failures.
Why this also helps your business
Readable pages keep visitors longer, and engagement signals feed back into search rankings. Accessibility overlaps heavily with plain usability: the same contrast that helps a colorblind reader helps everyone reading your site on a phone outdoors. Treating WCAG AA as a design constraint from day one is far cheaper than retrofitting it after a redesign — or after a complaint.
Not sure what colors your site actually uses? Screenshot any page and upload it to our free color palette extractor to see its real palette — then run the text/background pairs through a contrast checker.