Data visualization is one of the hardest accessibility challenges in color design. Charts need multiple colors that are simultaneously: aesthetically cohesive, distinguishable from each other for all users (including those with color vision deficiency), distinguishable from the background, and meaningful (ordered or categorized logically).
The Lightness-First Approach
The most reliable technique for accessible chart colors: ensure every color in your chart palette has a different lightness value. A dark blue, medium green, light amber, and very light pink are distinguishable even in grayscale (which simulates severe color vision deficiency). If your chart colors survive desaturation, they survive all forms of CVD.
Sequential Palettes
For data that has a natural order (low to high, cold to hot, past to future), use a single-hue sequential palette: variations of one color from light to dark. This leverages the lightness channel for meaning and is inherently accessible because the differences are in luminance, not just hue.
Categorical Palettes
For unordered categories (product lines, regions, departments), use distinct hues with varied lightness. The classic approach: pick hues that are well-separated on the wheel (at least 60 degrees apart) and ensure each has a unique lightness value. Four to six categories is the practical limit before colors become too similar.
Patterns as Backup
For maximum accessibility, supplement color with patterns: hatching, dots, dashes. Each data series gets both a unique color AND a unique pattern. This ensures distinguishability even for users with achromatopsia (total color blindness). Most charting libraries support pattern fills.