Closed Bug 1716828 Opened 3 years ago Closed 3 years ago

Voiceover not working with Tab to search

Categories

(Firefox :: Address Bar, defect, P3)

Desktop
macOS
defect

Tracking

()

RESOLVED FIXED
92 Branch
Tracking Status
firefox89 --- wontfix
firefox90 --- wontfix
firefox91 --- wontfix
firefox92 --- fixed

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"

Severity: -- → S4

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?

Blocks: 1647929
Flags: needinfo?(mreschenberg)
Priority: -- → P3

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.

Flags: needinfo?(mreschenberg)

Thanks Morgan. The STR could use a little clarification. This is what should happen:

  1. 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)
  2. Clear the urlbar and type g
  3. Verify that google.com autofills
  4. 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.)

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

Flags: needinfo?(eitan)

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: nobody → mreschenberg
Attachment #9230111 - Attachment description: WIP: Bug 1716828: Allow notifications to be posted from A11yAnnouncement live region r?eeejay → Bug 1716828: Allow notifications to be posted from A11yAnnouncement live region r?eeejay
Status: NEW → ASSIGNED
Attachment #9230111 - Attachment description: Bug 1716828: Allow notifications to be posted from A11yAnnouncement live region r?eeejay → Bug 1716828: Allow notifications to be posted from A11yUtils live region r?eeejay
Attachment #9230111 - Attachment description: Bug 1716828: Allow notifications to be posted from A11yUtils live region r?eeejay → Bug 1716828: Allow notifications to be posted from A11yAnnouncement live region r?eeejay
Attachment #9230111 - Attachment description: Bug 1716828: Allow notifications to be posted from A11yAnnouncement live region r?eeejay → Bug 1716828: Notify VoiceOver of announcements from a11yUtils with AXAnnouncementRequested r?eeejay
See Also: → 1719715
Pushed by mreschenberg@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/a14e18badc66
Notify VoiceOver of announcements from a11yUtils with AXAnnouncementRequested r=eeejay
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 92 Branch
Flags: needinfo?(eitan)

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:

  1. I enable voiceover Command+F5
  2. i launch firefox with profile manager and i create a new profile
  3. I hit command+T and i type google.com and hit enter key
  4. I hit command+T and i type google.com and hit enter key
  5. I hit command+T and i type google.com and hit enter key
  6. 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.

Flags: needinfo?(mreschenberg)

(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:

  1. I enable voiceover Command+F5
  2. i launch firefox with profile manager and i create a new profile
  3. I hit command+T and i type google.com and hit enter key
  4. I hit command+T and i type google.com and hit enter key
  5. I hit command+T and i type google.com and hit enter key
  6. 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 :)

Flags: needinfo?(mreschenberg)
Blocks: 1733266

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.

Keywords: access
See Also: → 1752047
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: