fix Accessibility issues on the settings page for screen reader users. #4667
Merged
Gabriel Dufresne (GabrielDuf) merged 9 commits intoDevolutions:mainfrom May 1, 2026
Merged
Conversation
Added AutomationProperties.SetName to the CustomNavViewItem control to ensure screen readers correctly announce the localized names for navigation options like 'Software Updates' and 'Installed Packages'.
This commit resolves several UX issues to significantly improve the keyboard and screen reader navigation flow:
- Added AutomationProperties.Name to the loading screen grid, operation list resizers, and the ExpandCollapseOpList button.
- Disabled IsTabStop on the custom TitleBar so it doesn't get focused unnecessarily.
- Fixed accessibility for view mode and filter options by assigning them grouping roles.
- Added descriptive labels to the ToggleFiltersButton and MainToolbarButtonDropdown ('More actions').
- Bound AutomationProperties.Name to the dynamic text of MainToolbarButton so it correctly reads 'Install selected packages', etc.
- Added AutomationProperties.Name to the BackButton on the package preferences dialog.
- Added AutomationProperties.Name to the search mode radio buttons.
- Removed 'ghost' tab stops following the Help button by explicitly setting IsTabStop='False' and OverflowButtonVisibility='Collapsed' on the CommandBar and surrounding layout containers.
- Fixed CheckboxHeader by setting IsTabStop='False' and AccessibilityView='Raw'.
- Improved package list item accessibility by building a custom AutomationPeer for PackageItemContainer that implements IToggleProvider and acts natively as a CheckBox role, allowing direct selection and status announcement without an extra tab stop.
- Added AutomationProperties.Name and ToolTip labels ('User profile') to the dynamic GitHub login/cloud backup avatar UserControl in the main title bar.
Set IsTabStop='False' and AccessibilityView='Raw' on the FiltersResizer to completely remove it from the keyboard navigation flow and accessibility tree, as it is purely visual and does not need to be focused by screen reader users.
This commit improves the Settings screen accessibility:
- Fixed an issue where toggle switches (e.g., 'Install prerelease versions') only announced their state ('Enabled'/'Disabled') by properly binding their AutomationProperties.Name to the setting's descriptive text across CheckboxCard, CheckboxButtonCard, and SecureCheckboxCard.
- Fixed an issue where hyperlinks (e.g., 'Become a translator') announced strictly as 'link' without text by properly exposing the internal text of TranslatedTextBlock user controls to UI Automation.
This commit adds a Loaded event handler to the custom SettingsCard widgets (ButtonCard, CheckboxButtonCard, CheckboxCard, SecureCheckboxCard) to strictly enforce their AutomationProperties.Name and LocalizedControlType='grouping'. This prevents the underlying Windows Community Toolkit logic from overriding the grouping name with the internal button's face text upon rendering.
This commit resolves trailing whitespace formatting issues reported by CI.
This commit applies AutomationProperties.Name and AutomationProperties.HelpText to the SettingsPageButton custom widget and enforces them on the Loaded event, ensuring that screen readers properly announce the button text alongside its descriptive subtext.
Gabriel Dufresne (GabrielDuf)
approved these changes
May 1, 2026
8ab9538
into
Devolutions:main
1 check passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
fixed accessibility issues in the app settings page.
Relates to [BUG] Poor accessibility for screenreaders #1767 followup to Fix navigation bar accessibility for screen readers #4661 and Fix many screen reader accessibility issues #4666