<!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>[195118] releases/WebKitGTK/webkit-2.10</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/195118">195118</a></dd>
<dt>Author</dt> <dd>carlosgc@webkit.org</dd>
<dt>Date</dt> <dd>2016-01-15 03:34:05 -0800 (Fri, 15 Jan 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Merge <a href="http://trac.webkit.org/projects/webkit/changeset/193841">r193841</a> - AX: [GTK] Anonymous render block flow elements should be exposed as ATK_ROLE_SECTION; not ATK_ROLE_PANEL
https://bugs.webkit.org/show_bug.cgi?id=152070

Reviewed by Mario Sanchez Prada.

Source/WebCore:

Map the element to WebCore AccessibilityRole DivRole for GTK. This is being
done in the shared layer rather than in the platform layer because we want all
subsequent logic to treat anonymous render block flow elements as divs.

No new tests. We already have sufficient test coverage. The expectations
been updated accordingly.

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

LayoutTests:

* platform/gtk/accessibility/deleting-iframe-destroys-axcache-expected.txt: Added.
* platform/gtk/accessibility/gtk/media-controls-panel-title-expected.txt: Added.
* platform/gtk/accessibility/gtk/replaced-objects-in-anonymous-blocks-expected.txt: Added.
* platform/gtk/accessibility/image-link-expected.txt: Updated
* platform/gtk/accessibility/image-with-alt-and-map-expected.txt: Updated.
* platform/gtk/accessibility/lists-expected.txt: Updated.
* platform/gtk/accessibility/media-emits-object-replacement-expected.txt: Updated.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#releasesWebKitGTKwebkit210LayoutTestsChangeLog">releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog</a></li>
<li><a href="#releasesWebKitGTKwebkit210LayoutTestsaccessibilitygtkimagelinkexpectedtxt">releases/WebKitGTK/webkit-2.10/LayoutTests/accessibility/gtk/image-link-expected.txt</a></li>
<li><a href="#releasesWebKitGTKwebkit210LayoutTestsaccessibilitygtkimagewithaltandmapexpectedtxt">releases/WebKitGTK/webkit-2.10/LayoutTests/accessibility/gtk/image-with-alt-and-map-expected.txt</a></li>
<li><a href="#releasesWebKitGTKwebkit210LayoutTestsaccessibilitygtklistsexpectedtxt">releases/WebKitGTK/webkit-2.10/LayoutTests/accessibility/gtk/lists-expected.txt</a></li>
<li><a href="#releasesWebKitGTKwebkit210SourceWebCoreChangeLog">releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog</a></li>
<li><a href="#releasesWebKitGTKwebkit210SourceWebCoreaccessibilityAccessibilityRenderObjectcpp">releases/WebKitGTK/webkit-2.10/Source/WebCore/accessibility/AccessibilityRenderObject.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#releasesWebKitGTKwebkit210LayoutTestsplatformgtkaccessibilitydeletingiframedestroysaxcacheexpectedtxt">releases/WebKitGTK/webkit-2.10/LayoutTests/platform/gtk/accessibility/deleting-iframe-destroys-axcache-expected.txt</a></li>
<li>releases/WebKitGTK/webkit-2.10/LayoutTests/platform/gtk/accessibility/gtk/</li>
<li><a href="#releasesWebKitGTKwebkit210LayoutTestsplatformgtkaccessibilitygtkmediacontrolspaneltitleexpectedtxt">releases/WebKitGTK/webkit-2.10/LayoutTests/platform/gtk/accessibility/gtk/media-controls-panel-title-expected.txt</a></li>
<li><a href="#releasesWebKitGTKwebkit210LayoutTestsplatformgtkaccessibilitygtkreplacedobjectsinanonymousblocksexpectedtxt">releases/WebKitGTK/webkit-2.10/LayoutTests/platform/gtk/accessibility/gtk/replaced-objects-in-anonymous-blocks-expected.txt</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="releasesWebKitGTKwebkit210LayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog (195117 => 195118)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog        2016-01-15 11:32:29 UTC (rev 195117)
+++ releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog        2016-01-15 11:34:05 UTC (rev 195118)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2015-12-09  Joanmarie Diggs  &lt;jdiggs@igalia.com&gt;
+
+        AX: [GTK] Anonymous render block flow elements should be exposed as ATK_ROLE_SECTION; not ATK_ROLE_PANEL
+        https://bugs.webkit.org/show_bug.cgi?id=152070
+
+        Reviewed by Mario Sanchez Prada.
+
+        * platform/gtk/accessibility/deleting-iframe-destroys-axcache-expected.txt: Added.
+        * platform/gtk/accessibility/gtk/media-controls-panel-title-expected.txt: Added.
+        * platform/gtk/accessibility/gtk/replaced-objects-in-anonymous-blocks-expected.txt: Added.
+        * platform/gtk/accessibility/image-link-expected.txt: Updated
+        * platform/gtk/accessibility/image-with-alt-and-map-expected.txt: Updated.
+        * platform/gtk/accessibility/lists-expected.txt: Updated.
+        * platform/gtk/accessibility/media-emits-object-replacement-expected.txt: Updated.
+
</ins><span class="cx"> 2015-12-09  Frederic Wang  &lt;fred.wang@free.fr&gt;
</span><span class="cx"> 
</span><span class="cx">         Bad position of large operators inside an munderover element
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit210LayoutTestsaccessibilitygtkimagelinkexpectedtxt"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.10/LayoutTests/accessibility/gtk/image-link-expected.txt (195117 => 195118)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.10/LayoutTests/accessibility/gtk/image-link-expected.txt        2016-01-15 11:32:29 UTC (rev 195117)
+++ releases/WebKitGTK/webkit-2.10/LayoutTests/accessibility/gtk/image-link-expected.txt        2016-01-15 11:34:05 UTC (rev 195118)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> AXRole: AXLink
</span><del>-AXParent: AXGroup
</del><ins>+AXParent: AXSection
</ins><span class="cx"> AXChildren: 1
</span><span class="cx"> AXPosition: { 8.000000, 98.000000 }
</span><span class="cx"> AXSize: { 280.000000, 213.000000 }
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit210LayoutTestsaccessibilitygtkimagewithaltandmapexpectedtxt"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.10/LayoutTests/accessibility/gtk/image-with-alt-and-map-expected.txt (195117 => 195118)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.10/LayoutTests/accessibility/gtk/image-with-alt-and-map-expected.txt        2016-01-15 11:32:29 UTC (rev 195117)
+++ releases/WebKitGTK/webkit-2.10/LayoutTests/accessibility/gtk/image-with-alt-and-map-expected.txt        2016-01-15 11:34:05 UTC (rev 195118)
</span><span class="lines">@@ -6,7 +6,7 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> AXRole: AXWebArea AXTitle:  AXDescription: 
</span><del>-  AXRole: AXGroup AXTitle:  AXDescription: 
</del><ins>+  AXRole: AXSection AXTitle:  AXDescription: 
</ins><span class="cx">     AXRole: AXImageMap AXTitle: foo bar baz AXDescription: foo bar baz
</span><span class="cx">       AXRole: AXLink AXTitle: foo AXDescription: foo
</span><span class="cx">       AXRole: AXLink AXTitle: bar AXDescription: bar
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit210LayoutTestsaccessibilitygtklistsexpectedtxt"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.10/LayoutTests/accessibility/gtk/lists-expected.txt (195117 => 195118)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.10/LayoutTests/accessibility/gtk/lists-expected.txt        2016-01-15 11:32:29 UTC (rev 195117)
+++ releases/WebKitGTK/webkit-2.10/LayoutTests/accessibility/gtk/lists-expected.txt        2016-01-15 11:34:05 UTC (rev 195118)
</span><span class="lines">@@ -65,7 +65,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: tag:dl, toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXGroup
</del><ins>+AXRole: AXSection
</ins><span class="cx"> AXParent: AXWebArea
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 8.000000, 217.000000 }
</span><span class="lines">@@ -82,7 +82,7 @@
</span><span class="cx"> AXExpanded: 0
</span><span class="cx"> AXRequired: 0
</span><span class="cx"> AXChecked: 0
</span><del>-AXPlatformAttributes: computed-role:group, toolkit:WebKitGtk
</del><ins>+AXPlatformAttributes: toolkit:WebKitGtk
</ins><span class="cx"> ------------
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit210LayoutTestsplatformgtkaccessibilitydeletingiframedestroysaxcacheexpectedtxt"></a>
<div class="addfile"><h4>Added: releases/WebKitGTK/webkit-2.10/LayoutTests/platform/gtk/accessibility/deleting-iframe-destroys-axcache-expected.txt (0 => 195118)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.10/LayoutTests/platform/gtk/accessibility/deleting-iframe-destroys-axcache-expected.txt                                (rev 0)
+++ releases/WebKitGTK/webkit-2.10/LayoutTests/platform/gtk/accessibility/deleting-iframe-destroys-axcache-expected.txt        2016-01-15 11:34:05 UTC (rev 195118)
</span><span class="lines">@@ -0,0 +1,42 @@
</span><ins>+Before
+
+After
+
+End of test
+
+This tests that deleting an iframe doesn't cause the accessibility cache to be destroyed and recreated.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+
+Before:
+AXRole: AXScrollArea 
+    AXRole: AXWebArea 
+        AXRole: AXParagraph AXValue: Before
+        AXRole: AXSection AXValue: &lt;obj&gt;
+            AXRole: AXGroup 
+                AXRole: AXScrollArea 
+                    AXRole: AXWebArea 
+                        AXRole: AXGroup AXValue: &lt;obj&gt;
+                            AXRole: AXButton 
+        AXRole: AXParagraph AXValue: After
+        AXRole: AXParagraph AXValue: End of test
+
+After:
+AXRole: AXScrollArea 
+    AXRole: AXWebArea 
+        AXRole: AXParagraph AXValue: Before
+        AXRole: AXParagraph AXValue: After
+        AXRole: AXParagraph AXValue: End of test
+
+PASS frameBodyRole == frameBody.role is false
+PASS frameGroupRole == frameGroup.role is false
+PASS frameButtonRole == frameButton.role is false
+PASS root.isEqual(newRoot) is true
+PASS body.isEqual(newBody) is true
+PASS before.isEqual(newBefore) is true
+PASS after.isEqual(newAfter) is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="releasesWebKitGTKwebkit210LayoutTestsplatformgtkaccessibilitygtkmediacontrolspaneltitleexpectedtxt"></a>
<div class="addfile"><h4>Added: releases/WebKitGTK/webkit-2.10/LayoutTests/platform/gtk/accessibility/gtk/media-controls-panel-title-expected.txt (0 => 195118)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.10/LayoutTests/platform/gtk/accessibility/gtk/media-controls-panel-title-expected.txt                                (rev 0)
+++ releases/WebKitGTK/webkit-2.10/LayoutTests/platform/gtk/accessibility/gtk/media-controls-panel-title-expected.txt        2016-01-15 11:34:05 UTC (rev 195118)
</span><span class="lines">@@ -0,0 +1,20 @@
</span><ins>+ 
+This tests that the media controls panel has the correct name and role
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+FAIL mainBlock.role should be AXRole: AXGroup. Was AXRole: AXSection.
+PASS mainBlock.title is 'AXTitle: '
+PASS element.role is 'AXRole: AXVideo'
+PASS element.title is 'AXTitle: '
+PASS element.role is 'AXRole: AXToolbar'
+PASS element.title is 'AXTitle: Video Playback'
+PASS element.role is 'AXRole: AXAudio'
+PASS element.title is 'AXTitle: '
+PASS element.role is 'AXRole: AXToolbar'
+PASS element.title is 'AXTitle: Audio Playback'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="releasesWebKitGTKwebkit210LayoutTestsplatformgtkaccessibilitygtkreplacedobjectsinanonymousblocksexpectedtxt"></a>
<div class="addfile"><h4>Added: releases/WebKitGTK/webkit-2.10/LayoutTests/platform/gtk/accessibility/gtk/replaced-objects-in-anonymous-blocks-expected.txt (0 => 195118)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.10/LayoutTests/platform/gtk/accessibility/gtk/replaced-objects-in-anonymous-blocks-expected.txt                                (rev 0)
+++ releases/WebKitGTK/webkit-2.10/LayoutTests/platform/gtk/accessibility/gtk/replaced-objects-in-anonymous-blocks-expected.txt        2016-01-15 11:34:05 UTC (rev 195118)
</span><span class="lines">@@ -0,0 +1,37 @@
</span><ins>+Paragraph
+
+button
+
+
+Div
+button
+Heading
+button
+
+
+End of test
+AXRole: AXWebArea 
+    AXRole: AXParagraph AXValue: Paragraph
+    AXRole: AXSection AXValue: &lt;obj&gt;
+        AXRole: AXButton 
+    AXRole: AXSection AXValue: &lt;obj&gt;
+        AXRole: AXGroup 
+            AXRole: AXScrollArea 
+                AXRole: AXWebArea 
+    AXRole: AXSection AXValue: &lt;obj&gt;
+        AXRole: AXTextField AXValue: text area
+    AXRole: AXSection AXValue: Div&lt;\n&gt;&lt;obj&gt;
+        AXRole: AXButton 
+    AXRole: AXHeading AXValue: Heading&lt;\n&gt;&lt;obj&gt;&lt;\n&gt;&lt;obj&gt;
+        AXRole: AXButton 
+        AXRole: AXImage 
+    AXRole: AXSection AXValue: End of test
+This tests that the text associated with replaced objects in an anonymous block is correct.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="releasesWebKitGTKwebkit210SourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog (195117 => 195118)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog        2016-01-15 11:32:29 UTC (rev 195117)
+++ releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog        2016-01-15 11:34:05 UTC (rev 195118)
</span><span class="lines">@@ -1,3 +1,20 @@
</span><ins>+2015-12-09  Joanmarie Diggs  &lt;jdiggs@igalia.com&gt;
+
+        AX: [GTK] Anonymous render block flow elements should be exposed as ATK_ROLE_SECTION; not ATK_ROLE_PANEL
+        https://bugs.webkit.org/show_bug.cgi?id=152070
+
+        Reviewed by Mario Sanchez Prada.
+
+        Map the element to WebCore AccessibilityRole DivRole for GTK. This is being
+        done in the shared layer rather than in the platform layer because we want all
+        subsequent logic to treat anonymous render block flow elements as divs.
+
+        No new tests. We already have sufficient test coverage. The expectations
+        been updated accordingly.
+
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
+
</ins><span class="cx"> 2015-12-09  Keith Rollin  &lt;krollin@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         form.elements should reflect the element ordering after the HTML tree builder algorithm
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit210SourceWebCoreaccessibilityAccessibilityRenderObjectcpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.10/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (195117 => 195118)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.10/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2016-01-15 11:32:29 UTC (rev 195117)
+++ releases/WebKitGTK/webkit-2.10/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2016-01-15 11:34:05 UTC (rev 195118)
</span><span class="lines">@@ -2705,13 +2705,20 @@
</span><span class="cx">         return LandmarkBannerRole;
</span><span class="cx">     if (node &amp;&amp; node-&gt;hasTagName(footerTag) &amp;&amp; !isDescendantOfElementType(articleTag) &amp;&amp; !isDescendantOfElementType(sectionTag))
</span><span class="cx">         return FooterRole;
</span><del>-
-    if (m_renderer-&gt;isRenderBlockFlow())
-        return GroupRole;
</del><span class="cx">     
</span><span class="cx">     // If the element does not have role, but it has ARIA attributes, or accepts tab focus, accessibility should fallback to exposing it as a group.
</span><span class="cx">     if (supportsARIAAttributes() || canSetFocusAttribute())
</span><span class="cx">         return GroupRole;
</span><ins>+
+    if (m_renderer-&gt;isRenderBlockFlow()) {
+#if PLATFORM(GTK)
+        // For ATK, GroupRole maps to ATK_ROLE_PANEL. Panels are most commonly found (and hence
+        // expected) in UI elements; not text blocks.
+        return m_renderer-&gt;isAnonymousBlock() ? DivRole : GroupRole;
+#else
+        return GroupRole;
+#endif
+    }
</ins><span class="cx">     
</span><span class="cx">     // InlineRole is the final fallback before assigning UnknownRole to an object. It makes it
</span><span class="cx">     // possible to distinguish truly unknown objects from non-focusable inline text elements
</span></span></pre>
</div>
</div>

</body>
</html>