diff options
author | klink@chromium.org <klink@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-07 22:29:28 +0000 |
---|---|---|
committer | klink@chromium.org <klink@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-07 22:29:28 +0000 |
commit | b45243c422ce9eddf818d25777fea0f7e7f94e85 (patch) | |
tree | ce75b7f20e3718fea6f04d619099c53c7901ab55 /chrome | |
parent | a24cb443103a83d16744b74808226aec6ff57aef (diff) | |
download | chromium_src-b45243c422ce9eddf818d25777fea0f7e7f94e85.zip chromium_src-b45243c422ce9eddf818d25777fea0f7e7f94e85.tar.gz chromium_src-b45243c422ce9eddf818d25777fea0f7e7f94e85.tar.bz2 |
Adds support for an initial set of WAI-ARIA roles, needed to support screen readers in AJAX web applications (e.g. Gmail).
BUG=None
TEST=None
Review URL: http://codereview.chromium.org/149265
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20094 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/browser_accessibility.cc | 115 |
1 files changed, 64 insertions, 51 deletions
diff --git a/chrome/browser/browser_accessibility.cc b/chrome/browser/browser_accessibility.cc index 8af5a6a..ae5b903 100644 --- a/chrome/browser/browser_accessibility.cc +++ b/chrome/browser/browser_accessibility.cc @@ -559,37 +559,50 @@ const WebAccessibility::OutParams& BrowserAccessibility::response() { long BrowserAccessibility::MSAARole(long browser_accessibility_role) { switch (browser_accessibility_role) { - case WebAccessibility::ROLE_PUSHBUTTON : - return ROLE_SYSTEM_PUSHBUTTON; - case WebAccessibility::ROLE_RADIOBUTTON : - return ROLE_SYSTEM_RADIOBUTTON; - case WebAccessibility::ROLE_CHECKBUTTON : + case WebAccessibility::ROLE_CELL: + return ROLE_SYSTEM_CELL; + case WebAccessibility::ROLE_CHECKBUTTON: return ROLE_SYSTEM_CHECKBUTTON; - case WebAccessibility::ROLE_SLIDER : - return ROLE_SYSTEM_SLIDER; - case WebAccessibility::ROLE_PAGETABLIST : - return ROLE_SYSTEM_PAGETABLIST; - case WebAccessibility::ROLE_TEXT : - return ROLE_SYSTEM_TEXT; - case WebAccessibility::ROLE_STATICTEXT : - return ROLE_SYSTEM_STATICTEXT; - case WebAccessibility::ROLE_OUTLINE : - return ROLE_SYSTEM_OUTLINE; - case WebAccessibility::ROLE_COLUMN : + case WebAccessibility::ROLE_COLUMN: return ROLE_SYSTEM_COLUMN; - case WebAccessibility::ROLE_ROW : - return ROLE_SYSTEM_ROW; - case WebAccessibility::ROLE_GROUPING : + case WebAccessibility::ROLE_COLUMNHEADER: + return ROLE_SYSTEM_COLUMNHEADER; + case WebAccessibility::ROLE_GRAPHIC: + return ROLE_SYSTEM_GRAPHIC; + case WebAccessibility::ROLE_GROUPING: return ROLE_SYSTEM_GROUPING; - case WebAccessibility::ROLE_LIST : + case WebAccessibility::ROLE_LINK: + return ROLE_SYSTEM_LINK; + case WebAccessibility::ROLE_LIST: + case WebAccessibility::ROLE_LISTBOX: return ROLE_SYSTEM_LIST; - case WebAccessibility::ROLE_TABLE : + case WebAccessibility::ROLE_MENUITEM: + return ROLE_SYSTEM_MENUITEM; + case WebAccessibility::ROLE_MENUPOPUP: + return ROLE_SYSTEM_MENUPOPUP; + case WebAccessibility::ROLE_OUTLINE: + return ROLE_SYSTEM_OUTLINE; + case WebAccessibility::ROLE_PAGETABLIST: + return ROLE_SYSTEM_PAGETABLIST; + case WebAccessibility::ROLE_PROGRESSBAR: + return ROLE_SYSTEM_PROGRESSBAR; + case WebAccessibility::ROLE_PUSHBUTTON: + return ROLE_SYSTEM_PUSHBUTTON; + case WebAccessibility::ROLE_RADIOBUTTON: + return ROLE_SYSTEM_RADIOBUTTON; + case WebAccessibility::ROLE_ROW: + return ROLE_SYSTEM_ROW; + case WebAccessibility::ROLE_ROWHEADER: + return ROLE_SYSTEM_ROWHEADER; + case WebAccessibility::ROLE_SLIDER: + return ROLE_SYSTEM_SLIDER; + case WebAccessibility::ROLE_STATICTEXT: + return ROLE_SYSTEM_STATICTEXT; + case WebAccessibility::ROLE_TABLE: return ROLE_SYSTEM_TABLE; - case WebAccessibility::ROLE_LINK : - return ROLE_SYSTEM_LINK; - case WebAccessibility::ROLE_GRAPHIC : - return ROLE_SYSTEM_GRAPHIC; - case WebAccessibility::ROLE_CLIENT : + case WebAccessibility::ROLE_TEXT: + return ROLE_SYSTEM_TEXT; + case WebAccessibility::ROLE_CLIENT: default: // This is the default role for MSAA. return ROLE_SYSTEM_CLIENT; @@ -599,48 +612,48 @@ long BrowserAccessibility::MSAARole(long browser_accessibility_role) { long BrowserAccessibility::MSAAState(long browser_accessibility_state) { long state = 0; - if ((browser_accessibility_state >> WebAccessibility::STATE_LINKED) & 1) - state |= STATE_SYSTEM_LINKED; - - if ((browser_accessibility_state >> WebAccessibility::STATE_HOTTRACKED) & 1) - state |= STATE_SYSTEM_HOTTRACKED; + if ((browser_accessibility_state >> WebAccessibility::STATE_CHECKED) & 1) + state |= STATE_SYSTEM_CHECKED; - if ((browser_accessibility_state >> WebAccessibility::STATE_UNAVAILABLE) & 1) - state |= STATE_SYSTEM_UNAVAILABLE; + if ((browser_accessibility_state >> WebAccessibility::STATE_FOCUSABLE) & 1) + state |= STATE_SYSTEM_FOCUSABLE; - if ((browser_accessibility_state >> WebAccessibility::STATE_READONLY) & 1) - state |= STATE_SYSTEM_READONLY; + if ((browser_accessibility_state >> WebAccessibility::STATE_FOCUSED) & 1) + state |= STATE_SYSTEM_FOCUSED; - if ((browser_accessibility_state >> WebAccessibility::STATE_OFFSCREEN) & 1) - state |= STATE_SYSTEM_OFFSCREEN; + if ((browser_accessibility_state >> WebAccessibility::STATE_HOTTRACKED) & 1) + state |= STATE_SYSTEM_HOTTRACKED; if ((browser_accessibility_state >> - WebAccessibility::STATE_MULTISELECTABLE) & 1) { - state |= STATE_SYSTEM_MULTISELECTABLE; + WebAccessibility::STATE_INDETERMINATE) & 1) { + state |= STATE_SYSTEM_INDETERMINATE; } - if ((browser_accessibility_state >> WebAccessibility::STATE_PROTECTED) & 1) - state |= STATE_SYSTEM_PROTECTED; + if ((browser_accessibility_state >> WebAccessibility::STATE_LINKED) & 1) + state |= STATE_SYSTEM_LINKED; if ((browser_accessibility_state >> - WebAccessibility::STATE_INDETERMINATE) & 1) { - state |= STATE_SYSTEM_INDETERMINATE; + WebAccessibility::STATE_MULTISELECTABLE) & 1) { + state |= STATE_SYSTEM_MULTISELECTABLE; } - if ((browser_accessibility_state >> WebAccessibility::STATE_CHECKED) & 1) - state |= STATE_SYSTEM_CHECKED; + if ((browser_accessibility_state >> WebAccessibility::STATE_OFFSCREEN) & 1) + state |= STATE_SYSTEM_OFFSCREEN; if ((browser_accessibility_state >> WebAccessibility::STATE_PRESSED) & 1) - state |= STATE_SYSTEM_PRESSED; + state |= STATE_SYSTEM_PRESSED; - if ((browser_accessibility_state >> WebAccessibility::STATE_FOCUSED) & 1) - state |= STATE_SYSTEM_FOCUSED; + if ((browser_accessibility_state >> WebAccessibility::STATE_PROTECTED) & 1) + state |= STATE_SYSTEM_PROTECTED; + + if ((browser_accessibility_state >> WebAccessibility::STATE_READONLY) & 1) + state |= STATE_SYSTEM_READONLY; if ((browser_accessibility_state >> WebAccessibility::STATE_TRAVERSED) & 1) - state |= STATE_SYSTEM_TRAVERSED; + state |= STATE_SYSTEM_TRAVERSED; - if ((browser_accessibility_state >> WebAccessibility::STATE_FOCUSABLE) & 1) - state |= STATE_SYSTEM_FOCUSABLE; + if ((browser_accessibility_state >> WebAccessibility::STATE_UNAVAILABLE) & 1) + state |= STATE_SYSTEM_UNAVAILABLE; return state; } |