Diff
Modified: trunk/LayoutTests/ChangeLog (248168 => 248169)
--- trunk/LayoutTests/ChangeLog 2019-08-02 19:03:35 UTC (rev 248168)
+++ trunk/LayoutTests/ChangeLog 2019-08-02 19:10:02 UTC (rev 248169)
@@ -1,3 +1,16 @@
+2019-08-02 Andres Gonzalez <[email protected]>
+
+ Add accessibility object method to determine whether an element is inside a table cell. Needed for iOS accessibility client.
+ https://bugs.webkit.org/show_bug.cgi?id=200394
+ <rdar://problem/52914964>
+
+ Reviewed by Chris Fleizach.
+
+ New test that exercises [WebAccessibilityObjectWrapper _accessibilityIsInTableCell].
+
+ * accessibility/ios-simulator/element-in-table-cell-expected.txt: Added.
+ * accessibility/ios-simulator/element-in-table-cell.html: Added.
+
2019-08-02 Chris Dumez <[email protected]>
DOMWindow properties may get GC'd before their Window object
Added: trunk/LayoutTests/accessibility/ios-simulator/element-in-table-cell-expected.txt (0 => 248169)
--- trunk/LayoutTests/accessibility/ios-simulator/element-in-table-cell-expected.txt (rev 0)
+++ trunk/LayoutTests/accessibility/ios-simulator/element-in-table-cell-expected.txt 2019-08-02 19:10:02 UTC (rev 248169)
@@ -0,0 +1,16 @@
+apple orange
+3 5
+2 4
+This tests the _accessibilityIsInTableCell method, used by VO to describe the element.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS accessibilityController.accessibleElementById('button1').isInTableCell() is true
+PASS accessibilityController.accessibleElementById('button2').isInTableCell() is false
+PASS accessibilityController.accessibleElementById('link1').isInTableCell() is true
+PASS accessibilityController.accessibleElementById('link2').isInTableCell() is false
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/accessibility/ios-simulator/element-in-table-cell.html (0 => 248169)
--- trunk/LayoutTests/accessibility/ios-simulator/element-in-table-cell.html (rev 0)
+++ trunk/LayoutTests/accessibility/ios-simulator/element-in-table-cell.html 2019-08-02 19:10:02 UTC (rev 248169)
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+</head>
+<body id="body">
+
+<table>
+ <thead>
+ <tr>
+ <th scope="col">apple</th>
+ <th scope="col">orange</th>
+ </TR>
+ </thead>
+ <tbody>
+ <tr>
+ <td><button id="button1">3</button></td>
+ <td><a href="" id="link1">5</a></td>
+ </TR>
+ </TBODY>
+</table>
+
+<button id="button2">2</button>
+<a href="" id="link2">4</a>
+
+<p id="description"></p>
+<div id="console"></div>
+
+<script>
+ description("This tests the _accessibilityIsInTableCell method, used by VO to describe the element.");
+
+ if (window.accessibilityController) {
+ shouldBeTrue("accessibilityController.accessibleElementById('button1').isInTableCell()")
+ shouldBeFalse("accessibilityController.accessibleElementById('button2').isInTableCell()")
+ shouldBeTrue("accessibilityController.accessibleElementById('link1').isInTableCell()")
+ shouldBeFalse("accessibilityController.accessibleElementById('link2').isInTableCell()")
+ }
+</script>
+
+<script src=""
+</body>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (248168 => 248169)
--- trunk/Source/WebCore/ChangeLog 2019-08-02 19:03:35 UTC (rev 248168)
+++ trunk/Source/WebCore/ChangeLog 2019-08-02 19:10:02 UTC (rev 248169)
@@ -1,3 +1,17 @@
+2019-08-02 Andres Gonzalez <[email protected]>
+
+ Add accessibility object method to determine whether an element is inside a table cell. Needed for iOS accessibility client.
+ https://bugs.webkit.org/show_bug.cgi?id=200394
+ <rdar://problem/52914964>
+
+ Reviewed by Chris Fleizach.
+
+ Test: accessibility/ios-simulator/element-in-table-cell.html
+
+ Added _accessibilityIsInTableCell needed for iOS accessibility client.
+ * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
+ (-[WebAccessibilityObjectWrapper _accessibilityIsInTableCell]):
+
2019-08-02 Eric Carlson <[email protected]>
[macOS, iOS] webaudio/silent-audio-interrupted-in-background.html sometimes crashes
Modified: trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm (248168 => 248169)
--- trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm 2019-08-02 19:03:35 UTC (rev 248168)
+++ trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm 2019-08-02 19:10:02 UTC (rev 248169)
@@ -599,6 +599,13 @@
return nil;
}
+- (BOOL)_accessibilityIsInTableCell
+{
+ return AccessibilityObject::matchedParent(*m_object, false, [] (const AccessibilityObject& object) {
+ return object.roleValue() == AccessibilityRole::Cell;
+ });
+}
+
- (AccessibilityObjectWrapper*)_accessibilityFieldsetAncestor
{
if (const AccessibilityObject* parent = AccessibilityObject::matchedParent(*m_object, false, [] (const AccessibilityObject& object) {
Modified: trunk/Tools/ChangeLog (248168 => 248169)
--- trunk/Tools/ChangeLog 2019-08-02 19:03:35 UTC (rev 248168)
+++ trunk/Tools/ChangeLog 2019-08-02 19:10:02 UTC (rev 248169)
@@ -1,3 +1,20 @@
+2019-08-02 Andres Gonzalez <[email protected]>
+
+ Add accessibility object method to determine whether an element is inside a table cell. Needed for iOS accessibility client.
+ https://bugs.webkit.org/show_bug.cgi?id=200394
+ <rdar://problem/52914964>
+
+ Reviewed by Chris Fleizach.
+
+ Glue code to exercise new method [WebAccessibilityObjectWrapper _accessibilityIsInTableCell].
+
+ * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
+ (WTR::AccessibilityUIElement::isInTableCell const):
+ * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
+ * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
+ * WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
+ (WTR::AccessibilityUIElement::isInTableCell const):
+
2019-08-02 Zhifei Fang <[email protected]>
[results.webkit.org Timeline] Using transform matrix to calculate the tag rotation position
Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp (248168 => 248169)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp 2019-08-02 19:03:35 UTC (rev 248168)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp 2019-08-02 19:10:02 UTC (rev 248169)
@@ -79,6 +79,7 @@
RefPtr<AccessibilityTextMarkerRange> AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers(JSStringRef, AccessibilityTextMarker*, AccessibilityTextMarker*) { return nullptr; }
bool AccessibilityUIElement::dismiss() { return false; }
JSRetainPtr<JSStringRef> AccessibilityUIElement::attributedStringForElement() { return nullptr; }
+bool AccessibilityUIElement::isInTableCell() const { return false; }
#endif
// Unsupported methods on various platforms. As they're implemented on other platforms this list should be modified.
Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h (248168 => 248169)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h 2019-08-02 19:03:35 UTC (rev 248168)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h 2019-08-02 19:10:02 UTC (rev 248169)
@@ -189,6 +189,7 @@
JSRetainPtr<JSStringRef> attributesOfRows();
JSRetainPtr<JSStringRef> attributesOfVisibleCells();
JSRetainPtr<JSStringRef> attributesOfHeader();
+ bool isInTableCell() const;
int indexInTable();
JSRetainPtr<JSStringRef> rowIndexRange();
JSRetainPtr<JSStringRef> columnIndexRange();
Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl (248168 => 248169)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl 2019-08-02 19:03:35 UTC (rev 248168)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl 2019-08-02 19:10:02 UTC (rev 248169)
@@ -150,6 +150,7 @@
AccessibilityUIElement disclosedByRow();
AccessibilityUIElement disclosedRowAtIndex(unsigned long index);
AccessibilityUIElement rowAtIndex(unsigned long index);
+ boolean isInTableCell();
long indexInTable();
DOMString rowIndexRange();
DOMString columnIndexRange();
Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm (248168 => 248169)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm 2019-08-02 19:03:35 UTC (rev 248168)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm 2019-08-02 19:10:02 UTC (rev 248169)
@@ -103,6 +103,7 @@
- (id)lineStartMarkerForMarker:(id)marker;
- (id)lineEndMarkerForMarker:(id)marker;
- (NSArray *)textMarkerRangeFromMarkers:(NSArray *)markers withText:(NSString *)text;
+- (BOOL)_accessibilityIsInTableCell;
@end
@interface NSObject (WebAccessibilityObjectWrapperPrivate)
@@ -794,6 +795,11 @@
return [m_element accessibilityColumnCount];
}
+bool AccessibilityUIElement::isInTableCell() const
+{
+ return [m_element _accessibilityIsInTableCell];
+}
+
int AccessibilityUIElement::indexInTable()
{
return -1;