You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Note that Settings app suggestions list is similar to Start suggestions list but it is not - it requires NVDA to listen to UIA layout invalidated event for proper functionality. I am willing to donate this part of Windows App Essentials add-on to NV Access provided that we come up with a baseline user experience notes.
An important point to consider: Narrator does not announce the top suggestion - it will announce suggestion count followed by "suggestion". My suggestion about using Windows App Essentials add-on to test this still stands.
And found it: #7330 - I may need to raise a summary issue for these two at some point - implementation is ready to go, as what's needed to be done is separate the responsible component from Windows App Essentials add-on and transplant it inside UIA objects mix-in.
… modern apps on Windows 10 and later (#12791)
Summary of the issue:
Some suggestions list views do not select top suggestion automatically. Instead, UIA layout invalidated event is fired whenever list count and/or content changes.
Description of how this pull request fixes the issue:
Introduce a dedicated UIA overlay class for suggestions list views firing layout invalidated event, with the event handler told to announce suggestion count across modern apps on Windows 10 and later. Although layout invalidated event is supported on Windows 8.x, limit this to Windows 10 and later at first. At the same time, perform bonus lint to (finally) fix Flake8 issues in UIA events map and add annotations (at last).
Prerequisites: Windows App Essentials add-on must be disabled.
1. Open Start menu.
2. Type something. NVDA will announce the top suggestion.
3. Open Settings app (Windows+I).
4. Type something. NVDA will only play suggestion sound without this pull request, it will also announce suggestion count as user types more terms with the PR applied.
* UIA handler: add layout invalidated event constant. Re #12790.
Recent Windows releases include better support for auto-suggest accessibility. So far there are two lists: one that raises item selected event on the first suggestion (Windows 10/11 Start menu, for example), and ones that uses layout invalidated event instead of selecting the first suggestion (Settings suggestion, for example). The first type was implemented years ago, but the second type isn't. Therefore introduce support for these kinds of suggestions lists, starting with adding UIA layout invalidated event constant (20008) to UIA events map.
* NVDAObjects.UIA: introduce SuggestionsList class to handle UIA layout invalidated event. Re #12790.
Introduce an overlay class for suggestions list view which does not select the top suggestion but instead fires layout invalidated event. Examples include modern apps such as Windows 10/11 Settings app, Microsoft Store, and Maps app.
Inside the new suggestions list class, layout invalidated event handler will simly announce child (suggestions) count whenever this event is fired.
* NVDAObjects.UIA: detect suggestions list views with layout invalidated event. Re #12790.
Suggestions list views with layout invalidated event have UI Automation Id of 'SuggestionsList', not to be confused with Edge-based suggestions list (lowercase s). The overlay class chooser code layout resembles search field -> suggestions list -> suggestion list item to help explain the overall flow of how auto-suggest typically works.
* NVDAObjects.UIA: clarify the difference between existing suggestion list item and new suggestions list. Re #12790.
Clarify that suggestion list item class handles top suggestion being selected automatically.
* UIA handler and UIA objects: lint bonus.
* UIA events: the map was (finally) tagged with annotations, a space was (finally) added between event Id's and names, finally resolve Flake8 F405 on event Id's.
* NVDAObjects.UIA.SuggestionListItem: spacing.
* update changes
Co-authored-by: buddsean <email@example.com>