Skip to content
ForgePlug — Logo
All resources
Design Guides

Color Contrast and Accessibility: Making Sure Everyone Can Read Your Design

WCAG contrast ratios determine whether text is readable for people with visual impairments. Here's what the ratios mean and how to check them.

5 min read · By ForgePlug Team · Published August 20, 2026

Approximately 300 million people worldwide have color vision deficiency, and another 2.2 billion have some form of vision impairment. Designing with sufficient color contrast isn't just a nice-to-have — it's the difference between a site that works for everyone and one that excludes a significant portion of your audience. The good news: checking contrast takes seconds, and fixing it usually takes minutes.

What contrast ratios mean

  • WCAG AA (minimum) — 4.5:1 for normal text, 3:1 for large text (18pt+ or 14pt bold). This is the legal minimum for most accessibility standards.
  • WCAG AAA (enhanced) — 7:1 for normal text, 4.5:1 for large text. Higher standard, better readability for users with low vision.
  • Non-text elements — icons, borders, and focus indicators need at least 3:1 contrast against adjacent colors.

How to check contrast

  • Browser DevTools — Chrome and Firefox both show contrast ratios in the color picker. Hover over any color and the ratio appears.
  • Online contrast checkers — enter foreground and background colors to get the exact ratio and pass/fail status.
  • Design tools — Figma, Sketch, and Adobe XD all have plugins that flag contrast failures across your entire design.

Common contrast mistakes

  • Placeholder text too light — input placeholders at 25% opacity on white fail contrast badly. Users with low vision can't see what to type.
  • Disabled buttons — gray-on-gray text that's unreadable. Disabled states still need to be legible.
  • Links that rely only on color — if links are blue text on a white background with no underline, color-blind users can't distinguish them from surrounding text.
  • Gradients as backgrounds — a gradient might have sufficient contrast at the dark end but fail at the light end. Test both extremes.
  • Status colors without labels — red for errors, green for success — 8% of men are red-green color-blind. Always pair color with text or an icon.

Color is not the only signal

Never use color alone to convey meaning. An error state should be red AND have an error icon AND text saying 'Error'. A success state should be green AND have a checkmark AND text saying 'Success'. This isn't extra work — it's the baseline for inclusive design.

Build accessible gradients

ForgePlug's CSS Gradient Generator previews your gradient live, so you can check contrast at every point along the transition before exporting.

Open CSS Gradient Generator

What the ratio actually measures

A contrast ratio compares the relative luminance of two colours — roughly, how much light each one emits — on a scale from 1:1 (identical) to 21:1 (pure black on pure white). Crucially, luminance is not the same as how bright a colour looks to you. The formula weights the green channel most heavily and the blue channel least, because human vision is far more sensitive to green.

That weighting explains results designers often find counter-intuitive. Pure blue text on white passes comfortably, because blue contributes very little luminance and therefore sits far from white. Pure yellow on white fails badly despite looking like a strong colour, because yellow is high-luminance and sits close to white. Judging contrast by eye systematically misleads in both directions, which is why the number matters.

Where the requirement changes

The large-text exemption is more useful than it first appears. Text at 18pt and above, or 14pt and above when bold, only needs 3:1 rather than 4.5:1 — because larger letterforms have thicker strokes and are easier to resolve at lower contrast. That gives real design latitude for headings and display type that body copy does not get.

The requirement people miss most often is non-text contrast: interface components and meaningful graphics need 3:1 against what sits next to them. In practice that means input borders, toggle states, chart series, and — the one that fails constantly — focus indicators. A focus ring that is a subtle tint of the background may look elegant and leaves keyboard users unable to see where they are on the page.

Two things the ratio does not tell you

First, it says nothing about hue confusion. Two colours can have an excellent contrast ratio and still be indistinguishable to someone with deuteranopia, because the ratio compares lightness rather than colour. A red and a green of similar luminance will pass a contrast check and look like the same colour to a substantial number of people — which is exactly why colour must never be the only signal carrying meaning.

Second, very high contrast is not automatically better. Pure black on pure white at 21:1 causes visible halation for some readers, particularly people with dyslexia or astigmatism, where letters appear to shimmer against the background. Many design systems deliberately use a very dark grey on an off-white rather than absolute black on absolute white — still comfortably above AA, and easier to read for a long stretch.

Check both themes, and check text over images

A palette that passes in light mode can fail in dark mode, since the relationships invert rather than mirror. Text over a photograph is the other common failure — the ratio changes across the image, so it needs a scrim, an overlay, or a solid panel behind the text rather than a spot check against one pixel.

More Design Guides