Where we are
Five sessions of getting one chart right in one place. Tonight is the four other places it will be looked at, none of which you will be present for.
★ What you walk out with tonight. One chart that survives four containers, a dark palette that was selected rather than inverted, alt text worth reading, and the course finished.
Four containers, four different things that break
6 min liveLiveDark mode is a second palette, not an inversion4 min▶
Flipping a light chart to dark does not work, and the reason is arithmetic: contrast ratios do not survive inversion. A hue that sits comfortably on white is often too dark on near-black, and the whole palette needs re-stepping against the new surface.
- Same hues, different steps. Not a different palette - the same eight hues, each moved along its own ramp until it passes against the dark surface. Identity stays stable across modes, which matters if somebody sees both.
- Re-run the checks against the dark surface. Lightness band, chroma, CVD separation, contrast. It is the same validator with a different surface argument, and it takes seconds.
- Never pure white on pure black. It is uncomfortable to read for any length of time. Off-white text on a near-black surface, both slightly off the extremes.
- Cover both switches. The operating-system preference and the site's own toggle, with the toggle winning in both directions.
If you cannot maintain two palettes properly, ship one good one. A carefully validated light-only chart is better than a light chart and an automatically inverted dark one that nobody has checked.
What a screen reader gets
6 min liveMost chart alt text describes the picture. That is the wrong content: somebody using a screen reader does not want to be told there is a bar chart with four bars, they want the finding and the numbers.
Self-studyThe rest of the publishing checklist4 min▶
- Forced-colours mode. High-contrast operating-system settings discard your palette entirely. Anything encoded only by hue disappears, which is the fourth independent reason for a second channel from session 4.
- Reduced motion. If the chart animates on load, honour the preference. Two lines, and animation on a chart was never carrying meaning anyway.
- Wide charts scroll, they do not shrink. Put a minimum width on the figure and let it scroll inside its own container, with a swipe affordance shown only when it actually overflows. The page itself must never scroll sideways.
- Test on the real thing. Not a resized browser window - an actual phone, and an actual print preview. Both surface problems that a narrow desktop window does not.
One ordering note: desktop is the product and mobile is the floor. Every responsive rule belongs inside a max-width query, and after adding one you should confirm the desktop layout did not move.
Survive all four
★ 22 min · everyone buildsThe report. The hover layer is gone, so the table view has to be there. Check the provenance line from session 3 is under it.
The slide. One finding only. Type up, marks down, and the title carries the point because the room is reading it from four metres away while you talk.
The phone. Open it on a real device. Minimum width plus scroll plus a swipe hint, and tap-for-value instead of hover.
Print. Print preview in greyscale. Anything that vanishes was encoded by hue alone, and now you know which.
The reader. Alt text that states the finding and the two key numbers, and points at the table.
Open your chart on an actual phone. Not a resized window - the device. Note the first thing you cannot read.
Add a minimum width and let it scroll. Then add the swipe affordance, shown only when the content actually overflows. Squeezing was never the answer.
Print it in greyscale. Everything that disappears was hue-only. Add a label or a texture to each.
Make the slide version. Take the report version and remove until one finding remains. It is usually about half the marks and twice the type size.
Write the alt text as the finding. "Ethiopia Guji earns most at $41,200, 21 percent above Kenya Nyeri. Full figures in the table below." Notice it is also a better caption for sighted readers.
If you support dark mode, re-run the palette checks against the dark surface. If the answer is "we just invert it", that is the finding - either step the hues properly or ship light-only and say so.
Grade the whole thing below. Ship or not.
If you take one thing from the whole course. Most of what makes a chart good is checkable - the proportionality, the contrast, the colour separation, the readability at width. Check those, and what remains is the genuinely creative part: which question, which form, and what to leave out.
Where to go from here
ongoing- Measure the lie factor on one chart a week for a month. It becomes an instinct faster than you would expect.
- Run your team's palette through a CVD check and share the number. It is usually the first time anybody has.
- Rewrite the titles in one recurring deck from labels into findings. Highest-value retrofit available, and it works on charts you did not build.
- Add a table view to the chart people most often ask you for numbers from.
- Then go next door. learn-visual-storytelling-with-phoebe takes a set of charts and turns them into something somebody acts on - it starts exactly where this course stops. Also learn-business-intelligence-with-phoebe for dashboards, and learn-statistics-with-phoebe for what the numbers mean before you draw them.
Three questions
Clear all three and session 6 gets stamped - six of six.
1 · Your chart is unreadable at 360 pixels wide. What is the fix?
Squeezing to fit produces axis labels around four pixels tall, which is not a small chart but an unreadable one. Responsive means keeping it readable, not making it fit. And the page itself must never scroll sideways - only the figure's own container.
2 · Why can you not produce a dark-mode chart by inverting the light one?
It is the same eight hues, moved along their own ramps until each passes against the dark surface - identity stays stable, the steps change. Then re-run the checks with the dark surface. If you cannot maintain two palettes properly, one validated light palette beats a light one plus an unchecked inversion.
3 · What should a chart's alt text say?
"A horizontal bar chart with four bars" describes the picture, and the picture is not what the reader wanted. "Ethiopia Guji earns most at $41,200, 21 percent above Kenya Nyeri - full figures in the table below" gives the finding, the scale and the route to detail. The table is necessary and it is not a substitute for saying what the chart found.
What this session teaches, and where it came from
Every fact on this page, and its verification tier, is recorded in the course's source map.
Session 6 cheat sheet · pin this
Six sessions and one dataset, from a written question to a chart that is proportional, legible, colour-safe and publishable in four places. The thing you can do now that you could not do at session 1 is settle an argument about a chart with a number - the lie factor, the contrast ratio, the colour separation - and spend the remaining disagreement on the parts that genuinely are judgement. Next: learn-visual-storytelling-with-phoebe, which takes a set of these and turns them into something somebody acts on.