Skip to content

A color blind safe chart palette for reports that get printed and forwarded

BI and reportingUpdated 2026-08-238 min read

In short

A colour blind safe palette uses hues that stay distinguishable under red green colour vision deficiency, and pairs every colour with a second cue such as position, shape or a direct label. The W3C sets a floor of 3 to 1 contrast for graphical objects, which includes each line in a graph.

The renewal risk report had a status column. Sixty exhibitor rows, each with a small filled circle in red, amber or green, and a header saying "renewal risk". It went to the sales team every Monday, and it went to the show director, who printed it on the office mono laser because she likes to mark up paper before a call.

On the printout, the red circles and the green circles were the same grey. Two weeks in, she asked why so many accounts were amber.

A colour blind safe palette is the first fix and it is not the whole fix. The report had put all of its meaning into hue, and hue is the channel most likely to be missing by the time a report reaches its reader.

How many readers cannot separate red from green?

The National Eye Institute states that about one man in twelve has a colour vision deficiency, and that the most common type makes it hard to tell the difference between red and green.

Okabe and Ito, in their Color Universal Design guidance (2008), break that down by population: one in twelve Caucasian men, roughly 8 per cent, one in twenty Asian men, and one in twenty-five African men. They note it is more common than the AB blood group, which is a useful way to make the number feel real to somebody who thinks of this as an edge case.

Do the arithmetic for a report you actually send. An exhibitor performance report goes to 640 contacts. Take an illustrative split where 60 per cent are men, which is 384, and assume that group divides 55 per cent European ancestry, 30 per cent Asian and 15 per cent African. That gives 211 times one twelfth, which is 17.6, plus 115 times one twentieth, which is 5.8, plus 58 times one twenty-fifth, which is 2.3. Twenty-six people.

Twenty-six exhibitor contacts, on one report, who cannot reliably separate your red rows from your green rows. Nobody will write in to say so. The reaction to a chart you cannot read is to stop opening it.

What the contrast rule actually requires

The W3C set a numeric floor in WCAG 2.1, published as a Recommendation in 2018 (W3C, 2018). Success criterion 1.4.11 requires that "the visual presentation of the following have a contrast ratio of at least 3:1 against adjacent color(s)", covering user interface components and graphical objects. The understanding document is explicit that charts are in scope, defining graphical objects to include "the important parts of a more complex diagram such as each line in a graph", and stating for pie charts that "the graphical objects are the slices of the pie (chart)".

Contrast ratio has a formula, given in the same document as (L1 + 0.05) divided by (L2 + 0.05), where L1 is the relative luminance of the lighter colour and L2 the darker.

That formula is worth rearranging once, because it turns an abstract requirement into a number you can test a palette against. Against a white background, where L1 is 1.0, a mark meets 3 to 1 when (1.0 + 0.05) divided by (L2 + 0.05) is at least 3. Solve it and L2 must be no more than 0.30. Any series colour on a white chart has to sit at or below a relative luminance of 0.30, which rules out most of the pastel palettes that reporting tools ship as their default.

The same arithmetic exposes why red and green fail against each other. Suppose you measure your palette's green at a relative luminance of 0.45 and your red at 0.20. The ratio between them is 0.50 divided by 0.25, which is 2.0. That is below the floor before anyone's colour vision is considered, and it is why the mono printout collapsed.

Amber is the entry that quietly breaks most status palettes. To read as a warning it wants to be bright, and bright means high luminance, which pushes it above the 0.30 ceiling against white. A typical amber lands somewhere around 0.55, giving 1.05 divided by 0.60, which is 1.75 against the page. It then passes the greyscale test only by accident, because it happens to differ in lightness from the other two, while failing the contrast test that the standard actually sets. Darkening it to meet 3 to 1 makes it look less like a warning, which is why most teams leave it alone and put the meaning in a word instead.

The measurement itself is not a design exercise. Relative luminance is computable from the hex value, every accessibility checker will give you the number, and the whole palette takes about fifteen minutes to audit once. Write the resulting luminances into whatever document holds your report standards, because the next person choosing a colour will otherwise pick from a swatch grid.

Encode twice, and put the label on the mark

The core advice from Okabe and Ito (2008) is redundancy. They recommend using "not only different colors but also a combination of different shapes, positions, line types and coloring patterns", and adding labels directly on drawings instead of relying on a separate key.

In event reporting that translates into a short list of changes, each of which costs almost nothing.

