REGRESSION(r195463): [GTK] accessibility/roles-computedRoleString.html and accessibil...
authorjdiggs@igalia.com <jdiggs@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 6 Apr 2016 19:13:50 +0000 (19:13 +0000)
committerjdiggs@igalia.com <jdiggs@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 6 Apr 2016 19:13:50 +0000 (19:13 +0000)
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: https://svn.webkit.org/repository/webkit/trunk@199110 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/accessibility/roles-computedRoleString-expected.txt
LayoutTests/accessibility/roles-computedRoleString.html
LayoutTests/platform/gtk/TestExpectations
LayoutTests/platform/gtk/accessibility/roles-computedRoleString-expected.txt
LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/accessibility/AccessibilityRenderObject.cpp
Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp
Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm
Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm

index 39b925d..ef37510 100644 (file)
@@ -1,3 +1,21 @@
+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.
+
+        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.
+
 2016-04-06  Keith Miller  <keith_miller@apple.com>
 
         RegExp constructor should use Symbol.match and other properties
index 6223ec8..e4b26db 100644 (file)
@@ -42,7 +42,7 @@ PASS: input[type='text'] -> .
 PASS: input[type='time'] -> . 
 PASS: input[type='url'] -> . 
 PASS: input[type='week'] -> . 
-PASS: ins -> group
+PASS: ins -> . 
 PASS: math -> math. 
 PASS: meter -> progressbar. 
 PASS: nav -> navigation. 
@@ -51,7 +51,7 @@ PASS: li -> listitem.
 PASS: p -> . 
 PASS: pre -> group. 
 PASS: progress -> progressbar. 
-PASS: samp -> group
+PASS: samp -> . 
 PASS: section -> region. 
 PASS: select:not([multiple]) -> . 
 PASS: select[multiple] -> listbox. 
@@ -76,7 +76,7 @@ PASS: td[role="gridcell"] -> gridcell.
 PASS: textarea -> textbox. 
 PASS: ul -> list. 
 PASS: li -> listitem. 
-PASS: var -> group
+PASS: var -> . 
 PASS: div[role="command"] -> . 
 PASS: div[role="composite"] -> . 
 PASS: div[role="input"] -> . 
index 39124cb..f79f897 100644 (file)
@@ -52,7 +52,7 @@
 <input type="time" value="X" data-role="" class="ex" data-note="[type='time']">
 <input type="url" value="X" data-role="" class="ex" data-note="[type='url']">
 <input type="week" value="X" data-role="" class="ex" data-note="[type='week']">
-<ins data-role="group" class="ex">X</ins>
+<ins data-role="" class="ex">X</ins>
 <mark data-role="" class="ex">X</mark>
 <math data-role="math" class="ex">X</math>
 <!-- skipped <menu> -->
@@ -74,7 +74,7 @@
 <q data-role="" class="ex">X</q>
 <!-- skipped <ruby/rp/rt> -->
 <s data-role="" class="ex">X</s>
-<samp data-role="group" class="ex">X</samp>
+<samp data-role="" class="ex">X</samp>
 <!-- skipped <script> -->
 <section data-role="region" class="ex">X</section>
 <select data-role="" class="ex" data-note=":not([multiple])">
 <ul data-role="list" class="ex">
     <li data-role="listitem" class="ex">X</li>
 </ul>
-<var data-role="group" class="ex">X</var>
+<var data-role="" class="ex">X</var>
 <wbr data-role="" class="ex">X</wbr>
 
 <!-- ==================================================================================================== -->
index 55b003b..2a8b93b 100644 (file)
@@ -2662,9 +2662,6 @@ webkit.org/b/153602 fast/table/003.html [ Failure ]
 webkit.org/b/153602 fast/text/emoji.html [ Failure ]
 webkit.org/b/153602 tables/mozilla_expected_failures/bugs/bug89315.html [ Failure ]
 
-webkit.org/b/153696 accessibility/roles-computedRoleString.html [ Failure ]
-webkit.org/b/153696 accessibility/roles-exposed.html [ Failure ]
-
 webkit.org/b/153697 http/tests/security/contentSecurityPolicy/object-src-applet-archive-codebase.html [ Failure ]
 webkit.org/b/153697 http/tests/security/contentSecurityPolicy/object-src-applet-archive.html [ Failure ]
 webkit.org/b/153697 http/tests/security/contentSecurityPolicy/object-src-applet-code-codebase.html [ Failure ]
