Overview
Stride Design System is built on React Aria Components by Adobe, ensuring all components meet WCAG 2.1 Level AA standards out of the box. No additional accessibility work required. What you get automatically:- Full keyboard navigation
- Screen reader support (ARIA labels, roles, states)
- Focus management
- Touch-friendly targets (44px minimum)
- Color contrast compliance
- SSR compatibility
React Aria Components Foundation
Every interactive component extends React Aria primitives:Keyboard Navigation
All components support standard keyboard patterns:Button & Links
Button & Links
Checkbox & Radio
Checkbox & Radio
| Key | Action |
|---|---|
Space | Toggle checkbox / Select radio |
Tab | Move focus to next control |
Arrow keys | Navigate radio group |
Select & Combobox
Select & Combobox
| Key | Action |
|---|---|
Enter / Space | Open dropdown |
Arrow Up/Down | Navigate options |
Enter | Select option |
Escape | Close dropdown |
Home / End | Jump to first/last option |
Type | Filter options (typeahead) |
Dialog & Modal
Dialog & Modal
| Key | Action |
|---|---|
Escape | Close dialog |
Tab | Cycle through focusable elements |
Tabs
Tabs
| Key | Action |
|---|---|
Arrow Left/Right | Navigate tabs |
Home / End | Jump to first/last tab |
Tab | Move focus to tab panel |
Screen Reader Support
Components automatically announce their state and changes:Focus Management
Stride uses CSS custom properties for consistent focus indicators:Focus Ring System
- Light Mode
- Dark Mode
- Blue ring (
--brand-primary-500) - 2px width
- 1px offset from element
- Smooth transition
Color Contrast
All brand themes meet WCAG AA contrast requirements:Text Contrast (4.5:1 minimum)
Text Contrast (4.5:1 minimum)
| Token | Light Mode | Dark Mode | Ratio |
|---|---|---|---|
--text-primary | #1e293b on #ffffff | #f8fafc on #1e293b | 12.6:1 |
--text-secondary | #475569 on #ffffff | #cbd5e1 on #1e293b | 7.2:1 |
--text-tertiary | #64748b on #ffffff | #94a3b8 on #1e293b | 4.9:1 |
Interactive Elements (3:1 minimum)
Interactive Elements (3:1 minimum)
| Element | Background | Contrast |
|---|---|---|
| Primary Button | --interactive-primary | ✅ 4.7:1 |
| Secondary Button | --interactive-secondary | ✅ 3.2:1 |
| Input Border | --border-primary | ✅ 3.1:1 |
| Focus Ring | --border-focus | ✅ 3.8:1 |
Status Colors
Status Colors
| Status | Light | Dark | Contrast |
|---|---|---|---|
| Success | #15803d on #f0fdf4 | #4ade80 on #14532d | ✅ 4.5:1+ |
| Warning | #b45309 on #fffbeb | #fbbf24 on #78350f | ✅ 4.5:1+ |
| Danger | #b91c1c on #fef2f2 | #f87171 on #7f1d1d | ✅ 4.5:1+ |
Touch Targets
All interactive elements meet the 44x44px minimum touch target size:Touch Target Sizing
All interactive components have sufficient padding/margin to meet the 44px touch target, even if the visual size appears smaller.
SSR Compatibility
Stride is fully compatible with server-side rendering:- Ensures consistent IDs between server and client
- Prevents hydration mismatches
- Required for React Aria Components to work with SSR
Semantic HTML
Components render semantic HTML5 elements:Form Accessibility
Forms are fully accessible with proper labels and validation:Animations & Motion
Animations respectprefers-reduced-motion:
Motion Preferences
Testing Accessibility
Keyboard Testing
Navigate your entire app using only the keyboard:
Tabthrough all interactive elementsEnter/Spaceto activate buttonsArrow keysin menus and selectsEscapeto close modals
Screen Reader Testing
Test with actual screen readers:
- macOS: VoiceOver (Cmd + F5)
- Windows: NVDA (free) or JAWS
- iOS: VoiceOver (Settings > Accessibility)
- Android: TalkBack (Settings > Accessibility)
Color Contrast Testing
Use browser DevTools:
- Chrome DevTools: Elements > Styles > Color picker shows contrast ratio
- Firefox: Accessibility Inspector
- Online: WebAIM Contrast Checker
Best Practices
Always provide accessible labels
Always provide accessible labels
Maintain heading hierarchy
Maintain heading hierarchy
Provide form field descriptions
Provide form field descriptions
Use semantic HTML
Use semantic HTML
Resources
React Aria Docs
Official React Aria Components documentation
WCAG 2.1 Guidelines
W3C Web Content Accessibility Guidelines
WAI-ARIA Patterns
ARIA Authoring Practices Guide
WebAIM Resources
Accessibility testing tools and guides
Next Steps
Component Library
Explore accessible components
Theming System
Learn how colors maintain contrast