Lesson 26 of 30
A red dot and a green dot mean nothing to a user who can't tell them apart. Color-only meaning isn't a rare edge case — it's a routine, everyday failure with a routine, well-known fix.
11 min read
Every option explains itself — why the right one is right, and why each wrong one is wrong. Miss one and it comes back later on a spaced-repetition schedule.
Question 1 of 3
A dashboard shows server status as a colored dot: red for down, green for up, with no other distinguishing element. What's the core accessibility problem?
Hints without spoilers, and a plain explanation of why a wrong answer was wrong — answered only from this lesson. Free account, no card.
Sign up freeWhat interviewers actually ask about this, and what a strong answer has to cover.
A strong answer covers
Likely follow-ups
This lesson is not about contrast ratios — that's a separate WCAG success criterion, covered elsewhere in this platform. This one is about a different, equally common failure: conveying meaning through color difference alone, with no second signal backing it up.
A meaningful share of users — commonly cited as affecting a notable percentage of men in particular — have some form of color vision deficiency (most often difficulty distinguishing red from green). For these users, two colors that look obviously different to most people can render as nearly identical. If a status dot is "red means down, green means up" and nothing else distinguishes them, that status is genuinely unreadable to part of your audience — not "harder to read," unreadable.
And color vision deficiency isn't even the only case. Bright sunlight washing out a phone screen, a cheap monitor with poor color reproduction, a grayscale print of a page — all of these degrade color differences for users with completely typical vision. Relying on color alone is a single point of failure that a surprising number of ordinary, everyday conditions can trip.
The fix is one consistent pattern: pair color with a second, non-color signal. An icon, a text label, a pattern, a shape, an underline, a position. Something that survives even when color perception or color rendering is impaired.
// Before — color is the ONLY signal something is wrong
<input
className="border-2 border-red-500"
aria-invalid={hasError}
/>
// After — color, icon, and text all agree
<div>
<input
className="border-2 border-red-500"
aria-invalid={hasError}
aria-describedby="email-error"
/>
{hasError && (
<p id="email-error" className="text-red-600 flex items-center gap-1">
<ErrorIcon aria-hidden="true" />
Enter a valid email address
</p>
)}
</div>
The "before" version tells a color-typical user, glancing quickly, that something's wrong — a red border reads as an error convention almost everyone has learned. But a user who can't distinguish that red from the field's normal border sees nothing different at all. There's no icon to notice, no text to read, no shape change — just a border that may or may not look different depending on exactly how their color vision works. The "after" version adds an icon and explicit error text tied to the input via aria-describedby, so the same information — this field failed validation, here's why — reaches a user regardless of whether the red border itself registers.
The same principle scales up. A required-field asterisk that's just a slightly different shade of red next to black label text is a weak signal for the same reason a status dot is — pair it with (required) in the label, or a distinct icon, not color alone. A multi-line chart distinguishing series only by similarly-toned colored lines has the identical problem at a larger scale — the fix is the same: different dash patterns, distinct markers, or direct labels on each line, not just different hues.
"How would you show an error state without relying on color?" is a common practical accessibility question, and it separates candidates who've internalized "add redundant, non-color signals" as a default habit from those who've only memorized "red means bad" as a design convention.