
accessibility-design
by letsgomaslow
Think MCP
SKILL.md
name: accessibility-design description: Ensure WCAG 2.1 AA compliance in all frontend designs. Use this skill when building any user interface to guarantee visibility, contrast, keyboard navigation, and screen reader support.
Accessibility Design Skill
Color Contrast Requirements (WCAG AA)
| Element Type | Minimum Ratio | Example |
|---|---|---|
| Normal text (<18px) | 4.5:1 | Dark gray #374151 on white |
| Large text (18px+ or 14px bold) | 3:1 | Medium gray #6b7280 on white |
| UI components & graphics | 3:1 | Borders, icons, focus rings |
Testing: Use browser DevTools or webaim.org/resources/contrastchecker
Safe Dark Mode Combinations:
- Text on dark: Use #e5e7eb (gray-200) minimum, #f9fafb (gray-50) preferred
- NEVER use: #9ca3af (gray-400) or darker for body text on dark backgrounds
Maslow AI: Use
#FFFFFFon Dark Blue#121D35and Purple#401877. Use#333333on Teal#6DC4AD, Pink#EE7BB3, and Orange#F3A326. Seemaslow-brandskill for full contrast table.
Focus States
Required for ALL interactive elements:
:focus-visible {
outline: 2px solid var(--color-accent);
outline-offset: 2px;
}
/* Never do this without replacement */
/* :focus { outline: none; } ← WRONG */
Maslow AI: Use Teal
#6DC4ADfor focus rings (--state-focus-ringinmaslow-brand).
Tab order must be:
- Logical (follows visual flow)
- Complete (all interactive elements reachable)
- Indicated (visible focus ring)
Semantic HTML Structure
Required landmarks:
<header role="banner">
<nav role="navigation" aria-label="Main">
<main role="main">
<aside role="complementary">
<footer role="contentinfo">
Heading hierarchy:
- One
<h1>per page - Sequential: h1 → h2 → h3 (no skipping)
- Descriptive, not generic ("Features" not "Section 2")
ARIA Labels
Interactive elements need labels:
<!-- Icon-only buttons -->
<button aria-label="Close menu">
<svg>...</svg>
</button>
<!-- Links with non-descriptive text -->
<a href="/docs" aria-label="Read the documentation">Learn more</a>
<!-- Form inputs -->
<input type="email" aria-label="Email address" placeholder="you@example.com">
Motion Safety
Always include:
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}
Animation rules:
- No auto-playing animations longer than 5 seconds
- Provide pause/stop controls for persistent motion
- Avoid flashing content (max 3 flashes/second)
Images & Icons
All images need alt text:
<!-- Informative -->
<img src="chart.png" alt="Sales increased 40% in Q4 2024">
<!-- Decorative (hide from screen readers) -->
<img src="decoration.svg" alt="" role="presentation">
<!-- SVG icons -->
<svg aria-hidden="true">...</svg>
<span class="sr-only">Menu</span>
Screen Reader Utilities
Include in CSS:
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
Checklist Before Shipping
- All text meets contrast requirements
- Focus indicators visible on all interactive elements
- Keyboard navigation works (Tab, Enter, Escape, Arrows)
- Heading hierarchy is sequential
- Images have alt text
- ARIA labels on icon-only buttons
- Reduced motion media query included
- No content relies solely on color to convey meaning
Brand Integration
For Maslow AI projects, reference the maslow-brand skill for:
| Element | Maslow Token |
|---|---|
| Focus ring | --state-focus-ring: #6DC4AD |
| Dark background | --dark-background: #121D35 |
| Text on dark | --dark-text-primary: #FFFFFF |
| Text on light | --light-text-primary: #333333 |
Verified Contrast Pairs (from maslow-brand):
- ✅ White
#FFFFFFon Purple#401877— 10.5:1 - ✅ White
#FFFFFFon Dark Blue#121D35— 15.2:1 - ✅ Dark
#333333on Teal#6DC4AD— 4.8:1 - ✅ Dark
#333333on Pink#EE7BB3— 4.5:1
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon