Fix for bug 373364 - implement IA2:role. r=aaronlev
git-svn-id: svn://10.0.0.236/trunk@221681 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -465,8 +465,9 @@ STDMETHODIMP nsAccessibleWrap::get_accRole(
|
||||
PRUint32 xpRole = 0, msaaRole = 0;
|
||||
if (NS_FAILED(xpAccessible->GetFinalRole(&xpRole)))
|
||||
return E_FAIL;
|
||||
msaaRole = msaaRoleMap[xpRole];
|
||||
NS_ASSERTION(msaaRoleMap[nsIAccessible::ROLE_LAST_ENTRY] == ROLE_MSAA_LAST_ENTRY,
|
||||
|
||||
msaaRole = gWindowsRoleMap[xpRole].msaaRole;
|
||||
NS_ASSERTION(gWindowsRoleMap[nsIAccessible::ROLE_LAST_ENTRY].msaaRole == ROLE_WINDOWS_LAST_ENTRY,
|
||||
"MSAA role map skewed");
|
||||
|
||||
// Special case, not a great place for this, but it's better than adding extra role buttonmenu role to ARIA
|
||||
@@ -487,11 +488,15 @@ STDMETHODIMP nsAccessibleWrap::get_accRole(
|
||||
// Use BSTR role to expose role attribute or tag name + namespace
|
||||
nsCOMPtr<nsIDOMNode> domNode;
|
||||
nsCOMPtr<nsIAccessNode> accessNode(do_QueryInterface(xpAccessible));
|
||||
NS_ASSERTION(accessNode, "No accessnode for accessible");
|
||||
if (!accessNode)
|
||||
return E_FAIL;
|
||||
|
||||
accessNode->GetDOMNode(getter_AddRefs(domNode));
|
||||
nsIContent *content = GetRoleContent(domNode);
|
||||
NS_ASSERTION(content, "No content for accessible");
|
||||
if (content && content->IsNodeOfType(nsINode::eELEMENT)) {
|
||||
if (!content)
|
||||
return E_FAIL;
|
||||
|
||||
if (content->IsNodeOfType(nsINode::eELEMENT)) {
|
||||
nsAutoString roleString;
|
||||
if (msaaRole != ROLE_SYSTEM_CLIENT && !GetRoleAttribute(content, roleString)) {
|
||||
nsINodeInfo *nodeInfo = content->NodeInfo();
|
||||
@@ -1114,7 +1119,16 @@ nsAccessibleWrap::get_relations(long maxRelations,
|
||||
STDMETHODIMP
|
||||
nsAccessibleWrap::role(long *role)
|
||||
{
|
||||
return E_NOTIMPL;
|
||||
PRUint32 xpRole = 0;
|
||||
if (NS_FAILED(GetFinalRole(&xpRole)))
|
||||
return E_FAIL;
|
||||
|
||||
NS_ASSERTION(gWindowsRoleMap[nsIAccessible::ROLE_LAST_ENTRY].ia2Role == ROLE_WINDOWS_LAST_ENTRY,
|
||||
"MSAA role map skewed");
|
||||
|
||||
*role = gWindowsRoleMap[xpRole].ia2Role;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* vim:expandtab:shiftwidth=4:tabstop=4:
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* vim:expandtab:shiftwidth=2:tabstop=2:
|
||||
*/
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
@@ -21,8 +21,9 @@
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Gao, Ming (gaoming@cn.ibm.com)
|
||||
* Aaron Leventhal (aleventh@us.ibm.com)
|
||||
* Gao, Ming <gaoming@cn.ibm.com>
|
||||
* Aaron Leventhal <aleventh@us.ibm.com>
|
||||
* Alexander Surkov <surkov.alexander@gmail.com>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
@@ -39,9 +40,10 @@
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#include "OLEACC.H"
|
||||
#include "AccessibleRole.h"
|
||||
|
||||
const PRUint32 USE_ROLE_STRING = 0;
|
||||
const PRUint32 ROLE_MSAA_LAST_ENTRY = 0xffffffff;
|
||||
const PRUint32 ROLE_WINDOWS_LAST_ENTRY = 0xffffffff;
|
||||
|
||||
#ifndef ROLE_SYSTEM_SPLITBUTTON
|
||||
const PRUint32 ROLE_SYSTEM_SPLITBUTTON = 0x3e; // Not defined in all oleacc.h versions
|
||||
@@ -55,126 +57,366 @@ const PRUint32 ROLE_SYSTEM_IPADDRESS = 0x3f; // Not defined in all oleacc.h vers
|
||||
const PRUint32 ROLE_SYSTEM_OUTLINEBUTTON = 0x40; // Not defined in all oleacc.h versions
|
||||
#endif
|
||||
|
||||
// Map array from cross platform roles to MSAA roles
|
||||
PRUint32 msaaRoleMap[] = {
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_NOTHING
|
||||
ROLE_SYSTEM_TITLEBAR, // nsIAccessible::ROLE_TITLEBAR
|
||||
ROLE_SYSTEM_MENUBAR, // nsIAccessible::ROLE_MENUBAR
|
||||
ROLE_SYSTEM_SCROLLBAR, // nsIAccessible::ROLE_SCROLLBAR
|
||||
ROLE_SYSTEM_GRIP, // nsIAccessible::ROLE_GRIP
|
||||
ROLE_SYSTEM_SOUND, // nsIAccessible::ROLE_SOUND
|
||||
ROLE_SYSTEM_CURSOR, // nsIAccessible::ROLE_CURSOR
|
||||
ROLE_SYSTEM_CARET, // nsIAccessible::ROLE_CARET
|
||||
ROLE_SYSTEM_ALERT, // nsIAccessible::ROLE_ALERT
|
||||
ROLE_SYSTEM_WINDOW, // nsIAccessible::ROLE_WINDOW
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_CLIENT
|
||||
ROLE_SYSTEM_MENUPOPUP, // nsIAccessible::ROLE_MENUPOPUP
|
||||
ROLE_SYSTEM_MENUITEM, // nsIAccessible::ROLE_MENUITEM
|
||||
ROLE_SYSTEM_TOOLTIP, // nsIAccessible::ROLE_TOOLTIP
|
||||
ROLE_SYSTEM_APPLICATION, // nsIAccessible::ROLE_APPLICATION
|
||||
ROLE_SYSTEM_DOCUMENT, // nsIAccessible::ROLE_DOCUMENT
|
||||
ROLE_SYSTEM_PANE, // nsIAccessible::ROLE_PANE
|
||||
ROLE_SYSTEM_CHART, // nsIAccessible::ROLE_CHART
|
||||
ROLE_SYSTEM_DIALOG, // nsIAccessible::ROLE_DIALOG
|
||||
ROLE_SYSTEM_BORDER, // nsIAccessible::ROLE_BORDER
|
||||
ROLE_SYSTEM_GROUPING, // nsIAccessible::ROLE_GROUPING
|
||||
ROLE_SYSTEM_SEPARATOR, // nsIAccessible::ROLE_SEPARATOR
|
||||
ROLE_SYSTEM_TOOLBAR, // nsIAccessible::ROLE_TOOLBAR
|
||||
ROLE_SYSTEM_STATUSBAR, // nsIAccessible::ROLE_STATUSBAR
|
||||
ROLE_SYSTEM_TABLE, // nsIAccessible::ROLE_TABLE
|
||||
ROLE_SYSTEM_COLUMNHEADER, // nsIAccessible::ROLE_COLUMNHEADER,
|
||||
ROLE_SYSTEM_ROWHEADER, // nsIAccessible::ROLE_ROWHEADER
|
||||
ROLE_SYSTEM_COLUMN, // nsIAccessible::ROLE_COLUMN
|
||||
ROLE_SYSTEM_ROW, // nsIAccessible::ROLE_ROW
|
||||
ROLE_SYSTEM_CELL, // nsIAccessible::ROLE_CELL
|
||||
ROLE_SYSTEM_LINK, // nsIAccessible::ROLE_LINK
|
||||
ROLE_SYSTEM_HELPBALLOON, // nsIAccessible::ROLE_HELPBALLOON
|
||||
ROLE_SYSTEM_CHARACTER, // nsIAccessible::ROLE_CHARACTER
|
||||
ROLE_SYSTEM_LIST, // nsIAccessible::ROLE_LIST
|
||||
ROLE_SYSTEM_LISTITEM, // nsIAccessible::ROLE_LISTITEM
|
||||
ROLE_SYSTEM_OUTLINE, // nsIAccessible::ROLE_OUTLINE
|
||||
ROLE_SYSTEM_OUTLINEITEM, // nsIAccessible::ROLE_OUTLINEITEM
|
||||
ROLE_SYSTEM_PAGETAB, // nsIAccessible::ROLE_PAGETAB
|
||||
ROLE_SYSTEM_PROPERTYPAGE, // nsIAccessible::ROLE_PROPERTYPAGE
|
||||
ROLE_SYSTEM_INDICATOR, // nsIAccessible::ROLE_INDICATOR
|
||||
ROLE_SYSTEM_GRAPHIC, // nsIAccessible::ROLE_GRAPHIC
|
||||
ROLE_SYSTEM_STATICTEXT, // nsIAccessible::ROLE_STATICTEXT
|
||||
ROLE_SYSTEM_TEXT, // nsIAccessible::ROLE_TEXT_LEAF
|
||||
ROLE_SYSTEM_PUSHBUTTON, // nsIAccessible::ROLE_PUSHBUTTON
|
||||
ROLE_SYSTEM_CHECKBUTTON, // nsIAccessible::ROLE_CHECKBUTTON
|
||||
ROLE_SYSTEM_RADIOBUTTON, // nsIAccessible::ROLE_RADIOBUTTON
|
||||
ROLE_SYSTEM_COMBOBOX, // nsIAccessible::ROLE_COMBOBOX
|
||||
ROLE_SYSTEM_DROPLIST, // nsIAccessible::ROLE_DROPLIST
|
||||
ROLE_SYSTEM_PROGRESSBAR, // nsIAccessible::ROLE_PROGRESSBAR
|
||||
ROLE_SYSTEM_DIAL, // nsIAccessible::ROLE_DIAL
|
||||
ROLE_SYSTEM_HOTKEYFIELD, // nsIAccessible::ROLE_HOTKEYFIELD
|
||||
ROLE_SYSTEM_SLIDER, // nsIAccessible::ROLE_SLIDER
|
||||
ROLE_SYSTEM_SPINBUTTON, // nsIAccessible::ROLE_SPINBUTTON
|
||||
ROLE_SYSTEM_DIAGRAM, // nsIAccessible::ROLE_DIAGRAM
|
||||
ROLE_SYSTEM_ANIMATION, // nsIAccessible::ROLE_ANIMATION
|
||||
ROLE_SYSTEM_EQUATION, // nsIAccessible::ROLE_EQUATION
|
||||
ROLE_SYSTEM_BUTTONDROPDOWN, // nsIAccessible::ROLE_BUTTONDROPDOWN
|
||||
ROLE_SYSTEM_BUTTONMENU, // nsIAccessible::ROLE_BUTTONMENU
|
||||
ROLE_SYSTEM_BUTTONDROPDOWNGRID, // nsIAccessible::ROLE_BUTTONDROPDOWNGRID
|
||||
ROLE_SYSTEM_WHITESPACE, // nsIAccessible::ROLE_WHITESPACE
|
||||
ROLE_SYSTEM_PAGETABLIST, // nsIAccessible::ROLE_PAGETABLIST
|
||||
ROLE_SYSTEM_CLOCK, // nsIAccessible::ROLE_CLOCK
|
||||
ROLE_SYSTEM_SPLITBUTTON, // nsIAccessible::ROLE_SPLITBUTTON
|
||||
ROLE_SYSTEM_IPADDRESS, // nsIAccessible::ROLE_IPADDRESS
|
||||
// Make up for ATK roles that we don't have in MSAA. When in doubt
|
||||
// map them to USE_ROLE_STRING so that the role string is exposed
|
||||
ROLE_SYSTEM_STATICTEXT, // nsIAccessible::ROLE_ACCEL_LABEL
|
||||
ROLE_SYSTEM_INDICATOR, // nsIAccessible::ROLE_ARROW
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_CANVAS
|
||||
ROLE_SYSTEM_MENUITEM, // nsIAccessible::ROLE_CHECK_MENU_ITEM
|
||||
ROLE_SYSTEM_DIALOG, // nsIAccessible::ROLE_COLOR_CHOOSER
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_DATE_EDITOR
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_DESKTOP_ICON
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_DESKTOP_FRAME
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_DIRECTORY_PANE
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_FILE_CHOOSER
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_FONT_CHOOSER
|
||||
ROLE_SYSTEM_APPLICATION, // nsIAccessible::ROLE_CHROME_WINDOW
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_GLASS_PANE
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_HTML_CONTAINER
|
||||
ROLE_SYSTEM_PUSHBUTTON, // nsIAccessible::ROLE_ICON
|
||||
ROLE_SYSTEM_STATICTEXT, // nsIAccessible::ROLE_LABEL
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_LAYERED_PANE
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_OPTION_PANE
|
||||
ROLE_SYSTEM_TEXT, // nsIAccessible::ROLE_PASSWORD_TEXT
|
||||
ROLE_SYSTEM_MENUPOPUP, // nsIAccessible::ROLE_POPUP_MENU
|
||||
ROLE_SYSTEM_MENUITEM, // nsIAccessible::ROLE_RADIO_MENU_ITEM
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_ROOT_PANE
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_SCROLL_PANE
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_SPLIT_PANE
|
||||
ROLE_SYSTEM_COLUMNHEADER, // nsIAccessible::ROLE_TABLE_COLUMN_HEADER
|
||||
ROLE_SYSTEM_ROWHEADER, // nsIAccessible::ROLE_TABLE_ROW_HEADER
|
||||
ROLE_SYSTEM_MENUITEM, // nsIAccessible::ROLE_TEAR_OFF_MENU_ITEM
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_TERMINAL
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_TEXT_CONTAINER
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_TOGGLE_BUTTON
|
||||
ROLE_SYSTEM_OUTLINE, // nsIAccessible::ROLE_TREE_TABLE
|
||||
ROLE_SYSTEM_PANE, // nsIAccessible::ROLE_VIEWPORT
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_HEADER
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_FOOTER
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_PARAGRAPH
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_RULER
|
||||
ROLE_SYSTEM_COMBOBOX, // nsIAccessible::ROLE_AUTOCOMPLETE
|
||||
ROLE_SYSTEM_TEXT, // nsIAccessible::ROLE_EDITBAR
|
||||
ROLE_SYSTEM_TEXT, // nsIAccessible::ROLE_ENTRY
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_CAPTION
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_DOCUMENT_FRAME
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_HEADING
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_PAGE
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_SECTION
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_REDUNDANT_OBJECT
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_FORM
|
||||
USE_ROLE_STRING, // nsIAccessible::ROLE_IME
|
||||
ROLE_SYSTEM_APPLICATION, // nsIAccessible::ROLE_APP_ROOT
|
||||
ROLE_SYSTEM_MENUITEM, // nsIAccessible::ROLE_PARENT_MENUITEM
|
||||
ROLE_SYSTEM_CLIENT, // nsIAccessible::ROLE_CALENDAR
|
||||
ROLE_SYSTEM_LIST, // nsIAccessible::ROLE_COMBOBOX_LIST
|
||||
ROLE_SYSTEM_LISTITEM, // nsIAccessible::ROLE_COMBOBOX_LISTITEM
|
||||
ROLE_MSAA_LAST_ENTRY // nsIAccessible::ROLE_LAST_ENTRY
|
||||
struct WindowsRoleMapItem
|
||||
{
|
||||
PRUint32 msaaRole;
|
||||
long ia2Role;
|
||||
};
|
||||
|
||||
// Map array from cross platform roles to MSAA/IA2 roles
|
||||
static const WindowsRoleMapItem gWindowsRoleMap[] = {
|
||||
// nsIAccessible::ROLE_NOTHING
|
||||
{ USE_ROLE_STRING, IA2_ROLE_UNKNOWN },
|
||||
|
||||
// nsIAccessible::ROLE_TITLEBAR
|
||||
{ ROLE_SYSTEM_TITLEBAR, ROLE_SYSTEM_TITLEBAR },
|
||||
|
||||
// nsIAccessible::ROLE_MENUBAR
|
||||
{ ROLE_SYSTEM_MENUBAR, ROLE_SYSTEM_MENUBAR },
|
||||
|
||||
// nsIAccessible::ROLE_SCROLLBAR
|
||||
{ ROLE_SYSTEM_SCROLLBAR, ROLE_SYSTEM_SCROLLBAR },
|
||||
|
||||
// nsIAccessible::ROLE_GRIP
|
||||
{ ROLE_SYSTEM_GRIP, ROLE_SYSTEM_GRIP },
|
||||
|
||||
// nsIAccessible::ROLE_SOUND
|
||||
{ ROLE_SYSTEM_SOUND, ROLE_SYSTEM_SOUND },
|
||||
|
||||
// nsIAccessible::ROLE_CURSOR
|
||||
{ ROLE_SYSTEM_CURSOR, ROLE_SYSTEM_CURSOR },
|
||||
|
||||
// nsIAccessible::ROLE_CARET
|
||||
{ ROLE_SYSTEM_CARET, ROLE_SYSTEM_CARET },
|
||||
|
||||
// nsIAccessible::ROLE_ALERT
|
||||
{ ROLE_SYSTEM_ALERT, ROLE_SYSTEM_ALERT },
|
||||
|
||||
// nsIAccessible::ROLE_WINDOW
|
||||
{ ROLE_SYSTEM_WINDOW, ROLE_SYSTEM_WINDOW },
|
||||
|
||||
// nsIAccessible::ROLE_CLIENT
|
||||
{ USE_ROLE_STRING, IA2_ROLE_UNKNOWN},
|
||||
|
||||
// nsIAccessible::ROLE_MENUPOPUP
|
||||
{ ROLE_SYSTEM_MENUPOPUP, ROLE_SYSTEM_MENUPOPUP },
|
||||
|
||||
// nsIAccessible::ROLE_MENUITEM
|
||||
{ ROLE_SYSTEM_MENUITEM, ROLE_SYSTEM_MENUITEM },
|
||||
|
||||
// nsIAccessible::ROLE_TOOLTIP
|
||||
{ ROLE_SYSTEM_TOOLTIP, ROLE_SYSTEM_TOOLTIP },
|
||||
|
||||
// nsIAccessible::ROLE_APPLICATION
|
||||
{ ROLE_SYSTEM_APPLICATION, ROLE_SYSTEM_APPLICATION },
|
||||
|
||||
// nsIAccessible::ROLE_DOCUMENT
|
||||
{ ROLE_SYSTEM_DOCUMENT, ROLE_SYSTEM_DOCUMENT },
|
||||
|
||||
// nsIAccessible::ROLE_PANE
|
||||
{ ROLE_SYSTEM_PANE, ROLE_SYSTEM_PANE },
|
||||
|
||||
// nsIAccessible::ROLE_CHART
|
||||
{ ROLE_SYSTEM_CHART, ROLE_SYSTEM_CHART },
|
||||
|
||||
// nsIAccessible::ROLE_DIALOG
|
||||
{ ROLE_SYSTEM_DIALOG, ROLE_SYSTEM_DIALOG },
|
||||
|
||||
// nsIAccessible::ROLE_BORDER
|
||||
{ ROLE_SYSTEM_BORDER, ROLE_SYSTEM_BORDER },
|
||||
|
||||
// nsIAccessible::ROLE_GROUPING
|
||||
{ ROLE_SYSTEM_GROUPING, ROLE_SYSTEM_GROUPING },
|
||||
|
||||
// nsIAccessible::ROLE_SEPARATOR
|
||||
{ ROLE_SYSTEM_SEPARATOR, ROLE_SYSTEM_SEPARATOR },
|
||||
|
||||
// nsIAccessible::ROLE_TOOLBAR
|
||||
{ ROLE_SYSTEM_TOOLBAR, ROLE_SYSTEM_TOOLBAR },
|
||||
|
||||
// nsIAccessible::ROLE_STATUSBAR
|
||||
{ ROLE_SYSTEM_STATUSBAR, ROLE_SYSTEM_STATUSBAR },
|
||||
|
||||
// nsIAccessible::ROLE_TABLE
|
||||
{ ROLE_SYSTEM_TABLE, ROLE_SYSTEM_TABLE },
|
||||
|
||||
// nsIAccessible::ROLE_COLUMNHEADER,
|
||||
{ ROLE_SYSTEM_COLUMNHEADER, ROLE_SYSTEM_COLUMNHEADER },
|
||||
|
||||
// nsIAccessible::ROLE_ROWHEADER
|
||||
{ ROLE_SYSTEM_ROWHEADER, ROLE_SYSTEM_ROWHEADER },
|
||||
|
||||
// nsIAccessible::ROLE_COLUMN
|
||||
{ ROLE_SYSTEM_COLUMN, ROLE_SYSTEM_COLUMN },
|
||||
|
||||
// nsIAccessible::ROLE_ROW
|
||||
{ ROLE_SYSTEM_ROW, ROLE_SYSTEM_ROW },
|
||||
|
||||
// nsIAccessible::ROLE_CELL
|
||||
{ ROLE_SYSTEM_CELL, ROLE_SYSTEM_CELL },
|
||||
|
||||
// nsIAccessible::ROLE_LINK
|
||||
{ ROLE_SYSTEM_LINK, ROLE_SYSTEM_LINK },
|
||||
|
||||
// nsIAccessible::ROLE_HELPBALLOON
|
||||
{ ROLE_SYSTEM_HELPBALLOON, ROLE_SYSTEM_HELPBALLOON },
|
||||
|
||||
// nsIAccessible::ROLE_CHARACTER
|
||||
{ ROLE_SYSTEM_CHARACTER, ROLE_SYSTEM_CHARACTER },
|
||||
|
||||
// nsIAccessible::ROLE_LIST
|
||||
{ ROLE_SYSTEM_LIST, ROLE_SYSTEM_LIST },
|
||||
|
||||
// nsIAccessible::ROLE_LISTITEM
|
||||
{ ROLE_SYSTEM_LISTITEM, ROLE_SYSTEM_LISTITEM },
|
||||
|
||||
// nsIAccessible::ROLE_OUTLINE
|
||||
{ ROLE_SYSTEM_OUTLINE, ROLE_SYSTEM_OUTLINE },
|
||||
|
||||
// nsIAccessible::ROLE_OUTLINEITEM
|
||||
{ ROLE_SYSTEM_OUTLINEITEM, ROLE_SYSTEM_OUTLINEITEM },
|
||||
|
||||
// nsIAccessible::ROLE_PAGETAB
|
||||
{ ROLE_SYSTEM_PAGETAB, ROLE_SYSTEM_PAGETAB },
|
||||
|
||||
// nsIAccessible::ROLE_PROPERTYPAGE
|
||||
{ ROLE_SYSTEM_PROPERTYPAGE, ROLE_SYSTEM_PROPERTYPAGE },
|
||||
|
||||
// nsIAccessible::ROLE_INDICATOR
|
||||
{ ROLE_SYSTEM_INDICATOR, ROLE_SYSTEM_INDICATOR },
|
||||
|
||||
// nsIAccessible::ROLE_GRAPHIC
|
||||
{ ROLE_SYSTEM_GRAPHIC, ROLE_SYSTEM_GRAPHIC },
|
||||
|
||||
// nsIAccessible::ROLE_STATICTEXT
|
||||
{ ROLE_SYSTEM_STATICTEXT, ROLE_SYSTEM_STATICTEXT },
|
||||
|
||||
// nsIAccessible::ROLE_TEXT_LEAF
|
||||
{ ROLE_SYSTEM_TEXT, ROLE_SYSTEM_TEXT },
|
||||
|
||||
// nsIAccessible::ROLE_PUSHBUTTON
|
||||
{ ROLE_SYSTEM_PUSHBUTTON, ROLE_SYSTEM_PUSHBUTTON },
|
||||
|
||||
// nsIAccessible::ROLE_CHECKBUTTON
|
||||
{ ROLE_SYSTEM_CHECKBUTTON, ROLE_SYSTEM_CHECKBUTTON },
|
||||
|
||||
// nsIAccessible::ROLE_RADIOBUTTON
|
||||
{ ROLE_SYSTEM_RADIOBUTTON, ROLE_SYSTEM_RADIOBUTTON },
|
||||
|
||||
// nsIAccessible::ROLE_COMBOBOX
|
||||
{ ROLE_SYSTEM_COMBOBOX, ROLE_SYSTEM_COMBOBOX },
|
||||
|
||||
// nsIAccessible::ROLE_DROPLIST
|
||||
{ ROLE_SYSTEM_DROPLIST, ROLE_SYSTEM_DROPLIST },
|
||||
|
||||
// nsIAccessible::ROLE_PROGRESSBAR
|
||||
{ ROLE_SYSTEM_PROGRESSBAR, ROLE_SYSTEM_PROGRESSBAR },
|
||||
|
||||
// nsIAccessible::ROLE_DIAL
|
||||
{ ROLE_SYSTEM_DIAL, ROLE_SYSTEM_DIAL },
|
||||
|
||||
// nsIAccessible::ROLE_HOTKEYFIELD
|
||||
{ ROLE_SYSTEM_HOTKEYFIELD, ROLE_SYSTEM_HOTKEYFIELD },
|
||||
|
||||
// nsIAccessible::ROLE_SLIDER
|
||||
{ ROLE_SYSTEM_SLIDER, ROLE_SYSTEM_SLIDER },
|
||||
|
||||
// nsIAccessible::ROLE_SPINBUTTON
|
||||
{ ROLE_SYSTEM_SPINBUTTON, ROLE_SYSTEM_SPINBUTTON },
|
||||
|
||||
// nsIAccessible::ROLE_DIAGRAM
|
||||
{ ROLE_SYSTEM_DIAGRAM, ROLE_SYSTEM_DIAGRAM },
|
||||
|
||||
// nsIAccessible::ROLE_ANIMATION
|
||||
{ ROLE_SYSTEM_ANIMATION, ROLE_SYSTEM_ANIMATION },
|
||||
|
||||
// nsIAccessible::ROLE_EQUATION
|
||||
{ ROLE_SYSTEM_EQUATION, ROLE_SYSTEM_EQUATION },
|
||||
|
||||
// nsIAccessible::ROLE_BUTTONDROPDOWN
|
||||
{ ROLE_SYSTEM_BUTTONDROPDOWN, ROLE_SYSTEM_BUTTONDROPDOWN },
|
||||
|
||||
// nsIAccessible::ROLE_BUTTONMENU
|
||||
{ ROLE_SYSTEM_BUTTONMENU, ROLE_SYSTEM_BUTTONMENU },
|
||||
|
||||
// nsIAccessible::ROLE_BUTTONDROPDOWNGRID
|
||||
{ ROLE_SYSTEM_BUTTONDROPDOWNGRID, ROLE_SYSTEM_BUTTONDROPDOWNGRID },
|
||||
|
||||
// nsIAccessible::ROLE_WHITESPACE
|
||||
{ ROLE_SYSTEM_WHITESPACE, ROLE_SYSTEM_WHITESPACE },
|
||||
|
||||
// nsIAccessible::ROLE_PAGETABLIST
|
||||
{ ROLE_SYSTEM_PAGETABLIST, ROLE_SYSTEM_PAGETABLIST },
|
||||
|
||||
// nsIAccessible::ROLE_CLOCK
|
||||
{ ROLE_SYSTEM_CLOCK, ROLE_SYSTEM_CLOCK },
|
||||
|
||||
// nsIAccessible::ROLE_SPLITBUTTON
|
||||
{ ROLE_SYSTEM_SPLITBUTTON, ROLE_SYSTEM_SPLITBUTTON },
|
||||
|
||||
// nsIAccessible::ROLE_IPADDRESS
|
||||
{ ROLE_SYSTEM_IPADDRESS, ROLE_SYSTEM_IPADDRESS },
|
||||
|
||||
// Make up for Gecko roles that we don't have in MSAA or IA2. When in doubt
|
||||
// map them to USE_ROLE_STRING (IA2_ROLE_UNKNOWN).
|
||||
|
||||
// nsIAccessible::ROLE_ACCEL_LABEL
|
||||
{ ROLE_SYSTEM_STATICTEXT, ROLE_SYSTEM_STATICTEXT },
|
||||
|
||||
// nsIAccessible::ROLE_ARROW
|
||||
{ ROLE_SYSTEM_INDICATOR, ROLE_SYSTEM_INDICATOR },
|
||||
|
||||
// nsIAccessible::ROLE_CANVAS
|
||||
{ USE_ROLE_STRING, IA2_ROLE_UNKNOWN },
|
||||
|
||||
// nsIAccessible::ROLE_CHECK_MENU_ITEM
|
||||
{ ROLE_SYSTEM_MENUITEM, IA2_ROLE_CHECK_MENU_ITEM },
|
||||
|
||||
// nsIAccessible::ROLE_COLOR_CHOOSER
|
||||
{ ROLE_SYSTEM_DIALOG, IA2_ROLE_COLOR_CHOOSER },
|
||||
|
||||
// nsIAccessible::ROLE_DATE_EDITOR
|
||||
{ USE_ROLE_STRING, IA2_ROLE_DATE_EDITOR },
|
||||
|
||||
// nsIAccessible::ROLE_DESKTOP_ICON
|
||||
{ USE_ROLE_STRING, IA2_ROLE_DESKTOP_ICON },
|
||||
|
||||
// nsIAccessible::ROLE_DESKTOP_FRAME
|
||||
{ USE_ROLE_STRING, IA2_ROLE_DESKTOP_PANE },
|
||||
|
||||
// nsIAccessible::ROLE_DIRECTORY_PANE
|
||||
{ USE_ROLE_STRING, IA2_ROLE_DIRECTORY_PANE },
|
||||
|
||||
// nsIAccessible::ROLE_FILE_CHOOSER
|
||||
{ USE_ROLE_STRING, IA2_ROLE_FILE_CHOOSER },
|
||||
|
||||
// nsIAccessible::ROLE_FONT_CHOOSER
|
||||
{ USE_ROLE_STRING, IA2_ROLE_FONT_CHOOSER },
|
||||
|
||||
// nsIAccessible::ROLE_CHROME_WINDOW
|
||||
{ ROLE_SYSTEM_APPLICATION, IA2_ROLE_FRAME },
|
||||
|
||||
// nsIAccessible::ROLE_GLASS_PANE
|
||||
{ USE_ROLE_STRING, IA2_ROLE_GLASS_PANE },
|
||||
|
||||
// nsIAccessible::ROLE_HTML_CONTAINER
|
||||
{ USE_ROLE_STRING, IA2_ROLE_UNKNOWN },
|
||||
|
||||
// nsIAccessible::ROLE_ICON
|
||||
{ ROLE_SYSTEM_PUSHBUTTON, IA2_ROLE_ICON },
|
||||
|
||||
// nsIAccessible::ROLE_LABEL
|
||||
{ ROLE_SYSTEM_STATICTEXT, IA2_ROLE_LABEL },
|
||||
|
||||
// nsIAccessible::ROLE_LAYERED_PANE
|
||||
{ USE_ROLE_STRING, IA2_ROLE_LAYERED_PANE },
|
||||
|
||||
// nsIAccessible::ROLE_OPTION_PANE
|
||||
{ USE_ROLE_STRING, IA2_ROLE_OPTION_PANE },
|
||||
|
||||
// nsIAccessible::ROLE_PASSWORD_TEXT
|
||||
{ ROLE_SYSTEM_TEXT, ROLE_SYSTEM_TEXT },
|
||||
|
||||
// nsIAccessible::ROLE_POPUP_MENU
|
||||
{ ROLE_SYSTEM_MENUPOPUP, ROLE_SYSTEM_MENUPOPUP },
|
||||
|
||||
// nsIAccessible::ROLE_RADIO_MENU_ITEM
|
||||
{ ROLE_SYSTEM_MENUITEM, IA2_ROLE_RADIO_MENU_ITEM },
|
||||
|
||||
// nsIAccessible::ROLE_ROOT_PANE
|
||||
{ USE_ROLE_STRING, IA2_ROLE_ROOT_PANE },
|
||||
|
||||
// nsIAccessible::ROLE_SCROLL_PANE
|
||||
{ USE_ROLE_STRING, IA2_ROLE_SCROLL_PANE },
|
||||
|
||||
// nsIAccessible::ROLE_SPLIT_PANE
|
||||
{ USE_ROLE_STRING, IA2_ROLE_SPLIT_PANE },
|
||||
|
||||
// nsIAccessible::ROLE_TABLE_COLUMN_HEADER
|
||||
{ ROLE_SYSTEM_COLUMNHEADER, ROLE_SYSTEM_COLUMNHEADER },
|
||||
|
||||
// nsIAccessible::ROLE_TABLE_ROW_HEADER
|
||||
{ ROLE_SYSTEM_ROWHEADER, ROLE_SYSTEM_ROWHEADER },
|
||||
|
||||
// nsIAccessible::ROLE_TEAR_OFF_MENU_ITEM
|
||||
{ ROLE_SYSTEM_MENUITEM, ROLE_SYSTEM_MENUITEM },
|
||||
|
||||
// nsIAccessible::ROLE_TERMINAL
|
||||
{ USE_ROLE_STRING, IA2_ROLE_UNKNOWN },
|
||||
|
||||
// nsIAccessible::ROLE_TEXT_CONTAINER
|
||||
{ USE_ROLE_STRING, IA2_ROLE_TEXT_FRAME },
|
||||
|
||||
// nsIAccessible::ROLE_TOGGLE_BUTTON
|
||||
{ USE_ROLE_STRING, IA2_ROLE_TOGGLE_BUTTON },
|
||||
|
||||
// nsIAccessible::ROLE_TREE_TABLE
|
||||
{ ROLE_SYSTEM_OUTLINE, ROLE_SYSTEM_OUTLINE },
|
||||
|
||||
// nsIAccessible::ROLE_VIEWPORT
|
||||
{ ROLE_SYSTEM_PANE, IA2_ROLE_VIEW_PORT },
|
||||
|
||||
// nsIAccessible::ROLE_HEADER
|
||||
{ USE_ROLE_STRING, IA2_ROLE_HEADER },
|
||||
|
||||
// nsIAccessible::ROLE_FOOTER
|
||||
{ USE_ROLE_STRING, IA2_ROLE_FOOTER },
|
||||
|
||||
// nsIAccessible::ROLE_PARAGRAPH
|
||||
{ USE_ROLE_STRING, IA2_ROLE_PARAGRAPH },
|
||||
|
||||
// nsIAccessible::ROLE_RULER
|
||||
{ USE_ROLE_STRING, IA2_ROLE_RULER },
|
||||
|
||||
// nsIAccessible::ROLE_AUTOCOMPLETE
|
||||
{ ROLE_SYSTEM_COMBOBOX, ROLE_SYSTEM_COMBOBOX },
|
||||
|
||||
// nsIAccessible::ROLE_EDITBAR
|
||||
{ ROLE_SYSTEM_TEXT, IA2_ROLE_EDITBAR },
|
||||
|
||||
// nsIAccessible::ROLE_ENTRY
|
||||
{ ROLE_SYSTEM_TEXT, ROLE_SYSTEM_TEXT },
|
||||
|
||||
// nsIAccessible::ROLE_CAPTION
|
||||
{ USE_ROLE_STRING, IA2_ROLE_CAPTION },
|
||||
|
||||
// nsIAccessible::ROLE_DOCUMENT_FRAME
|
||||
{ USE_ROLE_STRING, IA2_ROLE_UNKNOWN },
|
||||
|
||||
// nsIAccessible::ROLE_HEADING
|
||||
{ USE_ROLE_STRING, IA2_ROLE_HEADING },
|
||||
|
||||
// nsIAccessible::ROLE_PAGE
|
||||
{ USE_ROLE_STRING, IA2_ROLE_PAGE },
|
||||
|
||||
// nsIAccessible::ROLE_SECTION
|
||||
{ USE_ROLE_STRING, IA2_ROLE_SECTION },
|
||||
|
||||
// nsIAccessible::ROLE_REDUNDANT_OBJECT
|
||||
{ USE_ROLE_STRING, IA2_ROLE_REDUNDANT_OBJECT },
|
||||
|
||||
// nsIAccessible::ROLE_FORM
|
||||
{ USE_ROLE_STRING, IA2_ROLE_FORM },
|
||||
|
||||
// nsIAccessible::ROLE_IME
|
||||
{ USE_ROLE_STRING, IA2_ROLE_INPUT_METHOD_WINDOW },
|
||||
|
||||
// nsIAccessible::ROLE_APP_ROOT
|
||||
{ ROLE_SYSTEM_APPLICATION, ROLE_SYSTEM_APPLICATION },
|
||||
|
||||
// nsIAccessible::ROLE_PARENT_MENUITEM
|
||||
{ ROLE_SYSTEM_MENUITEM, ROLE_SYSTEM_MENUITEM },
|
||||
|
||||
// nsIAccessible::ROLE_CALENDAR
|
||||
{ ROLE_SYSTEM_CLIENT, ROLE_SYSTEM_CLIENT },
|
||||
|
||||
// nsIAccessible::ROLE_COMBOBOX_LIST
|
||||
{ ROLE_SYSTEM_LIST, ROLE_SYSTEM_LIST },
|
||||
|
||||
// nsIAccessible::ROLE_COMBOBOX_LISTITEM
|
||||
{ ROLE_SYSTEM_LISTITEM, ROLE_SYSTEM_LISTITEM },
|
||||
|
||||
// nsIAccessible::ROLE_LAST_ENTRY
|
||||
{ ROLE_WINDOWS_LAST_ENTRY, ROLE_WINDOWS_LAST_ENTRY }
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user