summaryrefslogtreecommitdiffstats
path: root/content/browser/accessibility/browser_accessibility_manager_win.cc
diff options
context:
space:
mode:
authordmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-01 08:44:16 +0000
committerdmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-01 08:44:16 +0000
commitee84512d1534bdf10fc11850665f2f6f5a16ba50 (patch)
treedf0a5130eb32a29932d9f1ef7766aaeee611ce00 /content/browser/accessibility/browser_accessibility_manager_win.cc
parentaec454416ace3ac53d95b2a00a4f89c2f5f443da (diff)
downloadchromium_src-ee84512d1534bdf10fc11850665f2f6f5a16ba50.zip
chromium_src-ee84512d1534bdf10fc11850665f2f6f5a16ba50.tar.gz
chromium_src-ee84512d1534bdf10fc11850665f2f6f5a16ba50.tar.bz2
Add a big grab bag of missing web accessibility
functionality on Windows. (Much of this will benefit Mac in a future changelist.) Improvements include dozens of corrected roles and states for various elements, improved support for tables with rowspan and colspan, range control support, and live region support. Also adds a new command-line flag to turn on logging of accessibility events, to help making this type of bug fixing much easier in the future. BUG=89181,89185,89187,89188,89202,89205,89210,89212,89213,89223 TEST=Manual testing with JAWS, NVDA, AViewer, and accProbe. Review URL: http://codereview.chromium.org/7745035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99161 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/accessibility/browser_accessibility_manager_win.cc')
-rw-r--r--content/browser/accessibility/browser_accessibility_manager_win.cc46
1 files changed, 31 insertions, 15 deletions
diff --git a/content/browser/accessibility/browser_accessibility_manager_win.cc b/content/browser/accessibility/browser_accessibility_manager_win.cc
index 7b992e7..943831e 100644
--- a/content/browser/accessibility/browser_accessibility_manager_win.cc
+++ b/content/browser/accessibility/browser_accessibility_manager_win.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -57,33 +57,49 @@ void BrowserAccessibilityManagerWin::NotifyAccessibilityEvent(
BrowserAccessibility* node) {
LONG event_id = EVENT_MIN;
switch (type) {
- case ViewHostMsg_AccessibilityNotification_Type::
- NOTIFICATION_TYPE_CHECK_STATE_CHANGED:
+ case ViewHostMsg_AccEvent::ACTIVE_DESCENDANT_CHANGED:
+ event_id = IA2_EVENT_ACTIVE_DESCENDANT_CHANGED;
+ break;
+ case ViewHostMsg_AccEvent::CHECK_STATE_CHANGED:
event_id = EVENT_OBJECT_STATECHANGE;
break;
- case ViewHostMsg_AccessibilityNotification_Type::
- NOTIFICATION_TYPE_CHILDREN_CHANGED:
+ case ViewHostMsg_AccEvent::CHILDREN_CHANGED:
event_id = EVENT_OBJECT_REORDER;
break;
- case ViewHostMsg_AccessibilityNotification_Type::
- NOTIFICATION_TYPE_FOCUS_CHANGED:
+ case ViewHostMsg_AccEvent::FOCUS_CHANGED:
event_id = EVENT_OBJECT_FOCUS;
break;
- case ViewHostMsg_AccessibilityNotification_Type::
- NOTIFICATION_TYPE_LOAD_COMPLETE:
+ case ViewHostMsg_AccEvent::LOAD_COMPLETE:
event_id = IA2_EVENT_DOCUMENT_LOAD_COMPLETE;
break;
- case ViewHostMsg_AccessibilityNotification_Type::
- NOTIFICATION_TYPE_VALUE_CHANGED:
+ case ViewHostMsg_AccEvent::VALUE_CHANGED:
event_id = EVENT_OBJECT_VALUECHANGE;
break;
- case ViewHostMsg_AccessibilityNotification_Type::
- NOTIFICATION_TYPE_SELECTED_TEXT_CHANGED:
+ case ViewHostMsg_AccEvent::SELECTED_TEXT_CHANGED:
event_id = IA2_EVENT_TEXT_CARET_MOVED;
break;
- default:
- NOTREACHED();
+ case ViewHostMsg_AccEvent::LIVE_REGION_CHANGED:
+ event_id = EVENT_OBJECT_REORDER;
+ break;
+ case ViewHostMsg_AccEvent::TEXT_INSERTED:
+ event_id = IA2_EVENT_TEXT_INSERTED;
+ break;
+ case ViewHostMsg_AccEvent::TEXT_REMOVED:
+ event_id = IA2_EVENT_TEXT_REMOVED;
break;
+ case ViewHostMsg_AccEvent::OBJECT_SHOW:
+ event_id = EVENT_OBJECT_SHOW;
+ break;
+ case ViewHostMsg_AccEvent::OBJECT_HIDE:
+ event_id = EVENT_OBJECT_HIDE;
+ break;
+ case ViewHostMsg_AccEvent::ALERT:
+ event_id = EVENT_SYSTEM_ALERT;
+ break;
+ default:
+ // Not all WebKit accessibility events result in a Windows
+ // accessibility notification.
+ return;
}
NotifyWinEvent(event_id, GetParentView(), OBJID_CLIENT, node->child_id());