New issue
Advanced search Search tips

Issue 788810 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: 2017-11-27
OS: Chrome
Pri: 1
Type: Bug
Team-Accessibility



Sign in to add a comment

Expose unclipped_location in automation API to complement location

Project Member Reported by katie@chromium.org, Nov 27 2017

Issue description

location may be clipped by ancestors, whereas unclipped_location is the element's position ignoring clipping.

Select-to-Speak will use location, as will ChromeVox's visual focus ring. However, ChromeVox can also use unclipped_location to determine the order of navigation to offscreen or otherwise clipped elements.
 

Comment 1 by dtseng@chromium.org, Nov 27 2017

Labels: -Pri-3 M-64 OS-Chrome Pri-1
NextAction: 2017-11-27
ChromeVox will have to use unclipped location.

Comment 2 by katie@chromium.org, Nov 27 2017

David, should boundsForRange be based on |location| or |unclippedLocation|? I don't think w use boundsForRange in Select-to-Speak, so it depends on what ChromeVox wants or what makes sense.

"Computes the bounding box of a subrange of this node in global screen coordinates. Returns the same as |location| if range information is not available. The start and end indices are zero-based offsets into the node's "name" string attribute." - https://developer.chrome.com/extensions/automation

Comment 3 by katie@chromium.org, Nov 27 2017

Status: Started (was: Untriaged)
Re comment #2: I can add a unclippedBoundsForRange function separately.

I think to get this to work I'll need to revert https://chromium-review.googlesource.com/c/chromium/src/+/783492 which disabled clipping in ax_tree. What's a good workflow to make sure that it's un-reverted in coordination with getting ChromeVox to use the new unclippedBounds? Certainly it seems like we should wait until Thursday's branch to submit anything new here.

Comment 4 by dtseng@chromium.org, Nov 28 2017

ChromeVox does not need an unclipped version of boundsForRange. It would make sense to go ahead and add |location| and |unclippedLocation| to the automation API now (for m64) and make ChromeVox use it when analyzing line information. Otherwise, ChromeVox, when drawing its focus rectangle, should use clipped (|location|). Thanks!
Project Member

Comment 5 by bugdroid1@chromium.org, Nov 29 2017

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

commit db71ad94cd95f2aada84562e571459471ec9d74d
Author: Katie Dektar <katydek@google.com>
Date: Wed Nov 29 20:07:48 2017

Adds |unclippedLocation| to the Automation API.

|unclippedLocation| is the location of the node if it were not
clipped by any of its ancestors. This is now used by ChromeVox
to determine navigation by line, rather than the clipped
location.

This change reverts bf57671, submitted in
https://chromium-review.googlesource.com/c/chromium/src/+/777541,
which disabled clipping until the fix could be added.

Bug:  788810 
Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation
Change-Id: I50d4df7364c32384ccfb06a04b226afce67eb091
Reviewed-on: https://chromium-review.googlesource.com/794511
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: David Tseng <dtseng@chromium.org>
Commit-Queue: Katie D <katie@chromium.org>
Cr-Commit-Position: refs/heads/master@{#520212}
[modify] https://crrev.com/db71ad94cd95f2aada84562e571459471ec9d74d/chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_predicate.js
[modify] https://crrev.com/db71ad94cd95f2aada84562e571459471ec9d74d/chrome/common/extensions/api/automation.idl
[modify] https://crrev.com/db71ad94cd95f2aada84562e571459471ec9d74d/chrome/renderer/extensions/automation_internal_custom_bindings.cc
[modify] https://crrev.com/db71ad94cd95f2aada84562e571459471ec9d74d/chrome/renderer/resources/extensions/automation/automation_node.js
[modify] https://crrev.com/db71ad94cd95f2aada84562e571459471ec9d74d/content/browser/accessibility/accessibility_tree_formatter_blink.cc
[modify] https://crrev.com/db71ad94cd95f2aada84562e571459471ec9d74d/content/browser/accessibility/browser_accessibility.cc
[modify] https://crrev.com/db71ad94cd95f2aada84562e571459471ec9d74d/content/browser/accessibility/browser_accessibility.h
[modify] https://crrev.com/db71ad94cd95f2aada84562e571459471ec9d74d/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
[modify] https://crrev.com/db71ad94cd95f2aada84562e571459471ec9d74d/content/test/data/accessibility/html/absolute-offscreen-expected-blink.txt
[modify] https://crrev.com/db71ad94cd95f2aada84562e571459471ec9d74d/content/test/data/accessibility/html/absolute-offscreen.html
[modify] https://crrev.com/db71ad94cd95f2aada84562e571459471ec9d74d/content/test/data/accessibility/html/iframe-coordinates-expected-blink.txt
[modify] https://crrev.com/db71ad94cd95f2aada84562e571459471ec9d74d/content/test/data/accessibility/html/iframe-coordinates.html
[modify] https://crrev.com/db71ad94cd95f2aada84562e571459471ec9d74d/third_party/closure_compiler/externs/automation.js
[modify] https://crrev.com/db71ad94cd95f2aada84562e571459471ec9d74d/ui/accessibility/ax_enums.idl
[modify] https://crrev.com/db71ad94cd95f2aada84562e571459471ec9d74d/ui/accessibility/ax_tree.cc
[modify] https://crrev.com/db71ad94cd95f2aada84562e571459471ec9d74d/ui/accessibility/ax_tree.h
[modify] https://crrev.com/db71ad94cd95f2aada84562e571459471ec9d74d/ui/accessibility/ax_tree_unittest.cc
[modify] https://crrev.com/db71ad94cd95f2aada84562e571459471ec9d74d/ui/accessibility/platform/ax_platform_node_win.cc

Comment 6 by katie@chromium.org, Nov 29 2017

Status: Fixed (was: Started)

Sign in to add a comment