Skip to content
Issue 035
2026-07-16

Designing palettes that work for colorblind users — without sacrificing character

Roughly 8% of men and 0.5% of women have some form of color vision deficiency. Most palette guidelines respond by stripping color personality down to high-contrast gray-scale safe combinations. There is a better approach: designing with color role redundancy so that no piece of information relies on hue alone.

Highlights
Deuteranopia (red-green confusion) is the most common form. A palette that looks warm-versus-cool to most viewers can look identical to a deuteranope if the lightness values are also similar — which is why hue contrast alone is never sufficient.
The most reliable fix is role redundancy: pair hue with lightness contrast so that each semantic color (success, warning, error) also differs in perceived brightness. This way the palette communicates even when hue information is lost.
Testing with CSS filter: url(#deuteranopia) or tools like Figma's accessibility plugin takes under two minutes and immediately reveals which color pairs collapse. Build this check into every palette review.

Why hue contrast alone fails

Most designers test contrast by checking WCAG ratios between foreground and background, which measures luminance difference — not hue difference. A red error badge and a green success badge can both meet WCAG AA for text legibility while being perceptually identical to a red-green colorblind user, because the luminance values happen to match. The core mistake is treating color as a single channel. Color carries two distinct signals: hue (what the color is) and lightness (how bright it is). Accessible palette design means making sure every meaningful color distinction is carried by at least one of those signals even when the other is compromised.

Role redundancy as a design principle

Role redundancy means that every semantic color in a system has a distinct lightness value in addition to a distinct hue. If your success state is green at 60% lightness and your warning state is yellow at 60% lightness, those two states will be indistinguishable when hue is filtered. Move warning to 50% lightness and add an icon indicator, and now both hue and lightness carry the distinction. The Nordic Frost collection is designed with implicit role redundancy — the pale aqua, mid-teal, and deep slate steps are separated by large lightness jumps, so the palette works across common vision deficiency simulations without losing its cool, minimal character.

Practical testing workflow

You do not need specialized software to test for color blindness. Browser developer tools support CSS filter overrides that apply deuteranopia, protanopia, and tritanopia simulations to any page. A 2-minute review with each filter active will catch the most common failures: pairs that merge, states that look identical, and gradients that lose their progression. Add this check to your palette review process before design handoff. The Dark Mode UI Kit was tested with all three major deficiency types before publication — each semantic token pair maintains distinguishable lightness contrast even when hue information is completely removed.

Newer issue
Color transition strategy: how to animate between palette states without visual chaos
2026-07-09
Older issue
How color functions as wayfinding in complex interfaces
2026-07-23