Overview
Accessibility in Freya includes:- Keyboard navigation - Tab through focusable elements
- Screen reader support - Integrates with platform screen readers
- Focus management - Programmatic focus control
- Accessibility attributes - ARIA-like roles and properties
Keyboard Navigation
Tab Navigation
Elements are automatically included in tab order:Tab- Move to next focusable elementShift+Tab- Move to previous focusable element
Focusable Elements
Mark elements as focusable:Focusable States
Platform Context
Access accessibility state through the Platform context:Platform Properties
Focus Management
Programmatic Focus
Focus elements programmatically:Focus Strategies
Screen Reader Support
Freya automatically exposes accessibility information to platform screen readers.Accessing Screen Reader
Accessibility Announcements
While Freya doesn’t have a direct announcement API, screen readers automatically announce:- Focused element labels
- Role changes
- State changes
- Dynamic content updates
Accessibility Properties
Elements expose accessibility information through the element tree. Built-in components likeButton, Input, and Checkbox automatically set appropriate roles and properties.
Example: Custom Accessible Component
Navigation Modes
Freya tracks whether the user is navigating with keyboard or mouse:Built-in Component Accessibility
Button
Input
Checkbox
Radio
Best Practices
- Use semantic components - Prefer
Button,Input, etc. over custom elements - Logical focus order - Structure UI for intuitive tab navigation
- Visible focus indicators - Show when elements are focused (especially in keyboard mode)
- Keyboard shortcuts - Support common keyboard patterns (Enter, Space, Escape)
- Test with keyboard - Navigate your app without a mouse
- Test with screen readers - Verify announcements make sense
- Meaningful labels - Use descriptive text for buttons and inputs
- Don’t remove focus - Let users see what’s focused
Testing Accessibility
Complete Example
Accessible form with keyboard navigation:Limitations
Current accessibility support is foundational. Advanced features coming in future releases:- Custom ARIA attributes
- Live regions for dynamic content
- More granular role definitions
- Accessibility tree inspection API
- More focus management controls
Platform Support
- Windows - MSAA/UI Automation
- macOS - Accessibility API
- Linux - AT-SPI