color-accessibility
Design color palettes that are accessible to all users including those with color blindness. Ensure sufficient contrast, meaningful use of color, and inclusive design.
$ 安裝
git clone https://github.com/aj-geddes/useful-ai-prompts /tmp/useful-ai-prompts && cp -r /tmp/useful-ai-prompts/skills/color-accessibility ~/.claude/skills/useful-ai-prompts// tip: Run this command in your terminal to install the skill
SKILL.md
name: color-accessibility description: Design color palettes that are accessible to all users including those with color blindness. Ensure sufficient contrast, meaningful use of color, and inclusive design.
Color Accessibility
Overview
Accessible color design ensures all users, including those with color vision deficiency, can access and understand information.
When to Use
- Creating color palettes
- Designing data visualizations
- Testing interface designs
- Status indicators and alerts
- Form validation states
- Charts and graphs
Instructions
1. Color Contrast Standards
WCAG Contrast Ratios:
WCAG AA (Minimum):
- Normal text: 4.5:1
- Large text (18pt+): 3:1
- UI components & graphical elements: 3:1
- Focus indicators: 3:1
WCAG AAA (Enhanced):
- Normal text: 7:1
- Large text: 4.5:1
- Better for accessibility
---
Testing Contrast:
Tools:
- WebAIM Contrast Checker
- Color Contrast Analyzer
- Figma plugins
- Browser DevTools
Formula (WCAG):
Contrast = (L1 + 0.05) / (L2 + 0.05)
Where L = relative luminance
Example Pairs:
Good (Pass AA):
- Black (#000000) on White (#FFFFFF) = 21:1 ✓
- White on Dark Blue (#003366) = 12.6:1 ✓
- Dark Gray (#333333) on Light Gray (#EEEEEE) = 10:1 ✓
Poor (Fail):
- Light Gray (#CCCCCC) on White (#FFFFFF) = 1.3:1 ✗
- Yellow (#FFFF00) on White (#FFFFFF) = 1.07:1 ✗
2. Color Vision Deficiency Simulation
# Design for color vision deficiency
class ColorAccessibility:
COLOR_DEFICIENCY_TYPES = {
'Protanopia': 'Red-blind (1% male)',
'Deuteranopia': 'Green-blind (1% male)',
'Tritanopia': 'Blue-yellow blind (very rare)',
'Monochromacy': 'Complete color blindness (very rare)'
}
def simulate_vision_deficiency(self, color, deficiency_type):
"""Simulate how color appears to different eyes"""
# Color blind simulation
simulated_colors = {
'normal': color,
'protanopia': self.apply_protanopia_filter(color),
'deuteranopia': self.apply_deuteranopia_filter(color),
'tritanopia': self.apply_tritanopia_filter(color)
}
return simulated_colors
def check_palette_accessibility(self, color_palette):
"""Validate entire palette for accessibility"""
issues = []
# Check contrast ratios
for color_pair in self.generate_pairs(color_palette):
contrast = self.calculate_contrast(color_pair[0], color_pair[1])
if contrast < 4.5:
issues.append({
'type': 'Low contrast',
'colors': color_pair,
'ratio': contrast,
'severity': 'Critical'
})
# Check color blind differentiation
for deficiency in self.COLOR_DEFICIENCY_TYPES:
simulated = self.simulate_for_deficiency(color_palette, deficiency)
if not self.are_colors_distinguishable(simulated):
issues.append({
'type': 'Color blindness',
'deficiency': deficiency,
'severity': 'High'
})
return {
'palette': color_palette,
'issues': issues,
'is_accessible': len(issues) == 0,
'recommendations': self.generate_recommendations(issues)
}
def generate_recommendations(self, issues):
"""Suggest palette improvements"""
return [
'Use patterns or icons to differentiate (not just color)',
'Increase contrast ratios',
'Use tested accessible color combinations',
'Test with color blindness simulator before launch'
]
3. Accessible Color Usage
Color Usage Guidelines:
Status Indicators:
Error:
Color: #D32F2F (red)
Contrast: 4.5:1 minimum
Additional: Error icon, text "Error"
Don't: Use ONLY red, no other indication
Success:
Color: #388E3C (green)
Contrast: 4.5:1 minimum
Additional: Checkmark icon, text "Success"
Don't: Use ONLY green
Warning:
Color: #F57C00 (orange)
Contrast: 4.5:1 minimum
Additional: Warning icon, text "Warning"
Don't: Use ONLY orange
Info:
Color: #1976D2 (blue)
Contrast: 4.5:1 minimum
Additional: Info icon, text "Info"
Don't: Use ONLY blue
---
Data Visualization:
Charts & Graphs:
- Use 8+ color combinations for color blindness
- Include patterns or textures
- Label elements directly (not legend only)
- Use colorblind-friendly palettes
Recommended Palettes:
- ColorBrewer (designed for accessibility)
- Okabe-Ito palette
- Paul Tol colors
Heat Maps:
- Sequential palettes only
- Avoid red-green combinations
- Test with simulator
---
UI Component States:
Button States:
- Default: Primary color
- Hover: Slightly darker
- Disabled: Gray with reduced contrast
- Focus: Outline indicator (not color alone)
- Active: Darker shade
Form Validation:
- Invalid: Red + error icon + message
- Valid: Green + checkmark icon (optional)
- Required: No special color, use text label
Interactive Elements:
- Focus: Visible outline or ring
- Selected: Checkmark or checkmark icon + color
- Hover: Underline + color change
- Don't: Use color alone to indicate state
4. Testing & Validation
// Test color accessibility
class ColorAccessibilityTesting {
testColorPalette(palette) {
return {
contrast_test: this.validateContrast(palette),
colorblind_test: this.simulateColorBlindness(palette),
usage_test: this.testColorUsage(palette),
tools_used: [
'WebAIM Contrast Checker',
'Color Oracle simulator',
'WAVE accessibility checker'
]
};
}
validateContrast(palette) {
const results = [];
for (let color of palette) {
const contrast = this.calculateLuminance(color);
results.push({
color: color,
luminance: contrast,
passes_aa: contrast >= 4.5,
passes_aaa: contrast >= 7.0
});
}
return results;
}
simulateColorBlindness(palette) {
return {
protanopia: this.convertToProtanopia(palette),
deuteranopia: this.convertToDeuteranopia(palette),
tritanopia: this.convertToTritanopia(palette),
all_distinguishable: this.checkDistinguishability(palette)
};
}
}
Best Practices
✅ DO
- Ensure 4.5:1 contrast minimum (WCAG AA)
- Test with color blindness simulator
- Use patterns or icons with color
- Label states with text, not color alone
- Test with real users with color blindness
- Document color usage in design system
- Choose accessible color palettes
- Use sequential colors for ordered data
- Validate all color combinations
- Include focus indicators
❌ DON'T
- Use color alone to convey information
- Create low-contrast text
- Assume users see colors correctly
- Use red-green combinations
- Forget about focus states
- Mix too many colors (>5-8)
- Use pure red and pure green together
- Skip contrast testing
- Assume AA is sufficient (AAA better)
- Ignore color blindness in testing
Color Accessibility Tips
- 8% of males have red-green color blindness
- Deuteranopia and protanopia are most common
- Always test with simulator (Color Oracle, Coblis)
- Use patterns to differentiate, not just color
- Test colors in context (not in isolation)
Repository

aj-geddes
Author
aj-geddes/useful-ai-prompts/skills/color-accessibility
25
Stars
1
Forks
Updated1w ago
Added1w ago