-
-
Notifications
You must be signed in to change notification settings - Fork 678
Chrome: Omnibox: User is not notified of useful information in the first item of keyword search #13522
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
Comments
See also: #13145 |
…mment mentions and Google Chrome location bar suggestions (#14222) Fixes #13772 Fixes #13764 Fixes #13522 Summary of the issue: • When starting to type an @mention in a Microsoft Excel comment, NVDA does not report available suggestions when arrowing through them. ( [Excel- Add @mention]: Screen Reader Users are not Notified when Search Suggestions Appear after Typing "@" in the comment #13764) • When typing in the Google Chrome location bar, NVDA does not report rich information for each suggestion, nor does it report when a suggestions control (switch to tb, remove suggestion) is selected. (Chrome: Omnibox: User is not notified of useful information in the first item of keyword search #13522) • As a developer, adding support for new suggestion scenarios is tedious as specific mappings must be always made. Description of user facing changes • NVDA will now report the selected suggestion when arrowing through suggestions when typing an @mention in a Microsoft Excel comment. • NVDA will report the selected suggestion or suggestion control (switch to tab, remove suggestion) in the Google Chrome location bar. Description of development approach Make support for suggestions on editable text fields more generic, allowing it to be supported in more places without having to specifically choose particular overlay classes. This adds support for reporting @mention suggestions in Microsoft Excel comments, and reporting of suggestions and related controls in the Google Chrome location bar. Specific changes: * IAccessible NVDAObject: implement the controllerFor property making use of IAccessible2 relations * NVDAObject: add an isDescendantOf method which should return True if the object this method is called on is a descendant of the given obj argument. The base method raises NotImplementedError. Efficient implementations for UIA and Ia2Web have been provided. * Implement event_selection on the base NVDAObject, which reports the object being selected, if the current focus is controlling an ancestor of the selected object. This replaces SuggestionListItem UIA NVDAObject's event_UIA_elementSelected logic. Now it is more generic, and works purely on tree topology, rather than checking the name and appModule etc. * Remove event_selection implementation from IAccessible NvDAObject as the base handles this now. * Add an event_controllerForchange method to the base NVDAObject which does nothing. * UIA NVDAObject: implement event_UIA_controllerforchange to directly call event_controllerforchange, allowing for more generic code, but still backwards compatibility for subclasses to still override event_UIA_controllerforchange if they need to. * behaviours: * Rename EditableTextWithSuggestions to InputFieldWithSuggestions and inherit directly from NVDAObject making this class more generic. * InputFieldWithSuggestions class: implement event_controllerForChange which will fire the suggestionsOpened and suggestionsClosed events based on whether there are objects in the controllerfor list. this code was taken from SearchField UIA NVDAObject's event_UIA_controllerforchange. * Rename EditableText to EditabletextBase * Add a replacement EditableTextWithSuggestions class that inherits from both InputFieldWithSuggestions and EditableTextBase * Add a replacement EditableText class which inherits from EditableTextwithSuggestions and EditableTextBase. Essentially all this builds suggestion support into EditableText, but keeps the EditableTextWithSuggestionsClass specifically available for compatibility.
@feerrenrut @michaelDCurran @seanbudd @cdkim1212 It seems to me that the implementation of this feature is incomplete as of NVDA Alpha 26827. NVDA only reads the very first suggestion as I type the first one or two letters in the Omnibox - ALT+D. So as I keep typing extra letters, even if I wait enough between subsequent letters, NVDA doesn't read the newly highlighted suggestion/website title/etc. So as long as the first suggestion with the first one or two type letters is concerned, this commit works fine, but the rest of the suggestions are simply ignored as we keep typing and new ones are highlighted. Please let me know if I should describe this with more details or examples. |
Examples would be very much appreciated here.
Most likely Chromium is not firing further selection events as the top
suggestion changes. but I shall look into this.
Certainly it does correctly fire selection changes when arrowing up and
down the suggestions or when tabbing onto the inner suggestion controls.
|
Hello,
I have also noticed that the suggestion is always spoken correctly if you switch tabs, i.e. type g, suggestion is spoken. Go to a different tab, come back to the previous one, type O, the new suggestion is properly spoken. However, obviously this is inpractical, but it may help when debugging. Let me know if any logs are needed, this is observed in my case under Chrome 106.0.5249.119. |
@michaelDCurran The examples @nidza07 provided are quite helpful, so I won't add extra examples. |
pr #14222 partially fixes this issue, as NVDA now announces the top suggestion when it first appears, and arrowing up and down the list / tabbing to the inner controls all read. |
@michaelDCurran Thanks for the explanation. As I don't have any Google contacts, would it be possible for you or NVAccess to report this to Google? If fixed, this would make Omnibox a whole lot more accessible. |
I have reported this to the Google accessibility team. Will update the
issue with a Chrome bug if/when created.
|
@michaelDCurran Interestingly, this is handled much more elegantly with MS Edge 106. That is, NVDA reads the newly highlighted suggestions or page titles as we keep typing letters into the Omnibox although suggestions are read with a short delay of 1 or 2 seconds. Perhaps suggestions pop up with such a delay - I'm not sure. At any event, it seems that this is more of a Google Chrome-specific issue rather than an MS Edge-oriented one. |
I think MS Edge fires focus events on each suggestion, rather than
selection events in conjunction with the controllerFor property.
|
Filled Chromium bug: |
In Chrome 124 with NVDA 2024.1, NVDA reports the title of the page, the URL and the fact that you can press tab to remove the suggestion. This works when the suggestion is already part of your browsing history.As Chrome developers explained, it would be anyway too much verbosity to get all the suggestion related info while typing, you can navigate to the list of suggestions with the tab key and access the information. I am closing this as works for me. |
Steps to reproduce:
Actual behavior:
As user types, they don’t hear any useful/friendly information that the sighted user sees in item 0, such as the title of the page they will get, or the fact that there are additional buttons
Expected behavior:
The user should be notified of the title of the page and of the buttons one can tab to and activate as part of suggestions
System configuration
NVDA installed/portable/running from source:
NVDA version: 2021.3.4
Windows version: Windows 10 Version 20H2 (Build 19042.1526)
Name and version of other software in use when reproducing the issue: Chrome Browser, Chrome Version: 100.0.4878.0
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.
2021.3.3. Same behavior
If NVDA add-ons are disabled, is your problem still occurring?
N/A
Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?
N/A
The text was updated successfully, but these errors were encountered: