Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Win11: NVDA is not announcing the available suggestions for “Find a setting” search field in settings page #12758

Closed
SMTestGH opened this issue Aug 20, 2021 · 5 comments · Fixed by #12791
Labels
platform/Windows11 Issues specific to Windows 11
Milestone

Comments

@SMTestGH
Copy link

Steps to reproduce:

  1. Open Settings with Win+I
  2. Tab to search field, type "test"
  3. Search results are displayed

Actual behavior:

NVDA does not read that suggestions are available and does not read first item

Expected behavior:

NVDA should announce that suggestions are available and read the first suggestion
Note: both JAWS and Narrator work as expected.

System configuration

NVDA installed/portable/running from source:

Installed/portable both repro the same issue

NVDA version:

2021.1

Windows version:

Windows 11 Insider builds

Name and version of other software in use when reproducing the issue:

N/A

Other information about your system:

Other questions

Does the issue still occur after restarting your computer?

Yes

Have you tried any other versions of NVDA? If so, please report their behaviors.

No. Both Narrator and JAWS work as expected.

If add-ons are disabled, is your problem still occurring?

Yes

Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?

Yes

@josephsl
Copy link
Collaborator

josephsl commented Aug 20, 2021 via email

@josephsl
Copy link
Collaborator

Hi,

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.

Thanks.

@josephsl
Copy link
Collaborator

Hi,

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.

Thanks.

@josephsl
Copy link
Collaborator

Hi,

Another important point to consider: this issue is not limited to Windows 11 - it also happens with Windows 10 and it happens for suggestions list that raises UIA layout invalidated event.

I think there is an issue concerning this problem (if found, this issue will be tagged and might be closed as a duplicate).

Thanks.

@seanbudd seanbudd added this to the 2021.3 milestone Aug 23, 2021
@feerrenrut feerrenrut added the platform/Windows11 Issues specific to Windows 11 label Aug 23, 2021
@josephsl
Copy link
Collaborator

Hi,

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.

Thanks.

seanbudd added a commit that referenced this issue Sep 27, 2021
… modern apps on Windows 10 and later (#12791)

Fixes #12790 
Fixes #7330 
Fixes #12758 

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).

Manual testing:

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.

Commits:

* 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 <sean@nvaccess.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
platform/Windows11 Issues specific to Windows 11
Projects
None yet
4 participants