Skip to content

Plain guides to WCAG, alt text and screen readers

Contrast checker

Color contrast

WCAG 1.4.1 Use of color

WCAG 1.4.1: never let color be the only way to show meaning, state or a link.

  • Level A
  • WCAG 2.0
  • Perceivable
  • Checked 7 Nov 2026

WCAG 1.4.1 says color must never be the only visual way to show information, an action, a prompt or the difference between two things, so every red error, green status or blue link needs a second cue such as text, an icon, a pattern or an underline. It is a level A rule and has been in WCAG since version 2.0.

It is not a contrast rule. A pair of colors can have perfect contrast and still fail here, because the problem is that some people cannot tell the two colors apart at all.

Quick facts

  • Level

    A
  • Added in

    WCAG 2.0
  • Rule

    Color may support meaning, never carry it alone
  • Links in text

    Underline them, or give 3:1 against body text plus a non-color cue on hover and focus
  • Quick test

    Turn on a grayscale filter and see what still makes sense
  • Helps

    Color blind people, low vision users, anyone on a poor screen or a printout

The rule behind WCAG 1.4.1, in plain words

WCAG names four jobs that color must not do on its own: carrying information ("items in red are sold out"), showing an action (a link that is blue and nothing else), asking for a response ("fill in the red fields") and telling elements apart (two lines on a chart in red and green). In each case you may keep the color. You just add something that works without it.

The rule is about vision, not code. A screen reader user does not see the color either way, which is handled by other rules such as giving the text of an error message. This rule protects people who look at the page but cannot rely on hue.

Hue is the name of a color, such as red or blue. Lightness is how dark or pale it is. Many color blind people can still see differences in lightness, which is why the link rule below uses a contrast number.

Everyday failures and how to repair them

Use of color failures and fixes
What we seeWhy it failsRepair
Required form fields shown only by a red labelThe red is the only signalAdd the word "required" or an asterisk explained at the top of the form
A field with an error gets a red border and nothing elseColor alone shows the errorAdd an error icon and a written message beside the field
Stock status as a green or red dotDot shape is the same for bothWrite "In stock" or "Sold out" next to the dot
Chart with a color key onlyReaders have to match huesLabel lines directly, or add patterns and marker shapes
Current page in the menu shown in a different colorNo other markerAdd an underline bar, bold weight or an icon, plus aria-current in the code
Links in body text with no underline in a similar colorLink and text look alikeUnderline the links

Red and green are a famous problem pair. The red #d32f2f and the green #2e7d32 differ by only 1.02:1 in lightness, so on a grayscale screen they look the same shade.

Who notices when color carries meaning

Color vision deficiency affects roughly 1 in 12 men and 1 in 200 women, most often making reds and greens hard to tell apart. Some people see no color at all. People with low vision, those using high contrast or inverted color settings, and anyone reading a black and white printout lose color information too. Even users with typical vision miss color changes on a dim phone screen in daylight.

Checking a page in grayscale

  1. Turn on a grayscale filter. On Windows open Settings, Accessibility, Color filters; on a Mac open System Settings, Accessibility, Display, Color filters. In Chrome or Edge you can instead open developer tools, then the Rendering panel, and choose a vision deficiency to emulate.
  2. Read the page as a new visitor. Can you find every link in the body text?
  3. Submit a form with mistakes. Can you tell which fields are wrong and which are required?
  4. Look at every chart, map key, status badge and calendar. Is anything only told apart by hue?
  5. Turn the filter off and confirm each fix still looks right in color.

The filter does not catch everything. Also read the page for instructions like "click the green button", which point to color in words. That wording is also covered by 1.3.3 Sensory characteristics.

Before and after: an error message

Fails: the red border is the only sign of a problem.

<input id="email" class="error">
.error { border-color: #d32f2f; }

Passes: the error is written out and tied to the field.

<label for="email">Email (required)</label>
<input id="email" aria-describedby="email-err" aria-invalid="true">
<p id="email-err">Error: enter an email address like name@example.com</p>

The red border can stay. The words do the real work, and they also satisfy 3.3.1 Error identification.

Use of color versus contrast and other rules

People often mix up this rule with contrast. They answer different questions:

  • This rule asks: is there a cue other than hue? It is level A, so it applies even to the most basic conformance claim.
  • Text contrast asks: is the text dark or light enough against its background?
  • Non-text contrast asks: can people see the edges of controls, icons and chart parts?

Fixing one does not fix the others. A green and red chart can pass both contrast rules and still fail here. Use the contrast checker for the numbers, and the grayscale test for this rule. W3C's Understanding Use of Color page lists more examples.

Questions people ask

What does use of color mean in WCAG?

Criterion 1.4.1 lets color help, but never as the sole signal for meaning, actions, prompts or differences. Add text, icons, patterns or underlines alongside it.

Do links have to be underlined for WCAG 1.4.1?

Not always, but it is the easiest way to pass. Without an underline, the link color must differ from the body text by 3:1 or more and a visible cue such as an underline on hover and on keyboard focus.

Is red text for errors a failure?

Red text is fine if the words themselves explain the error. It fails when the only change is the color, such as a field label turning red with no message.

Do navigation links need underlines too?

Usually not. Links in a menu, a footer list or a button bar are clearly links from their layout. The rule is aimed at links mixed into running text.

Does 1.4.1 apply to charts?

Yes. If readers must match chart colors to a legend, add direct labels, patterns or different marker shapes, or provide the data in a table.