Design by ToolShack Team

Building Accessible Color Palettes for Web Design

How to create color palettes that look great and meet WCAG contrast requirements, with practical guidelines and testing techniques.

Approximately 300 million people worldwide have color vision deficiency. An additional 2.2 billion people have some form of vision impairment. When your color palette does not account for these users, you are excluding a massive portion of your audience. Accessible color design is not a niche concern — it is a core requirement for professional web development.

What WCAG Requires

The Web Content Accessibility Guidelines (WCAG) set specific contrast ratios that text and interactive elements must meet:

Normal text (under 18pt)4.5:1 minimum
Large text (18pt+ or 14pt bold)3:1 minimum
UI components and icons3:1 minimum

A contrast ratio of 4.5:1 means the foreground color is 4.5 times more luminous than the background color. For reference, black text (#000) on white (#FFF) has a ratio of 21:1 — the maximum possible. Light gray text on a white background typically fails accessibility requirements.

The Problem with "Looks Fine to Me"

Most designers have normal color vision. Colors that look perfectly distinguishable to you may be indistinguishable to someone with red-green color blindness (which affects 8% of men and 0.5% of women). The most common types include:

  • Protanomaly: Reduced sensitivity to red light. Reds appear darker and more muted.
  • Deuteranomaly: Reduced sensitivity to green light. The most common type — greens and reds look similar.
  • Tritanomaly: Reduced sensitivity to blue light. Blues and greens appear confused. Rare.

This is why you should never rely on color alone to convey information. A red error message should also include an icon and descriptive text. A green success state should not be indicated solely by a green dot.

How to Build an Accessible Palette

Step 1: Start with your brand colors

Take your primary brand color and check its contrast ratio against white (#FFF) and dark backgrounds (#1a1a1a, #000). Most brand colors need to be darkened or lightened to meet 4.5:1 for body text. A bright teal (#14b8a6) on white has a ratio of about 3.2:1 — insufficient for small text but fine for large headings.

Step 2: Create a shade scale

For each brand color, generate a scale from 50 (lightest) to 900 (darkest). You need at least a few accessible pairings:

  • Text on light backgrounds: Use your 800 or 900 shade on white or 50 shade.
  • Text on dark backgrounds: Use your 50 or 100 shade on 900 or black.
  • UI elements on gray surfaces: Ensure buttons, links, and icons meet 3:1 against their immediate background.

Step 3: Test with tools

Do not guess. Use contrast-checking tools to verify every text-background combination:

Practical Color Pairings That Work

#0f172a on white

Ratio: 17.4:1. Use for body text on light backgrounds.

#1e40af on white

Ratio: 8.6:1. Excellent for links and headings.

#14b8a6 on white

Ratio: 3.2:1. Use only for large text or UI elements.

#ffffff on #1e293b

Ratio: 13.8:1. Perfect for light text on dark backgrounds.

Beyond Contrast: Other Accessibility Considerations

  • Do not use color alone for meaning: Error messages need icons and text, not just red color. Success states need checkmarks, not just green.
  • Provide sufficient hit targets: Buttons and links need at least 44×44px touch targets regardless of color.
  • Consider dark mode: Your palette should work in both light and dark themes. What looks good on white may be invisible on dark gray.
  • Test with real users: Automated tools catch contrast issues, but real users catch usability issues that tools cannot detect.

Conclusion

Accessible color design is not about limiting your creativity — it is about being intentional. Start with WCAG contrast ratios as non-negotiable requirements, test your palette with color blindness simulators, and always use more than color alone to communicate meaning. The ToolShack Color Palette Generator, Color Converter, and Color Blindness Simulator make it easy to build palettes that work for everyone.

Tools Mentioned in This Article

Related Articles