Voiceover not working with Tab to search
Categories
(Firefox :: Address Bar, defect, P3)
Tracking
()
People
(Reporter: muirpablo, Assigned: morgan)
References
(Blocks 1 open bug)
Details
(Keywords: access)
Attachments
(1 file)
Tested on
Firefox nightly 91.0a1 . beta 90.0b8 and Release 89.0.1
MacOS 10.14 using voiceover
Description
tab to search is not working properly with voiceover
Steps to reproduce
launch voiceover
launch firefox, visit google.com some times
then on urlbar type "g" and press tab
Expected result
screen reader should inform what is being selected, the tab to search text. " search with google - search with google directly from the address bar"
actual result
it says "google dot com text deleted"
Comment 1•3 years ago
|
||
This is a known limitation of Firefox's VoiceOver support according to Marco. From bug 1647929 last December:
(In reply to Marco Zehe (:MarcoZ) [out sick] from bug 1647929 comment #16)
The fact that this doesn't work on Mac yet is known, Morgan is just now implementing support for live regions and alerts for VoiceOver.
Morgan, is there any news on VoiceOver support since then?
Assignee | ||
Comment 2•3 years ago
|
||
Hi, I'm not sure if this is a live regions issue -- I'll look into it though :)
I'm still able to reproduce the issue on today's nightly.
Comment 3•3 years ago
|
||
Thanks Morgan. The STR could use a little clarification. This is what should happen:
- Visit google.com a few times so that it starts autofilling (i.e., so that when you start typing
google.com
, Firefox automatically completes the rest of the string as you're typing) - Clear the urlbar and type
g
- Verify that
google.com
autofills - Verify that the second result in the urlbar is a tab-to-search result for Google. It should say "Search with Google -- Search Google directly from your address bar"
At this point, we use window.A11yUtils.announce
to announce the tab-to-search result. I think we announce it only the first time it appears in one urlbar "session" for the string you're typing. So as you continue typing google.com
, we don't announce it anymore. However, if you leave the urlbar and come back to it and start typing again, then we'll announce it again.
By default, we do not announce it when you press the Tab key. (There's a pref that controls this, browser.urlbar.accessibility.tabToSearch.announceResults
, but it's true by default, which results in the behavior I've just described.)
Assignee | ||
Comment 4•3 years ago
|
||
Ah gotcha, I can reproduce that now :) Thanks for the clarification!
So the issue here probably has to do with the way our live region notifications are fired on mac -- we should get a title changed notification AND a live region changed notification when the "Search with Google" tag is pre-pended to the URL bar, but right now we're only getting the title changed. I think that has to do with how we search for live regions in our maybePostLiveRegionChanged function here. We search through the given node's ancestors to locate its live region, however the live region we're using to announce the changes in the address bar is a bit of a hack. It doesn't wrap the address bar, it is a sibling of an ancestor.
It sounds like we need to either:
(a) store a reference to the special live region somewhere, maybe on the acc for the window or something
(b) modify that search ancestor function to, in the case of live regions, default to the a11yAnnounce live region when we don't find one in the ancestor tree
I'll take a stab at (b) for now -- ni'ing eitan for his opinion when he returns from vacation :)
Assignee | ||
Comment 5•3 years ago
|
||
As an update: I implemented (b), which works insofar as VoiceOver does send an AXLiveRegionChanged event with "Search with google - Search with google directly from the address bar", but that notif is quickly overridden with the same "google.com text deleted" notification, which I think is a title changed one. I tried changing the order of these in our handling of EVENT_NAME_CHANGED in handleAccessibleEvent, but that didn't do anything :(
I don't think the problem is the notification order, I think the problem is with how VoiceOver expects live regions to work. Chrome also has tab-to-search functionality in their addr bar, but they don't use a live region to communicate the change -- they use an AXAnnouncementRequested notification. They've also got a comment explaining:
// Use the announcement API to get around OS <= 10.13 VoiceOver bug
// where it stops announcing live regions after the first time focus
// leaves any content area.
I wonder if this is an issue more generally, and if that's what we're seeing here since the A11yAnnouncement live region doesn't technically encompass the address bar.
I've gotten the announcement to post, but dealing with a crash in EndOffset when I try to nav the addr bar, so not totally sure if its working...
Anyway, just an update on where things are.
Assignee | ||
Comment 6•3 years ago
|
||
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Pushed by mreschenberg@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/a14e18badc66 Notify VoiceOver of announcements from a11yUtils with AXAnnouncementRequested r=eeejay
Comment 8•3 years ago
|
||
bugherder |
Updated•3 years ago
|
Updated•3 years ago
|
Hi morgan, I was checking this one but noticed that it can have random results, like getting the correct voiceover message.
So far i saw how to do it in order for it to fail. Im on Mac 11 using Firefox release 92.0.1 and i also tried with nightly 94.0a1
what i do is the following:
- I enable voiceover Command+F5
- i launch firefox with profile manager and i create a new profile
- I hit command+T and i type google.com and hit enter key
- I hit command+T and i type google.com and hit enter key
- I hit command+T and i type google.com and hit enter key
- i hit command+t then i type "g" and y press the [tab key]
after i do those steps it says you are currently on a menu item, to interact with items inside this menu item press control-option-shift-down arrow." and it doesn´t read the message that the screen shows.
Do you want me to log a new bug and close this one? it appears that it can randomly read the text and sometimes it does not.
Assignee | ||
Comment 10•3 years ago
|
||
(In reply to Pablo from comment #9)
Hi morgan, I was checking this one but noticed that it can have random results, like getting the correct voiceover message.
So far i saw how to do it in order for it to fail. Im on Mac 11 using Firefox release 92.0.1 and i also tried with nightly 94.0a1
what i do is the following:
- I enable voiceover Command+F5
- i launch firefox with profile manager and i create a new profile
- I hit command+T and i type google.com and hit enter key
- I hit command+T and i type google.com and hit enter key
- I hit command+T and i type google.com and hit enter key
- i hit command+t then i type "g" and y press the [tab key]
after i do those steps it says you are currently on a menu item, to interact with items inside this menu item press control-option-shift-down arrow." and it doesn´t read the message that the screen shows.
Do you want me to log a new bug and close this one? it appears that it can randomly read the text and sometimes it does not.
Hi Pablo, thanks for looking into this. So strange that its intermittent. I wonder if it has to do with event ordering...
If you could file a new bug that "depends" on this one, that'd be great :)
Reporter | ||
Comment 11•3 years ago
|
||
thanks, i verified this bug using MacOS 11 with Firefox 92.01 and Firefox beta93
but since i was getting sometimes random results, even trying the very same steps, i opened bug 1733266
regards.
Description
•