Title: [273255] branches/safari-611-branch
Revision
273255
Author
[email protected]
Date
2021-02-22 09:55:04 -0800 (Mon, 22 Feb 2021)

Log Message

Cherry-pick r272626. rdar://problem/74410222

    Descendants of row and column headers should expose the aria-sort attribute.
    https://bugs.webkit.org/show_bug.cgi?id=221590

    Reviewed by Chris Fleizach.

    Source/WebCore:

    Tests:
    accessibility/aria-sort.html
    accessibility/ios-simulator/aria-sort-ios.html

    Walk up the accessibility hierarchy to check for an inherited aria-sort
    attribute present in a row or column header ancestor.

    * accessibility/AccessibilityObject.cpp:
    (WebCore::AccessibilityObject::sortDirection const):

    LayoutTests:

    Expanded this test to include the case where the header contains a child
    element that must also expose the aria-sort attribute inherited from its
    parent.

    * accessibility/aria-sort-expected.txt:
    * accessibility/aria-sort.html:
    * accessibility/ios-simulator/aria-sort-ios-expected.txt:
    * accessibility/ios-simulator/aria-sort-ios.html:

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272626 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Modified Paths

Diff

Modified: branches/safari-611-branch/LayoutTests/ChangeLog (273254 => 273255)


--- branches/safari-611-branch/LayoutTests/ChangeLog	2021-02-22 17:55:00 UTC (rev 273254)
+++ branches/safari-611-branch/LayoutTests/ChangeLog	2021-02-22 17:55:04 UTC (rev 273255)
@@ -1,5 +1,56 @@
 2021-02-17  Ruben Turcios  <[email protected]>
 
+        Cherry-pick r272626. rdar://problem/74410222
+
+    Descendants of row and column headers should expose the aria-sort attribute.
+    https://bugs.webkit.org/show_bug.cgi?id=221590
+    
+    Reviewed by Chris Fleizach.
+    
+    Source/WebCore:
+    
+    Tests:
+    accessibility/aria-sort.html
+    accessibility/ios-simulator/aria-sort-ios.html
+    
+    Walk up the accessibility hierarchy to check for an inherited aria-sort
+    attribute present in a row or column header ancestor.
+    
+    * accessibility/AccessibilityObject.cpp:
+    (WebCore::AccessibilityObject::sortDirection const):
+    
+    LayoutTests:
+    
+    Expanded this test to include the case where the header contains a child
+    element that must also expose the aria-sort attribute inherited from its
+    parent.
+    
+    * accessibility/aria-sort-expected.txt:
+    * accessibility/aria-sort.html:
+    * accessibility/ios-simulator/aria-sort-ios-expected.txt:
+    * accessibility/ios-simulator/aria-sort-ios.html:
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272626 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2021-02-09  Andres Gonzalez  <[email protected]>
+
+            Descendants of row and column headers should expose the aria-sort attribute.
+            https://bugs.webkit.org/show_bug.cgi?id=221590
+
+            Reviewed by Chris Fleizach.
+
+            Expanded this test to include the case where the header contains a child
+            element that must also expose the aria-sort attribute inherited from its
+            parent.
+
+            * accessibility/aria-sort-expected.txt:
+            * accessibility/aria-sort.html:
+            * accessibility/ios-simulator/aria-sort-ios-expected.txt:
+            * accessibility/ios-simulator/aria-sort-ios.html:
+
+2021-02-17  Ruben Turcios  <[email protected]>
+
         Cherry-pick r272165. rdar://problem/74032536
 
     Use user media permission prompt for speech recognition

Modified: branches/safari-611-branch/LayoutTests/accessibility/aria-sort-expected.txt (273254 => 273255)


--- branches/safari-611-branch/LayoutTests/accessibility/aria-sort-expected.txt	2021-02-22 17:55:00 UTC (rev 273254)
+++ branches/safari-611-branch/LayoutTests/accessibility/aria-sort-expected.txt	2021-02-22 17:55:04 UTC (rev 273255)
@@ -1,4 +1,4 @@
-column column column
+column column column column
 row
 This tests that aria-sort is exposed correctly to the Mac accessibility API.
 
@@ -11,6 +11,8 @@
 PASS col2.sortDirection is 'AXDescendingSortDirection'
 PASS col3.isAttributeSupported('AXSortDirection') is true
 PASS col3.sortDirection is 'AXUnknownSortDirection'
