Skip to content

a11y: improve screen reader labels and settings keyboard navigation#4422

Open
VIPPotato wants to merge 2 commits intoDevolutions:mainfrom
VIPPotato:pr/a11y-only
Open

a11y: improve screen reader labels and settings keyboard navigation#4422
VIPPotato wants to merge 2 commits intoDevolutions:mainfrom
VIPPotato:pr/a11y-only

Conversation

@VIPPotato
Copy link

Summary

This PR improves screen reader accessibility and keyboard navigation across key UI surfaces (main pages, dialogs, filters, and settings), while keeping the visual interface and behavior intact.

Why These Changes

Several controls were reachable by keyboard but had no accessible name, so screen readers announced generic text like “button”, “unchecked”, or resource keys.
Settings navigation also had inconsistent tab behavior (some items only reachable with Shift+Tab), which made the page difficult to use non-visually.
This PR addresses those issues by improving automation metadata and focus flow without redesigning the UI.

What Changed

  • Added/standardized AutomationProperties labels on previously unlabeled controls.
  • Improved accessibility labeling in package list/filter areas and related dialogs.
  • Improved settings card/toggle/button labeling so screen readers announce meaningful control names and context.
  • Fixed settings tab navigation flow so keyboard focus can consistently move into category/content controls.
  • Added/updated XAML accessibility tests to prevent regressions.

Key Areas Updated

  • src/UniGetUI/Pages/MainView.xaml
  • src/UniGetUI/Pages/SettingsPages/SettingsBasePage.xaml.cs
  • src/UniGetUI/Pages/SoftwarePages/AbstractPackagesPage.xaml
  • src/UniGetUI/Controls/SettingsWidgets/*.cs
  • src/UniGetUI/Pages/DialogPages/OperationFailedDialog.xaml
  • src/UniGetUI/Pages/DialogPages/OperationLiveLogPage.xaml
  • src/UniGetUI.Core.Tools.Tests/AccessibilityXamlTests.cs

Validation

  • Ran accessibility-focused tests:
    • dotnet test src/UniGetUI.Core.Tools.Tests/UniGetUI.Core.Tools.Tests.csproj -p:Platform=x64 --filter FullyQualifiedName~AccessibilityXamlTests --nologo -v q
  • No integrity/build-system fixes are included in this PR (a11y-only scope).

Risk

Low to moderate. Changes are mostly automation/focus metadata and keyboard navigation handling, with minimal UI behavior impact.

@marticliment
Copy link
Collaborator

is this pr Ai generated?

@VIPPotato
Copy link
Author

Yes, the summary was rewritten by AI, but the code was toroughly tested, making sure it doesn't break anything but improves screenreader accessibility. I made sure to change only parts of the code which would improve navigation keyboard and blind accessibility. There have been huge accessibility regressions from version to version for sometime, which made the app much less screenreader friendly. I hope you can review this code and include it in the next beta build. Being blind myself and using uniget ui for quite a long time, I also have lots of visually impaired friends who like your software too, so this is important. It was mostly about labelling items, so the screenreader would read names of focused items, and keyboard navigation in settings *when you tab around you can't reach settings categories).

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