Overview
The plugin implements accessibility features including keyboard navigation, screen reader support, ARIA labels, focus management, and semantic HTML structure.Keyboard Navigation
All story interactions are fully keyboard accessible:Navigation Controls
- Right Arrow / Space: Next page
- Left Arrow: Previous page
- Home: First page
- End: Last page
- Tab: Navigate interactive elements
- Enter: Activate links and buttons
- Escape: Close modals and attachments
Testing Keyboard Navigation
- Load a story in your browser
- Press Tab to focus on the story
- Use arrow keys to navigate between pages
- Press Tab to focus on interactive elements (links, buttons)
- Press Enter to activate focused elements
On macOS, you may need to enable full keyboard access in System Preferences for full keyboard navigation support in browsers.
Screen Reader Support
Web Stories are compatible with popular screen readers:Supported Screen Readers
- VoiceOver (macOS, iOS) - Built-in
- NVDA (Windows) - Free download
- JAWS (Windows) - Commercial
- TalkBack (Android) - Built-in
- ChromeVox (ChromeOS) - Built-in
ARIA Live Regions
The plugin uses ARIA live regions to announce dynamic content changes (fromdocs/accessibility-guidelines.md:9-17).
ARIA Labels and Roles
All interactive elements include appropriate ARIA attributes:Focus Management
The editor implements proper focus management:- Focus is trapped within modal dialogs
- Focus returns to trigger element when modals close
- Focus indicators are visible on all interactive elements
- Focus order follows logical reading order
- Skip links allow bypassing repetitive content
Alternative Text
Image Alt Text
All images in stories should include descriptive alt text:- Select an image in the editor
- Click the Accessibility tab in the right panel
- Enter descriptive alt text
- Save your story
Writing Good Alt Text
Writing Good Alt Text
- Describe the image content and context
- Keep descriptions concise (aim for under 125 characters)
- Don’t start with “Image of” or “Picture of”
- Include relevant text visible in images
- For decorative images, use empty alt text
alt="" - Avoid redundancy if caption provides same information
Video Captions
For videos in stories:- Provide caption/subtitle files (WebVTT format)
- Upload captions in the video settings
- Enable captions by default for accessibility
Color and Contrast
WCAG Contrast Requirements
Text and interactive elements must meet WCAG 2.1 contrast ratios:- Normal text: Minimum 4.5:1 contrast ratio
- Large text (18pt+): Minimum 3:1 contrast ratio
- UI components: Minimum 3:1 contrast ratio
Checking Contrast
The story editor includes a built-in contrast checker:- Select a text element
- View the color picker
- Check the contrast ratio indicator
- Adjust colors to meet WCAG AA or AAA standards
- WebAIM Contrast Checker
- Colour Contrast Analyzer
- Chrome DevTools Accessibility Inspector
Text Sizing and Readability
Minimum Text Sizes
Follow these guidelines for readable text:- Body text: Minimum 16px (1em)
- Small text: Minimum 14px (0.875em)
- Headings: Scale appropriately from body text
- Line height: 1.4-1.6 for body text
- Line length: 50-75 characters optimal
Font Choices
Choose accessible fonts:- Use sans-serif fonts for body text
- Avoid overly decorative or script fonts
- Ensure sufficient letter spacing
- Don’t rely on font weight alone for emphasis
- Test readability on mobile devices
Animation and Motion
Respecting User Preferences
The plugin respects theprefers-reduced-motion media query:
- Simplified page transitions
- Reduced animation effects
- No auto-playing animations
- Static alternative to animated content
Animation Best Practices
Avoid Seizure Triggers
Avoid Seizure Triggers
- No flashing content faster than 3 times per second
- Avoid large areas of rapid color changes
- Limit parallax and auto-scrolling effects
- Provide pause controls for auto-playing content
Testing for Accessibility
The project follows comprehensive accessibility testing practices (fromdocs/accessibility-testing.md).
Automated Testing
Unit Tests with jest-axe
Integration Tests
Manual Testing
Screen Reader Testing (VoiceOver on Mac)
Screen Reader Testing (VoiceOver on Mac)
- Press Cmd + F5 to enable VoiceOver
- Press Control + Option + Right Arrow to navigate
- Press Control + Option + Space to interact
- Press Control to stop verbalization
- Press Control + Option + U to open rotor
- All content is announced correctly
- Interactive elements are clearly identified
- Navigation structure makes sense
- Images have meaningful alt text
Screen Reader Testing (NVDA on Windows)
Screen Reader Testing (NVDA on Windows)
- Launch NVDA
- Press NVDA + Down Arrow to navigate
- Press NVDA + H to skip to headings
- Press NVDA + B to skip to buttons
- Press Control to stop verbalization
Keyboard Navigation Testing
Keyboard Navigation Testing
Browser DevTools
Chrome DevTools includes accessibility features:- Open DevTools (F12)
- Go to Elements tab
- Open Accessibility pane
- Inspect accessibility tree
- Check ARIA attributes
- Run Lighthouse accessibility audit
Browser Extensions
- axe DevTools - Comprehensive accessibility testing
- WAVE - Visual feedback about accessibility
- Accessibility Insights - Microsoft’s accessibility testing tool
Accessibility Checklist
Before publishing stories, verify:- All images have descriptive alt text
- Videos include captions or transcripts
- Text meets minimum contrast ratios (4.5:1)
- Interactive elements are keyboard accessible
- Focus indicators are visible
- Content is readable with screen readers
- No flashing content >3 times per second
- Animations respect
prefers-reduced-motion - Forms include proper labels
- Error messages are descriptive and helpful
- Heading structure is logical
- Links have descriptive text (avoid “click here”)
Common Accessibility Issues
Missing Alt Text
Missing Alt Text
Problem: Images without alt attributesSolution: Add descriptive alt text to all images, or use empty alt (
alt="") for purely decorative images.Low Color Contrast
Low Color Contrast
Problem: Text is difficult to read against backgroundSolution: Increase contrast to meet WCAG AA standards (4.5:1 for normal text). Use the built-in contrast checker.
Keyboard Traps
Keyboard Traps
Problem: Users can’t escape modal dialogs with keyboardSolution: Ensure Escape key closes modals and focus returns to trigger element.
Missing Focus Indicators
Missing Focus Indicators
Problem: No visual indication of focused elementSolution: Ensure all interactive elements have visible focus styles. Don’t use
outline: none without providing alternative.Unclear Link Text
Unclear Link Text
Problem: Links with generic text like “Click here” or “Read more”Solution: Use descriptive link text that makes sense out of context. Add
aria-label for additional context if needed.Accessibility Resources
Guidelines and Standards
Testing Tools
- WAVE Web Accessibility Evaluation Tool
- Google Lighthouse
- Pa11y - Automated accessibility testing
Learning Resources
- WebAIM - Web accessibility in mind
- A11Y Project - Community-driven accessibility resource
- Deque University - Accessibility training
Accessibility is an ongoing process, not a one-time checklist. Continuously test and improve your stories to ensure they remain accessible to all users.