https://bugs.webkit.org/show_bug.cgi?id=146674
Reviewed by Darin Adler.
Source/WebCore:
A table row could have any number of parent elements in the render tree, but for the purposes
of accessibility we only want to report the AXTable as the parent so that it looks like a sane
data table.
Test: accessibility/aria-table-with-presentational-elements.html
* accessibility/AccessibilityARIAGridRow.cpp:
(WebCore::AccessibilityARIAGridRow::disclosedByRow):
(WebCore::AccessibilityARIAGridRow::parentObjectUnignored):
(WebCore::AccessibilityARIAGridRow::parentTable):
* accessibility/AccessibilityARIAGridRow.h:
LayoutTests:
* accessibility/aria-table-with-presentational-elements-expected.txt: Added.
* accessibility/aria-table-with-presentational-elements.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@186587
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2015-07-09 Chris Fleizach <cfleizach@apple.com>
+
+ AX: VoiceOver cannot get to any content in Yahoo Mail messages table
+ https://bugs.webkit.org/show_bug.cgi?id=146674
+
+ Reviewed by Darin Adler.
+
+ * accessibility/aria-table-with-presentational-elements-expected.txt: Added.
+ * accessibility/aria-table-with-presentational-elements.html: Added.
+
2015-07-08 Joseph Pecoraro <pecoraro@apple.com>
Fix grammar issue in TypeError attempting to change an unconfigurable property
--- /dev/null
+This tests that in an aria table a row will report its parent as the table.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS row.role is 'AXRole: AXRow'
+PASS row.parentElement().role is 'AXRole: AXTable'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src="../resources/js-test-pre.js"></script>
+</head>
+
+<body id="body">
+
+<div id="content">
+
+<div role="grid" id="table">
+ <div role="presentational" aria-label="hello">
+ <div role="presentational" aria-haspopup="true">
+ <div role="row">
+ <div role="gridcell">hello</div>
+ <div role="gridcell">hello</div>
+ <div role="gridcell">hello</div>
+ </div>
+ </div>
+ </div>
+</div>
+
+</div>
+
+<p id="description"></p>
+<div id="console"></div>
+
+<script>
+description("This tests that in an aria table a row will report its parent as the table.");
+
+if (window.accessibilityController) {
+ var table = accessibilityController.accessibleElementById("table");
+ var row = table.rowAtIndex(0);
+ shouldBe("row.role", "'AXRole: AXRow'");
+ shouldBe("row.parentElement().role", "'AXRole: AXTable'");
+
+ document.getElementById("content").style.visibility = "hidden";
+}
+
+</script>
+<script src="../resources/js-test-post.js"></script>
+</body>
+</html>
+2015-07-09 Chris Fleizach <cfleizach@apple.com>
+
+ AX: VoiceOver cannot get to any content in Yahoo Mail messages table
+ https://bugs.webkit.org/show_bug.cgi?id=146674
+
+ Reviewed by Darin Adler.
+
+ A table row could have any number of parent elements in the render tree, but for the purposes
+ of accessibility we only want to report the AXTable as the parent so that it looks like a sane
+ data table.
+
+ Test: accessibility/aria-table-with-presentational-elements.html
+
+ * accessibility/AccessibilityARIAGridRow.cpp:
+ (WebCore::AccessibilityARIAGridRow::disclosedByRow):
+ (WebCore::AccessibilityARIAGridRow::parentObjectUnignored):
+ (WebCore::AccessibilityARIAGridRow::parentTable):
+ * accessibility/AccessibilityARIAGridRow.h:
+
2015-07-08 Sungmann Cho <sungmann.cho@navercorp.com>
[GTK] The "Missing Plug-in" buttons are not showing up on some flash contents.
return nullptr;
}
+AccessibilityObject* AccessibilityARIAGridRow::parentObjectUnignored() const
+{
+ return parentTable();
+}
+
AccessibilityTable* AccessibilityARIAGridRow::parentTable() const
{
// The parent table might not be the direct ancestor of the row unfortunately. ARIA states that role="grid" should
virtual bool isARIATreeGridRow() const override;
virtual AccessibilityTable* parentTable() const override;
-};
+ virtual AccessibilityObject* parentObjectUnignored() const override;
+};
} // namespace WebCore