Issue metadata
Sign in to add a comment
|
Empty AX nodes get bounds of screen
Reported by
land...@opera.com,
Aug 18 2017
|
||||||||||||||||||||||||
Issue descriptionChrome Version: master OS: Linux What steps will reproduce the problem? (1) Load the attached test case (2) Enable Chromevox Next (3) Navigate in tab order What is the expected result? Focus highlight is a small rect in the top left corner of the divs. What happens instead? No focus hightlight. What happens is that the code in extensions::ComputeGlobalNodeBounds computes the bounds of an empty aria node to the bounds of the (top most?) parent which is the whole screen it seems in this case. So this function was giving bounds of (8,8 0x0), but is now giving bounds of (0,0 1280x720) in my setup. This is a change of behavior with origin in https://chromium-review.googlesource.com/521686 A tentative way of addressing it was posted to https://chromium-review.googlesource.com/c/618719 but seems to break things. The former behavior wasn't really optimal but gave us enough leeway to figure out proper visual bounds in the chromevox output javascript code by using the size of the nearest non empty parent.
,
Aug 22 2017
@dmazzoni: What do you say about this bug? I can do some more digging into a solution but would like to hear your opinion on the validity of the issue.
,
Aug 22 2017
I did a bit more digging into this and I may have found the source of the difference between the refactored code and the original. It looks like the check for uninitialized rect in the top of AXTree::RelativeToTreeBounds doesn't check the uninitialized state, but rather for empty bounds. So, such bounds (which we want to preserve here) will be overwritten by the bounds of the current node we are processing for offsets, transforms etc.
,
Aug 22 2017
> What is the expected result? > Focus highlight is a small rect in the top left corner of the divs. I disagree with the expected result. We should never legitimately have a completely empty bounding rect for an object. If you want a small rect in the top-left corner, just give it a width and height of 1px, and then everything should work fine. With this example, I think we should fix it so that it inherits the bounds of the nearest ancestor with a nonzero width and height. I'm going to upload a change that does that.
,
Aug 23 2017
@dmazzoni: I agree with your conclusion. That essentially what we have done in chromevox so far. Would be much better to do it in this part of the code directly. Thanks!
,
Aug 29 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4c9925b198332f5fbb82b3edb672ed55071f87dd commit 4c9925b198332f5fbb82b3edb672ed55071f87dd Author: Dominic Mazzoni <dmazzoni@chromium.org> Date: Tue Aug 29 06:29:05 2017 Accessible objects with empty width and height should inherit from parent. Bug: 756788 Change-Id: Iac4a6ae59dd322418a2f7ddf01d02802982e31b7 Reviewed-on: https://chromium-review.googlesource.com/626942 Reviewed-by: Alice Boxhall <aboxhall@chromium.org> Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org> Cr-Commit-Position: refs/heads/master@{#498032} [modify] https://crrev.com/4c9925b198332f5fbb82b3edb672ed55071f87dd/ui/accessibility/ax_tree.cc [modify] https://crrev.com/4c9925b198332f5fbb82b3edb672ed55071f87dd/ui/accessibility/ax_tree_unittest.cc
,
Aug 30 2017
|
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by land...@opera.com
, Aug 18 2017475 bytes
475 bytes View Download