a11y: improve screen reader labels and settings keyboard navigation#4422
a11y: improve screen reader labels and settings keyboard navigation#4422VIPPotato wants to merge 2 commits intoDevolutions:mainfrom
Conversation
|
is this pr Ai generated? |
|
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). |
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
AutomationPropertieslabels on previously unlabeled controls.Key Areas Updated
src/UniGetUI/Pages/MainView.xamlsrc/UniGetUI/Pages/SettingsPages/SettingsBasePage.xaml.cssrc/UniGetUI/Pages/SoftwarePages/AbstractPackagesPage.xamlsrc/UniGetUI/Controls/SettingsWidgets/*.cssrc/UniGetUI/Pages/DialogPages/OperationFailedDialog.xamlsrc/UniGetUI/Pages/DialogPages/OperationLiveLogPage.xamlsrc/UniGetUI.Core.Tools.Tests/AccessibilityXamlTests.csValidation
dotnet test src/UniGetUI.Core.Tools.Tests/UniGetUI.Core.Tools.Tests.csproj -p:Platform=x64 --filter FullyQualifiedName~AccessibilityXamlTests --nologo -v qRisk
Low to moderate. Changes are mostly automation/focus metadata and keyboard navigation handling, with minimal UI behavior impact.