Why an Accessible Color Palette Matters More Than Ever
Color is one of the first things users notice on a website, but it’s also one of the most common reasons sites fail accessibility audits. With the European Accessibility Act now in force and WCAG 2.2 firmly established as the global benchmark, designing an accessible color palette is no longer optional. It’s a legal, ethical, and commercial necessity.
The good news? Accessibility and beautiful, on-brand design are not mutually exclusive. In this practical guide, we’ll walk you through the contrast ratio rules you need to know, the pitfalls that trip up most brand color systems, and the tools our team at FatCow Web Design uses every day to ship inclusive interfaces.

Understanding WCAG Contrast Ratios
Contrast ratio measures the difference in luminance between two colors, expressed as a value from 1:1 (no contrast) to 21:1 (maximum contrast, typically black on white). WCAG defines clear thresholds depending on text size and conformance level.
| Element | WCAG AA | WCAG AAA |
|---|---|---|
| Normal text (under 18px or 14px bold) | 4.5:1 | 7:1 |
| Large text (18px+ or 14px+ bold) | 3:1 | 4.5:1 |
| UI components & graphics | 3:1 | Not defined |
| Focus indicators (WCAG 2.2) | 3:1 | Not defined |
Aim for AA as a minimum and AAA for body text where possible, especially on content-heavy pages like blogs, documentation, or healthcare interfaces.
Step-by-Step: Building an Accessible Color Palette
1. Start With Your Brand Anchors
Don’t start from scratch. Take your existing primary and secondary brand colors and treat them as anchor points. Your job is to expand around them with accessible variants, not replace them.
2. Generate a Tonal Scale
For each anchor color, create a scale of 9 to 11 shades (e.g. 50, 100, 200… 900). This gives you the flexibility to pair lighter shades with dark text and darker shades with light text while staying within the brand family.
3. Map Roles to Shades
Assign each shade a specific role in your design system:
- Backgrounds: lightest shades (50-200)
- Borders & dividers: mid-light shades (200-400)
- Interactive elements: mid shades (500-700)
- Text on light backgrounds: dark shades (700-900)
- Text on dark backgrounds: light shades (50-200)
4. Test Every Combination
Build a contrast matrix that tests every text color against every background color. If a combination fails, mark it as forbidden in your design tokens or Figma variables.
5. Validate With Real Users
Tools are great, but nothing replaces testing with users who have low vision or color blindness. Even a quick session with simulation tools will catch issues that pure math misses.

Common Pitfalls With Brand Colors
The “Brand Yellow” Problem
Bright yellows, lime greens, and pastel pinks almost never reach 4.5:1 contrast on white. The fix is to use them as accent or background colors, never as text on white. Pair them with dark navy or charcoal text instead.
The Gray-on-Gray Trap
Designers love light gray placeholder text. Users with low vision hate it. If your placeholder, helper text, or disabled states fall below 4.5:1, redesign them with darker grays or use additional visual cues like icons.
Color as the Only Indicator
Red error states and green success states are useless to a colorblind user if color is the only differentiator. Always pair color with an icon, label, or pattern.
Hover and Focus States
A button might pass contrast in its default state but fail on hover. Test every state: default, hover, focus, active, disabled.
The Best Tools for Accessible Color Palettes in 2026
Stark
The most complete accessibility plugin for Figma, Sketch, Adobe XD, and browsers. Stark offers real-time contrast checking, color blindness simulation, and a palette generator that suggests accessible alternatives without leaving your design tool.
Coolors
Excellent for generating palettes from scratch. The built-in contrast checker and color blindness simulator make it easy to iterate quickly. Free tier is generous.
Adobe Color Accessibility Tools
Adobe’s free web tool includes a color blind safe palette generator and a contrast analyzer. Integrates nicely if your team already lives in Creative Cloud.
Color Safe
A simple but powerful tool that generates accessible text colors based on a background color and WCAG level. Perfect for building tonal scales.
Leonardo (by Adobe)
An open source tool for creating adaptive, accessible color systems. It generates colors based on a target contrast ratio rather than a fixed hex value, which is incredibly useful for design systems.
Venngage Accessible Palette Generator
Great for marketers and non-designers who need an accessible palette fast without deep technical knowledge.
WebAIM Contrast Checker
Still the gold standard for one-off checks. Fast, reliable, free.

A Quick Workflow We Use at FatCow Web Design
- Import brand anchors into Leonardo and generate a tonal scale targeting 4.5:1 minimum.
- Export to Figma variables.
- Run a full audit with Stark on every component.
- Simulate deuteranopia, protanopia, and tritanopia views.
- Document the do’s and don’ts directly in the design system.
- Re-test after every brand refresh or new component.
Going Beyond WCAG: APCA and the Future
The Accessible Perceptual Contrast Algorithm (APCA) is being explored as a replacement for the current WCAG luminance formula in WCAG 3.0. It’s more perceptually accurate, particularly for dark mode and middle gray ranges. Tools like Stark and the APCA Contrast Calculator already let you test against it. We recommend designing for WCAG 2.2 today while keeping an eye on APCA for future-proofing.
FAQ
What contrast ratio do I need for accessibility?
WCAG AA requires 4.5:1 for normal text and 3:1 for large text and UI components. For stricter compliance, target AAA with 7:1 for normal text.
Can I keep my brand colors and still be accessible?
Yes. Use your brand colors as anchors and build accessible tonal scales around them. Brand colors that fail contrast on their own can still be used for backgrounds, accents, or decorative elements.
Is dark mode automatically more accessible?
No. Dark mode has its own contrast challenges, especially with mid-tone grays. Test every dark mode combination the same way you test light mode.
What’s the difference between WCAG AA and AAA?
AA is the legal baseline in most jurisdictions and requires 4.5:1 contrast for normal text. AAA is stricter (7:1) and recommended for content-heavy or high-stakes interfaces like healthcare and government services.
Are color palette generators enough on their own?
They’re a great start, but always validate with real user testing and check every component state, not just text on a background.
Final Thoughts
Designing an accessible color palette isn’t about sacrificing creativity. It’s about being thoughtful with how you use color, building systems that scale, and using the right tools to catch issues early. With WCAG 2.2 as your baseline and tools like Stark, Coolors, and Leonardo in your kit, there’s no reason your next project can’t be both beautiful and inclusive.
Need help auditing or rebuilding your color system? The team at FatCow Web Design specializes in accessible, on-brand digital experiences. Get in touch and let’s make the web work for everyone.
