Chromium Code Reviews
[email protected] (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(205)

Issue 6625042: Browser accessibility improvements so that screen readers can access more... (Closed)

Created:
9 years, 9 months ago by dmazzoni
Modified:
9 years, 7 months ago
CC:
chromium-reviews, darin-cc_chromium.org, brettw-cc_chromium.org, pam+watch_chromium.org, David Tseng
Visibility:
Public.

Description

Browser accessibility improvements so that screen readers can access more complicated webpages without problems. First, WebAccessibility now works around a "multiple inheritance problem" in WebCore::AccessibilityObject where the same node appears as a child of multiple parents. For example, a table cell appears as a child of both a row and a column. This is solved by having each WebAccessibility parent check whether the child lists itself as an ancestor. If not, it notes the child's id only in a separate vector, so each child appears fully only once. Second, BrowserAccessibility now has internal reference counting, which allows BrowserAccessibilityManager to update any subtree while maximally reusing as many objects as possible. This fixes many screen reader interaction problems! All of this new functionality is tested with new cross-platform tests. BUG=67192 BUG=67620 TEST=Adds new unit tests and a browser test. Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=77316

Patch Set 1 #

Patch Set 2 : '' #

Total comments: 33

Patch Set 3 : '' #

Total comments: 6

Patch Set 4 : '' #

Patch Set 5 : '' #

Patch Set 6 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+864 lines, -184 lines) Patch
M chrome/browser/accessibility/accessibility_win_browsertest.cc View 1 2 1 chunk +3 lines, -0 lines 0 comments Download
M chrome/browser/accessibility/browser_accessibility.h View 1 2 6 chunks +59 lines, -9 lines 0 comments Download
M chrome/browser/accessibility/browser_accessibility.cc View 1 2 3 4 5 3 chunks +53 lines, -14 lines 0 comments Download
M chrome/browser/accessibility/browser_accessibility_mac.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/accessibility/browser_accessibility_mac.mm View 1 2 2 chunks +3 lines, -1 line 0 comments Download
M chrome/browser/accessibility/browser_accessibility_manager.h View 1 2 4 chunks +7 lines, -19 lines 0 comments Download
M chrome/browser/accessibility/browser_accessibility_manager.cc View 1 2 3 4 6 chunks +101 lines, -92 lines 0 comments Download
M chrome/browser/accessibility/browser_accessibility_manager_mac.mm View 1 2 1 chunk +0 lines, -4 lines 0 comments Download
A chrome/browser/accessibility/browser_accessibility_manager_unittest.cc View 1 2 3 4 5 1 chunk +549 lines, -0 lines 0 comments Download
M chrome/browser/accessibility/browser_accessibility_manager_win.cc View 1 2 2 chunks +6 lines, -6 lines 0 comments Download
M chrome/browser/accessibility/browser_accessibility_win.h View 1 2 2 chunks +2 lines, -9 lines 0 comments Download
M chrome/browser/accessibility/browser_accessibility_win.cc View 1 2 4 chunks +7 lines, -20 lines 0 comments Download
M chrome/browser/accessibility/browser_accessibility_win_unittest.cc View 1 2 2 chunks +4 lines, -0 lines 0 comments Download
M chrome/browser/accessibility/renderer_accessibility_browsertest.cc View 1 2 1 chunk +36 lines, -0 lines 0 comments Download
M chrome/chrome_tests.gypi View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M chrome/common/render_messages.cc View 1 2 3 3 chunks +4 lines, -0 lines 0 comments Download
M webkit/glue/webaccessibility.h View 1 2 2 chunks +6 lines, -1 line 0 comments Download
M webkit/glue/webaccessibility.cc View 1 2 2 chunks +22 lines, -8 lines 0 comments Download

Messages

