hyggeit
Back to Feed
Design & UX October 25, 2025 10 min read

Beyond Contrast: Truly Accessible Color Systems

Accessibility is more than just passing a contrast ratio test. Learn how to engineer your color palette to manage focus states, visual hierarchy, and motion reduction for all users—including those with cognitive and vestibular disabilities.

The Contrast Ratio Trap

When most teams think about accessible color, they think about contrast ratios. Run the palette through a WCAG checker, hit 4.5:1 for normal text and 3:1 for large text, and call it done. Checkbox complete, accessibility achieved.

Except it isn't. Contrast ratios are the minimum threshold—the floor, not the ceiling. A color system that only optimizes for contrast can still fail users with color blindness, cognitive disabilities, vestibular disorders, or simply tired eyes at the end of a long day.

True color accessibility requires thinking beyond ratios to consider how color functions as information, how it interacts with other visual elements, and how it performs across diverse user needs and environmental conditions.

Understanding Color Vision Diversity

Approximately 8% of men and 0.5% of women have some form of color vision deficiency (CVD). That's roughly 300 million people globally—more than the population of the United States. Designing without considering CVD means excluding a massive user base.

Types of Color Vision Deficiency

Deuteranomaly (Green-Weak)

Most common CVD (~6% of males). Green appears more red/brown. Red-green differentiation is difficult.

Protanomaly (Red-Weak)

Red appears darker and shifted toward green. Affects ~1% of males.

Tritanomaly (Blue-Weak)

Rare (~0.01%). Blue appears green, yellow appears violet or light gray.

Achromatopsia (Complete Color Blindness)

Extremely rare. Vision is grayscale only. High light sensitivity common.

Design principle: Never use color as the only means of conveying information. Always pair color with text labels, icons, or patterns.

Building a CVD-Safe Palette

Creating a palette that works for users with color vision deficiency requires careful selection and testing. Here's our process:

Step 1: Choose Semantically Distinct Base Hues

Start with hues that remain distinguishable across CVD types. Avoid relying on red/green or blue/yellow distinctions for critical information.

Recommended base palette approach:

  • Blue - Remains visible across most CVD types
  • Orange - Distinguishable from blue even with deuteranomaly
  • Purple - Unique lightness profile aids differentiation
  • Cyan - Provides additional semantic slot

Step 2: Vary Lightness, Not Just Hue

Users with CVD can still perceive lightness differences. Build your palette with significant lightness variation between semantic colors:

Semantic Meaning Hue Lightness (HSL)
Error Red-Orange (15°) 45%
Warning Amber (40°) 55%
Success Teal (170°) 35%
Info Blue (210°) 50%

Step 3: Test with Simulation Tools

Before finalizing any palette, test it through CVD simulation:

  • Figma: Use the "Color Blind" plugin or built-in vision simulation
  • Chrome DevTools: Rendering tab → Emulate vision deficiencies
  • Stark: Comprehensive accessibility plugin for design tools
  • Coblis: Web-based color blindness simulator

Focus States: The Forgotten Accessibility Layer

Keyboard navigation is essential for users with motor disabilities, temporary injuries, or power users who prefer keyboard workflows. Focus states indicate which element is currently active, and they're often an afterthought in color system design.

The Problem with Default Focus

Browser default focus rings are inconsistent and often aesthetically jarring, leading many designers to remove them entirely with outline: none. This creates a serious accessibility violation.

Designing Effective Focus States

1. Ensure 3:1 contrast against adjacent colors

The focus indicator must be visible against both the element background and the page background.

2. Use a consistent focus color across the system

A dedicated focus color (often a vibrant blue or the primary brand color) helps users recognize focus immediately.

3. Provide sufficient visual weight

A 2px outline minimum, or use focus-visible techniques for enhanced styling.

4. Consider offset for better visibility

Using outline-offset creates separation between the element and focus ring, improving visibility.

Recommended CSS approach:

:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
  border-radius: 2px;
}

Visual Hierarchy Without Color Dependency

Color is a powerful tool for establishing visual hierarchy, but it shouldn't be the only tool. A truly accessible design system creates hierarchy through multiple reinforcing channels.

The Multi-Channel Approach

Channel How It Conveys Hierarchy Accessibility Benefit
Size Larger = more important Works for all visual abilities
Weight Bolder = more prominent Independent of color perception
Position Top-left primary (LTR cultures) Universal spatial understanding
Spacing More space = more importance Helps cognitive processing
Icons Visual reinforcement of meaning Provides alternative to color

Test: Convert your interface to grayscale. If hierarchy is still clear, your design doesn't over-rely on color.

Motion and Vestibular Considerations

Color transitions and animations can trigger vestibular disorders, causing dizziness, nausea, and disorientation. Approximately 35% of adults over 40 have experienced vestibular dysfunction. Color systems need to account for how colors change, not just how they appear statically.

Problematic Color Animations

  • Rapid color cycling or pulsing
  • High-contrast color transitions (light ↔ dark)
  • Large areas changing color simultaneously
  • Flashing or strobing effects (also an epilepsy trigger)

Safe Animation Practices

Respect prefers-reduced-motion

Always provide reduced-motion alternatives. Disable color transitions entirely when this preference is set.

Limit transition duration

Color transitions should be <200ms. Longer transitions can cause discomfort.

Avoid full-page color changes

Theme switching should be instant rather than animated.

CSS media query implementation:

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}

Dark Mode: More Than Inverting Colors

Dark mode isn't just a aesthetic preference—it's an accessibility feature. Users with photophobia, migraines, or simply eye strain benefit from reduced light emission. But implementing dark mode correctly requires more than flipping background and foreground colors.

Dark Mode Color Principles

1

Reduce white point

Pure white (#FFFFFF) on dark backgrounds causes halation (glowing). Use off-white (e.g., #E0E0E0) for body text.

2

Desaturate accent colors

Highly saturated colors on dark backgrounds appear to vibrate. Reduce saturation by 10-20% for dark mode variants.

3

Maintain relative contrast

Dark mode contrast ratios should match or exceed light mode. Don't sacrifice accessibility for aesthetics.

4

Test semantic colors independently

Error red in light mode may need adjustment for dark mode. Test each semantic color in both themes.

Implementation Checklist

Use this checklist when auditing or building your color system:

All text meets WCAG AA contrast (4.5:1 normal, 3:1 large)
UI components meet 3:1 contrast against backgrounds
Color is never the sole indicator of state or meaning
Palette tested with CVD simulation tools
Focus states visible and consistent
prefers-reduced-motion respected
Dark mode colors independently verified
High contrast mode supported

Conclusion: Accessibility Is a Feature, Not a Constraint

Building a truly accessible color system requires moving beyond compliance checkboxes to understanding the diverse ways users experience color. The investment pays dividends not just in legal compliance but in better design for everyone.

Colors that work for users with color vision deficiency are clearer for users in bright sunlight. Focus states that help keyboard users also help touch users confirm their taps. Reduced motion benefits users with vestibular disorders and users with limited battery life.

Accessibility constraints, when embraced rather than reluctantly accommodated, lead to better design. Build your color system with all users in mind, and the result will be better for everyone.

Get help

Need help building an accessible color system?

We specialize in creating design systems that meet WCAG 2.1 AA standards while maintaining brand integrity. Let's discuss your accessibility goals.

Get in Touch