A status column gets a shape and a word. A filled circle for at risk, a hollow circle for watch, a tick for confirmed, with the word beside it. The colour then reinforces something the reader can already see.

A line chart gets direct labels. Put the show name at the right hand end of its line rather than in a legend. This removes the colour lookup entirely, and it is the single highest value change in most portfolio charts.

A series chart gets line styles. Solid, dashed and dotted separate three series without any colour at all, which is what a photocopier or a monochrome export will leave you with.

A category chart gets sorted. Sorting by value means the reader can identify a category by where it sits, which is a position cue, and position is the channel V23's accuracy ordering puts at the top.

A red amber green column, tested

Here is the test to run on the report you already have, and it takes ten minutes.

Export the current version to PDF. Print it on a mono printer, or open it and convert to greyscale in whatever previewer you have. Then, without looking at the colour version, try to read the status column.

For the renewal report above, the sixty rows split 11 at risk, 18 watch and 31 confirmed. In greyscale the 11 and the 31 became indistinguishable, so 42 of 60 rows, which is 70 per cent, lost their meaning. The 18 amber rows survived only because amber is genuinely lighter than the other two.

Now redraw it. Same three states, but the mark carries a shape, the word sits next to it, and the palette moves to three of Okabe and Ito's colours: vermilion for at risk, orange for watch, bluish green for confirmed. In greyscale, all 60 rows are still readable, because the shape and the word were never dependent on colour in the first place.

The palette change alone would have fixed the colour vision deficiency problem and left the greyscale problem in place, since two hues can be distinguishable and still share a luminance. Doing both is what makes the report survive a printer.

How many colours can one chart carry?

Okabe and Ito's palette holds eight entries, including black. That is the practical ceiling for a categorical colour scale, and most reports should use fewer.

An exhibitor category chart with 17 series has already lost, whatever the palette. Nobody can hold seventeen hue-to-name mappings in working memory, and the seventeenth colour is going to be a shade of one of the first sixteen. Bin to the six or seven categories that matter and put the rest in "other", with the full breakdown in a table underneath.

Sequential data is a different question and deserves a sequential scale rather than a categorical one. A choropleth of registrations by country wants one hue varying in lightness, because lightness is ordered and hue is not, and a reader with a red green deficiency can still read a light to dark ramp. That works for a rough spatial pattern. If exact values matter, the values belong in a table, and the point of a small word sized trend beside each row is that it gets shape into a table without needing colour at all, which is V27's argument.

Where this stops

A colour blind safe palette makes hues distinguishable to more readers. It makes no promise about a printer, a projector or a phone screen in daylight.

Several published safe palettes vary in hue while keeping luminance fairly even, which is exactly what fails in greyscale. If your report gets printed, luminance separation is the property to test for, and it is a different test from the colour vision one. Run both.

The 3 to 1 floor is also a floor. It is set for graphical objects against adjacent colours in a controlled viewing condition, and a conference room projector with the lights on is not that. A chart that passes 3 to 1 on your monitor can still be unreadable from the back of a room, which is an argument for fewer, larger marks rather than a better palette.

Print your most-forwarded report in greyscale this week and try to read it cold. Every place where you have to check the colour version to know what something means is a place the report is carrying meaning in one channel, and the fix is usually a shape or a direct label rather than a new set of hues. That change generalises across the rest of your BI and reporting pages, and where a vertical axis makes a small change look large, the baseline question that V24 covers is the next thing to audit on the same pass.

Questions people ask about color blind safe chart palette

How many readers of an event report cannot distinguish red from green?
The National Eye Institute puts colour vision deficiency at about one man in twelve. Okabe and Ito give the red green figure as one in twelve among Caucasian men, one in twenty among Asian men and one in twenty-five among African men. On a report sent to several hundred exhibitor contacts that is routinely a couple of dozen people.
What contrast ratio does a chart line need?
At least 3 to 1 against adjacent colours, under the W3C's WCAG 2.1 success criterion for non-text contrast, published in 2018. The understanding document names each line in a graph and the slices of a pie chart as graphical objects the rule covers. Contrast ratio is calculated as L1 plus 0.05 divided by L2 plus 0.05.
Is switching to a colour blind safe palette enough on its own?
No. Okabe and Ito recommend combining colour with different shapes, positions, line types and hatching, and putting labels directly on drawings rather than in a separate key. A palette fixes which hues are used. It does nothing about a chart that carries all of its meaning in hue and none of it anywhere else.

Related reading

All bi and reporting articles