Total messages: 8 (0 generated)
dmazzoni
9 years, 9 months ago (2011-03-06 19:03:22 UTC) #1
Chris Guillory
This is great! Some minor comments. http://codereview.chromium.org/6625042/diff/7002/chrome/browser/accessibility/browser_accessibility.h File chrome/browser/accessibility/browser_accessibility.h (right): http://codereview.chromium.org/6625042/diff/7002/chrome/browser/accessibility/browser_accessibility.h#newcode68 chrome/browser/accessibility/browser_accessibility.h:68: void ClearChildren(); Seems ...
9 years, 9 months ago (2011-03-06 21:45:13 UTC) #2
dmazzoni
Thanks for the review! http://codereview.chromium.org/6625042/diff/7002/chrome/browser/accessibility/browser_accessibility.h File chrome/browser/accessibility/browser_accessibility.h (right): http://codereview.chromium.org/6625042/diff/7002/chrome/browser/accessibility/browser_accessibility.h#newcode68 chrome/browser/accessibility/browser_accessibility.h:68: void ClearChildren(); On 2011/03/06 21:45:13, ...
9 years, 9 months ago (2011-03-07 16:51:44 UTC) #3
Chris Guillory
On 2011/03/07 16:51:44, Dominic Mazzoni wrote: > Thanks for the review! > > http://codereview.chromium.org/6625042/diff/7002/chrome/browser/accessibility/browser_accessibility.h > ...
9 years, 9 months ago (2011-03-07 18:30:08 UTC) #4
Paweł Hajdan Jr.
Drive-by with minor test style comments. No need to wait for me. http://codereview.chromium.org/6625042/diff/7002/chrome/browser/accessibility/browser_accessibility_manager_unittest.cc File chrome/browser/accessibility/browser_accessibility_manager_unittest.cc ...
9 years, 9 months ago (2011-03-07 20:13:30 UTC) #5
dmazzoni
New version uploaded, ready for another look. http://codereview.chromium.org/6625042/diff/7002/chrome/browser/accessibility/browser_accessibility_manager_unittest.cc File chrome/browser/accessibility/browser_accessibility_manager_unittest.cc (right): http://codereview.chromium.org/6625042/diff/7002/chrome/browser/accessibility/browser_accessibility_manager_unittest.cc#newcode66 chrome/browser/accessibility/browser_accessibility_manager_unittest.cc:66: virtual void ...
9 years, 9 months ago (2011-03-07 22:02:42 UTC) #6
Chris Guillory
LGTM! A few comments. http://codereview.chromium.org/6625042/diff/1010/chrome/browser/accessibility/browser_accessibility_manager.cc File chrome/browser/accessibility/browser_accessibility_manager.cc (right): http://codereview.chromium.org/6625042/diff/1010/chrome/browser/accessibility/browser_accessibility_manager.cc#newcode289 chrome/browser/accessibility/browser_accessibility_manager.cc:289: // Build a new tree, ...
9 years, 9 months ago (2011-03-07 22:32:09 UTC) #7
dmazzoni
9 years, 9 months ago (2011-03-07 22:38:49 UTC) #8
http://codereview.chromium.org/6625042/diff/1010/chrome/browser/accessibility...
File chrome/browser/accessibility/browser_accessibility_manager.cc (right):

http://codereview.chromium.org/6625042/diff/1010/chrome/browser/accessibility...
chrome/browser/accessibility/browser_accessibility_manager.cc:289: // Build a
new tree, reusing old nodes if possible. Each nodes that's
On 2011/03/07 22:32:09, Chris Guillory wrote:
> Nit: Each node that's...

Done.

http://codereview.chromium.org/6625042/diff/1010/chrome/browser/accessibility...
chrome/browser/accessibility/browser_accessibility_manager.cc:298: if (!focus_
|| !focus_->instance_active())
On 2011/03/07 22:32:09, Chris Guillory wrote:
> Shouldn't focus_ always be valid here?

focus_->instance_active() will be false if the node that had focus disappears. I
don't think there's any scenario where focus_ could be NULL at this point, so I
changed it to a DCHECK.

http://codereview.chromium.org/6625042/diff/1010/chrome/common/render_message...
File chrome/common/render_messages.cc (right):

http://codereview.chromium.org/6625042/diff/1010/chrome/common/render_message...
chrome/common/render_messages.cc:795: LogParam(p.html_attributes, l);
On 2011/03/07 22:32:09, Chris Guillory wrote:
> Log p.indirect_child_ids.

Good catch, done.

Powered by Google App Engine
This is Rietveld 408576698