New issue
Advanced search Search tips

Issue 770248 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner: ----
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug
Team-Accessibility

Blocking:
issue 758301



Sign in to add a comment

Select-to-Speak doesn't work in IFrames: Hit test is not working on desktop_ for iframe

Project Member Reported by katydek@google.com, Sep 29 2017

Issue description

Chrome Version: (copy from chrome://version)
OS: Chrome OS

What steps will reproduce the problem?
(1) Open a page with an iframe
(2) Turn on select-to-speak
(3) Try to read test in the iframe

What is the expected result?
Text reads & highlights

What happens instead?
Nothing happens


Relevant function: 
BrowserAccessibilityManager::OnChildFrameHitTestResult
https://cs.chromium.org/chromium/src/content/browser/accessibility/browser_accessibility_manager.cc?l=501

This function is not getting called by Chrome OS / Select-To-Speak. May need to push that functionality higher so it gets called on all OSes.
 

Comment 1 by katydek@google.com, Sep 29 2017

Blocking: 758301

Comment 2 by katydek@google.com, Oct 31 2017

Cc: katie@chromium.org

Comment 3 by katydek@google.com, Oct 31 2017

Cc: -katydek@google.com
Project Member

Comment 4 by bugdroid1@chromium.org, Nov 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/98cb1aecfd584731c90e5a490b03a533329be84d

commit 98cb1aecfd584731c90e5a490b03a533329be84d
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Fri Nov 17 20:05:27 2017

Make accessibility hit testing in iframes work on Chrome OS too.

The goal of an accessibility hit test is to take (x, y) coordinates and
map it to an element in the accessibility tree. When there are iframes,
the hit test first goes to the parent frame, and if the result is an
iframe element, we have to ping back to the browser process and pong to
the child frame's renderer to hit test recursively.

Previously this worked correctly on desktop platforms but didn't work on
Chrome OS, which uses the same renderer accessibility code but doesn't share
the same content/browser/accessibility implementation. Fix it just by moving
that browser-side child frame hit test ping/pong to RenderFrameHostimpl.

Note: this could be more efficient using RWHInputEventRouter, but that
would be a much larger refactoring. Tracking that in bug 785987.

Bug:  770248 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_site_isolation
Change-Id: I7bdc15114f1599be5ffd9604db365d64adc0fb5c
Reviewed-on: https://chromium-review.googlesource.com/747202
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Reviewed-by: Alice Boxhall <aboxhall@chromium.org>
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#517522}
[modify] https://crrev.com/98cb1aecfd584731c90e5a490b03a533329be84d/chrome/browser/extensions/api/automation/automation_apitest.cc
[add] https://crrev.com/98cb1aecfd584731c90e5a490b03a533329be84d/chrome/test/data/extensions/api_test/automation/tests/desktop/hit_test_iframe.html
[add] https://crrev.com/98cb1aecfd584731c90e5a490b03a533329be84d/chrome/test/data/extensions/api_test/automation/tests/desktop/hit_test_iframe.js
[modify] https://crrev.com/98cb1aecfd584731c90e5a490b03a533329be84d/content/browser/accessibility/browser_accessibility_manager.cc
[modify] https://crrev.com/98cb1aecfd584731c90e5a490b03a533329be84d/content/browser/accessibility/browser_accessibility_manager.h
[modify] https://crrev.com/98cb1aecfd584731c90e5a490b03a533329be84d/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/98cb1aecfd584731c90e5a490b03a533329be84d/content/browser/frame_host/render_frame_host_impl.h
[modify] https://crrev.com/98cb1aecfd584731c90e5a490b03a533329be84d/content/common/accessibility_messages.h
[modify] https://crrev.com/98cb1aecfd584731c90e5a490b03a533329be84d/content/renderer/accessibility/render_accessibility_impl.cc

Status: Fixed (was: Untriaged)

Sign in to add a comment