<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[186587] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/186587">186587</a></dd>
<dt>Author</dt> <dd>cfleizach@apple.com</dd>
<dt>Date</dt> <dd>2015-07-09 00:31:27 -0700 (Thu, 09 Jul 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>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.

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.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityARIAGridRowcpp">trunk/Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityARIAGridRowh">trunk/Source/WebCore/accessibility/AccessibilityARIAGridRow.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsaccessibilityariatablewithpresentationalelementsexpectedtxt">trunk/LayoutTests/accessibility/aria-table-with-presentational-elements-expected.txt</a></li>
<li><a href="#trunkLayoutTestsaccessibilityariatablewithpresentationalelementshtml">trunk/LayoutTests/accessibility/aria-table-with-presentational-elements.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (186586 => 186587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-07-09 07:01:49 UTC (rev 186586)
+++ trunk/LayoutTests/ChangeLog        2015-07-09 07:31:27 UTC (rev 186587)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2015-07-09  Chris Fleizach  &lt;cfleizach@apple.com&gt;
+
+        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.
+
</ins><span class="cx"> 2015-07-08  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix grammar issue in TypeError attempting to change an unconfigurable property
</span></span></pre></div>
<a id="trunkLayoutTestsaccessibilityariatablewithpresentationalelementsexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/accessibility/aria-table-with-presentational-elements-expected.txt (0 => 186587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/accessibility/aria-table-with-presentational-elements-expected.txt                                (rev 0)
+++ trunk/LayoutTests/accessibility/aria-table-with-presentational-elements-expected.txt        2015-07-09 07:31:27 UTC (rev 186587)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+This tests that in an aria table a row will report its parent as the table.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS row.role is 'AXRole: AXRow'
+PASS row.parentElement().role is 'AXRole: AXTable'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsaccessibilityariatablewithpresentationalelementshtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/accessibility/aria-table-with-presentational-elements.html (0 => 186587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/accessibility/aria-table-with-presentational-elements.html                                (rev 0)
+++ trunk/LayoutTests/accessibility/aria-table-with-presentational-elements.html        2015-07-09 07:31:27 UTC (rev 186587)
</span><span class="lines">@@ -0,0 +1,43 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+
+&lt;body id=&quot;body&quot;&gt;
+
+&lt;div id=&quot;content&quot;&gt;
+
+&lt;div role=&quot;grid&quot; id=&quot;table&quot;&gt;
+  &lt;div role=&quot;presentational&quot; aria-label=&quot;hello&quot;&gt;
+     &lt;div role=&quot;presentational&quot; aria-haspopup=&quot;true&quot;&gt;
+         &lt;div role=&quot;row&quot;&gt; 
+             &lt;div role=&quot;gridcell&quot;&gt;hello&lt;/div&gt;
+             &lt;div role=&quot;gridcell&quot;&gt;hello&lt;/div&gt;
+             &lt;div role=&quot;gridcell&quot;&gt;hello&lt;/div&gt;
+         &lt;/div&gt;
+      &lt;/div&gt;
+  &lt;/div&gt;
+&lt;/div&gt;
+
+&lt;/div&gt;
+
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+description(&quot;This tests that in an aria table a row will report its parent as the table.&quot;);
+
+if (window.accessibilityController) {
+    var table = accessibilityController.accessibleElementById(&quot;table&quot;);
+    var row = table.rowAtIndex(0);
+    shouldBe(&quot;row.role&quot;, &quot;'AXRole: AXRow'&quot;);
+    shouldBe(&quot;row.parentElement().role&quot;, &quot;'AXRole: AXTable'&quot;);
+
+    document.getElementById(&quot;content&quot;).style.visibility = &quot;hidden&quot;;
+}
+
+&lt;/script&gt;
+&lt;script src=&quot;../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (186586 => 186587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-07-09 07:01:49 UTC (rev 186586)
+++ trunk/Source/WebCore/ChangeLog        2015-07-09 07:31:27 UTC (rev 186587)
</span><span class="lines">@@ -1,3 +1,22 @@
</span><ins>+2015-07-09  Chris Fleizach  &lt;cfleizach@apple.com&gt;
+
+        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:
+
</ins><span class="cx"> 2015-07-08  Sungmann Cho  &lt;sungmann.cho@navercorp.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [GTK] The &quot;Missing Plug-in&quot; buttons are not showing up on some flash contents.
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityARIAGridRowcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp (186586 => 186587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp        2015-07-09 07:01:49 UTC (rev 186586)
+++ trunk/Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp        2015-07-09 07:31:27 UTC (rev 186587)
</span><span class="lines">@@ -114,6 +114,11 @@
</span><span class="cx">     return nullptr;
</span><span class="cx"> }
</span><span class="cx">     
</span><ins>+AccessibilityObject* AccessibilityARIAGridRow::parentObjectUnignored() const
+{
+    return parentTable();
+}
+    
</ins><span class="cx"> AccessibilityTable* AccessibilityARIAGridRow::parentTable() const
</span><span class="cx"> {
</span><span class="cx">     // The parent table might not be the direct ancestor of the row unfortunately. ARIA states that role=&quot;grid&quot; should
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityARIAGridRowh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityARIAGridRow.h (186586 => 186587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityARIAGridRow.h        2015-07-09 07:01:49 UTC (rev 186586)
+++ trunk/Source/WebCore/accessibility/AccessibilityARIAGridRow.h        2015-07-09 07:31:27 UTC (rev 186587)
</span><span class="lines">@@ -50,7 +50,8 @@
</span><span class="cx"> 
</span><span class="cx">     virtual bool isARIATreeGridRow() const override;
</span><span class="cx">     virtual AccessibilityTable* parentTable() const override;
</span><del>-}; 
</del><ins>+    virtual AccessibilityObject* parentObjectUnignored() const override;
+};
</ins><span class="cx"> 
</span><span class="cx"> } // namespace WebCore 
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>