Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(611)

Issue 70213002: Update the accessibility tree when a modal dialog is opened/closed. (Closed)

Created:
7 years, 1 month ago by falken
Modified:
7 years, 1 month ago
Reviewers:
dmazzoni
CC:
blink-reviews, dglazkov+blink, dmazzoni, adamk+blink_chromium.org, aboxhall
Base URL:
https://chromium.googlesource.com/chromium/blink.git@master
Visibility:
Public.

Description

Update 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 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+25 lines, -65 lines) Patch
D LayoutTests/accessibility/inert-node-is-hidden.html View 1 1 chunk +0 lines, -43 lines 0 comments Download
D LayoutTests/accessibility/inert-node-is-hidden-expected.txt View 1 1 chunk +0 lines, -16 lines 0 comments Download
M Source/core/accessibility/AXObject.cpp View 1 1 chunk +7 lines, -6 lines 0 comments Download
M Source/core/html/HTMLDialogElement.cpp View 1 4 chunks +18 lines, -0 lines 0 comments Download

Messages

Total messages: 7 (0 generated)
falken
Dominic, please take a look.
7 years, 1 month ago (2013-11-12 12:32:06 UTC) #1
dmazzoni
lgtm I like it! Should be much more foolproof.
7 years, 1 month ago (2013-11-12 21:26:25 UTC) #2
falken
On 2013/11/12 21:26:25, Dominic Mazzoni wrote: > lgtm > > I like it! Should be ...
7 years, 1 month ago (2013-11-13 03:42:24 UTC) #3
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/falken@chromium.org/70213002/50001
7 years, 1 month ago (2013-11-13 03:56:16 UTC) #4
commit-bot: I haz the power
Retried try job too often on linux_blink_rel for step(s) webkit_tests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=linux_blink_rel&number=12319
7 years, 1 month ago (2013-11-13 05:22:17 UTC) #5
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/falken@chromium.org/70213002/50001
7 years, 1 month ago (2013-11-13 05:27:03 UTC) #6
commit-bot: I haz the power
7 years, 1 month ago (2013-11-13 07:05:34 UTC) #7
Message was sent while issue was closed.
Change committed as 161880

Powered by Google App Engine
This is Rietveld 408576698