mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1137748 - Expose correct roles, subroles, and roledescriptions for various WAI-ARIA roles on OS X, r=surkov
This commit is contained in:
parent
9be25c5399
commit
a23fd5dce8
@ -74,7 +74,7 @@ ROLE(CARET,
|
||||
ROLE(ALERT,
|
||||
"alert",
|
||||
ATK_ROLE_ALERT,
|
||||
NSAccessibilityWindowRole,
|
||||
NSAccessibilityGroupRole,
|
||||
ROLE_SYSTEM_ALERT,
|
||||
ROLE_SYSTEM_ALERT,
|
||||
eNoNameRule)
|
||||
|
@ -730,6 +730,7 @@ ConvertToNSArray(nsTArray<Accessible*>& aArray)
|
||||
if (!accWrap)
|
||||
return nil;
|
||||
|
||||
// Deal with landmarks first
|
||||
nsIAtom* landmark = accWrap->LandmarkRole();
|
||||
if (landmark) {
|
||||
if (landmark == nsGkAtoms::application)
|
||||
@ -752,6 +753,37 @@ ConvertToNSArray(nsTArray<Accessible*>& aArray)
|
||||
return @"AXSearchField";
|
||||
}
|
||||
|
||||
// Now, deal with widget roles
|
||||
if (accWrap->HasARIARole()) {
|
||||
nsRoleMapEntry* roleMap = accWrap->ARIARoleMap();
|
||||
if (roleMap->Is(nsGkAtoms::alert))
|
||||
return @"AXApplicationAlert";
|
||||
if (roleMap->Is(nsGkAtoms::alertdialog))
|
||||
return @"AXApplicationAlertDialog";
|
||||
if (roleMap->Is(nsGkAtoms::article))
|
||||
return @"AXDocumentArticle";
|
||||
if (roleMap->Is(nsGkAtoms::dialog))
|
||||
return @"AXApplicationDialog";
|
||||
if (roleMap->Is(nsGkAtoms::document))
|
||||
return @"AXDocument";
|
||||
if (roleMap->Is(nsGkAtoms::log_))
|
||||
return @"AXApplicationLog";
|
||||
if (roleMap->Is(nsGkAtoms::marquee))
|
||||
return @"AXApplicationMarquee";
|
||||
if (roleMap->Is(nsGkAtoms::math))
|
||||
return @"AXDocumentMath";
|
||||
if (roleMap->Is(nsGkAtoms::note_))
|
||||
return @"AXDocumentNote";
|
||||
if (roleMap->Is(nsGkAtoms::region))
|
||||
return @"AXDocumentRegion";
|
||||
if (roleMap->Is(nsGkAtoms::status))
|
||||
return @"AXApplicationStatus";
|
||||
if (roleMap->Is(nsGkAtoms::timer))
|
||||
return @"AXApplicationTimer";
|
||||
if (roleMap->Is(nsGkAtoms::tooltip))
|
||||
return @"AXUserInterfaceTooltip";
|
||||
}
|
||||
|
||||
switch (mRole) {
|
||||
case roles::LIST:
|
||||
return @"AXContentList"; // 10.6+ NSAccessibilityContentListSubrole;
|
||||
@ -850,7 +882,19 @@ struct RoleDescrMap
|
||||
};
|
||||
|
||||
static const RoleDescrMap sRoleDescrMap[] = {
|
||||
{ @"AXApplicationAlert", NS_LITERAL_STRING("alert") },
|
||||
{ @"AXApplicationAlertDialog", NS_LITERAL_STRING("alertDialog") },
|
||||
{ @"AXApplicationLog", NS_LITERAL_STRING("log") },
|
||||
{ @"AXApplicationMarquee", NS_LITERAL_STRING("marquee") },
|
||||
{ @"AXApplicationStatus", NS_LITERAL_STRING("status") },
|
||||
{ @"AXApplicationTimer", NS_LITERAL_STRING("timer") },
|
||||
{ @"AXDefinition", NS_LITERAL_STRING("definition") },
|
||||
{ @"AXDocument", NS_LITERAL_STRING("document") },
|
||||
{ @"AXDocumentArticle", NS_LITERAL_STRING("article") },
|
||||
{ @"AXDocumentMath", NS_LITERAL_STRING("math") },
|
||||
{ @"AXDocumentNote", NS_LITERAL_STRING("note") },
|
||||
{ @"AXDocumentRegion", NS_LITERAL_STRING("region") },
|
||||
{ @"AXLandmarkApplication", NS_LITERAL_STRING("application") },
|
||||
{ @"AXLandmarkBanner", NS_LITERAL_STRING("banner") },
|
||||
{ @"AXLandmarkComplementary", NS_LITERAL_STRING("complementary") },
|
||||
{ @"AXLandmarkContentInfo", NS_LITERAL_STRING("content") },
|
||||
@ -858,7 +902,8 @@ static const RoleDescrMap sRoleDescrMap[] = {
|
||||
{ @"AXLandmarkNavigation", NS_LITERAL_STRING("navigation") },
|
||||
{ @"AXLandmarkSearch", NS_LITERAL_STRING("search") },
|
||||
{ @"AXSearchField", NS_LITERAL_STRING("searchTextField") },
|
||||
{ @"AXTerm", NS_LITERAL_STRING("term") }
|
||||
{ @"AXTerm", NS_LITERAL_STRING("term") },
|
||||
{ @"AXUserInterfaceTooltip", NS_LITERAL_STRING("tooltip") }
|
||||
};
|
||||
|
||||
struct RoleDescrComparator
|
||||
|
@ -28,9 +28,23 @@ definition = definition
|
||||
# The Role Description for an input type="search" text field
|
||||
searchTextField = search text field
|
||||
# The Role Description for WAI-ARIA Landmarks
|
||||
application = application
|
||||
search = search
|
||||
banner = banner
|
||||
navigation = navigation
|
||||
complementary = complementary
|
||||
content = content
|
||||
main = main
|
||||
# The (spoken) role description for various WAI-ARIA roles
|
||||
alert = alert
|
||||
alertDialog = alert dialog
|
||||
article = article
|
||||
document = document
|
||||
log = log
|
||||
marquee = marquee
|
||||
math = math
|
||||
note = note
|
||||
region = region
|
||||
status = application status
|
||||
timer = timer
|
||||
tooltip = tooltip
|
||||
|
Loading…
Reference in New Issue
Block a user