DescriptionUpdate the accessibility tree when a modal dialog is opened/closed.
This patch is an improved approach from r161595. It turns out it's not
sufficient to traverse the new AT tree calling
notifyIfIgnoreValueChanged on each node, since the browser-side can hold
on to descendents that have been pruned out of the tree and never get a
child changed notification for them.
This patch blows away the entire tree and forces it to rebuild when a
modal dialog is opened/closed. It's a big hammer but seems to be the
most foolproof approach. We considered approaches like traversing
m_objects calling notifyIfIgnoreValueChanged on each, but it's
conceivable that m_objects isn't up-to-date. Since a modal dialog likely
causes a massive change to the tree, starting over entirely isn't so
inefficient.
The test for this patch is Chrome-side:
https://codereview.chromium.org/64273003/
This patch causes inert-node-is-hidden.html to fail, because
AccessibilityController doesn't expect the AX cache to get destroyed
and recreated. Since the DumpAccessibilityTree tests on Chrome-side
cover the behavior and the plan is to have only DumpAccessibilityTree
tests in the future, I'm removing inert-node-is-hidden.html.
BUG=304779
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=161880
Patch Set 1 #Patch Set 2 : sync and remove inert-node-is-hidden.html #
Messages
Total messages: 7 (0 generated)
|