<!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>[185335] 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/185335">185335</a></dd>
<dt>Author</dt> <dd>cfleizach@apple.com</dd>
<dt>Date</dt> <dd>2015-06-08 16:31:11 -0700 (Mon, 08 Jun 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>AX: improve list heuristics (presentational use versus actual lists)
https://bugs.webkit.org/show_bug.cgi?id=134187

Unreviewed. Rolling this change out temporarily.

Source/WebCore:

* accessibility/AccessibilityList.cpp:
(WebCore::AccessibilityList::isDescriptionList):
(WebCore::AccessibilityList::determineAccessibilityRole):
(WebCore::AccessibilityList::childHasPseudoVisibleListItemMarkers): Deleted.
* accessibility/AccessibilityList.h:

LayoutTests:

* accessibility/list-detection-expected.txt:
* accessibility/list-detection.html:
* accessibility/list-detection2-expected.txt: Removed.
* accessibility/list-detection2.html: Removed.
* platform/gtk/accessibility/list-detection-expected.txt:
* platform/win/TestExpectations:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsaccessibilitylistdetectionexpectedtxt">trunk/LayoutTests/accessibility/list-detection-expected.txt</a></li>
<li><a href="#trunkLayoutTestsaccessibilitylistdetectionhtml">trunk/LayoutTests/accessibility/list-detection.html</a></li>
<li><a href="#trunkLayoutTestsplatformgtkaccessibilitylistdetectionexpectedtxt">trunk/LayoutTests/platform/gtk/accessibility/list-detection-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformwinTestExpectations">trunk/LayoutTests/platform/win/TestExpectations</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityListcpp">trunk/Source/WebCore/accessibility/AccessibilityList.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityListh">trunk/Source/WebCore/accessibility/AccessibilityList.h</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsaccessibilitylistdetection2expectedtxt">trunk/LayoutTests/accessibility/list-detection2-expected.txt</a></li>
<li><a href="#trunkLayoutTestsaccessibilitylistdetection2html">trunk/LayoutTests/accessibility/list-detection2.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (185334 => 185335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-06-08 23:27:12 UTC (rev 185334)
+++ trunk/LayoutTests/ChangeLog        2015-06-08 23:31:11 UTC (rev 185335)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2015-06-08  Chris Fleizach  &lt;cfleizach@apple.com&gt;
+
+        AX: improve list heuristics (presentational use versus actual lists)
+       ​https://bugs.webkit.org/show_bug.cgi?id=134187
+
+        Unreviewed. Rolling this change out temporarily.
+
+        * accessibility/list-detection-expected.txt:
+        * accessibility/list-detection.html:
+        * accessibility/list-detection2-expected.txt: Removed.
+        * accessibility/list-detection2.html: Removed.
+        * platform/gtk/accessibility/list-detection-expected.txt:
+        * platform/win/TestExpectations:
+
</ins><span class="cx"> 2015-06-08  Alexey Proskuryakov  &lt;ap@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Unskip http/tests/misc/webtiming-ssl.php, as it should be passing on Yosemite.
</span></span></pre></div>
<a id="trunkLayoutTestsaccessibilitylistdetectionexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/accessibility/list-detection-expected.txt (185334 => 185335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/accessibility/list-detection-expected.txt        2015-06-08 23:27:12 UTC (rev 185334)
+++ trunk/LayoutTests/accessibility/list-detection-expected.txt        2015-06-08 23:31:11 UTC (rev 185335)
</span><span class="lines">@@ -35,8 +35,8 @@
</span><span class="cx"> PASS axElement.role == 'AXRole: AXList' is true
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-Unordered list with more than 1 item and no style is not a list.
-PASS axElement.role == 'AXRole: AXList' is false
</del><ins>+Unordered list with more than 1 item and no style is a list.
+PASS axElement.role == 'AXRole: AXList' is true
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> Unordered list with 1 item and no style is not list.
</span></span></pre></div>
<a id="trunkLayoutTestsaccessibilitylistdetectionhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/accessibility/list-detection.html (185334 => 185335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/accessibility/list-detection.html        2015-06-08 23:27:12 UTC (rev 185334)
+++ trunk/LayoutTests/accessibility/list-detection.html        2015-06-08 23:31:11 UTC (rev 185335)
</span><span class="lines">@@ -40,7 +40,7 @@
</span><span class="cx"> &lt;li&gt;item&lt;/li&gt;
</span><span class="cx"> &lt;/ul&gt;
</span><span class="cx"> 
</span><del>-&lt;ul id=&quot;list9&quot; style=&quot;list-style-type: none;&quot; test-description=&quot;Unordered list with more than 1 item and no style is not a list.&quot; is-list=&quot;false&quot;&gt;
</del><ins>+&lt;ul id=&quot;list9&quot; style=&quot;list-style-type: none;&quot; test-description=&quot;Unordered list with more than 1 item and no style is a list.&quot; is-list=&quot;true&quot;&gt;
</ins><span class="cx"> &lt;li&gt;item&lt;/li&gt;
</span><span class="cx"> &lt;li&gt;item&lt;/li&gt;
</span><span class="cx"> &lt;/ul&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsaccessibilitylistdetection2expectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/accessibility/list-detection2-expected.txt (185334 => 185335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/accessibility/list-detection2-expected.txt        2015-06-08 23:27:12 UTC (rev 185334)
+++ trunk/LayoutTests/accessibility/list-detection2-expected.txt        2015-06-08 23:31:11 UTC (rev 185335)
</span><span class="lines">@@ -1,25 +0,0 @@
</span><del>-This tests that heurisitics for determining meaningful lists versus presentational lists result in the same computed role, regardless of platform.
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-PASS: ul[role=&quot;list&quot;] w/ explicit role and displayed inline -&gt; list. 
-PASS: ul[role=&quot;list&quot;] w/ explicit role but no markers -&gt; list. 
-PASS: ul w/ default list markers -&gt; list. 
-PASS: ol w/ default list counters -&gt; list. 
-PASS: ul w/ list-style-image -&gt; list. 
-PASS: ul w/ image content on ::before -&gt; list. 
-PASS: ul w/ image content on inline ::before -&gt; list. 
-PASS: ul w/ bullet content on ::before -&gt; list. 
-PASS: ul w/ bullet content on inline ::before -&gt; list. 
-PASS: ol w/ counter content on ::before -&gt; list. 
-PASS: ol w/ counter content on inline ::before -&gt; list. 
-PASS: ul w/ background image (NOT A LIST) -&gt; group. 
-PASS: ul w/ background on ::before (NOT A LIST) -&gt; group. 
-PASS: ul w/o explicit role and displayed inline, which defaults to no markers (NOT A LIST) -&gt; group. 
-PASS: ol w/o explicit role and displayed inline, which defaults to no markers (NOT A LIST) -&gt; group. 
-PASS: ul w/o explicit role and no markers (NOT A LIST) -&gt; group. 
-
</del></span></pre></div>
<a id="trunkLayoutTestsaccessibilitylistdetection2html"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/accessibility/list-detection2.html (185334 => 185335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/accessibility/list-detection2.html        2015-06-08 23:27:12 UTC (rev 185334)
+++ trunk/LayoutTests/accessibility/list-detection2.html        2015-06-08 23:31:11 UTC (rev 185335)
</span><span class="lines">@@ -1,203 +0,0 @@
</span><del>-&lt;!DOCTYPE HTML&gt;
-&lt;html&gt;
-&lt;head&gt;
-    &lt;title&gt;List; presentation heuristics&lt;/title&gt;
-    &lt;meta charset=&quot;utf-8&quot;&gt; 
-    &lt;style type=&quot;text/css&quot;&gt;
-    html, body {
-        font-size: 100%;
-    } 
-    h1 {
-        font-size: 1em;
-    }
-    .inline, .inline li {
-        display: inline;
-    }
-    .nomarkers {
-        list-style: none;
-    }
-    .imagemarkers {
-        list-style-image: url(data:image/gif;base64,R0lGODlhEAARAJECAOHh4UpKSgAAAAAAACH5BAEAAAIALAAAAAAQABEAAAIllB8Zx63b4otSUWcvyuz5D4biSD7AiZroWSXa5r7CJNOvra1RAQA7);
-    }
-    .imagemarkersbefore li::before {
-        content: url(data:image/gif;base64,R0lGODlhEAARAJECAOHh4UpKSgAAAAAAACH5BAEAAAIALAAAAAAQABEAAAIllB8Zx63b4otSUWcvyuz5D4biSD7AiZroWSXa5r7CJNOvra1RAQA7) &quot; &quot;;
-    }
-    .bulletmarkersbefore li::before {
-        content: &quot;• &quot;;
-    }
-    .countermarkersbefore {
-        counter-reset: number;
-        list-style-type: none;
-    }
-    .countermarkersbefore li::before {
-        counter-increment: number;
-        content: counters(number,&quot;.&quot;) &quot;. &quot;;
-    }
-    .backgroundmarkers li {
-        padding-left: 30px;
-        background: transparent url(data:image/gif;base64,R0lGODlhEAARAJECAOHh4UpKSgAAAAAAACH5BAEAAAIALAAAAAAQABEAAAIllB8Zx63b4otSUWcvyuz5D4biSD7AiZroWSXa5r7CJNOvra1RAQA7) left center no-repeat;
-    }
-    .backgroundmarkersbefore li::before {
-        display: inline-block;
-        content: &quot; &quot;;
-        width: 17px;
-        height: 17px;
-        background: transparent url(data:image/gif;base64,R0lGODlhEAARAJECAOHh4UpKSgAAAAAAACH5BAEAAAIALAAAAAAQABEAAAIllB8Zx63b4otSUWcvyuz5D4biSD7AiZroWSXa5r7CJNOvra1RAQA7) left center no-repeat;
-    }
-&lt;/style&gt;
-&lt;/head&gt;
-&lt;body onload=&quot;runTest();&quot;&gt;
-&lt;script src=&quot;../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-
-&lt;div id=&quot;examples&quot;&gt;
-
-    &lt;!-- @data-role is the expectation --&gt;
-
-    &lt;h1&gt;list because of explicit role, despite style and lack of list markers&lt;/h1&gt;
-    &lt;ul role=&quot;list&quot; data-role=&quot;list&quot; class=&quot;ex inline&quot; data-note=&quot; w/ explicit role and displayed inline&quot;&gt;
-        &lt;li&gt;foo&lt;/li&gt;
-        &lt;li&gt;bar&lt;/li&gt;
-        &lt;li&gt;baz&lt;/li&gt;
-    &lt;/ul&gt;
-    &lt;ul role=&quot;list&quot; data-role=&quot;list&quot; class=&quot;ex nomarkers&quot; data-note=&quot; w/ explicit role but no markers&quot;&gt;
-        &lt;li&gt;foo&lt;/li&gt;
-        &lt;li&gt;bar&lt;/li&gt;
-        &lt;li&gt;baz&lt;/li&gt;
-    &lt;/ul&gt;
-
-    &lt;h1&gt;list because of rendered list markers (exposed as AXListMarker)&lt;/h1&gt;
-    &lt;ul data-role=&quot;list&quot; class=&quot;ex&quot; data-note=&quot; w/ default list markers&quot;&gt;
-        &lt;li&gt;foo&lt;/li&gt;
-        &lt;li&gt;bar&lt;/li&gt;
-        &lt;li&gt;baz&lt;/li&gt;
-    &lt;/ul&gt;
-    &lt;ol data-role=&quot;list&quot; class=&quot;ex&quot; data-note=&quot; w/ default list counters&quot;&gt;
-        &lt;li&gt;foo&lt;/li&gt;
-        &lt;li&gt;bar&lt;/li&gt;
-        &lt;li&gt;baz&lt;/li&gt;
-    &lt;/ol&gt;
-    &lt;ul data-role=&quot;list&quot; class=&quot;ex imagemarkers&quot; data-note=&quot; w/ list-style-image&quot;&gt;
-        &lt;li&gt;foo&lt;/li&gt;
-        &lt;li&gt;bar&lt;/li&gt;
-        &lt;li&gt;baz&lt;/li&gt;
-    &lt;/ul&gt;
-
-    &lt;h1&gt;list because these list markers consist of CSS-generated content on ::before pseudo element. Note: WebKit is not exposing these as AXListMarker; need another bug for that.&lt;/h1&gt;
-    &lt;ul data-role=&quot;list&quot; class=&quot;ex nomarkers imagemarkersbefore&quot; data-note=&quot; w/ image content on ::before&quot;&gt;
-        &lt;li&gt;foo&lt;/li&gt;
-        &lt;li&gt;bar&lt;/li&gt;
-        &lt;li&gt;baz&lt;/li&gt;
-    &lt;/ul&gt;
-    &lt;ul data-role=&quot;list&quot; class=&quot;ex nomarkers inline imagemarkersbefore&quot; data-note=&quot; w/ image content on inline ::before&quot;&gt;
-        &lt;li&gt;foo&lt;/li&gt;
-        &lt;li&gt;bar&lt;/li&gt;
-        &lt;li&gt;baz&lt;/li&gt;
-    &lt;/ul&gt;
-    &lt;ul data-role=&quot;list&quot; class=&quot;ex nomarkers bulletmarkersbefore&quot; data-note=&quot; w/ bullet content on ::before&quot;&gt;
-        &lt;li&gt;foo&lt;/li&gt;
-        &lt;li&gt;bar&lt;/li&gt;
-        &lt;li&gt;baz&lt;/li&gt;
-    &lt;/ul&gt;
-    &lt;ul data-role=&quot;list&quot; class=&quot;ex nomarkers inline bulletmarkersbefore&quot; data-note=&quot; w/ bullet content on inline ::before&quot;&gt;
-        &lt;li&gt;foo&lt;/li&gt;
-        &lt;li&gt;bar&lt;/li&gt;
-        &lt;li&gt;baz&lt;/li&gt;
-    &lt;/ul&gt;
-    &lt;ol data-role=&quot;list&quot; class=&quot;ex nomarkers countermarkersbefore&quot; data-note=&quot; w/ counter content on ::before&quot;&gt;
-        &lt;li&gt;foo&lt;/li&gt;
-        &lt;li&gt;bar&lt;/li&gt;
-        &lt;li&gt;baz&lt;/li&gt;
-    &lt;/ol&gt;
-    &lt;ol data-role=&quot;list&quot; class=&quot;ex nomarkers inline countermarkersbefore&quot; data-note=&quot; w/ counter content on inline ::before&quot;&gt;
-        &lt;li&gt;foo&lt;/li&gt;
-        &lt;li&gt;bar&lt;/li&gt;
-        &lt;li&gt;baz&lt;/li&gt;
-    &lt;/ol&gt;
-
-    &lt;p&gt;Since many web pages suffer from &quot;list-itis&quot; and some users have noted that they don't want to hear about so many lists, any UL or OL that does not match one of the above heuristics should not be exposed as a list. Chances are that they are just presentational lists using the elements for the sake of a styling hook.&lt;/p&gt;
-
-
-    &lt;h1&gt;EXPLICIT FAILURE CASES: These next examples are &lt;strong&gt;NOT&lt;/strong&gt; lists because these &quot;list markers&quot; are faked as background images. One is even a background image on a ::before pseudo-element, but that does not count as a listmarker. List markers should only be inferred by the &lt;code&gt;content&lt;/code&gt; property or the &lt;code&gt;list-style&lt;/code&gt; properties.&lt;/h1&gt;
-    &lt;ul data-role=&quot;group&quot; class=&quot;ex nomarkers backgroundmarkers&quot; data-note=&quot; w/ background image (NOT A LIST)&quot;&gt;
-        &lt;li&gt;foo&lt;/li&gt;
-        &lt;li&gt;bar&lt;/li&gt;
-        &lt;li&gt;baz&lt;/li&gt;
-    &lt;/ul&gt;
-    &lt;ul data-role=&quot;group&quot; class=&quot;ex nomarkers backgroundmarkersbefore&quot; data-note=&quot; w/ background on ::before (NOT A LIST)&quot;&gt;
-        &lt;li&gt;foo&lt;/li&gt;
-        &lt;li&gt;bar&lt;/li&gt;
-        &lt;li&gt;baz&lt;/li&gt;
-    &lt;/ul&gt;
-
-    &lt;h1&gt;EXPLICIT FAILURE CASES: These next examples are &lt;strong&gt;NOT&lt;/strong&gt; there is no explicit role or any style or list markers to indicate this is actually intended as a list.&lt;/h1&gt;
-    &lt;ul data-role=&quot;group&quot; class=&quot;ex inline&quot; data-note=&quot; w/o explicit role and displayed inline, which defaults to no markers (NOT A LIST)&quot;&gt;
-        &lt;li&gt;foo&lt;/li&gt;
-        &lt;li&gt;bar&lt;/li&gt;
-        &lt;li&gt;baz&lt;/li&gt;
-    &lt;/ul&gt;
-    &lt;ol data-role=&quot;group&quot; class=&quot;ex inline&quot; data-note=&quot; w/o explicit role and displayed inline, which defaults to no markers (NOT A LIST)&quot;&gt;
-        &lt;li&gt;foo&lt;/li&gt;
-        &lt;li&gt;bar&lt;/li&gt;
-        &lt;li&gt;baz&lt;/li&gt;
-    &lt;/ol&gt;
-    &lt;ul data-role=&quot;group&quot; class=&quot;ex nomarkers&quot; data-note=&quot; w/o explicit role and no markers (NOT A LIST)&quot;&gt;
-        &lt;li&gt;foo&lt;/li&gt;
-        &lt;li&gt;bar&lt;/li&gt;
-        &lt;li&gt;baz&lt;/li&gt;
-    &lt;/ul&gt;
-
-
-&lt;/div&gt;
-
-&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
-&lt;script&gt;
-function runTest() {
-  if (window.testRunner &amp;&amp; window.accessibilityController) {
-    description(&quot;This tests that heurisitics for determining meaningful lists versus presentational lists result in the same computed role, regardless of platform.&quot;)
-    var examples = document.querySelectorAll(&quot;.ex&quot;);
-    var el, contentAttrRoleString, axElement, computedAriaRole, output, expectedRole, expectation, result, note;
-    for (var i = 0, c = examples.length; i &lt; c; i++) {
-        el = examples[i];
-        el.id = &quot;ex&quot; + i
-
-        axElement = accessibilityController.accessibleElementById(el.id);
-        if (!axElement)
-            continue;
-
-        computedAriaRole = axElement.computedRoleString;
-
-        contentAttrRoleString = el.getAttribute(&quot;role&quot;);
-        note = el.getAttribute(&quot;data-note&quot;)
-        output = el.tagName.toLowerCase() + (contentAttrRoleString ? (&quot;[role=\&quot;&quot;+contentAttrRoleString+&quot;\&quot;]&quot;) : &quot;&quot;) + (note ? note : &quot;&quot;);
-        output += &quot; -&gt; &quot;;
-        output += computedAriaRole;
-        output += &quot;. &quot;;
-
-        expectedRole = &quot;&quot;;
-        if (el.hasAttribute(&quot;data-role&quot;)) {
-            expectedRole = el.getAttribute(&quot;data-role&quot;);
-        }
-
-        expectation = expectedRole;
-        matchedResults = (computedAriaRole == expectedRole)
-
-        result = document.getElementById('console');
-        if (matchedResults) {
-            result.innerText += &quot;PASS: &quot; + output + &quot;\n&quot;;
-        } else {
-            result.innerText += &quot;FAIL: &quot; + output + &quot;Expected: &quot; + expectation + &quot;.\n&quot;;
-        }
-    }
-
-    // Once tests are complete, hide all the example markup.
-    examples = document.querySelectorAll(&quot;.ex, #examples&quot;);
-    for (var i = 0, c = examples.length; i &lt; c; i++)
-        examples[i].style.display = &quot;none&quot;;
-  }
-}
-&lt;/script&gt;
-&lt;script src=&quot;../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
-
-
</del></span></pre></div>
<a id="trunkLayoutTestsplatformgtkaccessibilitylistdetectionexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/accessibility/list-detection-expected.txt (185334 => 185335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/accessibility/list-detection-expected.txt        2015-06-08 23:27:12 UTC (rev 185334)
+++ trunk/LayoutTests/platform/gtk/accessibility/list-detection-expected.txt        2015-06-08 23:31:11 UTC (rev 185335)
</span><span class="lines">@@ -35,8 +35,8 @@
</span><span class="cx"> PASS axElement.role == 'AXRole: AXList' is true
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-Unordered list with more than 1 item and no style is not a list.
-PASS axElement.role == 'AXRole: AXList' is false
</del><ins>+Unordered list with more than 1 item and no style is a list.
+PASS axElement.role == 'AXRole: AXList' is true
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> Unordered list with 1 item and no style is not list.
</span></span></pre></div>
<a id="trunkLayoutTestsplatformwinTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/win/TestExpectations (185334 => 185335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/win/TestExpectations        2015-06-08 23:27:12 UTC (rev 185334)
+++ trunk/LayoutTests/platform/win/TestExpectations        2015-06-08 23:31:11 UTC (rev 185335)
</span><span class="lines">@@ -1338,10 +1338,8 @@
</span><span class="cx"> webkit.org/b/140798 [ Debug ] accessibility/legend-children-are-visible.html [ Skip ] # Debug assertion
</span><span class="cx"> webkit.org/b/140798 [ Release ] accessibility/link-inside-button-accessible-text.html [ Failure ]
</span><span class="cx"> webkit.org/b/140798 [ Debug ] accessibility/link-inside-button-accessible-text.html [ Skip ] # Debug assertion
</span><del>-webkit.org/b/145271 [ Release ] accessibility/list-detection.html [ Failure ]
-webkit.org/b/145271 [ Debug ] accessibility/list-detection.html [ Skip ] # Debug assertion
-webkit.org/b/145271 [ Release ] accessibility/list-detection2.html [ Failure ]
-webkit.org/b/145271 [ Debug ] accessibility/list-detection2.html [ Failure ]
</del><ins>+webkit.org/b/140798 [ Release ] accessibility/list-detection.html [ Failure ]
+webkit.org/b/140798 [ Debug ] accessibility/list-detection.html [ Skip ] # Debug assertion
</ins><span class="cx"> webkit.org/b/140798 [ Release ] accessibility/listitem-title.html [ Failure ]
</span><span class="cx"> webkit.org/b/140798 [ Debug ] accessibility/listitem-title.html [ Skip ] # Debug assertion
</span><span class="cx"> webkit.org/b/140798 [ Release ] accessibility/math-multiscript-attributes.html [ Failure ]
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (185334 => 185335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-06-08 23:27:12 UTC (rev 185334)
+++ trunk/Source/WebCore/ChangeLog        2015-06-08 23:31:11 UTC (rev 185335)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2015-06-08  Chris Fleizach  &lt;cfleizach@apple.com&gt;
+
+        AX: improve list heuristics (presentational use versus actual lists)
+       ​https://bugs.webkit.org/show_bug.cgi?id=134187
+
+        Unreviewed. Rolling this change out temporarily.
+
+        * accessibility/AccessibilityList.cpp:
+        (WebCore::AccessibilityList::isDescriptionList):
+        (WebCore::AccessibilityList::determineAccessibilityRole):
+        (WebCore::AccessibilityList::childHasPseudoVisibleListItemMarkers): Deleted.
+        * accessibility/AccessibilityList.h:
+
</ins><span class="cx"> 2015-06-08  Eric Carlson  &lt;eric.carlson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Mac] Enable AVFoundation by default when QTKit is disabled by default
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityList.cpp (185334 => 185335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityList.cpp        2015-06-08 23:27:12 UTC (rev 185334)
+++ trunk/Source/WebCore/accessibility/AccessibilityList.cpp        2015-06-08 23:31:11 UTC (rev 185335)
</span><span class="lines">@@ -32,7 +32,6 @@
</span><span class="cx"> #include &quot;AXObjectCache.h&quot;
</span><span class="cx"> #include &quot;HTMLElement.h&quot;
</span><span class="cx"> #include &quot;HTMLNames.h&quot;
</span><del>-#include &quot;PseudoElement.h&quot;
</del><span class="cx"> #include &quot;RenderListItem.h&quot;
</span><span class="cx"> #include &quot;RenderObject.h&quot;
</span><span class="cx"> #include &quot;RenderStyle.h&quot;
</span><span class="lines">@@ -98,35 +97,6 @@
</span><span class="cx">     return node &amp;&amp; node-&gt;hasTagName(dlTag);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool AccessibilityList::childHasPseudoVisibleListItemMarkers(RenderObject* listItem)
-{
-    // Check if the list item has a pseudo-element that should be accessible (e.g. an image or text)
-    Element* listItemElement = downcast&lt;Element&gt;(listItem-&gt;node());
-    if (!listItemElement || !listItemElement-&gt;beforePseudoElement())
-        return false;
-
-    AccessibilityObject* axObj = axObjectCache()-&gt;getOrCreate(listItemElement-&gt;beforePseudoElement()-&gt;renderer());
-    if (!axObj)
-        return false;
-    
-    if (!axObj-&gt;accessibilityIsIgnored())
-        return true;
-    
-    for (const auto&amp; child : axObj-&gt;children()) {
-        if (!child-&gt;accessibilityIsIgnored())
-            return true;
-    }
-    
-    // Platforms which expose rendered text content through the parent element will treat
-    // those renderers as &quot;ignored&quot; objects.
-#if PLATFORM(GTK) || PLATFORM(EFL)
-    String text = axObj-&gt;textUnderElement();
-    return !text.isEmpty() &amp;&amp; !text.containsOnlyWhitespace();
-#else
-    return false;
-#endif
-}
-    
</del><span class="cx"> AccessibilityRole AccessibilityList::determineAccessibilityRole()
</span><span class="cx"> {
</span><span class="cx">     m_ariaRole = determineAriaRoleAttribute();
</span><span class="lines">@@ -161,33 +131,21 @@
</span><span class="cx">             listItemCount++;
</span><span class="cx">         else if (child-&gt;roleValue() == ListItemRole) {
</span><span class="cx">             RenderObject* listItem = child-&gt;renderer();
</span><del>-            if (!listItem)
-                continue;
-            
-            // Rendered list items always count.
-            if (listItem-&gt;isListItem()) {
-                if (!hasVisibleMarkers &amp;&amp; (listItem-&gt;style().listStyleType() != NoneListStyle || listItem-&gt;style().listStyleImage() || childHasPseudoVisibleListItemMarkers(listItem)))
</del><ins>+            if (listItem &amp;&amp; listItem-&gt;isListItem()) {
+                if (listItem-&gt;style().listStyleType() != NoneListStyle || listItem-&gt;style().listStyleImage())
</ins><span class="cx">                     hasVisibleMarkers = true;
</span><span class="cx">                 listItemCount++;
</span><del>-            } else if (listItem-&gt;node() &amp;&amp; listItem-&gt;node()-&gt;hasTagName(liTag)) {
-                // Inline elements that are in a list with an explicit role should also count.
-                if (m_ariaRole == ListRole)
-                    listItemCount++;
-
-                if (childHasPseudoVisibleListItemMarkers(listItem)) {
-                    hasVisibleMarkers = true;
-                    listItemCount++;
-                }
</del><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     
</span><ins>+    bool unorderedList = isUnorderedList();
</ins><span class="cx">     // Non &lt;ul&gt; lists and ARIA lists only need to have one child.
</span><del>-    // &lt;ul&gt;, &lt;ol&gt; lists need to have visible markers.
-    if (ariaRoleAttribute() != UnknownRole) {
</del><ins>+    // &lt;ul&gt; lists need to have 1 child, or visible markers.
+    if (!unorderedList || ariaRoleAttribute() != UnknownRole) {
</ins><span class="cx">         if (!listItemCount)
</span><span class="cx">             role = GroupRole;
</span><del>-    } else if (!hasVisibleMarkers)
</del><ins>+    } else if (unorderedList &amp;&amp; listItemCount &lt;= 1 &amp;&amp; !hasVisibleMarkers)
</ins><span class="cx">         role = GroupRole;
</span><span class="cx"> 
</span><span class="cx">     return role;
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityListh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityList.h (185334 => 185335)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityList.h        2015-06-08 23:27:12 UTC (rev 185334)
+++ trunk/Source/WebCore/accessibility/AccessibilityList.h        2015-06-08 23:31:11 UTC (rev 185335)
</span><span class="lines">@@ -49,7 +49,6 @@
</span><span class="cx">     virtual bool isList() const override { return true; }
</span><span class="cx">     virtual bool computeAccessibilityIsIgnored() const override;
</span><span class="cx">     virtual AccessibilityRole determineAccessibilityRole() override;
</span><del>-    bool childHasPseudoVisibleListItemMarkers(RenderObject*);
</del><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre>
</div>
</div>

</body>
</html>