index fb77c48..fbd31e9 100644 (file)
@@ -42,14 +42,16 @@ PASS: input[type='text'] -> .
 PASS: input[type='time'] -> . 
 PASS: input[type='url'] -> . 
 PASS: input[type='week'] -> . 
+PASS: ins -> . 
 PASS: math -> math. 
 PASS: meter -> progressbar. 
 PASS: nav -> navigation. 
 PASS: ol -> list. 
 PASS: li -> listitem. 
 PASS: p -> . 
-PASS: pre -> . 
+PASS: pre -> group
 PASS: progress -> progressbar. 
+PASS: samp -> . 
 PASS: section -> region. 
 PASS: select:not([multiple]) -> . 
 PASS: option -> . 
@@ -77,6 +79,7 @@ PASS: td[role="gridcell"] -> gridcell.
 PASS: textarea -> textbox. 
 PASS: ul -> list. 
 PASS: li -> listitem. 
+PASS: var -> . 
 PASS: div[role="command"] -> . 
 PASS: div[role="composite"] -> . 
 PASS: div[role="input"] -> . 
index e99d35e..8ad705f 100644 (file)
@@ -44,13 +44,13 @@ canvas
       AXRole: 
       
 cite
-      AXRole: 
+      AXRole: AXStatic
       
 code
-      AXRole: 
+      AXRole: AXStatic
       
 del:not([datetime])
-      AXRole: 
+      AXRole: AXStatic
       
 del[datetime]
       AXRole: AXStatic
@@ -203,7 +203,7 @@ input[type='week']
       AXRole: AXTextField
       
 ins:not([datetime])
-      AXRole: 
+      AXRole: AXStatic
       
 ins[datetime]
       AXRole: AXStatic
@@ -347,7 +347,7 @@ s
       AXRole: 
       
 samp
-      AXRole: 
+      AXRole: AXStatic
       
 section
       AXRole: AXGroup
@@ -440,7 +440,7 @@ li
       AXRole: AXListItem
       
 var
-      AXRole: 
+      AXRole: AXStatic
       
 wbr
       AXRole: 
index bcc24ce..053ce79 100644 (file)
@@ -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:]
index 34fd220..e179b17 100644 (file)
@@ -2593,7 +2593,7 @@ AccessibilityRole AccessibilityRenderObject::determineAccessibilityRole()
         return SVGRootRole;
     
     if (isStyleFormatGroup())
-        return GroupRole;
+        return is<RenderInline>(*m_renderer) ? InlineRole : GroupRole;
     
 #if ENABLE(MATHML)
     if (node && node->hasTagName(MathMLNames::mathTag))
index 5ea1a5c..531c4a8 100644 (file)
@@ -590,11 +590,12 @@ static AtkRole atkRole(AccessibilityObject* coreObject)
     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:
index 4ddaafc..c986a13 100644 (file)
@@ -92,7 +92,7 @@ AccessibilityObjectInclusion AccessibilityObject::accessibilityPlatformIncludesO
     if (roleValue() == UnknownRole && !isAttachment())
         return IgnoreObject;
     
-    if (roleValue() == InlineRole)
+    if (roleValue() == InlineRole && !isStyleFormatGroup())
         return IgnoreObject;
 
     if (RenderObject* renderer = this->renderer()) {
index 7110acb..3d588dd 100644 (file)
@@ -2207,6 +2207,7 @@ static const AccessibilityRoleMap& createAccessibilityRoleMap()
         { SVGTextPathRole, NSAccessibilityGroupRole },
         { SVGTextRole, NSAccessibilityGroupRole },
         { SVGTSpanRole, NSAccessibilityGroupRole },
+        { InlineRole, NSAccessibilityGroupRole },
     };
     AccessibilityRoleMap& roleMap = *new AccessibilityRoleMap;
     
@@ -2394,7 +2395,7 @@ static NSString* roleValueToNSString(AccessibilityRole value)
     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";