Title: [187068] branches/safari-601.1-branch
- Revision
- 187068
- Author
- matthew_han...@apple.com
- Date
- 2015-07-20 21:37:20 -0700 (Mon, 20 Jul 2015)
Log Message
Merge r186974. rdar://problem/21106945
Modified Paths
Added Paths
Diff
Modified: branches/safari-601.1-branch/LayoutTests/ChangeLog (187067 => 187068)
--- branches/safari-601.1-branch/LayoutTests/ChangeLog 2015-07-21 04:37:17 UTC (rev 187067)
+++ branches/safari-601.1-branch/LayoutTests/ChangeLog 2015-07-21 04:37:20 UTC (rev 187068)
@@ -1,5 +1,20 @@
2015-07-20 Matthew Hanson <matthew_han...@apple.com>
+ Merge r186974. rdar://problem/21106945
+
+ 2015-07-17 Nan Wang <n_w...@apple.com>
+
+ AX: iframe within table cell is inaccessible to VoiceOver
+ https://bugs.webkit.org/show_bug.cgi?id=147001
+ <rdar://problem/21106945>
+
+ Reviewed by Chris Fleizach.
+
+ * accessibility/iframe-within-cell-expected.txt: Added.
+ * accessibility/iframe-within-cell.html: Added.
+
+2015-07-20 Matthew Hanson <matthew_han...@apple.com>
+
Merge r186968. rdar://problem/21359811
2015-07-17 Myles C. Maxfield <mmaxfi...@apple.com>
Added: branches/safari-601.1-branch/LayoutTests/accessibility/iframe-within-cell-expected.txt (0 => 187068)
--- branches/safari-601.1-branch/LayoutTests/accessibility/iframe-within-cell-expected.txt (rev 0)
+++ branches/safari-601.1-branch/LayoutTests/accessibility/iframe-within-cell-expected.txt 2015-07-21 04:37:20 UTC (rev 187068)
@@ -0,0 +1,11 @@
+This tests iframe within a cell is accessible.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+Role for iframe cell is: AXRole: AXCell .
+
+Cell A Cell C
Added: branches/safari-601.1-branch/LayoutTests/accessibility/iframe-within-cell.html (0 => 187068)
--- branches/safari-601.1-branch/LayoutTests/accessibility/iframe-within-cell.html (rev 0)
+++ branches/safari-601.1-branch/LayoutTests/accessibility/iframe-within-cell.html 2015-07-21 04:37:20 UTC (rev 187068)
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+<script>
+
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function runTest()
+{
+ document.getElementById("frame_cell").focus()
+ if (window.accessibilityController) {
+ document.body.focus();
+ var frameElement = accessibilityController.accessibleElementById("frame_cell");
+ debug("Role for iframe cell is: " + frameElement.role + " .\n");
+ }
+}
+
+</script>
+</head>
+
+<body _onload_="runTest()">
+<table cellpadding=0 cellspacing=0 border=2>
+<tr>
+<td> Cell A </td>
+<td id="frame_cell" description="Cell B"><iframe src="" width="100%"></iframe></td>
+<td> Cell C </td>
+</tr>
+</table>
+
+<script>
+description("This tests iframe within a cell is accessible.");
+</script>
+<script src=""
+</body>
+</html>
Modified: branches/safari-601.1-branch/Source/WebCore/ChangeLog (187067 => 187068)
--- branches/safari-601.1-branch/Source/WebCore/ChangeLog 2015-07-21 04:37:17 UTC (rev 187067)
+++ branches/safari-601.1-branch/Source/WebCore/ChangeLog 2015-07-21 04:37:20 UTC (rev 187068)
@@ -1,5 +1,27 @@
2015-07-20 Matthew Hanson <matthew_han...@apple.com>
+ Merge r186974. rdar://problem/21106945
+
+ 2015-07-17 Nan Wang <n_w...@apple.com>
+
+ AX: iframe within table cell is inaccessible to VoiceOver
+ https://bugs.webkit.org/show_bug.cgi?id=147001
+ <rdar://problem/21106945>
+
+ Reviewed by Chris Fleizach.
+
+ When a table cell is created before its parent table determines if it should be ignored or not,
+ the table cell may cache the wrong role. Fix that by allowing each table cell to update its role
+ after the table makes this determination.
+
+ Test: accessibility/iframe-within-cell.html
+
+ * accessibility/AccessibilityTable.cpp:
+ (WebCore::AccessibilityTable::addChildren):
+ (WebCore::AccessibilityTable::addChildrenFromSection):
+
+2015-07-20 Matthew Hanson <matthew_han...@apple.com>
+
Merge r186968. rdar://problem/21359811
2015-07-17 Myles C. Maxfield <mmaxfi...@apple.com>
Modified: branches/safari-601.1-branch/Source/WebCore/accessibility/AccessibilityTable.cpp (187067 => 187068)
--- branches/safari-601.1-branch/Source/WebCore/accessibility/AccessibilityTable.cpp 2015-07-21 04:37:17 UTC (rev 187067)
+++ branches/safari-601.1-branch/Source/WebCore/accessibility/AccessibilityTable.cpp 2015-07-21 04:37:20 UTC (rev 187068)
@@ -409,6 +409,16 @@
AccessibilityObject* headerContainerObject = headerContainer();
if (headerContainerObject && !headerContainerObject->accessibilityIsIgnored())
m_children.append(headerContainerObject);
+
+ // Sometimes the cell gets the wrong role initially because it is created before the parent
+ // determines whether it is an accessibility table. Iterate all the cells and allow them to
+ // update their roles now that the table knows its status.
+ // see bug: https://bugs.webkit.org/show_bug.cgi?id=147001
+ for (const auto& row : m_rows) {
+ for (const auto& cell : row->children())
+ cell->updateAccessibilityRole();
+ }
+
}
void AccessibilityTable::addChildrenFromSection(RenderTableSection* tableSection, unsigned& maxColumnCount)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes