Skip to content

Avalonia: add screen reader support, keyboard navigation, and focus management #4582

Open
Gabriel Dufresne (GabrielDuf) wants to merge 6 commits intomainfrom
accessibility
Open

Avalonia: add screen reader support, keyboard navigation, and focus management #4582
Gabriel Dufresne (GabrielDuf) wants to merge 6 commits intomainfrom
accessibility

Conversation

@GabrielDuf
Copy link
Copy Markdown
Contributor

This branch adds a comprehensive accessibility layer to the Avalonia UI port:

Screen reader support (VoiceOver / NVDA / JAWS)

  • Add AutomationProperties semantics across the shell, sidebar, package pages, banners, dialogs, and settings cards — names, roles, accelerator keys, labeled-by associations
  • Mark decorative icons and chrome as AccessibilityView="Raw" to hide them from the tree
  • Add a shared AccessibilityAnnouncementService (live-region) that announces page navigation, operation progress/success/failure, settings changes, manager toggle state, select-all state, and ignore-updates changes independently of platform toast notifications

Keyboard navigation & shortcuts

  • Ctrl+1–6 jump to the six main sections
  • Ctrl+D opens package details; F1 opens Help; F5 / Ctrl+R reload; Ctrl+A select all

Add AutomationProperties-based semantics to the Avalonia shell, sidebar, package pages, banners, and reusable settings cards.

Highlights:
- mark decorative icons and chrome out of the accessibility tree
- label icon-only controls, search affordances, package lists, and package selection surfaces
- expose settings-card content to screen readers and keyboard activation
- align implementation with Avalonia 11 supported automation APIs
Add dialog-focused accessibility metadata and focus behavior.

Highlights:
- label form controls in install options with LabeledBy associations
- add initial focus for install options, package details, and ignored updates dialogs
- expose package details secondary actions and technical fields to screen readers
- add ignored-updates row and remove-button semantics
- add a shared live-region announcement service for screen reader updates

- announce page changes from the shell and add sidebar focus handoff for Ctrl+Tab navigation

- announce operation progress, success, and failure independently of platform toast notifications

- announce settings import/export/reset, manager toggle changes, settings-card toggles, ignore-updates changes, and package select-all state
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants