Skip to content

Commit

Permalink
AX: Parse "strong" and "emphasis" ARIA roles into internal role repre…
Browse files Browse the repository at this point in the history
…sentation

https://bugs.webkit.org/show_bug.cgi?id=270369
rdar://problem/123912792

Reviewed by Chris Fleizach.

This patch parses the "strong" and "emphasis" ARIA roles into a new
internal AccessibilityRole interpretation. Note that this patch does not
actually hook them up into platform representations for AT consumption
(we'll need to decide the best way to do that in a future patch).

* LayoutTests/imported/w3c/web-platform-tests/wai-aria/role/roles-expected.txt:
Pass two more testcases.
* Source/WebCore/accessibility/AXCoreObject.h:
(WebCore::accessibilityRoleToString):
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::initializeRoleMap):
* Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
* Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::Accessibility::createPlatformRoleMap):

Canonical link: https://commits.webkit.org/275587@main
  • Loading branch information
twilco committed Mar 2, 2024
1 parent 48ca65b commit 0a503cc
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ PASS role: definition
PASS role: deletion
PASS role: dialog
PASS role: document
FAIL role: emphasis assert_equals: <div role="emphasis">x</div> expected "emphasis" but got "generic"
PASS role: emphasis
PASS role: feed
PASS role: figure
PASS role: generic
Expand All @@ -98,7 +98,7 @@ PASS role: separator
PASS role: slider
PASS role: spinbutton
PASS role: status
FAIL role: strong assert_equals: <div role="strong">x</div> expected "strong" but got "generic"
PASS role: strong
PASS role: subscript
PASS role: suggestion
PASS role: superscript
Expand Down
6 changes: 6 additions & 0 deletions Source/WebCore/accessibility/AXCoreObject.h
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ enum class AccessibilityRole {
DocumentArticle,
DocumentMath,
DocumentNote,
Emphasis,
Feed,
Figure,
Footer,
Expand Down Expand Up @@ -224,6 +225,7 @@ enum class AccessibilityRole {
SpinButtonPart,
Splitter,
StaticText,
Strong,
Subscript,
Suggestion,
Summary,
Expand Down Expand Up @@ -330,6 +332,8 @@ ALWAYS_INLINE String accessibilityRoleToString(AccessibilityRole role)
return "DocumentMath"_s;
case AccessibilityRole::DocumentNote:
return "DocumentNote"_s;
case AccessibilityRole::Emphasis:
return "Emphasis"_s;
case AccessibilityRole::Feed:
return "Feed"_s;
case AccessibilityRole::Figure:
Expand Down Expand Up @@ -480,6 +484,8 @@ ALWAYS_INLINE String accessibilityRoleToString(AccessibilityRole role)
return "Splitter"_s;
case AccessibilityRole::StaticText:
return "StaticText"_s;
case AccessibilityRole::Strong:
return "Strong"_s;
case AccessibilityRole::Subscript:
return "Subscript"_s;
case AccessibilityRole::Suggestion:
Expand Down
2 changes: 2 additions & 0 deletions Source/WebCore/accessibility/AccessibilityObject.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2667,6 +2667,7 @@ static void initializeRoleMap()
{ "doc-subtitle"_s, AccessibilityRole::Heading },
{ "doc-tip"_s, AccessibilityRole::DocumentNote },
{ "doc-toc"_s, AccessibilityRole::LandmarkNavigation },
{ "emphasis"_s, AccessibilityRole::Emphasis },
{ "figure"_s, AccessibilityRole::Figure },
{ "generic"_s, AccessibilityRole::Generic },
// The mappings for 'graphics-*' roles are defined in this spec: https://w3c.github.io/graphics-aam/
Expand Down Expand Up @@ -2727,6 +2728,7 @@ static void initializeRoleMap()
{ "subscript"_s, AccessibilityRole::Subscript },
{ "suggestion"_s, AccessibilityRole::Suggestion },
{ "superscript"_s, AccessibilityRole::Superscript },
{ "strong"_s, AccessibilityRole::Strong },
{ "switch"_s, AccessibilityRole::Switch },
{ "tab"_s, AccessibilityRole::Tab },
{ "tablist"_s, AccessibilityRole::TabList },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,7 @@ static Atspi::Role atspiRole(AccessibilityRole role)
case AccessibilityRole::Mark:
return Atspi::Role::Mark;
case AccessibilityRole::Details:
case AccessibilityRole::Emphasis:
case AccessibilityRole::Ignored:
case AccessibilityRole::Incrementor:
case AccessibilityRole::LineBreak:
Expand All @@ -367,6 +368,7 @@ static Atspi::Role atspiRole(AccessibilityRole role)
case AccessibilityRole::RubyText:
case AccessibilityRole::SliderThumb:
case AccessibilityRole::SpinButtonPart:
case AccessibilityRole::Strong:
case AccessibilityRole::Summary:
case AccessibilityRole::TableHeaderContainer:
case AccessibilityRole::Suggestion:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1033,6 +1033,7 @@ - (BOOL)determineIsAccessibilityElement
case AccessibilityRole::Document:
case AccessibilityRole::DocumentArticle:
case AccessibilityRole::DocumentNote:
case AccessibilityRole::Emphasis:
case AccessibilityRole::Feed:
case AccessibilityRole::Figure:
case AccessibilityRole::Footer:
Expand Down Expand Up @@ -1081,6 +1082,7 @@ - (BOOL)determineIsAccessibilityElement
case AccessibilityRole::ScrollBar:
case AccessibilityRole::SpinButtonPart:
case AccessibilityRole::Splitter:
case AccessibilityRole::Strong:
case AccessibilityRole::Subscript:
case AccessibilityRole::Suggestion:
case AccessibilityRole::Superscript:
Expand Down
2 changes: 2 additions & 0 deletions Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm
Original file line number Diff line number Diff line change
Expand Up @@ -906,6 +906,7 @@ PlatformRoleMap createPlatformRoleMap()
{ AccessibilityRole::DocumentArticle, NSAccessibilityGroupRole },
{ AccessibilityRole::DocumentMath, NSAccessibilityGroupRole },
{ AccessibilityRole::DocumentNote, NSAccessibilityGroupRole },
{ AccessibilityRole::Emphasis, NSAccessibilityGroupRole },
{ AccessibilityRole::UserInterfaceTooltip, NSAccessibilityGroupRole },
{ AccessibilityRole::Tab, NSAccessibilityRadioButtonRole },
{ AccessibilityRole::TabList, NSAccessibilityTabGroupRole },
Expand Down Expand Up @@ -954,6 +955,7 @@ PlatformRoleMap createPlatformRoleMap()
{ AccessibilityRole::Caption, NSAccessibilityGroupRole },
{ AccessibilityRole::Deletion, NSAccessibilityGroupRole },
{ AccessibilityRole::Insertion, NSAccessibilityGroupRole },
{ AccessibilityRole::Strong, NSAccessibilityGroupRole },
{ AccessibilityRole::Subscript, NSAccessibilityGroupRole },
{ AccessibilityRole::Superscript, NSAccessibilityGroupRole },
{ AccessibilityRole::Model, NSAccessibilityGroupRole },
Expand Down

0 comments on commit 0a503cc

Please sign in to comment.