Colour Contrast – The Easiest Accessibility Win Hiding In Plain Sight
Understand the importance of colour contrast for web accessibility and learn how to get it right.
Oops! We could not locate your form.
Understand the importance of colour contrast for web accessibility and learn how to get it right.
I’ve lost count of the number of design reviews I’ve sat in where someone drags a lovely light-grey paragraph onto a white background and everyone nods along because it ‘looks clean’. It does look clean, but it also might be unreadable or at least very hard to read for a chunk of the people trying to use it.
Colour contrast is one of those accessibility issues that sounds small. It’s ‘just’ a colour choice, right? But it’s consistently the single most common accessibility failure on the web, year after year. So I wanted to write down what I know about it, what WCAG actually asks for, why it matters more than most teams assume, and how to get it right without turning your interface into a black-and-white legal document.
Every year, WebAIM scans the homepages of the top one million websites and reports back on what’s broken. Low contrast text has topped that list for seven years running, and it’s not getting better. In the most recent report, low-contrast text below the WCAG AA threshold was found on 83.9% of home pages, up from 79.1% the year before (which is disheartening). The average page had 34 separate instances of it.
Read that again. On the vast majority of sites on the internet, someone somewhere put text on the screen that a meaningful number of visitors literally cannot read comfortably. It’s not some rare edge case, it’s closer to being the default state of the web.
Yet it’s an easy problem to fix, at least when compared to a lot of other accessibility issues found on websites. You don’t need to rebuild your navigation or rewrite the ARIA markup for this one, you need to pick a slightly darker grey.
Colour and contrast issues aren’t just about a small niche of screen reader users (not that we should be discounting that group either).
They affect:
That last point is worth sitting with. Accessibility is often framed as ‘designing for disabled users’ and that’s true and important, but good contrast makes things easier for literally everyone. Nobody has ever complained that text was too easy to read.
But it’s also not one uniform need. Most of this list needs more contrast to read comfortably. The autism/migraine/visual-stress group above needs it dialled back rather than pushed to the maximum. WCAG’s contrast criteria set a floor for the first group, but say nothing about a ceiling for the second. So it is worth keeping in mind rather than assuming ‘more contrast’ is always the safer choice.
WCAG’s AA contrast rules live mainly under Success Criterion 1.4.3 (Contrast Minimum) and 1.4.11 (Non-text Contrast), plus 1.4.6 for the stricter AAA level.
Here’s the short version:
Text contrast (WCAG 2.x, Level AA – the level most legal and organisational standards target):
Non-text contrast (Level AA):
Enhanced contrast (Level AAA, stricter, not usually required but good practice for critical content):
Separately from contrast ratios, there’s Success Criterion 1.4.1 (Use of Color), which is easy to forget. Don’t use colour as the only way to convey information. If your form marks errors purely by turning the border red, or your chart distinguishes categories purely by hue, someone with colour vision deficiency (or a black-and-white printout, or a poor screen) loses that information entirely.
A few things I keep coming back to:
1. Check contrast early, not at the end – Contrast is far easier to fix in a design file than after a component that is in production and been copy-pasted into forty places. Build your colour palette against the ratios above from day one (in your brand guidelines for web ideally).
2. Use a proper contrast checker, not your eyes – Our eyes are bad at judging this consistently. Screen calibration, lighting, and fatigue all skew perception. WebAIM’s Contrast Checker is free and simple. Design tools like Figma have plugins (Stark is a popular one) that flag failures inline. Chrome DevTools also has a contrast ratio readout built into its colour picker.
3. Don’t just check body text – Placeholder text, disabled states, form field borders, focus indicators, icon-only buttons, and chart labels are the things people forget. They’re covered by WCAG too, and they’re the ones that fail most often in real audits.
4. Pair colour with a second cue – For errors, use an icon and text, not just a red border. For charts, use patterns or labels alongside colour. For links in body text, keep the underline, as colour alone isn’t enough to signal that ‘this is clickable’.
5. Test with actual colour blindness simulation – Tools like Coblis, RGBlind, the Chrome DevTools vision deficiency emulator, or Sim Daltonism on Mac, let you see your interface the way a meaningful percentage of your users actually will. It’s a genuinely humbling five minutes.
6. Dark mode isn’t automatically accessible – Flipping your palette for dark mode can quietly break contrast ratios you’d already fixed for light mode. Check both themes independently, as they’re not the same problem solved twice.
7. Remember large text gets a break, but don’t lean on it – The 3:1 threshold for large text exists because bigger glyphs are inherently easier to resolve, not because large text matters less. Don’t use “well, it’s a big heading” as an excuse for a washed-out brand colour.
Automated tools will catch most contrast problems for you, but it’s worth knowing what each one is actually good at:
Automated tools are a starting point, not the finish line. They can tell you a ratio is mathematically fine and still miss a real problem (text sitting over a busy photo, a gradient that dips below threshold in one spot, a focus outline that disappears on hover). A quick manual check can catch what tools can miss:
None of this requires special equipment or specialist training. It’s mostly a matter of building the habit of actually looking, rather than trusting that a design token named ‘text-secondary’ is automatically fine.
I want to be careful not to leave the impression that if you fix contrast, you’ve ‘done’ accessibility, “completed it mate”. You haven’t. You’ve fixed the most commonly broken thing, which is genuinely valuable, but it’s a small piece of what WCAG covers.
WCAG 2.2 contains 87 success criteria in total, organised under four principles – Perceivable, Operable, Understandable, and Robust (POUR). Colour and contrast sit entirely within the first of those. The other three cover things like:
A site can have perfect contrast ratios everywhere and still be completely unusable for someone navigating by keyboard, or someone whose screen reader hits a button with no accessible name, or someone who can’t parse a wall of jargon in an error message.
Contrast is popular to talk about partly because it’s visual and easy to demonstrate, and partly because automated tools catch it reliably, but the accessibility issues automated tools can’t catch (confusing navigation, unclear instructions, missing keyboard support, ARIA that lies about what’s on screen) tend to be at least as disruptive, if not more so, and they need actual manual testing with real assistive technology to find.
So treat this post as a solid, high-leverage starting point, not a checklist you can tick off and move on from.
Contrast failures persist not because they’re hard to understand, but because they’re easy to deprioritise. A pale grey looks more ‘premium’ in a mockup, nobody in the room has a vision impairment, and the ratio math feels like someone else’s job. But the numbers make it clear this isn’t a fringe concern. It’s the most common thing wrong with websites today, and it’s one of the few accessibility issues you can fix with a hex code change rather than deeper development.
If you only take two things from this:
First – before you push a design into production, run your actual colour pairs (text, icons, borders, statesA) through a contrast checker, then do the five-minute manual pass above.
Second – don’t let fixing contrast feel like the finish line. It’s the easiest win on a much longer list, and the rest of that list (keyboard access, screen reader support, plain language) is where a lot of the harder, more important work still lives.

Is It Time For A Website Redesign?
If you’d like to learn more about our website redesign approach and if it could be a good fit for your business, drop us an email or give us a call.
