REGRESSION(r195463): [GTK] accessibility/roles-computedRoleString.html and accessibility/roles-exposed.html failing
https://bugs.webkit.org/show_bug.cgi?id=153696
Reviewed by Chris Fleizach.
Source/WebCore:
The failures were due to always mapping style format groups to GroupRole, even for
RenderInline objects. The fix is to expose inline style format groups as InlineRole,
add handling of GroupRole style groups to the ATK code, and InlineRole style groups
to the Mac code.
No new tests because we have sufficient coverage. Updated roles-computedRoleString.html
to reflect new exposure.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):
* accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(createAccessibilityRoleMap):
(-[WebAccessibilityObjectWrapper subrole]):
LayoutTests:
Now that RenderInline style format groups are exposed as InlineRole, there is
no longer a corresponding computed role for ins, samp, and var elements. Updated
the roles-computedRoleString.html test and expectations accordingly. Also added
the now-correct results for Gtk for both of the previously-failing tests.
* accessibility/roles-computedRoleString-expected.txt: Updated.
* accessibility/roles-computedRoleString.html: Updated.
* platform/gtk/TestExpectations: Unskip the two tests which are now passing.
* platform/gtk/accessibility/roles-computedRoleString-expected.txt: Updated.
* platform/gtk/accessibility/roles-exposed-expected.txt: Updated.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@199110 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index bcc24ce..053ce79 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,28 @@
+2016-04-06 Joanmarie Diggs <jdiggs@igalia.com>
+
+ REGRESSION(r195463): [GTK] accessibility/roles-computedRoleString.html and accessibility/roles-exposed.html failing
+ https://bugs.webkit.org/show_bug.cgi?id=153696
+
+ Reviewed by Chris Fleizach.
+
+ The failures were due to always mapping style format groups to GroupRole, even for
+ RenderInline objects. The fix is to expose inline style format groups as InlineRole,
+ add handling of GroupRole style groups to the ATK code, and InlineRole style groups
+ to the Mac code.
+
+ No new tests because we have sufficient coverage. Updated roles-computedRoleString.html
+ to reflect new exposure.
+
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
+ * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
+ (atkRole):
+ * accessibility/mac/AccessibilityObjectMac.mm:
+ (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
+ * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+ (createAccessibilityRoleMap):
+ (-[WebAccessibilityObjectWrapper subrole]):
+
2016-04-06 Jer Noble <jer.noble@apple.com>
CRASH in -[WebCoreNSURLSession taskCompleted:]
diff --git a/Source/WebCore/accessibility/AccessibilityRenderObject.cpp b/Source/WebCore/accessibility/AccessibilityRenderObject.cpp
index 34fd220..e179b17 100644
--- a/Source/WebCore/accessibility/AccessibilityRenderObject.cpp
+++ b/Source/WebCore/accessibility/AccessibilityRenderObject.cpp
@@ -2593,7 +2593,7 @@
return SVGRootRole;
if (isStyleFormatGroup())
- return GroupRole;
+ return is<RenderInline>(*m_renderer) ? InlineRole : GroupRole;
#if ENABLE(MATHML)
if (node && node->hasTagName(MathMLNames::mathTag))
diff --git a/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp b/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp
index 5ea1a5c..531c4a8 100644
--- a/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp
+++ b/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp
@@ -590,11 +590,12 @@
case ApplicationRole:
return ATK_ROLE_APPLICATION;
case DocumentRegionRole:
- case GroupRole:
case RadioGroupRole:
case SVGRootRole:
case TabPanelRole:
return ATK_ROLE_PANEL;
+ case GroupRole:
+ return coreObject->isStyleFormatGroup() ? ATK_ROLE_SECTION : ATK_ROLE_PANEL;
case RowHeaderRole:
return ATK_ROLE_ROW_HEADER;
case ColumnHeaderRole:
diff --git a/Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm b/Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm
index 4ddaafc..c986a13 100644
--- a/Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm
+++ b/Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm
@@ -92,7 +92,7 @@
if (roleValue() == UnknownRole && !isAttachment())
return IgnoreObject;
- if (roleValue() == InlineRole)
+ if (roleValue() == InlineRole && !isStyleFormatGroup())
return IgnoreObject;
if (RenderObject* renderer = this->renderer()) {
diff --git a/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm b/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
index 7110acb..3d588dd 100644
--- a/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
+++ b/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
@@ -2207,6 +2207,7 @@
{ SVGTextPathRole, NSAccessibilityGroupRole },
{ SVGTextRole, NSAccessibilityGroupRole },
{ SVGTSpanRole, NSAccessibilityGroupRole },
+ { InlineRole, NSAccessibilityGroupRole },
};
AccessibilityRoleMap& roleMap = *new AccessibilityRoleMap;
@@ -2394,7 +2395,7 @@
if (m_object->isSwitch())
return NSAccessibilitySwitchSubrole;
- if (role == GroupRole) {
+ if (m_object->isStyleFormatGroup()) {
if (Node* node = m_object->node()) {
if (node->hasTagName(kbdTag))
return @"AXKeyboardInputStyleGroup";