← Home ← Codex ← DEBT
Browse by Category
+ added · updated 7d
← Back to glossary

Colour-Blind Accessible Design

Accessibility CSS3 Intermediate
debt(d5/e3/b5/t7)
d5 Detectability Operational debt — how invisible misuse is to your safety net

Closest to 'specialist tool catches it' (d5). Tools like axe, Lighthouse, and colour-contrast-analyser can flag contrast ratio failures and some colour-only information patterns, but they cannot fully detect all cases where colour is the sole differentiator (e.g., colour-coded charts without patterns, or nuanced status indicators). Automated detection catches the common contrast cases but misses many colour-blind-specific issues, keeping this at d5.

e3 Effort Remediation debt — work required to fix once spotted

Closest to 'simple parameterised fix' (e3). The quick_fix is to pair every colour-based indicator with an icon, label, or pattern. This is not a one-line fix (multiple templates, CSS files, and design system tokens may need updating), but it's a well-understood pattern-based fix within individual components rather than an architectural rework. Typically touches several files but each fix is small and formulaic.

b5 Burden Structural debt — long-term weight of choosing wrong

Closest to 'persistent productivity tax' (b5). This applies to all web contexts and must be considered in every UI component that conveys meaning through colour — forms, charts, dashboards, status indicators, navigation states. It's a cross-cutting design principle that every future maintainer and designer must keep in mind. It doesn't define the system's shape (not b7/b9), but it's more than localised since it affects every visual state across the entire frontend.

t7 Trap Cognitive debt — how counter-intuitive correct behaviour is

Closest to 'serious trap — contradicts how a similar concept works elsewhere' (t7). The misconception is precisely that passing WCAG contrast ratio checks means the design is colour-blind accessible. Developers and designers routinely conflate luminance contrast (which WCAG measures) with colour differentiation (which it doesn't). Red on white passes 4.5:1 contrast but fails red-green colour-blind users completely. This directly contradicts the intuition that 'accessible contrast = accessible colour', making it a serious cognitive trap where the 'obvious' validation step gives false confidence.

About DEBT scoring →

Also Known As

colour blindness deuteranopia colour contrast accessible

TL;DR

Design for the 8% of men with colour vision deficiency — pair colour with icons, labels, and patterns; never use colour as the only differentiator.

Explanation

Deuteranopia/protanopia (red-green, 6-8% of men) and tritanopia (blue-yellow) are the main types. Rules: never colour alone for meaning (error = red + icon + text), 4.5:1 contrast for normal text, patterns in charts. Test with Chrome DevTools Vision Deficiencies emulation. WCAG 1.4.1: colour must not be the only visual means of conveying information.

Watch Out

WCAG AA (4.5:1) is a minimum — decorative elements and large text (3:1) have different thresholds; confusing them leads to non-compliant designs that appear to pass.

Common Misconception

Sufficient colour contrast means accessible for colour blind users — contrast ratio measures luminance not colour difference; red on white passes contrast but fails red-green colour blind users.

Why It Matters

A form that only turns invalid fields red is unusable for 8% of men — icons and error text make it universally understandable.

Common Mistakes

  • Red/green only for status
  • Colour-coded charts without patterns
  • Not testing with colour vision simulators

Avoid When

  • Never use red/green alone to indicate success/failure — the most common form of colour blindness (deuteranopia) makes these indistinguishable.
  • Avoid very low contrast text even if it passes colour-blindness checks — low contrast fails users with low vision independently.

When To Use

  • Always pair colour with a secondary indicator (icon, text label, pattern) for any state that carries meaning.
  • Use a contrast checker (WCAG 2.1 AA requires 4.5:1 for normal text) on every colour combination in the design system.
  • Test designs with a colour-blindness simulator (Coblis, Chrome DevTools vision emulation) before handoff.

Code Examples

💡 Note
The bad CSS uses only border colour to distinguish valid/invalid states; the fix adds an icon and text label so the meaning survives in greyscale or with colour-blindness filters applied.
✗ Vulnerable
/* Only colour:
.valid { border-color: green; }
.invalid { border-color: red; }
✓ Fixed
/* Multiple cues:
.valid .msg::before { content: '✓ '; }
.invalid .msg::before { content: '✗ '; }

Added 16 Mar 2026
Edited 31 Mar 2026
Views 52
Rate this term
No ratings yet
🤖 AI Guestbook educational data only
| |
Last 30 days
0 pings T 0 pings W 1 ping T 0 pings F 0 pings S 0 pings S 0 pings M 0 pings T 0 pings W 1 ping T 3 pings F 0 pings S 1 ping S 0 pings M 0 pings T 1 ping W 0 pings T 0 pings F 0 pings S 0 pings S 0 pings M 0 pings T 0 pings W 0 pings T 0 pings F 0 pings S 0 pings S 0 pings M 0 pings T 0 pings W
No pings yet today
No pings yesterday
Amazonbot 7 Perplexity 7 SEMrush 5 Ahrefs 4 Scrapy 4 Unknown AI 3 Google 2 Claude 1 Bing 1 Meta AI 1
crawler 33 crawler_json 1 pre-tracking 1
DEV INTEL Tools & Severity
🟠 High ⚙ Fix effort: Medium
⚡ Quick Fix
Never use colour as the only way to convey information — pair it with an icon, label, or pattern; test with Chrome DevTools Vision Deficiencies emulator for all colour blind types
📦 Applies To
css CSS3 web
🔗 Prerequisites
🔍 Detection Hints
Status conveyed by colour only without icon or text; chart using only colour differentiation; form validation only showing red border
Auto-detectable: ✓ Yes axe lighthouse colour-contrast-analyser
⚠ Related Problems
🤖 AI Agent
Confidence: High False Positives: Medium ✗ Manual fix Fix: Medium Context: File


✓ schema.org compliant