DescriptionUpdate the accessibility tree when a modal dialog is opened/closed.
When a node's inertness changes, we must notify the AX tree since
the node may need to be added or removed from the tree.
This patch does the following.
1) When an modal dialog opens/closes, essentially we traverse the AX
tree and call notifyIfIgnoredValueChanged on each object. However, once
an object is found whose ignored value changed, it's not necessary to
descend into its subtree by virtue of the childrenCleared/addChild
mechanism.
An earlier attempt called notifyIfIgnoredValueChanged only on immediate
children of the HTMLBodyElement. This is insufficient because siblings
of <dialog> are roots of newly (or formerly) inert subtrees, and some
objects are not descendants of body due to renderer reparenting (e.g.
modal dialogs).
2) Modifies AXObject::isInertOrAriaHidden to climb the AX tree until an
object with non-null node() is found, when evaluating inertness. This is
necessary because some objects such as one created with
MenuListPopupRole don't have a node, but should be considered inert.
The test for this patch is Chrome-side:
https://codereview.chromium.org/64273003
BUG=304779
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=161595
Patch Set 1 #
Total comments: 6
Patch Set 2 : review comments #
Messages
Total messages: 13 (0 generated)
|