Bug 325616. Add recently developed ATK roles. r=ginn.chen, sr=neil

git-svn-id: svn://10.0.0.236/trunk@189345 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
aaronleventhal%moonset.net
2006-02-07 20:50:34 +00:00
parent e446371b8e
commit cd790db728
5 changed files with 42 additions and 6 deletions

View File

@@ -425,9 +425,9 @@ interface nsIAccessible : nsISupports
// The object represents a main window for a application
enum { ROLE_APPLICATION = 73U }; // ATK_ROLE_APPLICATION
// The object represents a document window, only for MDI windows
enum { ROLE_DOCUMENT = 68U }; // ATK_ROLE_WINDOW
enum { ROLE_DOCUMENT = 80U }; // ATK_ROLE_DOCUMENT_FRAME
enum { ROLE_PANE = 38U }; // ATK_ROLE_PANEL
enum { ROLE_CHART = 26U }; // ATK_ROLE_IMAGE
enum { ROLE_CHART = 78U }; // ATK_ROLE_CHART
enum { ROLE_DIALOG = 16U }; // ATK_ROLE_DIALOG
enum { ROLE_BORDER = 66U }; // ATK_ROLE_UNKNOWN
enum { ROLE_GROUPING = 38U }; // ATK_ROLE_PANEL
@@ -526,6 +526,15 @@ interface nsIAccessible : nsISupports
enum { ROLE_PARAGRAPH = 71U }; // ATK_ROLE_PARAGRAPH
enum { ROLE_RULER = 72U }; // ATK_ROLE_RULER
enum { ROLE_AUTOCOMPLETE = 74U }; // ATK_ROLE_AUTOCOMPLETE
enum { ROLE_EDITBAR = 75U }; // ATK_ROLE_EDITBAR
enum { ROLE_EMBEDDED = 76U }; // ATK_ROLE_EMBEDDED
enum { ROLE_ENTRY = 77U }; // ATK_ROLE_ENTRY
enum { ROLE_CAPTION = 79U }; // ATK_ROLE_CAPTION
enum { ROLE_DOCUMENT_FRAME = 80U }; // ATK_ROLE_DOCUMENT_FRAME
enum { ROLE_HEADING = 81U }; // ATK_ROLE_HEADING
enum { ROLE_PAGE = 82U }; // ATK_ROLE_PAGE
enum { ROLE_SECTION = 83U }; // ATK_ROLE_SECTION
enum { ROLE_REDUNDANT_OBJECT = 84U }; // ATK_ROLE_REDUNDANT_OBJECT
#else
// MSAA Roles - only one per nsIAccessible or IAccessible
enum { ROLE_TITLEBAR = 1U };
@@ -600,6 +609,16 @@ interface nsIAccessible : nsISupports
// When in doubt map them to ROLE_NOTHING so that the role string is exposed
enum { ROLE_ICON = ROLE_NOTHING };
enum { ROLE_PASSWORD_TEXT = ROLE_TEXT };
enum { ROLE_AUTOCOMPLETE = ROLE_COMBOBOX };
enum { ROLE_EDITBAR = ROLE_NOTHING };
enum { ROLE_EMBEDDED = ROLE_NOTHING };
enum { ROLE_ENTRY = ROLE_NOTHING };
enum { ROLE_CAPTION = ROLE_NOTHING };
enum { ROLE_DOCUMENT_FRAME = ROLE_NOTHING };
enum { ROLE_HEADING = ROLE_NOTHING };
enum { ROLE_PAGE = ROLE_NOTHING };
enum { ROLE_SECTION = ROLE_NOTHING };
enum { ROLE_REDUNDANT_OBJECT = ROLE_NOTHING };
// MSAA relationship extensions to accNavigate
enum { NAVRELATION_CONTROLLED_BY = 0x1000 };

View File

@@ -534,12 +534,12 @@ nsAccessibleWrap::TranslateStates(PRUint32 aState, PRUint32 aExtState, void *aAt
if (aState & nsIAccessible::STATE_INVALID)
atk_state_set_add_state (state_set, ATK_STATE_INVALID);
#ifdef MAI_HAS_ATK_STATE_DEFAULT
#ifdef ATK_STATE_DEFAULT
if (aState & nsIAccessible::STATE_DEFAULT)
atk_state_set_add_state (state_set, ATK_STATE_DEFAULT);
#endif
#ifdef MAI_HAS_ATK_STATE_REQUIRED
#ifdef ATK_STATE_REQUIRED
if (aState & nsIAccessible::STATE_REQUIRED)
atk_state_set_add_state (state_set, ATK_STATE_REQUIRED);
#endif
@@ -798,6 +798,16 @@ getRoleCB(AtkObject *aAtkObj)
}
accRole = linkRole;
}
#ifndef ATK_ROLE_AUTOCOMPLETE
else if (accRole == nsIAccessible::ROLE_AUTOCOMPLETE) {
accRole == ATK_ROLE_COMBO_BOX;
}
#endif
#ifndef ATK_ROLE_CAPTION
else if (accRole == nsIAccessible::ROLE_CAPTION) {
accRole == ATK_ROLE_LABEL;
}
#endif
aAtkObj->role = NS_STATIC_CAST(AtkRole, accRole);
}
return aAtkObj->role;

View File

@@ -72,6 +72,7 @@ ACCESSIBILITY_ATOM(area, "area")
ACCESSIBILITY_ATOM(blockquote, "blockquote")
ACCESSIBILITY_ATOM(br, "br")
ACCESSIBILITY_ATOM(body, "body")
ACCESSIBILITY_ATOM(caption, "caption")
ACCESSIBILITY_ATOM(description, "description") // XUL
ACCESSIBILITY_ATOM(dd, "dd")
ACCESSIBILITY_ATOM(dl, "dl")

View File

@@ -495,6 +495,9 @@ nsAccessibilityService::CreateHTMLAccessibleByMarkup(nsISupports *aFrame,
else if (tag == nsAccessibilityAtoms::optgroup) {
*aAccessible = new nsHTMLSelectOptGroupAccessible(aNode, aWeakShell);
}
else if (tag == nsAccessibilityAtoms::caption) {
*aAccessible = new nsEnumRoleAccessible(aNode, aWeakShell, nsIAccessible::ROLE_CAPTION);
}
#ifndef MOZ_ACCESSIBILITY_ATK
else if (tag == nsAccessibilityAtoms::ul || tag == nsAccessibilityAtoms::ol) {
*aAccessible = new nsHTMLListAccessible(aNode, aWeakShell);

View File

@@ -516,9 +516,12 @@ nsXULSelectableAccessible(aDOMNode, aShell)
}
/** We are a combobox */
NS_IMETHODIMP nsXULComboboxAccessible::GetRole(PRUint32 *_retval)
NS_IMETHODIMP nsXULComboboxAccessible::GetRole(PRUint32 *aRole)
{
*_retval = ROLE_COMBOBOX;
nsAutoString boxName;
mDOMNode->GetNodeName(boxName);
*aRole = boxName.EqualsLiteral("autocomplete") ?
ROLE_AUTOCOMPLETE : ROLE_COMBOBOX;
return NS_OK;
}