AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Inclusive Design Patterns

skill-plugin87-full-stack-design-skills-inclusive-design-patterns · by plugin87

Design accessible and inclusive UI patterns that work for everyone, regardless of ability. Use this skill for accessible color combinations, accessible typography, form patterns with proper labeling, motion and animation safety, icon accessibility, accessible interactive components, multilingual design, and inclusive testing strategies. Triggers include: color contrast and colorblind accessibilit…

No reviews yet
0 installs
17 views
0.0% view→install

Install

$ agentstack add skill-plugin87-full-stack-design-skills-inclusive-design-patterns

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-plugin87-full-stack-design-skills-inclusive-design-patterns)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
22d ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Inclusive Design Patterns? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Inclusive Design Patterns

Practical patterns for designing interfaces that work for everyone, including people with disabilities.

Accessibility isn't a nice-to-have feature—it's a core design principle. Inclusive design means designing from the start for people with disabilities, rather than retrofitting later. This benefits everyone: captions help in noisy environments, large text helps when tired, and clear navigation helps when distracted.


Core Principle: Design for Constraints

Who Benefits from Accessible Design?

People with permanent disabilities:

  • Low vision (reduce text size? Problem. Use zoom + readable fonts.)
  • Colorblindness (red/green can't distinguish? Use patterns + labels.)
  • Motor impairments (can't use mouse? Keyboard navigation needed.)
  • Deaf/hard of hearing (video has no captions? Can't understand.)
  • Cognitive differences (complex language? Use clear, simple language.)

People in temporary situations:

  • Broken arm (can't use mouse or type)
  • Temporary vision loss (bright sun, dark room)
  • Noisy environment (can't hear audio)
  • Slow internet (images load slowly)
  • Interrupted attention (loud office)

People in situational constraints:

  • On mobile (small screen, touch, distraction)
  • Older adults (presbyopia, tremor, slower reflexes)
  • Non-native speakers (complex language is harder)
  • Low literacy (jargon and long sentences confusing)

All of the above makes your product better for everyone.


Accessible Color Design

Color Contrast: WCAG Standards

Text must have sufficient contrast to be readable. WCAG defines two levels:

WCAG AA (minimum recommended):

  • Regular text ( 75 chars):**
This is very long line length text that makes it hard for the reader to track from the end of one line to the beginning of the next, especially for people with low vision or dyslexia who might lose their place.

Result: Hard to track, tiring.

Line Height for Readability

Minimum line height: 1.5 (150%).

body {
  line-height: 1.5; /* 150% of font size */
  /* For 16px font, this is 24px line height */
}

/* Heading can be tighter */
h1 {
  line-height: 1.3; /* 130% of font size */
}

/* Very small text needs more space */
small, .caption {
  line-height: 1.6; /* 160% of font size */
}

Letter Spacing for Readability

For people with dyslexia, increased letter spacing helps.

/* Default (tight) */
.text {
  letter-spacing: 0;
}

/* Better for readability */
.text {
  letter-spacing: 0.05em; /* Slight increase */
}

/* Dyslexia-friendly */
.text.dyslexia-friendly {
  letter-spacing: 0.1em;
  word-spacing: 0.16em;
  line-height: 1.8;
}

Font Choice for Readability

Good fonts for readability:

  • Sans-serif: Inter, Arial, Helvetica (clean, modern)
  • Serif: Georgia, Times New Roman (traditional, familiar)
  • Dyslexia-friendly: Dyslexie, Open Dyslexic (specialized)

Avoid:

  • Thin/ultra-light weights (hard to read)
  • All-caps (harder to scan)
  • Decorative fonts for body text

Avoiding Text Justification

Justified text (align both edges) creates uneven spacing that's hard to read.

❌ Justified:
The quick brown fox jumps  over  the  lazy  dog
to escape the hunters and make a great escape.

✅ Left-aligned:
The quick brown fox jumps over the lazy dog to
escape the hunters and make a great escape.

CSS:

/* Bad: justified text */
body { text-align: justify; }

/* Good: left-aligned (natural reading flow) */
body { text-align: left; }

Accessible Forms

Proper Label Association

Labels must be linked to inputs with ` element and for` attribute.


Email

Email

  Email
  

Why it matters:

  • Screen readers announce: "Email input"
  • Clicking label focuses input (larger tap target on mobile)
  • Keyboard navigation works correctly

Required Field Indicators

Indicate required fields clearly, with text + visual.


Email *

Email *

* indicates required field
Email *

Error Messages

Error messages must be:

  1. Visible (red text, icon)
  2. Associated with input (linked with aria-describedby)
  3. Clear and actionable (not vague)

Email

  Please enter a valid email (e.g., user@example.com)

  input[aria-invalid="true"] {
    border: 2px solid #ef4444;
  }
  #email-error {
    color: #ef4444;
    font-size: 14px;
    margin-top: 4px;
  }

Helper Text & Hints

Provide context for complex fields.

Password

  At least 8 characters, including uppercase, lowercase, and number

Motion & Animation Accessibility

Prefers-Reduced-Motion

Some users experience motion sickness, vertigo, or seizures from animations. Respect prefers-reduced-motion setting.

CSS media query:

/* Animated (default) */
.card {
  transition: transform 300ms ease;
}

.card:hover {
  transform: translateY(-4px);
}

/* Respect user preference for reduced motion */
@media (prefers-reduced-motion: reduce) {
  .card {
    transition: none; /* Remove animation */
  }

  .card:hover {
    transform: none; /* Remove transform */
  }
}

Users who need this:

  • Vestibular disorders (inner ear issues → motion sickness)
  • Epilepsy (animations can trigger seizures)
  • Migraine (motion can trigger migraines)
  • Autism spectrum (sensory overload from movement)

Testing:

  • Mac: System Preferences → Accessibility → Display → Reduce motion
  • Windows: Settings → Ease of Access → Display → Show animations
  • Chrome DevTools → Rendering → Emulate CSS media feature prefers-reduced-motion

Safe Animation Guidelines

If animations must exist:

Safe:

  • Fade in/out (opacity changes)
  • Color changes
  • Slow transitions (300ms+)
  • Linear motion (predictable)

Avoid:

  • Rapid flashing (> 3 flashes per second = seizure risk)
  • Large parallax effects (disorienting)
  • Auto-playing video/audio
  • Unexpected animations (user didn't trigger)

Auto-Playing Content

Never auto-play video or audio. Users should control.


  

  

Accessible Icons

Icon + Text Labels

Never use icons alone for important functions. Combine with text.


🔍

  🔍
  Search

  🔍

SVG Icon Accessibility

SVG icons need labels.


  

  Search
  

  

Accessible Interactive Components

Buttons

Buttons must be:

  • Keyboard-focusable (visible focus indicator)
  • Proper semantic element (not styled div)
  • Large enough (48px minimum on mobile)
  • Clear label (text or aria-label)

Click me

Click me

×

Links

Links should be distinguishable (underline or color + underline).

/* ❌ Bad: Color only, hard to spot in text */
a {
  color: #2563eb;
  text-decoration: none;
}

/* ✅ Good: Underlined for clarity */
a {
  color: #2563eb;
  text-decoration: underline;
}

/* ✅ Good: Color change on hover/focus */
a {
  color: #2563eb;
  text-decoration: underline;
}

a:hover, a:focus {
  color: #1d4ed8;
  background: #dbeafe;
}

Focus Indicators

All interactive elements need visible focus indicators.

/* ❌ Bad: No focus indicator */
button:focus {
  outline: none;
}

/* ✅ Good: Visible outline */
button:focus {
  outline: 2px solid #2563eb;
  outline-offset: 2px;
}

/* ✅ Good: Custom focus style */
button:focus {
  box-shadow: 0 0 0 3px #dbeafe; /* Blue glow */
}

Multilingual & Internationalization

Language Declaration

Always declare the page language.


  

  Hola mundo
  สวัสดีชาวโลก

Text Direction (Right-to-Left)

Some languages flow right-to-left (Arabic, Hebrew).


  

Readable Language

Use clear, simple language for all users:

  • Non-native speakers
  • People with cognitive differences
  • Older adults
  • People in a hurry

Bad (jargon-heavy): "Utilize our proprietary interface to facilitate seamless integration with your existing infrastructure."

Good (clear, simple): "Connect easily to your current system."


Testing Accessible Designs

Automated Accessibility Audit

Use tools to catch common issues.

Browser tools:

  • Chrome DevTools (Accessibility audit)
  • WAVE browser extension
  • Axe DevTools browser extension

Command-line tools:

  • Pa11y (automated accessibility testing)
  • Lighthouse CI (includes a11y scoring)

Manual Testing

Automated tools catch ~30% of issues. Manual testing catches the rest.

Manual checks:

  • Keyboard navigation (Tab through all interactive elements)
  • Screen reader testing (VoiceOver on Mac, NVDA on Windows)
  • Color contrast (WebAIM Contrast Checker)
  • Colorblind simulation (Chrome DevTools)
  • Form testing (labels, errors, required fields)
  • Focus indicators (visible on all elements)

Real User Testing

Include people with disabilities in testing.

  • Users with low vision
  • Users who are Deaf
  • Users with motor impairments
  • Users with cognitive differences
  • Users who speak English as second language

Their insights catch issues that automated/manual testing misses.


When to Use This Skill

Do use for:

  • Accessible color combinations and contrast
  • Accessible typography sizing and spacing
  • Form design with proper labeling and error handling
  • Motion and animation safety (prefers-reduced-motion)
  • Icon accessibility and labeling
  • Accessible interactive patterns (buttons, links, focus)
  • Multilingual and international design
  • Accessible design testing strategies
  • Inclusive design principles and patterns

Don't use for:

  • Semantic HTML (see web-accessibility-a11y)
  • ARIA implementations (see web-accessibility-a11y)
  • Screen reader optimization (see web-accessibility-a11y)
  • Testing automation frameworks (see qa-testing-visual-regression)
  • Design system architecture (see design-systems-architecture)

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.