New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 707873 link

Starred by 3 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 2
Type: Bug
Team-Accessibility



Sign in to add a comment

Accessibility label for most likely tile is read when in autosuggest mode and that element is not visible

Project Member Reported by linds...@chromium.org, Apr 3 2017

Issue description


App Version: 59.0.3054.0
iOS Version: iOS 10.3
Device: iPhone7
URL: NTP

Steps to reproduce:
  1. Turn on Voice over
  2. Open app, open a new tab and ensure there are 8 tiles showing (top sites, most likely or popular sites)
  3.  Start typing a search query in the omnibox, for example “cru”
  3.  Once autosuggest options are showing in the drop down, bring focus up the omnibox (from the keyboard) and swipe right and/or swipe left to iterate through all of the accessible items on the page - try both directions if the tile doesn’t get surfaced in the first round.

Observed results:
NTP tile title for last tile is spoken even though it’s not visible. 

Expected results:
Tile title should not be spoken since that element is not “visible”

Number of times you were able to reproduce: 5/5
Bug reproducible after clean install: Yes
Bug reproducible after clearing cache and cookies: Yes
Bug reproducible on Chrome Mobile on Android: n/a
Bug reproducible on Dolphin/Safari/Firefox: Firefox: n/a
Bug reproducible on current stable build (App Version, iOS Version): Yes M57
Bug reproducible on the current beta channel build (App Version, iOS Version): Yes M58

Link to video/image: 
https://drive.google.com/file/d/0By4O1f2IQqQ_Y0VtcEhEWUpoZXM/view
https://drive.google.com/file/d/0By4O1f2IQqQ_c1QtZVFadmdyQlU/view
 
I can also repro this issue for the first tile when bringing the app back from background:
https://drive.google.com/file/d/0By4O1f2IQqQ_NkxDekRpc2t5eGM/view
Labels: M-59
Owner: gambard@chromium.org
Status: Assigned (was: Untriaged)
 Issue 706984  has been merged into this issue.
Cc: rohitrao@chromium.org justincohen@chromium.org
I am not sure to be the right owner for this. It seems related to omnibox suggestions.
+justincohen/rohitrao for input.
Cc: -justincohen@chromium.org gambard@chromium.org
Owner: justincohen@chromium.org
assigning to justin as omnibox owner.
Components: -UI>Browser>NewTabPage UI>Browser>ContentSuggestions
Cc: justincohen@chromium.org
Owner: stkhapugin@chromium.org
Labels: -M-59 M-68
Cc: marq@chromium.org stkhapugin@chromium.org
Components: -UI>Browser>ContentSuggestions UI>Browser
Labels: -M-68 Needs-Feedback M-70
Owner: marq@chromium.org
I've investigated this. Couple of thoughts:

0. This is not limited to NTP and content suggestions, the actual web content is also read when moving voiceover cursor through the popup

1. I seriously doubt voiceover users will ever use the suggestions at all. Suggestions are useful when you type and can see them while typing, but if you are listening to the keys on your keyboard when typing, I don't think you're going to switch focus to a different UI element to hear the suggestions. I would love to know if this is so.

2. The issue itself stems from BVC containing everything. The only way I found for this to not happen is to have a custom UIView subclass as BVC's |view|, and make BVC update its a11y elements every time it shows or hides a view. In this case we could:
- have the top toolbar, the content, and the bottom toolbar the a11y elements
- when the popup is displayed, only expose the top toolbar and the popup as a11y elements

This is extremely complicated, because BVC shows everything, and it's hard to tell at which point something was shown or hidden in BVC. For example, BVC knows when the popup is shown because -addChildViewController: is called, but it doesn't know when it's dismissed.
There are also non-view-controller elements displayed in BVC that we have to expose, such as infobars. 

Mark, what do you think about the solution in (2)? Do you think it's feasible at all? Is it possible to make this somewhat maintainable? Assigning to you for feedback. 
 Issue 792883  has been merged into this issue.

Sign in to add a comment