New issue
Advanced search Search tips

Issue 737130 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug
Team-Accessibility



Sign in to add a comment

IAccessible2::accLocation() wrong for inline links within relative divs

Project Member Reported by mike.hil...@gmail.com, Jun 27 2017

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36

Steps to reproduce the problem:
Use the web page below. Use an accessibility checker (such as AccProbe) and get the screen location of the Link object (the one with ROLE_SYSTEM_LINK).

<html>
<TITLE>inline link position fail</TITLE>
<body>
<div>Some text and <div style="position:relative; display:inline"><a href="a.com">a link</a></div></div>
</body>
</html>

You can also replicate this using the google search results page. The little "Results Details" down arrow link has the same problem.

What is the expected behavior?
accLocation() should return the correct location

IAccessibleText::get_characterExtents() is also incorrect, as is everything within the link objects children.

What went wrong?
accLocation() is wrong. It's returning a location that is too far to the right - possibly by the width of the preceding text within the top level parent div

Did this work before? N/A 

Chrome version: 59.0.3071.115  Channel: stable
OS Version: 10.0
Flash Version: Shockwave Flash 26.0 r0

UI->Accessibility->Compatibility
 
Cc: pbomm...@chromium.org dmazz...@chromium.org
Components: UI>Accessibility>Compatibility
Labels: M-59
Labels: Needs-Triage-M59
Components: Blink>Accessibility
Owner: dmazz...@chromium.org
Status: Started (was: Unconfirmed)
Project Member

Comment 5 by bugdroid1@chromium.org, Jun 30 2017

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

commit f3c32d8c2da3969d676bc6255224d779bda01ed2
Author: dmazzoni <dmazzoni@chromium.org>
Date: Fri Jun 30 21:21:45 2017

Bounding boxes in the accessibility tree should always be relative to a box.

The accessibility tree stores bounding boxes relative to the nearest container,
which allows for efficient handling of transformations in the layout tree.
Previously we were allowing any box model object to be a container, but
this resulted in incorrect results for the static text child of an inline
element with position:relative. Fix this by requiring containers to be
boxes.

BUG= 737130 

Review-Url: https://codereview.chromium.org/2955303002
Cr-Commit-Position: refs/heads/master@{#483823}

[modify] https://crrev.com/f3c32d8c2da3969d676bc6255224d779bda01ed2/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
[add] https://crrev.com/f3c32d8c2da3969d676bc6255224d779bda01ed2/content/test/data/accessibility/css/inline-position-relative-expected-blink.txt
[add] https://crrev.com/f3c32d8c2da3969d676bc6255224d779bda01ed2/content/test/data/accessibility/css/inline-position-relative.html
[modify] https://crrev.com/f3c32d8c2da3969d676bc6255224d779bda01ed2/third_party/WebKit/LayoutTests/accessibility/bounds-calc.html
[modify] https://crrev.com/f3c32d8c2da3969d676bc6255224d779bda01ed2/third_party/WebKit/Source/modules/accessibility/AXObject.cpp

Status: Fixed (was: Started)

Sign in to add a comment