mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 746358 - Implement new role for definition lists. r=tbsaunde
This commit is contained in:
parent
b426c47594
commit
ac62a1790e
@ -797,10 +797,25 @@ interface nsIAccessibleRole : nsISupports
|
||||
*/
|
||||
const unsigned long ROLE_CHECK_RICH_OPTION = 125;
|
||||
|
||||
/**
|
||||
* An HTML definition list <dl>
|
||||
*/
|
||||
const unsigned long ROLE_DEFINITION_LIST = 126;
|
||||
|
||||
/**
|
||||
* An HTML definition term <dt>
|
||||
*/
|
||||
const unsigned long ROLE_TERM = 127;
|
||||
|
||||
/**
|
||||
* An HTML definition <dd>
|
||||
*/
|
||||
const unsigned long ROLE_DEFINITION = 128;
|
||||
|
||||
/**
|
||||
* It's not role actually. This constant is important to help ensure
|
||||
* nsRoleMap's are synchronized.
|
||||
*/
|
||||
const unsigned long ROLE_LAST_ENTRY = 126;
|
||||
const unsigned long ROLE_LAST_ENTRY = 129;
|
||||
};
|
||||
|
||||
|
@ -171,6 +171,9 @@ static const PRUint32 atkRoleMap[] = {
|
||||
ATK_ROLE_SECTION, // roles::NOTE 123
|
||||
ATK_ROLE_PANEL, // roles::FIGURE 124
|
||||
ATK_ROLE_CHECK_BOX, // roles::CHECK_RICH_OPTION 125
|
||||
ATK_ROLE_LIST, // roles::DEFINITION_LIST 126
|
||||
ATK_ROLE_LIST_ITEM, // roles::TERM 127
|
||||
ATK_ROLE_PARAGRAPH, // roles::DEFINITION 128
|
||||
kROLE_ATK_LAST_ENTRY // roles::LAST_ENTRY
|
||||
};
|
||||
|
||||
|
@ -798,11 +798,26 @@ namespace roles {
|
||||
*/
|
||||
CHECK_RICH_OPTION = 125,
|
||||
|
||||
/**
|
||||
* Represent a definition list (dl in HTML).
|
||||
*/
|
||||
DEFINITION_LIST = 126,
|
||||
|
||||
/**
|
||||
* Represent a term in a definition list (dt in HTML).
|
||||
*/
|
||||
TERM = 127,
|
||||
|
||||
/**
|
||||
* Represent a definition in a definition list (dd in HTML)
|
||||
*/
|
||||
DEFINITION = 128,
|
||||
|
||||
/**
|
||||
* It's not role actually. This constant is important to help ensure
|
||||
* nsRoleMap's are synchronized.
|
||||
*/
|
||||
LAST_ENTRY = 126
|
||||
LAST_ENTRY = 129
|
||||
};
|
||||
} // namespace role
|
||||
typedef enum mozilla::a11y::roles::Role role;
|
||||
|
@ -423,7 +423,10 @@ static const char kRoleNames[][20] = {
|
||||
"embedded object", //ROLE_EMBEDDED_OBJECT
|
||||
"note", //ROLE_NOTE
|
||||
"figure", //ROLE_FIGURE
|
||||
"check rich option" //ROLE_CHECK_RICH_OPTION
|
||||
"check rich option", //ROLE_CHECK_RICH_OPTION
|
||||
"definitionlist", //ROLE_DEFINITION_LIST
|
||||
"term", //ROLE_TERM
|
||||
"definition" //ROLE_DEFINITION
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -259,6 +259,9 @@ nsHTMLLIAccessible::Shutdown()
|
||||
role
|
||||
nsHTMLLIAccessible::NativeRole()
|
||||
{
|
||||
if (mContent->Tag() == nsGkAtoms::dt)
|
||||
return roles::TERM;
|
||||
|
||||
return roles::LISTITEM;
|
||||
}
|
||||
|
||||
@ -410,6 +413,9 @@ NS_IMPL_ISUPPORTS_INHERITED0(nsHTMLListAccessible, nsHyperTextAccessible)
|
||||
role
|
||||
nsHTMLListAccessible::NativeRole()
|
||||
{
|
||||
if (mContent->Tag() == nsGkAtoms::dl)
|
||||
return roles::DEFINITION_LIST;
|
||||
|
||||
return roles::LIST;
|
||||
}
|
||||
|
||||
|
@ -123,6 +123,9 @@ nsHyperTextAccessible::NativeRole()
|
||||
{
|
||||
nsIAtom *tag = mContent->Tag();
|
||||
|
||||
if (tag == nsGkAtoms::dd)
|
||||
return roles::DEFINITION;
|
||||
|
||||
if (tag == nsGkAtoms::form)
|
||||
return roles::FORM;
|
||||
|
||||
|
@ -467,36 +467,18 @@ GetNativeFromGeckoAccessible(nsIAccessible *anAccessible)
|
||||
|
||||
- (NSString*)subrole
|
||||
{
|
||||
if (!mGeckoAccessible)
|
||||
return nil;
|
||||
|
||||
nsIContent* content = mGeckoAccessible->GetContent();
|
||||
if (!content || !content->IsHTML())
|
||||
return nil;
|
||||
|
||||
nsIAtom* tag = content->Tag();
|
||||
|
||||
switch (mRole) {
|
||||
case roles::LIST:
|
||||
if ((tag == nsGkAtoms::ul) || (tag == nsGkAtoms::ol))
|
||||
return NSAccessibilityContentListSubrole;
|
||||
return NSAccessibilityContentListSubrole;
|
||||
|
||||
if (tag == nsGkAtoms::dl)
|
||||
return NSAccessibilityDefinitionListSubrole;
|
||||
case roles::DEFINITION_LIST:
|
||||
return NSAccessibilityDefinitionListSubrole;
|
||||
|
||||
break;
|
||||
case roles::TERM:
|
||||
return @"AXTerm";
|
||||
|
||||
case roles::LISTITEM:
|
||||
if (tag == nsGkAtoms::dt)
|
||||
return @"AXTerm";
|
||||
|
||||
break;
|
||||
|
||||
case roles::PARAGRAPH:
|
||||
if (tag == nsGkAtoms::dd)
|
||||
return @"AXDefinition";
|
||||
|
||||
break;
|
||||
case roles::DEFINITION:
|
||||
return @"AXDefinition";
|
||||
|
||||
default:
|
||||
break;
|
||||
|
@ -168,5 +168,8 @@ static const NSString* AXRoles [] = {
|
||||
NSAccessibilityGroupRole, // roles::NOTE 123
|
||||
NSAccessibilityGroupRole, // roles::FIGURE 124
|
||||
NSAccessibilityCheckBoxRole, // roles::CHECK_RICH_OPTION 125
|
||||
NSAccessibilityListRole, // roles::DEFINITION_LIST 126
|
||||
NSAccessibilityGroupRole, // roles::TERM 127
|
||||
NSAccessibilityGroupRole, // roles::DEFINITION 128
|
||||
@"ROLE_LAST_ENTRY" // roles::LAST_ENTRY Bogus role that will never be shown (just marks the end of this array)!
|
||||
};
|
||||
|
@ -452,6 +452,15 @@ static const WindowsRoleMapItem gWindowsRoleMap[] = {
|
||||
// roles::CHECK_RICH_OPTION
|
||||
{ ROLE_SYSTEM_CHECKBUTTON, ROLE_SYSTEM_CHECKBUTTON },
|
||||
|
||||
// roles::DEFINITION_LIST
|
||||
{ ROLE_SYSTEM_LIST, ROLE_SYSTEM_LIST },
|
||||
|
||||
// roles::TERM
|
||||
{ ROLE_SYSTEM_LISTITEM, ROLE_SYSTEM_LISTITEM },
|
||||
|
||||
// roles::DEFINITION
|
||||
{ USE_ROLE_STRING, IA2_ROLE_PARAGRAPH },
|
||||
|
||||
// roles::LAST_ENTRY
|
||||
{ ROLE_WINDOWS_LAST_ENTRY, ROLE_WINDOWS_LAST_ENTRY }
|
||||
};
|
||||
|
@ -16,6 +16,8 @@ const ROLE_COMBOBOX = nsIAccessibleRole.ROLE_COMBOBOX;
|
||||
const ROLE_COMBOBOX_LIST = nsIAccessibleRole.ROLE_COMBOBOX_LIST;
|
||||
const ROLE_COMBOBOX_OPTION = nsIAccessibleRole.ROLE_COMBOBOX_OPTION;
|
||||
const ROLE_COLUMNHEADER = nsIAccessibleRole.ROLE_COLUMNHEADER;
|
||||
const ROLE_DEFINITION = nsIAccessibleRole.ROLE_DEFINITION;
|
||||
const ROLE_DEFINITION_LIST = nsIAccessibleRole.ROLE_DEFINITION_LIST;
|
||||
const ROLE_DIALOG = nsIAccessibleRole.ROLE_DIALOG;
|
||||
const ROLE_DOCUMENT = nsIAccessibleRole.ROLE_DOCUMENT;
|
||||
const ROLE_EMBEDDED_OBJECT = nsIAccessibleRole.ROLE_EMBEDDED_OBJECT;
|
||||
@ -62,6 +64,7 @@ const ROLE_SEPARATOR = nsIAccessibleRole.ROLE_SEPARATOR;
|
||||
const ROLE_SLIDER = nsIAccessibleRole.ROLE_SLIDER;
|
||||
const ROLE_STATICTEXT = nsIAccessibleRole.ROLE_STATICTEXT;
|
||||
const ROLE_TABLE = nsIAccessibleRole.ROLE_TABLE;
|
||||
const ROLE_TERM = nsIAccessibleRole.ROLE_TERM;
|
||||
const ROLE_TEXT_CONTAINER = nsIAccessibleRole.ROLE_TEXT_CONTAINER;
|
||||
const ROLE_TEXT_LEAF = nsIAccessibleRole.ROLE_TEXT_LEAF;
|
||||
const ROLE_TOGGLE_BUTTON = nsIAccessibleRole.ROLE_TOGGLE_BUTTON;
|
||||
|
@ -53,9 +53,9 @@
|
||||
testRole("p", ROLE_PARAGRAPH);
|
||||
|
||||
// Test dl, dt, dd
|
||||
testRole("definitionlist", ROLE_LIST);
|
||||
testRole("definitionterm", ROLE_LISTITEM);
|
||||
testRole("definitiondescription", ROLE_PARAGRAPH);
|
||||
testRole("definitionlist", ROLE_DEFINITION_LIST);
|
||||
testRole("definitionterm", ROLE_TERM);
|
||||
testRole("definitiondescription", ROLE_DEFINITION);
|
||||
|
||||
// Has click, mousedown or mouseup listeners.
|
||||
testRole("span1", ROLE_TEXT_CONTAINER);
|
||||
|
@ -88,17 +88,17 @@
|
||||
|
||||
// dl list
|
||||
var tree =
|
||||
{ LIST: [ // dl
|
||||
{ LISTITEM: [ // dt
|
||||
{ DEFINITION_LIST: [ // dl
|
||||
{ TERM: [ // dt
|
||||
{ TEXT_LEAF: [] },
|
||||
] },
|
||||
{ PARAGRAPH: [ // dd
|
||||
{ DEFINITION: [ // dd
|
||||
{ TEXT_LEAF: [] }
|
||||
] },
|
||||
{ LISTITEM: [ // dt
|
||||
{ TERM: [ // dt
|
||||
{ TEXT_LEAF: [] }
|
||||
] },
|
||||
{ PARAGRAPH: [ // dd
|
||||
{ DEFINITION: [ // dd
|
||||
{ TEXT_LEAF: [] }
|
||||
] }
|
||||
] };
|
||||
@ -110,11 +110,11 @@
|
||||
{ LIST: [ // ol
|
||||
{ LISTITEM: [ // li
|
||||
{ STATICTEXT: [ ] },
|
||||
{ LIST: [ // dl
|
||||
{ LISTITEM: [ // dt
|
||||
{ DEFINITION_LIST: [ // dl
|
||||
{ TERM: [ // dt
|
||||
{ TEXT_LEAF: [] }
|
||||
] },
|
||||
{ PARAGRAPH: [ // dd
|
||||
{ DEFINITION: [ // dd
|
||||
{ TEXT_LEAF: [] }
|
||||
] }
|
||||
] }
|
||||
|
@ -65,6 +65,9 @@ flatequation = flat equation
|
||||
gridcell = gridcell
|
||||
note = note
|
||||
figure = figure
|
||||
definitionlist = definition list
|
||||
term = term
|
||||
definition = definition
|
||||
|
||||
# More sophisiticated object descriptions
|
||||
headingLevel = heading level %S
|
||||
|
Loading…
Reference in New Issue
Block a user