+PASS link1.isAttributeSupported('AXSortDirection') is true
+PASS link1.sortDirection is 'AXAscendingSortDirection'
 PASS row1.isAttributeSupported('AXSortDirection') is false
 PASS successfullyParsed is true
 

Modified: branches/safari-611-branch/LayoutTests/accessibility/aria-sort.html (273254 => 273255)


--- branches/safari-611-branch/LayoutTests/accessibility/aria-sort.html	2021-02-22 17:55:00 UTC (rev 273254)
+++ branches/safari-611-branch/LayoutTests/accessibility/aria-sort.html	2021-02-22 17:55:04 UTC (rev 273255)
@@ -15,6 +15,8 @@
 <span aria-sort="descending" id="col2" role="columnheader">column</span>
 <!-- Other aria-sort direction. -->
 <span aria-sort="other" id="col3" role="columnheader">column</span>
+<!-- The comun header with aria-sort attribute is the parent of a focusable element. -->
+<span aria-sort="ascending" id="col4" role="columnheader"><a id="link1" href=""
 </div>
 <div role="row">
 <!-- No aria-sort direction. -->
@@ -22,6 +24,7 @@
 <span role="gridcell"></span>
 <span role="gridcell"></span>
 <span role="gridcell"></span>
+<span role="gridcell"></span>
 </div>
 </div>
 
@@ -44,6 +47,10 @@
         shouldBe("col3.isAttributeSupported('AXSortDirection')", "true");
         shouldBe("col3.sortDirection", "'AXUnknownSortDirection'");
 
+        var link1 = accessibilityController.accessibleElementById("link1");
+        shouldBe("link1.isAttributeSupported('AXSortDirection')", "true");
+        shouldBe("link1.sortDirection", "'AXAscendingSortDirection'");
+
         var row1 = accessibilityController.accessibleElementById("row1");
         shouldBe("row1.isAttributeSupported('AXSortDirection')", "false");
     }

Modified: branches/safari-611-branch/LayoutTests/accessibility/ios-simulator/aria-sort-ios-expected.txt (273254 => 273255)


--- branches/safari-611-branch/LayoutTests/accessibility/ios-simulator/aria-sort-ios-expected.txt	2021-02-22 17:55:00 UTC (rev 273254)
+++ branches/safari-611-branch/LayoutTests/accessibility/ios-simulator/aria-sort-ios-expected.txt	2021-02-22 17:55:04 UTC (rev 273255)
@@ -1,4 +1,4 @@
-column column column
+column column column column
 row
 This tests that aria-sort is exposed correctly to the iOS accessibility API.
 
@@ -8,6 +8,7 @@
 PASS col1.sortDirection is 'AXAscendingSortDirection'
 PASS col2.sortDirection is 'AXDescendingSortDirection'
 PASS col3.sortDirection is 'AXUnknownSortDirection'
+PASS link1.sortDirection is 'AXAscendingSortDirection'
 PASS row1.sortDirection is 'AXUnknownSortDirection'
 PASS successfullyParsed is true
 

Modified: branches/safari-611-branch/LayoutTests/accessibility/ios-simulator/aria-sort-ios.html (273254 => 273255)


--- branches/safari-611-branch/LayoutTests/accessibility/ios-simulator/aria-sort-ios.html	2021-02-22 17:55:00 UTC (rev 273254)
+++ branches/safari-611-branch/LayoutTests/accessibility/ios-simulator/aria-sort-ios.html	2021-02-22 17:55:04 UTC (rev 273255)
@@ -14,6 +14,8 @@
 <span aria-sort="descending" id="col2" role="columnheader">column</span>
 <!-- Other aria-sort direction. -->
 <span aria-sort="other" id="col3" role="columnheader">column</span>
+<!-- The comun header with aria-sort attribute is the parent of a focusable element. -->
+<span aria-sort="ascending" id="col4" role="columnheader"><a id="link1" href=""
 </div>
 <div role="row">
 <!-- No aria-sort direction. -->
@@ -38,6 +40,9 @@
         var col3 = accessibilityController.accessibleElementById("col3");
         shouldBe("col3.sortDirection", "'AXUnknownSortDirection'");
 
+        var link1 = accessibilityController.accessibleElementById("link1");
+        shouldBe("link1.sortDirection", "'AXAscendingSortDirection'");
+
         var row1 = accessibilityController.accessibleElementById("row1");
         shouldBe("row1.sortDirection", "'AXUnknownSortDirection'");
     }

