summaryrefslogtreecommitdiffstats
path: root/views/accessibility/view_accessibility.cc
diff options
context:
space:
mode:
authormhm@chromium.org <mhm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-09 04:00:49 +0000
committermhm@chromium.org <mhm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-09 04:00:49 +0000
commit70d38b09d6f504b6a47b4d0e8f0a9b2f5d615373 (patch)
treeefcc27929e40b9e71d0284d8094dab970945214d /views/accessibility/view_accessibility.cc
parent7f265f9db6a502cb8909636d350afd0dbf6c5539 (diff)
downloadchromium_src-70d38b09d6f504b6a47b4d0e8f0a9b2f5d615373.zip
chromium_src-70d38b09d6f504b6a47b4d0e8f0a9b2f5d615373.tar.gz
chromium_src-70d38b09d6f504b6a47b4d0e8f0a9b2f5d615373.tar.bz2
[accessibility] Allow views to have multiple accessibility states and add correct roles.
Allow views to contain multiple accessibility states since states are not mutually exclusive, we treat them as an uint32. Add missing roles to couple of views. BUG=None TEST=Run unit tests, and check accessibility tree. Review URL: http://codereview.chromium.org/1527019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44054 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/accessibility/view_accessibility.cc')
-rw-r--r--views/accessibility/view_accessibility.cc35
1 files changed, 26 insertions, 9 deletions
diff --git a/views/accessibility/view_accessibility.cc b/views/accessibility/view_accessibility.cc
index 9d8861a..f9dc5c6 100644
--- a/views/accessibility/view_accessibility.cc
+++ b/views/accessibility/view_accessibility.cc
@@ -717,16 +717,30 @@ int32 ViewAccessibility::MSAARole(AccessibilityTypes::Role role) {
return ROLE_SYSTEM_GROUPING;
case AccessibilityTypes::ROLE_LINK:
return ROLE_SYSTEM_LINK;
+ case AccessibilityTypes::ROLE_MENUITEM:
+ return ROLE_SYSTEM_MENUITEM;
+ case AccessibilityTypes::ROLE_MENUPOPUP:
+ return ROLE_SYSTEM_MENUPOPUP;
+ case AccessibilityTypes::ROLE_OUTLINE:
+ return ROLE_SYSTEM_OUTLINE;
+ case AccessibilityTypes::ROLE_OUTLINEITEM:
+ return ROLE_SYSTEM_OUTLINEITEM;
case AccessibilityTypes::ROLE_PAGETAB:
return ROLE_SYSTEM_PAGETAB;
case AccessibilityTypes::ROLE_PAGETABLIST:
return ROLE_SYSTEM_PAGETABLIST;
case AccessibilityTypes::ROLE_PANE:
return ROLE_SYSTEM_PANE;
+ case AccessibilityTypes::ROLE_PROGRESSBAR:
+ return ROLE_SYSTEM_PROGRESSBAR;
case AccessibilityTypes::ROLE_PUSHBUTTON:
return ROLE_SYSTEM_PUSHBUTTON;
+ case AccessibilityTypes::ROLE_SCROLLBAR:
+ return ROLE_SYSTEM_SCROLLBAR;
case AccessibilityTypes::ROLE_SEPARATOR:
return ROLE_SYSTEM_SEPARATOR;
+ case AccessibilityTypes::ROLE_STATICTEXT:
+ return ROLE_SYSTEM_STATICTEXT;
case AccessibilityTypes::ROLE_TEXT:
return ROLE_SYSTEM_TEXT;
case AccessibilityTypes::ROLE_TITLEBAR:
@@ -743,15 +757,18 @@ int32 ViewAccessibility::MSAARole(AccessibilityTypes::Role role) {
}
int32 ViewAccessibility::MSAAState(AccessibilityTypes::State state) {
- switch (state) {
- case AccessibilityTypes::STATE_HASPOPUP :
- return STATE_SYSTEM_HASPOPUP;
- case AccessibilityTypes::STATE_READONLY :
- return STATE_SYSTEM_READONLY;
- default :
- // No default state in MSAA.
- return 0;
- }
+ int32 msaa_state = 0;
+ if (state & AccessibilityTypes::STATE_CHECKED)
+ msaa_state |= STATE_SYSTEM_CHECKED;
+ if (state & AccessibilityTypes::STATE_HASPOPUP)
+ msaa_state |= STATE_SYSTEM_HASPOPUP;
+ if (state & AccessibilityTypes::STATE_LINKED)
+ msaa_state |= STATE_SYSTEM_LINKED;
+ if (state & AccessibilityTypes::STATE_PROTECTED)
+ msaa_state |= STATE_SYSTEM_PROTECTED;
+ if (state & AccessibilityTypes::STATE_READONLY)
+ msaa_state |= STATE_SYSTEM_READONLY;
+ return msaa_state;
}
// IAccessible functions not supported.