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;
}