Modified: branches/safari-611-branch/Source/WebCore/ChangeLog (273254 => 273255)


--- branches/safari-611-branch/Source/WebCore/ChangeLog	2021-02-22 17:55:00 UTC (rev 273254)
+++ branches/safari-611-branch/Source/WebCore/ChangeLog	2021-02-22 17:55:04 UTC (rev 273255)
@@ -1,5 +1,57 @@
 2021-02-17  Ruben Turcios  <[email protected]>
 
+        Cherry-pick r272626. rdar://problem/74410222
+
+    Descendants of row and column headers should expose the aria-sort attribute.
+    https://bugs.webkit.org/show_bug.cgi?id=221590
+    
+    Reviewed by Chris Fleizach.
+    
+    Source/WebCore:
+    
+    Tests:
+    accessibility/aria-sort.html
+    accessibility/ios-simulator/aria-sort-ios.html
+    
+    Walk up the accessibility hierarchy to check for an inherited aria-sort
+    attribute present in a row or column header ancestor.
+    
+    * accessibility/AccessibilityObject.cpp:
+    (WebCore::AccessibilityObject::sortDirection const):
+    
+    LayoutTests:
+    
+    Expanded this test to include the case where the header contains a child
+    element that must also expose the aria-sort attribute inherited from its
+    parent.
+    
+    * accessibility/aria-sort-expected.txt:
+    * accessibility/aria-sort.html:
+    * accessibility/ios-simulator/aria-sort-ios-expected.txt:
+    * accessibility/ios-simulator/aria-sort-ios.html:
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272626 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2021-02-09  Andres Gonzalez  <[email protected]>
+
+            Descendants of row and column headers should expose the aria-sort attribute.
+            https://bugs.webkit.org/show_bug.cgi?id=221590
+
+            Reviewed by Chris Fleizach.
+
+            Tests:
+            accessibility/aria-sort.html
+            accessibility/ios-simulator/aria-sort-ios.html
+
+            Walk up the accessibility hierarchy to check for an inherited aria-sort
+            attribute present in a row or column header ancestor.
+
+            * accessibility/AccessibilityObject.cpp:
+            (WebCore::AccessibilityObject::sortDirection const):
+
+2021-02-17  Ruben Turcios  <[email protected]>
+
         Cherry-pick r272165. rdar://problem/74032536
 
     Use user media permission prompt for speech recognition

Modified: branches/safari-611-branch/Source/WebCore/accessibility/AccessibilityObject.cpp (273254 => 273255)


--- branches/safari-611-branch/Source/WebCore/accessibility/AccessibilityObject.cpp	2021-02-22 17:55:00 UTC (rev 273254)
+++ branches/safari-611-branch/Source/WebCore/accessibility/AccessibilityObject.cpp	2021-02-22 17:55:04 UTC (rev 273255)
@@ -2552,11 +2552,18 @@
 
 AccessibilitySortDirection AccessibilityObject::sortDirection() const
 {
-    AccessibilityRole role = roleValue();
-    if (role != AccessibilityRole::RowHeader && role != AccessibilityRole::ColumnHeader)
+    // Only objects that are descendant of column or row headers are allowed to have sort direction.
+    auto* header = Accessibility::findAncestor<AccessibilityObject>(*this, true, [] (const AccessibilityObject& object) {
+        auto role = object.roleValue();
+        return role == AccessibilityRole::ColumnHeader || role == AccessibilityRole::RowHeader;
+    });
+    if (!header)
         return AccessibilitySortDirection::Invalid;
 
-    const AtomString& sortAttribute = getAttribute(aria_sortAttr);
+    auto& sortAttribute = header->getAttribute(aria_sortAttr);
+    if (sortAttribute.isNull())
+        return AccessibilitySortDirection::None;
+
     if (equalLettersIgnoringASCIICase(sortAttribute, "ascending"))
         return AccessibilitySortDirection::Ascending;
     if (equalLettersIgnoringASCIICase(sortAttribute, "descending"))
@@ -2563,7 +2570,7 @@
         return AccessibilitySortDirection::Descending;
     if (equalLettersIgnoringASCIICase(sortAttribute, "other"))
         return AccessibilitySortDirection::Other;
-    
+
     return AccessibilitySortDirection::None;
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to