<!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>[160450] 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/160450">160450</a></dd>
<dt>Author</dt> <dd>mario.prada@samsung.com</dd>
<dt>Date</dt> <dd>2013-12-11 11:49:39 -0800 (Wed, 11 Dec 2013)</dd>
</dl>

<h3>Log Message</h3>
<pre>[ATK] Expose accessibility objects WAI-ARIA landmark roles
https://bugs.webkit.org/show_bug.cgi?id=125584

Reviewed by Chris Fleizach.

Source/WebCore:

Exposed accessibility objects with landmark roles with the proper
AtkRole, to be provided by the next stable release of ATK.

* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetAttributes):
(atkRole):

Tools:

Add mappings to DRT &amp; WKTR for landmark roles.

* DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:
(AccessibilityUIElement::role):
* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::role):
* gtk/jhbuild.modules:

LayoutTests:

Update test to unskip landmark elements and update expectations.

* platform/gtk/accessibility/roles-exposed-expected.txt:
* platform/gtk/accessibility/roles-exposed.html:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsplatformgtkaccessibilityrolesexposedexpectedtxt">trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformgtkaccessibilityrolesexposedhtml">trunk/LayoutTests/platform/gtk/accessibility/roles-exposed.html</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityatkWebKitAccessibleWrapperAtkcpp">trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsDumpRenderTreeatkAccessibilityUIElementAtkcpp">trunk/Tools/DumpRenderTree/atk/AccessibilityUIElementAtk.cpp</a></li>
<li><a href="#trunkToolsWebKitTestRunnerInjectedBundleatkAccessibilityUIElementAtkcpp">trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp</a></li>
<li><a href="#trunkToolsgtkjhbuildmodules">trunk/Tools/gtk/jhbuild.modules</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (160449 => 160450)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2013-12-11 19:18:08 UTC (rev 160449)
+++ trunk/LayoutTests/ChangeLog        2013-12-11 19:49:39 UTC (rev 160450)
</span><span class="lines">@@ -1,5 +1,17 @@
</span><span class="cx"> 2013-12-11  Mario Sanchez Prada  &lt;mario.prada@samsung.com&gt;
</span><span class="cx"> 
</span><ins>+        [ATK] Expose accessibility objects WAI-ARIA landmark roles
+        https://bugs.webkit.org/show_bug.cgi?id=125584
+
+        Reviewed by Chris Fleizach.
+
+        Update test to unskip landmark elements and update expectations.
+
+        * platform/gtk/accessibility/roles-exposed-expected.txt:
+        * platform/gtk/accessibility/roles-exposed.html:
+
+2013-12-11  Mario Sanchez Prada  &lt;mario.prada@samsung.com&gt;
+
</ins><span class="cx">         [ATK] Add new layout test to check ATK roles in a central place
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=125525
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkaccessibilityrolesexposedexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt (160449 => 160450)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt        2013-12-11 19:18:08 UTC (rev 160449)
+++ trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt        2013-12-11 19:49:39 UTC (rev 160450)
</span><span class="lines">@@ -6,6 +6,12 @@
</span><span class="cx"> PASS: a[href]
</span><span class="cx">       AXRole: AXLink
</span><span class="cx">       
</span><ins>+PASS: address
+      AXRole: AXLandmarkContentInfo
+      
+PASS: aside
+      AXRole: AXLandmarkComplementary
+      
</ins><span class="cx"> PASS: blockquote
</span><span class="cx">       AXRole: AXGroup
</span><span class="cx">       
</span><span class="lines">@@ -24,6 +30,9 @@
</span><span class="cx"> PASS: form
</span><span class="cx">       AXRole: AXForm
</span><span class="cx">       
</span><ins>+PASS: header
+      AXRole: AXLandmarkBanner
+      
</ins><span class="cx"> PASS: hgroup
</span><span class="cx">       AXRole: AXGroup
</span><span class="cx">       
</span><span class="lines">@@ -114,6 +123,9 @@
</span><span class="cx"> PASS: input[type='week']
</span><span class="cx">       AXRole: AXTextField
</span><span class="cx">       
</span><ins>+PASS: nav
+      AXRole: AXLandmarkNavigation
+      
</ins><span class="cx"> PASS: ol
</span><span class="cx">       AXRole: AXList
</span><span class="cx">       
</span><span class="lines">@@ -216,6 +228,12 @@
</span><span class="cx"> PASS: div[role=alertdialog]
</span><span class="cx">       AXRole: AXAlert
</span><span class="cx">       
</span><ins>+PASS: div[role=application]
+      AXRole: AXEmbedded
+      
+PASS: div[role=banner]
+      AXRole: AXLandmarkBanner
+      
</ins><span class="cx"> PASS: div[role=button]
</span><span class="cx">       AXRole: AXButton
</span><span class="cx">       
</span><span class="lines">@@ -225,6 +243,12 @@
</span><span class="cx"> PASS: div[role=combobox]
</span><span class="cx">       AXRole: AXComboBox
</span><span class="cx">       
</span><ins>+PASS: div[role=complementary]
+      AXRole: AXLandmarkComplementary
+      
+PASS: div[role=contentinfo]
+      AXRole: AXLandmarkContentInfo
+      
</ins><span class="cx"> PASS: div[role=directory]
</span><span class="cx">       AXRole: AXList
</span><span class="cx">       
</span><span class="lines">@@ -266,6 +290,9 @@
</span><span class="cx"> PASS: div[role=option]
</span><span class="cx">       AXRole: AXListItem
</span><span class="cx">       
</span><ins>+PASS: div[role=main]
+      AXRole: AXLandmarkMain
+      
</ins><span class="cx"> PASS: div[role=menu]
</span><span class="cx">       AXRole: AXMenu
</span><span class="cx">       
</span><span class="lines">@@ -284,6 +311,9 @@
</span><span class="cx"> PASS: div[role=menuitemradio]
</span><span class="cx">       AXRole: AXRadioMenuItem
</span><span class="cx">       
</span><ins>+PASS: div[role=navigation]
+      AXRole: AXLandmarkNavigation
+      
</ins><span class="cx"> PASS: div[role=progressbar]
</span><span class="cx">       AXRole: AXProgressIndicator
</span><span class="cx">       
</span><span class="lines">@@ -296,6 +326,9 @@
</span><span class="cx"> PASS: div[role=scrollbar]
</span><span class="cx">       AXRole: AXScrollBar
</span><span class="cx">       
</span><ins>+PASS: div[role=search]
+      AXRole: AXLandmarkSearch
+      
</ins><span class="cx"> PASS: div[role=separator]
</span><span class="cx">       AXRole: AXSeparator
</span><span class="cx">       
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkaccessibilityrolesexposedhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/accessibility/roles-exposed.html (160449 => 160450)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/accessibility/roles-exposed.html        2013-12-11 19:18:08 UTC (rev 160449)
+++ trunk/LayoutTests/platform/gtk/accessibility/roles-exposed.html        2013-12-11 19:49:39 UTC (rev 160450)
</span><span class="lines">@@ -10,10 +10,10 @@
</span><span class="cx"> &lt;a data-role=&quot;AXLink&quot; href=&quot;#&quot; data-note=&quot;[href]&quot; class=&quot;ex&quot;&gt;X&lt;/a&gt;
</span><span class="cx"> &lt;!-- skipped ATK: not focusable &lt;a data-role=&quot;&quot; data-note=&quot;:not([href])&quot; class=&quot;ex&quot;&gt;X&lt;/a&gt;--&gt;
</span><span class="cx"> &lt;!-- skipped ATK: not focusable &lt;abbr data-role=&quot;&quot; class=&quot;ex&quot;&gt;X&lt;/abbr&gt;--&gt;
</span><del>-&lt;!-- http://webkit.org/b/125493 &lt;address data-role=&quot;AXLandmarkContentInfo&quot; class=&quot;ex&quot;&gt;X&lt;/address&gt;--&gt;
</del><ins>+&lt;address data-role=&quot;AXLandmarkContentInfo&quot; class=&quot;ex&quot;&gt;X&lt;/address&gt;
</ins><span class="cx"> &lt;!-- skipped &lt;area&gt; --&gt;
</span><span class="cx"> &lt;!-- http://webkit.org/b/125493 &lt;article data-role=&quot;AXArticle&quot; class=&quot;ex&quot;&gt;X&lt;/article&gt;--&gt;
</span><del>-&lt;!-- http://webkit.org/b/125493 &lt;aside data-role=&quot;AXLandmarkComplementary&quot; class=&quot;ex&quot;&gt;X&lt;/aside&gt;--&gt;
</del><ins>+&lt;aside data-role=&quot;AXLandmarkComplementary&quot; class=&quot;ex&quot;&gt;X&lt;/aside&gt;
</ins><span class="cx"> &lt;!-- http://webkit.org/b/125491 &lt;audio data-role=&quot;&quot; class=&quot;ex&quot;&gt;X&lt;/audio&gt;--&gt;
</span><span class="cx"> &lt;!-- skipped ATK: not focusable &lt;b data-role=&quot;&quot; class=&quot;ex&quot;&gt;X&lt;/b&gt;--&gt;
</span><span class="cx"> &lt;!-- skipped ATK: not focusable &lt;bdo data-role=&quot;&quot; class=&quot;ex&quot;&gt;X&lt;/bdo&gt;--&gt;
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx"> &lt;!-- skipped &lt;frame&gt; --&gt;
</span><span class="cx"> &lt;!-- skipped &lt;frameset&gt; --&gt;
</span><span class="cx"> &lt;!-- skipped &lt;head&gt; --&gt;
</span><del>-&lt;!-- http://webkit.org/b/125493 &lt;header data-role=&quot;AXLandmarkBanner&quot; class=&quot;ex&quot;&gt;X&lt;/header&gt;--&gt;
</del><ins>+&lt;header data-role=&quot;AXLandmarkBanner&quot; class=&quot;ex&quot;&gt;X&lt;/header&gt;
</ins><span class="cx"> &lt;hgroup data-role=&quot;AXGroup&quot; class=&quot;ex&quot;&gt;X&lt;/hgroup&gt;
</span><span class="cx"> &lt;h1 data-role=&quot;AXHeading&quot; class=&quot;ex&quot;&gt;X&lt;/h1&gt;
</span><span class="cx"> &lt;h2 data-role=&quot;AXHeading&quot; class=&quot;ex&quot;&gt;X&lt;/h2&gt;
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx"> &lt;!-- skipped &lt;menu&gt; --&gt;
</span><span class="cx"> &lt;!-- skipped &lt;meta&gt; --&gt;
</span><span class="cx"> &lt;!-- http://webkit.org/b/125491 &lt;meter data-role=&quot;AXProgressIndicator&quot; class=&quot;ex&quot; value=&quot;0.75&quot;&gt;X&lt;/meter&gt;--&gt;
</span><del>-&lt;!-- http://webkit.org/b/125493 &lt;nav data-role=&quot;AXLandmarkNavigation&quot; class=&quot;ex&quot;&gt;X&lt;/nav&gt;--&gt;
</del><ins>+&lt;nav data-role=&quot;AXLandmarkNavigation&quot; class=&quot;ex&quot;&gt;X&lt;/nav&gt;
</ins><span class="cx"> &lt;!-- skipped &lt;noscript&gt; --&gt;
</span><span class="cx"> &lt;!-- skipped &lt;object&gt; --&gt;
</span><span class="cx"> &lt;ol data-role=&quot;AXList&quot; class=&quot;ex&quot;&gt;
</span><span class="lines">@@ -188,14 +188,14 @@
</span><span class="cx"> &lt;!-- ==================================================================================================== --&gt;
</span><span class="cx"> &lt;div role=&quot;alert&quot;                    data-role=&quot;AXAlert&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</span><span class="cx"> &lt;div role=&quot;alertdialog&quot;              data-role=&quot;AXAlert&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</span><del>-&lt;!-- http://webkit.org/b/125493 &lt;div role=&quot;application&quot;              data-role=&quot;AXEmbedded&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;--&gt;
</del><ins>+&lt;div role=&quot;application&quot;              data-role=&quot;AXEmbedded&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</ins><span class="cx"> &lt;!-- http://webkit.org/b/125493 &lt;div role=&quot;article&quot;                  data-role=&quot;AXArticle&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;--&gt;
</span><del>-&lt;!-- http://webkit.org/b/125493 &lt;div role=&quot;banner&quot;                   data-role=&quot;AXLandmarkBanner&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;--&gt;
</del><ins>+&lt;div role=&quot;banner&quot;                   data-role=&quot;AXLandmarkBanner&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</ins><span class="cx"> &lt;div role=&quot;button&quot;                   data-role=&quot;AXButton&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</span><span class="cx"> &lt;div role=&quot;checkbox&quot;                 data-role=&quot;AXCheckBox&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</span><span class="cx"> &lt;div role=&quot;combobox&quot;                 data-role=&quot;AXComboBox&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</span><del>-&lt;!-- http://webkit.org/b/125493 &lt;div role=&quot;complementary&quot;            data-role=&quot;AXLandmarkComplementary&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;--&gt;
-&lt;!-- http://webkit.org/b/125493 &lt;div role=&quot;contentinfo&quot;              data-role=&quot;AXLandmarkContentInfo&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;--&gt;
</del><ins>+&lt;div role=&quot;complementary&quot;            data-role=&quot;AXLandmarkComplementary&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
+&lt;div role=&quot;contentinfo&quot;              data-role=&quot;AXLandmarkContentInfo&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</ins><span class="cx"> &lt;!-- http://webkit.org/b/125493 &lt;div role=&quot;definition&quot;               data-role=&quot;AXDefinition&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;--&gt;
</span><span class="cx"> &lt;!-- http://webkit.org/b/125493 &lt;div role=&quot;dialog&quot;                   data-role=&quot;AXGroup&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;--&gt;
</span><span class="cx"> &lt;div role=&quot;directory&quot;                data-role=&quot;AXList&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</span><span class="lines">@@ -222,7 +222,7 @@
</span><span class="cx">     &lt;div role=&quot;option&quot;               data-role=&quot;AXListItem&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</span><span class="cx"> &lt;/div&gt;
</span><span class="cx"> &lt;!-- http://webkit.org/b/125493 &lt;div role=&quot;log&quot;                      data-role=&quot;AXLog&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;--&gt;
</span><del>-&lt;!-- http://webkit.org/b/125493 &lt;div role=&quot;main&quot;                     data-role=&quot;AXLandmarkMain&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;--&gt;
</del><ins>+&lt;div role=&quot;main&quot;                     data-role=&quot;AXLandmarkMain&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</ins><span class="cx"> &lt;!-- http://webkit.org/b/125493 &lt;div role=&quot;marquee&quot;                  data-role=&quot;AXMarquee&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;--&gt;
</span><span class="cx"> &lt;!-- http://webkit.org/b/125493 &lt;div role=&quot;math&quot;                     data-role=&quot;AXMath&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;--&gt;
</span><span class="cx"> &lt;div role=&quot;menu&quot;                     data-role=&quot;AXMenu&quot; class=&quot;ex&quot;&gt;
</span><span class="lines">@@ -237,7 +237,7 @@
</span><span class="cx">     &lt;!-- http://webkit.org/b/125493 &lt;div role=&quot;menuitemcheckbox&quot;     data-role=&quot;AXCheckMenuItem&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;--&gt;
</span><span class="cx">     &lt;div role=&quot;menuitemradio&quot;        data-role=&quot;AXRadioMenuItem&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</span><span class="cx"> &lt;/div&gt;
</span><del>-&lt;!-- http://webkit.org/b/125493 &lt;div role=&quot;navigation&quot;               data-role=&quot;AXLandmarkNavigation&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;--&gt;
</del><ins>+&lt;div role=&quot;navigation&quot;               data-role=&quot;AXLandmarkNavigation&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</ins><span class="cx"> &lt;!-- http://webkit.org/b/125493 &lt;div role=&quot;note&quot;                     data-role=&quot;AXComment&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;--&gt;
</span><span class="cx"> &lt;!-- skipped: presentation elements should not be exposed directly &lt;div role=&quot;presentation&quot;             data-role=&quot;&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;--&gt;
</span><span class="cx"> &lt;div role=&quot;progressbar&quot;              data-role=&quot;AXProgressIndicator&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</span><span class="lines">@@ -246,7 +246,7 @@
</span><span class="cx"> &lt;/div&gt;
</span><span class="cx"> &lt;!-- http://webkit.org/b/125493 &lt;div role=&quot;region&quot;                   data-role=&quot;AXGroup&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;--&gt;
</span><span class="cx"> &lt;div role=&quot;scrollbar&quot;                data-role=&quot;AXScrollBar&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</span><del>-&lt;!-- http://webkit.org/b/125493 &lt;div role=&quot;search&quot;                   data-role=&quot;AXLandmarkSearch&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;--&gt;
</del><ins>+&lt;div role=&quot;search&quot;                   data-role=&quot;AXLandmarkSearch&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</ins><span class="cx"> &lt;div role=&quot;separator&quot;                data-role=&quot;AXSeparator&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</span><span class="cx"> &lt;div role=&quot;slider&quot;                   data-role=&quot;AXSlider&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</span><span class="cx"> &lt;div role=&quot;spinbutton&quot;               data-role=&quot;AXSpinButton&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (160449 => 160450)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2013-12-11 19:18:08 UTC (rev 160449)
+++ trunk/Source/WebCore/ChangeLog        2013-12-11 19:49:39 UTC (rev 160450)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2013-12-11  Mario Sanchez Prada  &lt;mario.prada@samsung.com&gt;
+
+        [ATK] Expose accessibility objects WAI-ARIA landmark roles
+        https://bugs.webkit.org/show_bug.cgi?id=125584
+
+        Reviewed by Chris Fleizach.
+
+        Exposed accessibility objects with landmark roles with the proper
+        AtkRole, to be provided by the next stable release of ATK.
+
+        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
+        (webkitAccessibleGetAttributes):
+        (atkRole):
+
</ins><span class="cx"> 2013-12-11  José Dapena Paz  &lt;jdapena@igalia.com&gt; and Zan Dobersek  &lt;zdobersek@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [GTK] Add a UPower-based BatteryProvider
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityatkWebKitAccessibleWrapperAtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp (160449 => 160450)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp        2013-12-11 19:18:08 UTC (rev 160449)
+++ trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp        2013-12-11 19:49:39 UTC (rev 160450)
</span><span class="lines">@@ -528,6 +528,32 @@
</span><span class="cx">         attributeSet = addToAtkAttributeSet(attributeSet, &quot;sort&quot;, sortAttribute.string().utf8().data());
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    // Landmarks will be exposed with xml-roles object attributes, with the exception
+    // of LandmarkApplicationRole, which will be exposed with ATK_ROLE_EMBEDDED.
+    AccessibilityRole role = coreObject-&gt;roleValue();
+    switch (role) {
+    case LandmarkBannerRole:
+        attributeSet = addToAtkAttributeSet(attributeSet, &quot;xml-roles&quot;, &quot;banner&quot;);
+        break;
+    case LandmarkComplementaryRole:
+        attributeSet = addToAtkAttributeSet(attributeSet, &quot;xml-roles&quot;, &quot;complementary&quot;);
+        break;
+    case LandmarkContentInfoRole:
+        attributeSet = addToAtkAttributeSet(attributeSet, &quot;xml-roles&quot;, &quot;contentinfo&quot;);
+        break;
+    case LandmarkMainRole:
+        attributeSet = addToAtkAttributeSet(attributeSet, &quot;xml-roles&quot;, &quot;main&quot;);
+        break;
+    case LandmarkNavigationRole:
+        attributeSet = addToAtkAttributeSet(attributeSet, &quot;xml-roles&quot;, &quot;navigation&quot;);
+        break;
+    case LandmarkSearchRole:
+        attributeSet = addToAtkAttributeSet(attributeSet, &quot;xml-roles&quot;, &quot;search&quot;);
+        break;
+    default:
+        break;
+    }
+
</ins><span class="cx">     return attributeSet;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -662,6 +688,17 @@
</span><span class="cx">         return ATK_ROLE_TOOL_TIP;
</span><span class="cx">     case WebAreaRole:
</span><span class="cx">         return ATK_ROLE_DOCUMENT_WEB;
</span><ins>+    case LandmarkApplicationRole:
+        return ATK_ROLE_EMBEDDED;
+#if ATK_CHECK_VERSION(2, 11, 3)
+    case LandmarkBannerRole:
+    case LandmarkComplementaryRole:
+    case LandmarkContentInfoRole:
+    case LandmarkMainRole:
+    case LandmarkNavigationRole:
+    case LandmarkSearchRole:
+        return ATK_ROLE_LANDMARK;
+#endif
</ins><span class="cx">     default:
</span><span class="cx">         return ATK_ROLE_UNKNOWN;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (160449 => 160450)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2013-12-11 19:18:08 UTC (rev 160449)
+++ trunk/Tools/ChangeLog        2013-12-11 19:49:39 UTC (rev 160450)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2013-12-11  Mario Sanchez Prada  &lt;mario.prada@samsung.com&gt;
+
+        [ATK] Expose accessibility objects WAI-ARIA landmark roles
+        https://bugs.webkit.org/show_bug.cgi?id=125584
+
+        Reviewed by Chris Fleizach.
+
+        Add mappings to DRT &amp; WKTR for landmark roles.
+
+        * DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:
+        (AccessibilityUIElement::role):
+        * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
+        (WTR::AccessibilityUIElement::role):
+        * gtk/jhbuild.modules:
+
</ins><span class="cx"> 2013-12-11  Alejandro G. Castro  &lt;alex@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [GTK] Avoid double quotations when passing parameters to valgrind in gtk.py
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreeatkAccessibilityUIElementAtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/atk/AccessibilityUIElementAtk.cpp (160449 => 160450)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/atk/AccessibilityUIElementAtk.cpp        2013-12-11 19:18:08 UTC (rev 160449)
+++ trunk/Tools/DumpRenderTree/atk/AccessibilityUIElementAtk.cpp        2013-12-11 19:49:39 UTC (rev 160450)
</span><span class="lines">@@ -81,6 +81,15 @@
</span><span class="cx">     { &quot;AXUnknownSortDirection&quot;, &quot;unknown&quot; }
</span><span class="cx"> };
</span><span class="cx"> 
</span><ins>+#if ATK_CHECK_VERSION(2, 11, 3)
+const char* landmarkStringBanner = &quot;AXLandmarkBanner&quot;;
+const char* landmarkStringComplementary = &quot;AXLandmarkComplementary&quot;;
+const char* landmarkStringContentinfo = &quot;AXLandmarkContentInfo&quot;;
+const char* landmarkStringMain = &quot;AXLandmarkMain&quot;;
+const char* landmarkStringNavigation = &quot;AXLandmarkNavigation&quot;;
+const char* landmarkStringSearch = &quot;AXLandmarkSearch&quot;;
+#endif
+
</ins><span class="cx"> String jsStringToWTFString(JSStringRef attribute)
</span><span class="cx"> {
</span><span class="cx">     size_t bufferSize = JSStringGetMaximumUTF8CStringSize(attribute);
</span><span class="lines">@@ -178,8 +187,28 @@
</span><span class="cx">     return builder.toString();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline const char* roleToString(AtkRole role)
</del><ins>+const char* roleToString(AtkObject* object)
</ins><span class="cx"> {
</span><ins>+    AtkRole role = atk_object_get_role(object);
+
+#if ATK_CHECK_VERSION(2, 11, 3)
+    if (role == ATK_ROLE_LANDMARK) {
+        String xmlRolesValue = getAttributeSetValueForId(object, ObjectAttributeType, &quot;xml-roles&quot;);
+        if (equalIgnoringCase(xmlRolesValue, &quot;banner&quot;))
+            return landmarkStringBanner;
+        if (equalIgnoringCase(xmlRolesValue, &quot;complementary&quot;))
+            return landmarkStringComplementary;
+        if (equalIgnoringCase(xmlRolesValue, &quot;contentinfo&quot;))
+            return landmarkStringContentinfo;
+        if (equalIgnoringCase(xmlRolesValue, &quot;main&quot;))
+            return landmarkStringMain;
+        if (equalIgnoringCase(xmlRolesValue, &quot;navigation&quot;))
+            return landmarkStringNavigation;
+        if (equalIgnoringCase(xmlRolesValue, &quot;search&quot;))
+            return landmarkStringSearch;
+    }
+#endif
+
</ins><span class="cx">     switch (role) {
</span><span class="cx">     case ATK_ROLE_ALERT:
</span><span class="cx">         return &quot;AXAlert&quot;;
</span><span class="lines">@@ -335,7 +364,7 @@
</span><span class="cx">     builder.append(&quot;AXParent: &quot;);
</span><span class="cx">     AccessibilityUIElement parent = element-&gt;parentElement();
</span><span class="cx">     if (AtkObject* atkParent = parent.platformUIElement()) {
</span><del>-        builder.append(roleToString(atk_object_get_role(atkParent)));
</del><ins>+        builder.append(roleToString(atkParent));
</ins><span class="cx">         const char* parentName = atk_object_get_name(atkParent);
</span><span class="cx">         if (parentName &amp;&amp; g_utf8_strlen(parentName, -1))
</span><span class="cx">             builder.append(String::format(&quot;: %s&quot;, parentName));
</span><span class="lines">@@ -679,11 +708,10 @@
</span><span class="cx">     if (!ATK_IS_OBJECT(m_element))
</span><span class="cx">         return JSStringCreateWithCharacters(0, 0);
</span><span class="cx"> 
</span><del>-    AtkRole role = atk_object_get_role(ATK_OBJECT(m_element));
-    if (!role)
</del><ins>+    if (!atk_object_get_role(ATK_OBJECT(m_element)))
</ins><span class="cx">         return JSStringCreateWithCharacters(0, 0);
</span><span class="cx"> 
</span><del>-    GOwnPtr&lt;char&gt; roleStringWithPrefix(g_strdup_printf(&quot;AXRole: %s&quot;, roleToString(role)));
</del><ins>+    GOwnPtr&lt;char&gt; roleStringWithPrefix(g_strdup_printf(&quot;AXRole: %s&quot;, roleToString(ATK_OBJECT(m_element))));
</ins><span class="cx">     return JSStringCreateWithUTF8CString(roleStringWithPrefix.get());
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleatkAccessibilityUIElementAtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp (160449 => 160450)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp        2013-12-11 19:18:08 UTC (rev 160449)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp        2013-12-11 19:49:39 UTC (rev 160450)
</span><span class="lines">@@ -85,6 +85,15 @@
</span><span class="cx">     { &quot;AXUnknownSortDirection&quot;, &quot;unknown&quot; }
</span><span class="cx"> };
</span><span class="cx"> 
</span><ins>+#if ATK_CHECK_VERSION(2, 11, 3)
+const char* landmarkStringBanner = &quot;AXLandmarkBanner&quot;;
+const char* landmarkStringComplementary = &quot;AXLandmarkComplementary&quot;;
+const char* landmarkStringContentinfo = &quot;AXLandmarkContentInfo&quot;;
+const char* landmarkStringMain = &quot;AXLandmarkMain&quot;;
+const char* landmarkStringNavigation = &quot;AXLandmarkNavigation&quot;;
+const char* landmarkStringSearch = &quot;AXLandmarkSearch&quot;;
+#endif
+
</ins><span class="cx"> String jsStringToWTFString(JSStringRef attribute)
</span><span class="cx"> {
</span><span class="cx">     size_t bufferSize = JSStringGetMaximumUTF8CStringSize(attribute);
</span><span class="lines">@@ -267,8 +276,28 @@
</span><span class="cx">     return g_strdup(uString.utf8().data());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-const gchar* roleToString(AtkRole role)
</del><ins>+const gchar* roleToString(AtkObject* object)
</ins><span class="cx"> {
</span><ins>+    AtkRole role = atk_object_get_role(object);
+
+#if ATK_CHECK_VERSION(2, 11, 3)
+    if (role == ATK_ROLE_LANDMARK) {
+        String xmlRolesValue = getAttributeSetValueForId(object, ObjectAttributeType, &quot;xml-roles&quot;);
+        if (equalIgnoringCase(xmlRolesValue, &quot;banner&quot;))
+            return landmarkStringBanner;
+        if (equalIgnoringCase(xmlRolesValue, &quot;complementary&quot;))
+            return landmarkStringComplementary;
+        if (equalIgnoringCase(xmlRolesValue, &quot;contentinfo&quot;))
+            return landmarkStringContentinfo;
+        if (equalIgnoringCase(xmlRolesValue, &quot;main&quot;))
+            return landmarkStringMain;
+        if (equalIgnoringCase(xmlRolesValue, &quot;navigation&quot;))
+            return landmarkStringNavigation;
+        if (equalIgnoringCase(xmlRolesValue, &quot;search&quot;))
+            return landmarkStringSearch;
+    }
+#endif
+
</ins><span class="cx">     switch (role) {
</span><span class="cx">     case ATK_ROLE_ALERT:
</span><span class="cx">         return &quot;AXAlert&quot;;
</span><span class="lines">@@ -400,7 +429,7 @@
</span><span class="cx">     RefPtr&lt;AccessibilityUIElement&gt; parent = element-&gt;parentElement();
</span><span class="cx">     AtkObject* atkParent = parent ? parent-&gt;platformUIElement().get() : nullptr;
</span><span class="cx">     if (atkParent) {
</span><del>-        builder.append(roleToString(atk_object_get_role(atkParent)));
</del><ins>+        builder.append(roleToString(atkParent));
</ins><span class="cx">         const char* parentName = atk_object_get_name(atkParent);
</span><span class="cx">         if (parentName &amp;&amp; g_utf8_strlen(parentName, -1))
</span><span class="cx">             builder.append(String::format(&quot;: %s&quot;, parentName));
</span><span class="lines">@@ -800,11 +829,10 @@
</span><span class="cx">     if (!ATK_IS_OBJECT(m_element.get()))
</span><span class="cx">         return JSStringCreateWithCharacters(0, 0);
</span><span class="cx"> 
</span><del>-    AtkRole role = atk_object_get_role(ATK_OBJECT(m_element.get()));
-    if (!role)
</del><ins>+    if (!atk_object_get_role(ATK_OBJECT(m_element.get())))
</ins><span class="cx">         return JSStringCreateWithCharacters(0, 0);
</span><span class="cx"> 
</span><del>-    GOwnPtr&lt;char&gt; roleStringWithPrefix(g_strdup_printf(&quot;AXRole: %s&quot;, roleToString(role)));
</del><ins>+    GOwnPtr&lt;char&gt; roleStringWithPrefix(g_strdup_printf(&quot;AXRole: %s&quot;, roleToString(ATK_OBJECT(m_element.get()))));
</ins><span class="cx">     return JSStringCreateWithUTF8CString(roleStringWithPrefix.get());
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkToolsgtkjhbuildmodules"></a>
<div class="modfile"><h4>Modified: trunk/Tools/gtk/jhbuild.modules (160449 => 160450)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/gtk/jhbuild.modules        2013-12-11 19:18:08 UTC (rev 160449)
+++ trunk/Tools/gtk/jhbuild.modules        2013-12-11 19:49:39 UTC (rev 160450)
</span><span class="lines">@@ -232,9 +232,9 @@
</span><span class="cx">   &lt;autotools id=&quot;atk&quot;
</span><span class="cx">              autogen-sh=&quot;configure&quot;
</span><span class="cx">              autogenargs=&quot;--disable-introspection&quot;&gt;
</span><del>-    &lt;branch module=&quot;pub/GNOME/sources/atk/2.10/atk-2.10.0.tar.xz&quot; version=&quot;2.10.0&quot;
</del><ins>+    &lt;branch module=&quot;pub/GNOME/sources/atk/2.11/atk-2.11.3.tar.xz&quot; version=&quot;2.11.3&quot;
</ins><span class="cx">             repo=&quot;ftp.gnome.org&quot;
</span><del>-            hash=&quot;sha256:636917a5036bc851d8491194645d284798ec118919a828be5e713b6ecc5b50b0&quot;/&gt;
</del><ins>+            hash=&quot;sha256:b3c63668638dbb627a81f4333a00b744c503531d07b168405ef5f27f382a0ae4&quot;/&gt;
</ins><span class="cx">   &lt;/autotools&gt;
</span><span class="cx"> 
</span><span class="cx">   &lt;autotools id=&quot;at-spi2-core&quot; 
</span></span></pre>
</div>
</div>

</body>
</html>