<!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>[174567] 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/174567">174567</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2014-10-10 01:32:58 -0700 (Fri, 10 Oct 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>[ATK] Changing the mapping of ARIA rowheader and columnheader into respective ATK roles.
https://bugs.webkit.org/show_bug.cgi?id=136150

Patch by Andrzej Badowski &lt;a.badowski@samsung.com&gt; on 2014-10-10
Reviewed by Chris Fleizach.

Source/WebCore:

Expose ColumnHeaderRole and RowHeaderRole objects into ATK.

Test: accessibility/table-roles-hierarchy.html

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
Platforms based on ATK: added distinction of roles for the &lt;th&gt; elements.
* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::determineAccessibilityRole):
Platforms based on ATK: the return value is determined in the ancestor.
* accessibility/atk/AccessibilityObjectAtk.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
In addition to CellRole also included ColumnHeaderRole and RowHeaderRole.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):
Changing the mapping of ARIA rowheader and columnheader into respective ATK roles.
(getInterfaceMaskFromObject):
In addition to CellRole also included ColumnHeaderRole and RowHeaderRole.

LayoutTests:

Minor changes in the roles-exposed test to check the mapping of rowheader and columnheader.
As a result of changes in the code test also shows the changes for the &lt;th&gt; element.
Changes expectations so that they cover propoer mapping of RowHeaderRole and ColumnHeaderRole.

* accessibility/aria-tables-expected.txt:
* accessibility/roles-exposed.html:
* accessibility/table-roles-hierarchy-expected.txt: Added.
* accessibility/table-roles-hierarchy.html: Added.
* platform/efl/accessibility/roles-exposed-expected.txt: Added.
* platform/efl/accessibility/table-attributes-expected.txt:
* platform/efl/accessibility/table-cells-expected.txt:
* platform/efl/accessibility/table-detection-expected.txt:
* platform/gtk/accessibility/roles-exposed-expected.txt: Added.
* platform/gtk/accessibility/table-attributes-expected.txt:
* platform/gtk/accessibility/table-cells-expected.txt:
* platform/gtk/accessibility/table-sections-expected.txt:
* platform/mac/accessibility/aria-tables-expected.txt: Copied from LayoutTests/accessibility/aria-tables-expected.txt.
* platform/mac/accessibility/table-roles-hierarchy-expected.txt: Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsaccessibilityariatablesexpectedtxt">trunk/LayoutTests/accessibility/aria-tables-expected.txt</a></li>
<li><a href="#trunkLayoutTestsaccessibilityrolesexposedhtml">trunk/LayoutTests/accessibility/roles-exposed.html</a></li>
<li><a href="#trunkLayoutTestsplatformeflaccessibilitytableattributesexpectedtxt">trunk/LayoutTests/platform/efl/accessibility/table-attributes-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformeflaccessibilitytablecellsexpectedtxt">trunk/LayoutTests/platform/efl/accessibility/table-cells-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformeflaccessibilitytabledetectionexpectedtxt">trunk/LayoutTests/platform/efl/accessibility/table-detection-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformgtkaccessibilitytableattributesexpectedtxt">trunk/LayoutTests/platform/gtk/accessibility/table-attributes-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformgtkaccessibilitytablecellsexpectedtxt">trunk/LayoutTests/platform/gtk/accessibility/table-cells-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformgtkaccessibilitytablesectionsexpectedtxt">trunk/LayoutTests/platform/gtk/accessibility/table-sections-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityRenderObjectcpp">trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityTableCellcpp">trunk/Source/WebCore/accessibility/AccessibilityTableCell.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityatkAccessibilityObjectAtkcpp">trunk/Source/WebCore/accessibility/atk/AccessibilityObjectAtk.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityatkWebKitAccessibleWrapperAtkcpp">trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsaccessibilitytableroleshierarchyexpectedtxt">trunk/LayoutTests/accessibility/table-roles-hierarchy-expected.txt</a></li>
<li><a href="#trunkLayoutTestsaccessibilitytableroleshierarchyhtml">trunk/LayoutTests/accessibility/table-roles-hierarchy.html</a></li>
<li><a href="#trunkLayoutTestsplatformeflaccessibilityrolesexposedexpectedtxt">trunk/LayoutTests/platform/efl/accessibility/roles-exposed-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformgtkaccessibilityrolesexposedexpectedtxt">trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacaccessibilityariatablesexpectedtxt">trunk/LayoutTests/platform/mac/accessibility/aria-tables-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacaccessibilitytableroleshierarchyexpectedtxt">trunk/LayoutTests/platform/mac/accessibility/table-roles-hierarchy-expected.txt</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (174566 => 174567)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2014-10-10 08:22:39 UTC (rev 174566)
+++ trunk/LayoutTests/ChangeLog        2014-10-10 08:32:58 UTC (rev 174567)
</span><span class="lines">@@ -1,3 +1,29 @@
</span><ins>+2014-10-10  Andrzej Badowski  &lt;a.badowski@samsung.com&gt;
+
+        [ATK] Changing the mapping of ARIA rowheader and columnheader into respective ATK roles.
+        https://bugs.webkit.org/show_bug.cgi?id=136150
+
+        Reviewed by Chris Fleizach.
+
+        Minor changes in the roles-exposed test to check the mapping of rowheader and columnheader.
+        As a result of changes in the code test also shows the changes for the &lt;th&gt; element.
+        Changes expectations so that they cover propoer mapping of RowHeaderRole and ColumnHeaderRole.
+
+        * accessibility/aria-tables-expected.txt:
+        * accessibility/roles-exposed.html:
+        * accessibility/table-roles-hierarchy-expected.txt: Added.
+        * accessibility/table-roles-hierarchy.html: Added.
+        * platform/efl/accessibility/roles-exposed-expected.txt: Added.
+        * platform/efl/accessibility/table-attributes-expected.txt:
+        * platform/efl/accessibility/table-cells-expected.txt:
+        * platform/efl/accessibility/table-detection-expected.txt:
+        * platform/gtk/accessibility/roles-exposed-expected.txt: Added.
+        * platform/gtk/accessibility/table-attributes-expected.txt:
+        * platform/gtk/accessibility/table-cells-expected.txt:
+        * platform/gtk/accessibility/table-sections-expected.txt:
+        * platform/mac/accessibility/aria-tables-expected.txt: Copied from LayoutTests/accessibility/aria-tables-expected.txt.
+        * platform/mac/accessibility/table-roles-hierarchy-expected.txt: Added.
+
</ins><span class="cx"> 2014-10-09  Simon Fraser  &lt;simon.fraser@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Rename some tests that oddly had -html.html suffixes.
</span></span></pre></div>
<a id="trunkLayoutTestsaccessibilityariatablesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/accessibility/aria-tables-expected.txt (174566 => 174567)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/accessibility/aria-tables-expected.txt        2014-10-10 08:22:39 UTC (rev 174566)
+++ trunk/LayoutTests/accessibility/aria-tables-expected.txt        2014-10-10 08:32:58 UTC (rev 174567)
</span><span class="lines">@@ -12,9 +12,9 @@
</span><span class="cx"> cell
</span><span class="cx"> AXRole: AXTable
</span><span class="cx"> AXRole: AXTable
</span><ins>+AXRole: AXColumnHeader
+AXRole: AXColumnHeader
+AXRole: AXRowHeader
</ins><span class="cx"> AXRole: AXCell
</span><del>-AXRole: AXCell
-AXRole: AXCell
-AXRole: AXCell
</del><span class="cx"> Test passed
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsaccessibilityrolesexposedhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/accessibility/roles-exposed.html (174566 => 174567)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/accessibility/roles-exposed.html        2014-10-10 08:22:39 UTC (rev 174566)
+++ trunk/LayoutTests/accessibility/roles-exposed.html        2014-10-10 08:32:58 UTC (rev 174567)
</span><span class="lines">@@ -206,8 +206,8 @@
</span><span class="cx">     &lt;!-- [ATK] Object not exposed (webkit.org/b/125491) --&gt;&lt;div data-platform=&quot;mac&quot; role=&quot;rowgroup&quot;             class=&quot;ex&quot;&gt;
</span><span class="cx">         &lt;!-- [ATK] Object not exposed (webkit.org/b/125491) --&gt;&lt;div data-platform=&quot;mac&quot; role=&quot;row&quot;              class=&quot;ex&quot;&gt;
</span><span class="cx">             &lt;!-- Note: diff between rowheader, columnheader, and gridcell is in cross-reference from grid; need additional non-role verification in another test. --&gt;
</span><del>-            &lt;!-- [ATK] Wrong role (webkit.org/b/125493) --&gt;&lt;div data-platform=&quot;mac&quot; role=&quot;rowheader&quot;    class=&quot;ex&quot;&gt;X&lt;/div&gt;
-            &lt;!-- [ATK] Wrong role (webkit.org/b/125493) --&gt;&lt;div data-platform=&quot;mac&quot; role=&quot;columnheader&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</del><ins>+            &lt;div data-platform=&quot;atk,mac&quot; role=&quot;rowheader&quot;    class=&quot;ex&quot;&gt;X&lt;/div&gt;
+            &lt;div data-platform=&quot;atk,mac&quot; role=&quot;columnheader&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</ins><span class="cx">             &lt;div data-platform=&quot;atk,mac&quot; role=&quot;gridcell&quot;     class=&quot;ex&quot;&gt;X&lt;/div&gt;
</span><span class="cx">         &lt;/div&gt;
</span><span class="cx">     &lt;/div&gt;
</span><span class="lines">@@ -270,8 +270,8 @@
</span><span class="cx">     &lt;!-- [ATK] Object not exposed (webkit.org/b/125491) --&gt;&lt;div role=&quot;rowgroup&quot;             data-platform=&quot;mac&quot; class=&quot;ex&quot;&gt;
</span><span class="cx">         &lt;!-- [ATK] Object not exposed (webkit.org/b/125491) --&gt;&lt;div role=&quot;row&quot;              data-platform=&quot;mac&quot; class=&quot;ex&quot;&gt;
</span><span class="cx">             &lt;!-- Note: diff between rowheader, columnheader, and gridcell is in cross-reference from grid; need additional non-role verification in another test. --&gt;
</span><del>-            &lt;!-- [ATK] Wrong role (webkit.org/b/125493) --&gt;&lt;div role=&quot;rowheader&quot;    data-platform=&quot;mac&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
-            &lt;!-- [ATK] Wrong role (webkit.org/b/125493) --&gt;&lt;div role=&quot;columnheader&quot; data-platform=&quot;mac&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</del><ins>+            &lt;div role=&quot;rowheader&quot;    data-platform=&quot;atk,mac&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
+            &lt;div role=&quot;columnheader&quot; data-platform=&quot;atk,mac&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</ins><span class="cx">             &lt;div role=&quot;gridcell&quot;     data-platform=&quot;atk,mac&quot; class=&quot;ex&quot;&gt;X&lt;/div&gt;
</span><span class="cx">         &lt;/div&gt;
</span><span class="cx">     &lt;/div&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsaccessibilitytableroleshierarchyexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/accessibility/table-roles-hierarchy-expected.txt (0 => 174567)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/accessibility/table-roles-hierarchy-expected.txt                                (rev 0)
+++ trunk/LayoutTests/accessibility/table-roles-hierarchy-expected.txt        2014-10-10 08:32:58 UTC (rev 174567)
</span><span class="lines">@@ -0,0 +1,26 @@
</span><ins>+No        Country        Capital
+1.        Poland        Warsaw
+2.        Russia        Moscow
+3.        Ukraine        Kiev
+All        3 countries        3 capitals
+
+
+This shows the hierarchy of table roles.
+
+role: AXRole: AXTable
+    role: AXRole: AXColumnHeader
+    role: AXRole: AXColumnHeader
+    role: AXRole: AXColumnHeader
+    role: AXRole: AXRowHeader
+    role: AXRole: AXCell
+    role: AXRole: AXCell
+    role: AXRole: AXRowHeader
+    role: AXRole: AXCell
+    role: AXRole: AXCell
+    role: AXRole: AXRowHeader
+    role: AXRole: AXCell
+    role: AXRole: AXCell
+    role: AXRole: AXRowHeader
+    role: AXRole: AXCell
+    role: AXRole: AXCell
+
</ins></span></pre></div>
<a id="trunkLayoutTestsaccessibilitytableroleshierarchyhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/accessibility/table-roles-hierarchy.html (0 => 174567)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/accessibility/table-roles-hierarchy.html                                (rev 0)
+++ trunk/LayoutTests/accessibility/table-roles-hierarchy.html        2014-10-10 08:32:58 UTC (rev 174567)
</span><span class="lines">@@ -0,0 +1,95 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+  &lt;script src=&quot;../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+  &lt;script&gt;
+    var tableAXObject;
+    var indentLevel = 0;
+
+    if (window.testRunner) {
+      testRunner.dumpAsText();
+    }
+
+    function indent(count) {
+      var spaces = &quot;                                                      &quot;;
+      return spaces.substr(0, count);
+    }
+
+    function dumpObject(axObject) {
+      debug(indent(indentLevel) + &quot;role: &quot; + axObject.role);
+      if (axObject.subrole &amp;&amp; axObject.subrole != 'AXSubrole: ') debug(indent(indentLevel) + &quot;subrole: &quot; + axObject.subrole);
+    }
+
+    function dumpChildren(axObject) {
+      var count = axObject.childrenCount
+      if (!count)
+        return;
+
+      indentLevel += 4;
+      for (var ndx = 0; ndx &lt; count; ndx++) {
+        var childAXObject = axObject.childAtIndex(ndx);
+        dumpObject(childAXObject);
+        if (childAXObject.childrenCount) {
+          // don't bother dumping static text children
+          if (childAXObject.role != &quot;AXRole: AXStaticText&quot;)
+            dumpChildren(childAXObject);
+        }
+      }
+      indentLevel -= 4;
+    }
+    function dumpTableAX()
+    {
+      if (!window.accessibilityController)
+        return;
+      var table = accessibilityController.accessibleElementById(&quot;table1&quot;);
+
+      dumpObject(table);
+      dumpChildren(table);
+    }
+  &lt;/script&gt;
+&lt;/head&gt;
+&lt;body onload=&quot;dumpTableAX()&quot;&gt;
+
+&lt;table id=&quot;table1&quot;&gt;
+  &lt;thead&gt;
+  &lt;tr&gt;
+    &lt;th&gt;No&lt;/th&gt;
+    &lt;th&gt;Country&lt;/th&gt;
+    &lt;th&gt;Capital&lt;/th&gt;
+  &lt;/tr&gt;
+  &lt;/thead&gt;
+  &lt;tbody&gt;
+  &lt;tr&gt;
+    &lt;th&gt;1.&lt;/th&gt;
+    &lt;td&gt;Poland&lt;/td&gt;
+    &lt;td&gt;Warsaw&lt;/td&gt;
+  &lt;/tr&gt;
+  &lt;tr&gt;
+    &lt;th&gt;2.&lt;/th&gt;
+    &lt;td&gt;Russia&lt;/td&gt;
+    &lt;td&gt;Moscow&lt;/td&gt;
+  &lt;/tr&gt;
+   &lt;tr&gt;
+    &lt;th&gt;3.&lt;/th&gt;
+    &lt;td&gt;Ukraine&lt;/td&gt;
+    &lt;td&gt;Kiev&lt;/td&gt;
+  &lt;/tr&gt;
+  &lt;/tbody&gt;
+  &lt;tfoot&gt;
+  &lt;tr&gt;
+    &lt;th&gt;All&lt;/th&gt;
+    &lt;td&gt;3 countries&lt;/td&gt;
+    &lt;td&gt;3 capitals&lt;/td&gt;
+  &lt;/tr&gt;
+  &lt;/tfoot&gt;
+&lt;/table&gt;
+
+&lt;br&gt;
+&lt;br&gt;
+&lt;br&gt;
+
+&lt;p&gt;This shows the hierarchy of table roles.&lt;/p&gt;
+
+&lt;div id=console&gt;&lt;/div&gt;
+
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformeflaccessibilityrolesexposedexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/efl/accessibility/roles-exposed-expected.txt (0 => 174567)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/efl/accessibility/roles-exposed-expected.txt                                (rev 0)
+++ trunk/LayoutTests/platform/efl/accessibility/roles-exposed-expected.txt        2014-10-10 08:32:58 UTC (rev 174567)
</span><span class="lines">@@ -0,0 +1,397 @@
</span><ins>+ X
+This tests that native elements and ARIA overrides result in the expected role, subrole and role description.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+a[href]
+      AXRole: AXLink
+      
+address
+      AXRole: AXLandmarkContentInfo
+      
+article
+      AXRole: AXArticle
+      
+aside
+      AXRole: AXLandmarkComplementary
+      
+blockquote
+      AXRole: AXGroup
+      
+button
+      AXRole: AXButton
+      
+dl
+      AXRole: AXDescriptionList
+      
+dt
+      AXRole: AXDescriptionTerm
+      
+dd
+      AXRole: AXDescriptionValue
+      
+div
+      AXRole: AXSection
+      
+fieldset
+      AXRole: AXGroup
+      
+legend
+      AXRole: AXLabel
+      
+form
+      AXRole: AXForm
+      
+header
+      AXRole: AXLandmarkBanner
+      
+hgroup
+      AXRole: AXGroup
+      
+h1
+      AXRole: AXHeading
+      
+h2
+      AXRole: AXHeading
+      
+h3
+      AXRole: AXHeading
+      
+h4
+      AXRole: AXHeading
+      
+h5
+      AXRole: AXHeading
+      
+h6
+      AXRole: AXHeading
+      
+hr
+      AXRole: AXSeparator
+      
+img[alt='X']
+      AXRole: AXImage
+      
+input[type='button']
+      AXRole: AXButton
+      
+input[type='checkbox']
+      AXRole: AXCheckBox
+      
+input[type='date']
+      AXRole: AXTextField
+      
+input[type='datetime']
+      AXRole: AXTextField
+      
+input[type='datetime-local']
+      AXRole: AXTextField
+      
+input[type='email']
+      AXRole: AXTextField
+      
+input[type='file']
+      AXRole: AXButton
+      
+input[type='image']
+      AXRole: AXButton
+      
+input[type='month']
+      AXRole: AXTextField
+      
+input[type='number']
+      AXRole: AXTextField
+      
+input[type='password']
+      AXRole: AXPasswordField
+      
+input[type='radio']
+      AXRole: AXRadioButton
+      
+input[type='range']
+      AXRole: AXSlider
+      
+input[type='reset']
+      AXRole: AXButton
+      
+input[type='search']
+      AXRole: AXTextField
+      
+input[type='submit']
+      AXRole: AXButton
+      
+input[type='tel']
+      AXRole: AXTextField
+      
+input[type='text']
+      AXRole: AXTextField
+      
+input[type='time']
+      AXRole: AXTextField
+      
+input[type='url']
+      AXRole: AXTextField
+      
+input[type='week']
+      AXRole: AXTextField
+      
+math
+      AXRole: AXMath
+      
+nav
+      AXRole: AXLandmarkNavigation
+      
+ol
+      AXRole: AXList
+      
+li
+      AXRole: AXListItem
+      
+p
+      AXRole: AXParagraph
+      
+pre
+      AXRole: AXGroup
+      
+progress
+      AXRole: AXProgressIndicator
+      
+select:not([multiple])
+      AXRole: AXComboBox
+      
+select[multiple]
+      AXRole: AXList
+      
+option
+      AXRole: AXListItem
+      
+optgroup
+      AXRole: AXListItem
+      
+table
+      AXRole: AXTable
+      
+th
+      AXRole: AXColumnHeader
+      
+td
+      AXRole: AXCell
+      
+th
+      AXRole: AXRowHeader
+      
+textarea
+      AXRole: AXTextField
+      
+ul
+      AXRole: AXList
+      
+li
+      AXRole: AXListItem
+      
+div[role=command]
+      AXRole: AXSection
+      
+div[role=composite]
+      AXRole: AXSection
+      
+div[role=input]
+      AXRole: AXSection
+      
+div[role=landmark]
+      AXRole: AXSection
+      
+div[role=range]
+      AXRole: AXSection
+      
+div[role=roletype]
+      AXRole: AXSection
+      
+div[role=section]
+      AXRole: AXSection
+      
+div[role=sectionhead]
+      AXRole: AXSection
+      
+div[role=select]
+      AXRole: AXSection
+      
+div[role=structure]
+      AXRole: AXSection
+      
+div[role=widget]
+      AXRole: AXSection
+      
+div[role=window]
+      AXRole: AXSection
+      
+div[role=alert]
+      AXRole: AXAlert
+      
+div[role=alertdialog]
+      AXRole: AXAlert
+      
+div[role=application]
+      AXRole: AXEmbedded
+      
+div[role=article]
+      AXRole: AXArticle
+      
+div[role=banner]
+      AXRole: AXLandmarkBanner
+      
+div[role=button]
+      AXRole: AXButton
+      
+div[role=checkbox]
+      AXRole: AXCheckBox
+      
+div[role=combobox]
+      AXRole: AXComboBox
+      
+div[role=complementary]
+      AXRole: AXLandmarkComplementary
+      
+div[role=contentinfo]
+      AXRole: AXLandmarkContentInfo
+      
+div[role=definition]
+      AXRole: AXDefinition
+      
+div[role=dialog]
+      AXRole: AXDialog
+      
+div[role=directory]
+      AXRole: AXList
+      
+div[role=grid]
+      AXRole: AXTable
+      
+div[role=rowheader]
+      AXRole: AXRowHeader
+      
+div[role=columnheader]
+      AXRole: AXColumnHeader
+      
+div[role=gridcell]
+      AXRole: AXCell
+      
+div[role=group]
+      AXRole: AXGroup
+      
+div[role=heading]
+      AXRole: AXHeading
+      
+div[role=img]
+      AXRole: AXImage
+      
+div[role=link]
+      AXRole: AXLink
+      
+div[role=list]
+      AXRole: AXList
+      
+div[role=listitem]
+      AXRole: AXListItem
+      
+div[role=option]
+      AXRole: AXListItem
+      
+div[role=log]
+      AXRole: AXLog
+      
+div[role=main]
+      AXRole: AXLandmarkMain
+      
+div[role=marquee]
+      AXRole: AXMarquee
+      
+div[role=math]
+      AXRole: AXMath
+      
+div[role=menu]
+      AXRole: AXMenu
+      
+div[role=menuitem]
+      AXRole: AXMenuItem
+      
+div[role=menuitemcheckbox]
+      AXRole: AXCheckMenuItem
+      
+div[role=menuitemradio]
+      AXRole: AXRadioMenuItem
+      
+div[role=menubar]
+      AXRole: AXMenuBar
+      
+div[role=menuitem]
+      AXRole: AXMenuItem
+      
+div[role=menuitemcheckbox]
+      AXRole: AXCheckMenuItem
+      
+div[role=menuitemradio]
+      AXRole: AXRadioMenuItem
+      
+div[role=navigation]
+      AXRole: AXLandmarkNavigation
+      
+div[role=note]
+      AXRole: AXComment
+      
+div[role=progressbar]
+      AXRole: AXProgressIndicator
+      
+div[role=radiogroup]
+      AXRole: AXGroup
+      
+div[role=radio]
+      AXRole: AXRadioButton
+      
+div[role=scrollbar]
+      AXRole: AXScrollBar
+      
+div[role=search]
+      AXRole: AXLandmarkSearch
+      
+div[role=separator]
+      AXRole: AXSeparator
+      
+div[role=slider]
+      AXRole: AXSlider
+      
+div[role=spinbutton]
+      AXRole: AXSpinButton
+      
+div[role=tablist]
+      AXRole: AXTabGroup
+      
+div[role=tab]
+      AXRole: AXTab
+      
+div[role=textbox]
+      AXRole: AXTextField
+      
+div[role=timer]
+      AXRole: AXTimer
+      
+div[role=toolbar]
+      AXRole: AXToolbar
+      
+div[role=treegrid]
+      AXRole: AXTable
+      
+div[role=rowheader]
+      AXRole: AXRowHeader
+      
+div[role=columnheader]
+      AXRole: AXColumnHeader
+      
+div[role=gridcell]
+      AXRole: AXCell
+      
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformeflaccessibilitytableattributesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/efl/accessibility/table-attributes-expected.txt (174566 => 174567)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/efl/accessibility/table-attributes-expected.txt        2014-10-10 08:22:39 UTC (rev 174566)
+++ trunk/LayoutTests/platform/efl/accessibility/table-attributes-expected.txt        2014-10-10 08:32:58 UTC (rev 174567)
</span><span class="lines">@@ -8,7 +8,7 @@
</span><span class="cx"> South        3333        1111        2222
</span><span class="cx"> --------------------------
</span><span class="cx"> 
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -27,7 +27,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -65,7 +65,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -84,7 +84,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -107,7 +107,7 @@
</span><span class="cx"> 
</span><span class="cx"> --------------------------
</span><span class="cx"> 
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -126,7 +126,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -145,7 +145,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -164,7 +164,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -195,7 +195,7 @@
</span><span class="cx"> 
</span><span class="cx"> --------------------------
</span><span class="cx"> 
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -214,7 +214,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -233,7 +233,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -252,7 +252,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -271,7 +271,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -290,7 +290,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -309,7 +309,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -328,7 +328,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -347,7 +347,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -366,7 +366,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -385,7 +385,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -404,7 +404,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -480,7 +480,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -499,7 +499,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span></span></pre></div>
<a id="trunkLayoutTestsplatformeflaccessibilitytablecellsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/efl/accessibility/table-cells-expected.txt (174566 => 174567)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/efl/accessibility/table-cells-expected.txt        2014-10-10 08:22:39 UTC (rev 174566)
+++ trunk/LayoutTests/platform/efl/accessibility/table-cells-expected.txt        2014-10-10 08:32:58 UTC (rev 174567)
</span><span class="lines">@@ -10,7 +10,7 @@
</span><span class="cx"> South        3333        1111        2222
</span><span class="cx"> ------------------------
</span><span class="cx"> [0,0]
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------------------
</span><span class="cx"> [3,1]
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitEfl
</span><span class="cx"> ------------------------
</span><span class="cx"> [1,1]
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span></span></pre></div>
<a id="trunkLayoutTestsplatformeflaccessibilitytabledetectionexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/efl/accessibility/table-detection-expected.txt (174566 => 174567)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/efl/accessibility/table-detection-expected.txt        2014-10-10 08:22:39 UTC (rev 174566)
+++ trunk/LayoutTests/platform/efl/accessibility/table-detection-expected.txt        2014-10-10 08:32:58 UTC (rev 174567)
</span><span class="lines">@@ -457,14 +457,13 @@
</span><span class="cx"> 
</span><span class="cx"> This should be a table even though it uses table-row-group for it's display type.
</span><span class="cx"> 
</span><del>-AXRole: AXGroup
</del><ins>+AXRole: AXTable
</ins><span class="cx"> AXParent: AXWebArea
</span><del>-AXChildren: 0
</del><ins>+AXChildren: 4
</ins><span class="cx"> AXPosition: { 0.000000, 0.000000 }
</span><del>-AXSize: { 35.000000, 21.000000 }
</del><ins>+AXSize: { 84.000000, 47.000000 }
</ins><span class="cx"> AXTitle: 
</span><span class="cx"> AXDescription: 
</span><del>-AXValue: head
</del><span class="cx"> AXFocusable: 0
</span><span class="cx"> AXFocused: 0
</span><span class="cx"> AXSelectable: 0
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkaccessibilityrolesexposedexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt (0 => 174567)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt                                (rev 0)
+++ trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt        2014-10-10 08:32:58 UTC (rev 174567)
</span><span class="lines">@@ -0,0 +1,397 @@
</span><ins>+ X
+This tests that native elements and ARIA overrides result in the expected role, subrole and role description.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+a[href]
+      AXRole: AXLink
+      
+address
+      AXRole: AXLandmarkContentInfo
+      
+article
+      AXRole: AXArticle
+      
+aside
+      AXRole: AXLandmarkComplementary
+      
+blockquote
+      AXRole: AXGroup
+      
+button
+      AXRole: AXButton
+      
+dl
+      AXRole: AXDescriptionList
+      
+dt
+      AXRole: AXDescriptionTerm
+      
+dd
+      AXRole: AXDescriptionValue
+      
+div
+      AXRole: AXSection
+      
+fieldset
+      AXRole: AXGroup
+      
+legend
+      AXRole: AXLabel
+      
+form
+      AXRole: AXForm
+      
+header
+      AXRole: AXLandmarkBanner
+      
+hgroup
+      AXRole: AXGroup
+      
+h1
+      AXRole: AXHeading
+      
+h2
+      AXRole: AXHeading
+      
+h3
+      AXRole: AXHeading
+      
+h4
+      AXRole: AXHeading
+      
+h5
+      AXRole: AXHeading
+      
+h6
+      AXRole: AXHeading
+      
+hr
+      AXRole: AXSeparator
+      
+img[alt='X']
+      AXRole: AXImage
+      
+input[type='button']
+      AXRole: AXButton
+      
+input[type='checkbox']
+      AXRole: AXCheckBox
+      
+input[type='date']
+      AXRole: AXTextField
+      
+input[type='datetime']
+      AXRole: AXTextField
+      
+input[type='datetime-local']
+      AXRole: AXTextField
+      
+input[type='email']
+      AXRole: AXTextField
+      
+input[type='file']
+      AXRole: AXButton
+      
+input[type='image']
+      AXRole: AXButton
+      
+input[type='month']
+      AXRole: AXTextField
+      
+input[type='number']
+      AXRole: AXTextField
+      
+input[type='password']
+      AXRole: AXPasswordField
+      
+input[type='radio']
+      AXRole: AXRadioButton
+      
+input[type='range']
+      AXRole: AXSlider
+      
+input[type='reset']
+      AXRole: AXButton
+      
+input[type='search']
+      AXRole: AXTextField
+      
+input[type='submit']
+      AXRole: AXButton
+      
+input[type='tel']
+      AXRole: AXTextField
+      
+input[type='text']
+      AXRole: AXTextField
+      
+input[type='time']
+      AXRole: AXTextField
+      
+input[type='url']
+      AXRole: AXTextField
+      
+input[type='week']
+      AXRole: AXTextField
+      
+math
+      AXRole: AXMath
+      
+nav
+      AXRole: AXLandmarkNavigation
+      
+ol
+      AXRole: AXList
+      
+li
+      AXRole: AXListItem
+      
+p
+      AXRole: AXParagraph
+      
+pre
+      AXRole: AXGroup
+      
+progress
+      AXRole: AXProgressIndicator
+      
+select:not([multiple])
+      AXRole: AXComboBox
+      
+select[multiple]
+      AXRole: AXList
+      
+option
+      AXRole: AXListItem
+      
+optgroup
+      AXRole: AXListItem
+      
+table
+      AXRole: AXTable
+      
+th
+      AXRole: AXColumnHeader
+      
+td
+      AXRole: AXCell
+      
+th
+      AXRole: AXRowHeader
+      
+textarea
+      AXRole: AXTextField
+      
+ul
+      AXRole: AXList
+      
+li
+      AXRole: AXListItem
+      
+div[role=command]
+      AXRole: AXSection
+      
+div[role=composite]
+      AXRole: AXSection
+      
+div[role=input]
+      AXRole: AXSection
+      
+div[role=landmark]
+      AXRole: AXSection
+      
+div[role=range]
+      AXRole: AXSection
+      
+div[role=roletype]
+      AXRole: AXSection
+      
+div[role=section]
+      AXRole: AXSection
+      
+div[role=sectionhead]
+      AXRole: AXSection
+      
+div[role=select]
+      AXRole: AXSection
+      
+div[role=structure]
+      AXRole: AXSection
+      
+div[role=widget]
+      AXRole: AXSection
+      
+div[role=window]
+      AXRole: AXSection
+      
+div[role=alert]
+      AXRole: AXAlert
+      
+div[role=alertdialog]
+      AXRole: AXAlert
+      
+div[role=application]
+      AXRole: AXEmbedded
+      
+div[role=article]
+      AXRole: AXArticle
+      
+div[role=banner]
+      AXRole: AXLandmarkBanner
+      
+div[role=button]
+      AXRole: AXButton
+      
+div[role=checkbox]
+      AXRole: AXCheckBox
+      
+div[role=combobox]
+      AXRole: AXComboBox
+      
+div[role=complementary]
+      AXRole: AXLandmarkComplementary
+      
+div[role=contentinfo]
+      AXRole: AXLandmarkContentInfo
+      
+div[role=definition]
+      AXRole: AXDefinition
+      
+div[role=dialog]
+      AXRole: AXDialog
+      
+div[role=directory]
+      AXRole: AXList
+      
+div[role=grid]
+      AXRole: AXTable
+      
+div[role=rowheader]
+      AXRole: AXRowHeader
+      
+div[role=columnheader]
+      AXRole: AXColumnHeader
+      
+div[role=gridcell]
+      AXRole: AXCell
+      
+div[role=group]
+      AXRole: AXGroup
+      
+div[role=heading]
+      AXRole: AXHeading
+      
+div[role=img]
+      AXRole: AXImage
+      
+div[role=link]
+      AXRole: AXLink
+      
+div[role=list]
+      AXRole: AXList
+      
+div[role=listitem]
+      AXRole: AXListItem
+      
+div[role=option]
+      AXRole: AXListItem
+      
+div[role=log]
+      AXRole: AXLog
+      
+div[role=main]
+      AXRole: AXLandmarkMain
+      
+div[role=marquee]
+      AXRole: AXMarquee
+      
+div[role=math]
+      AXRole: AXMath
+      
+div[role=menu]
+      AXRole: AXMenu
+      
+div[role=menuitem]
+      AXRole: AXMenuItem
+      
+div[role=menuitemcheckbox]
+      AXRole: AXCheckMenuItem
+      
+div[role=menuitemradio]
+      AXRole: AXRadioMenuItem
+      
+div[role=menubar]
+      AXRole: AXMenuBar
+      
+div[role=menuitem]
+      AXRole: AXMenuItem
+      
+div[role=menuitemcheckbox]
+      AXRole: AXCheckMenuItem
+      
+div[role=menuitemradio]
+      AXRole: AXRadioMenuItem
+      
+div[role=navigation]
+      AXRole: AXLandmarkNavigation
+      
+div[role=note]
+      AXRole: AXComment
+      
+div[role=progressbar]
+      AXRole: AXProgressIndicator
+      
+div[role=radiogroup]
+      AXRole: AXGroup
+      
+div[role=radio]
+      AXRole: AXRadioButton
+      
+div[role=scrollbar]
+      AXRole: AXScrollBar
+      
+div[role=search]
+      AXRole: AXLandmarkSearch
+      
+div[role=separator]
+      AXRole: AXSeparator
+      
+div[role=slider]
+      AXRole: AXSlider
+      
+div[role=spinbutton]
+      AXRole: AXSpinButton
+      
+div[role=tablist]
+      AXRole: AXTabGroup
+      
+div[role=tab]
+      AXRole: AXTab
+      
+div[role=textbox]
+      AXRole: AXTextField
+      
+div[role=timer]
+      AXRole: AXTimer
+      
+div[role=toolbar]
+      AXRole: AXToolbar
+      
+div[role=treegrid]
+      AXRole: AXTable
+      
+div[role=rowheader]
+      AXRole: AXRowHeader
+      
+div[role=columnheader]
+      AXRole: AXColumnHeader
+      
+div[role=gridcell]
+      AXRole: AXCell
+      
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformgtkaccessibilitytableattributesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/accessibility/table-attributes-expected.txt (174566 => 174567)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/accessibility/table-attributes-expected.txt        2014-10-10 08:22:39 UTC (rev 174566)
+++ trunk/LayoutTests/platform/gtk/accessibility/table-attributes-expected.txt        2014-10-10 08:32:58 UTC (rev 174567)
</span><span class="lines">@@ -8,7 +8,7 @@
</span><span class="cx"> South        3333        1111        2222
</span><span class="cx"> --------------------------
</span><span class="cx"> 
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 235.000000, 26.000000 }
</span><span class="lines">@@ -27,7 +27,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 235.000000, 26.000000 }
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 378.000000, 26.000000 }
</span><span class="lines">@@ -65,7 +65,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 447.000000, 26.000000 }
</span><span class="lines">@@ -84,7 +84,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 447.000000, 26.000000 }
</span><span class="lines">@@ -107,7 +107,7 @@
</span><span class="cx"> 
</span><span class="cx"> --------------------------
</span><span class="cx"> 
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 227.000000, 26.000000 }
</span><span class="lines">@@ -126,7 +126,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 227.000000, 26.000000 }
</span><span class="lines">@@ -145,7 +145,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 227.000000, 89.000000 }
</span><span class="lines">@@ -164,7 +164,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 227.000000, 89.000000 }
</span><span class="lines">@@ -195,7 +195,7 @@
</span><span class="cx"> 
</span><span class="cx"> --------------------------
</span><span class="cx"> 
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 227.000000, 26.000000 }
</span><span class="lines">@@ -214,7 +214,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 227.000000, 26.000000 }
</span><span class="lines">@@ -233,7 +233,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 370.000000, 26.000000 }
</span><span class="lines">@@ -252,7 +252,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 439.000000, 26.000000 }
</span><span class="lines">@@ -271,7 +271,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 439.000000, 26.000000 }
</span><span class="lines">@@ -290,7 +290,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 227.000000, 26.000000 }
</span><span class="lines">@@ -309,7 +309,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 227.000000, 26.000000 }
</span><span class="lines">@@ -328,7 +328,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 370.000000, 26.000000 }
</span><span class="lines">@@ -347,7 +347,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 439.000000, 55.000000 }
</span><span class="lines">@@ -366,7 +366,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 491.000000, 55.000000 }
</span><span class="lines">@@ -385,7 +385,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 227.000000, 89.000000 }
</span><span class="lines">@@ -404,7 +404,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 317.000000, 89.000000 }
</span><span class="lines">@@ -480,7 +480,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 227.000000, 89.000000 }
</span><span class="lines">@@ -499,7 +499,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 317.000000, 118.000000 }
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkaccessibilitytablecellsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/accessibility/table-cells-expected.txt (174566 => 174567)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/accessibility/table-cells-expected.txt        2014-10-10 08:22:39 UTC (rev 174566)
+++ trunk/LayoutTests/platform/gtk/accessibility/table-cells-expected.txt        2014-10-10 08:32:58 UTC (rev 174567)
</span><span class="lines">@@ -10,7 +10,7 @@
</span><span class="cx"> South        3333        1111        2222
</span><span class="cx"> ------------------------
</span><span class="cx"> [0,0]
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 235.000000, 26.000000 }
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------------------
</span><span class="cx"> [3,1]
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 447.000000, 55.000000 }
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------------------
</span><span class="cx"> [1,1]
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 227.000000, 26.000000 }
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkaccessibilitytablesectionsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/accessibility/table-sections-expected.txt (174566 => 174567)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/accessibility/table-sections-expected.txt        2014-10-10 08:22:39 UTC (rev 174566)
+++ trunk/LayoutTests/platform/gtk/accessibility/table-sections-expected.txt        2014-10-10 08:32:58 UTC (rev 174567)
</span><span class="lines">@@ -17,7 +17,7 @@
</span><span class="cx"> THEAD, TFOOT table
</span><span class="cx"> --------------------------
</span><span class="cx"> 
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXColumnHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 363.000000, 60.000000 }
</span><span class="lines">@@ -27,7 +27,7 @@
</span><span class="cx"> AXValue: 1
</span><span class="cx"> AXFocusable: 0
</span><span class="cx"> AXFocused: 0
</span><del>-AXSelectable: 1
</del><ins>+AXSelectable: 0
</ins><span class="cx"> AXSelected: 0
</span><span class="cx"> AXMultiSelectable: 0
</span><span class="cx"> AXEnabled: 1
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXColumnHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 383.000000, 60.000000 }
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx"> AXValue: a
</span><span class="cx"> AXFocusable: 0
</span><span class="cx"> AXFocused: 0
</span><del>-AXSelectable: 1
</del><ins>+AXSelectable: 0
</ins><span class="cx"> AXSelected: 0
</span><span class="cx"> AXMultiSelectable: 0
</span><span class="cx"> AXEnabled: 1
</span><span class="lines">@@ -78,7 +78,7 @@
</span><span class="cx"> 
</span><span class="cx"> --------------------------
</span><span class="cx"> 
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXColumnHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 355.000000, 60.000000 }
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx"> AXValue: 1
</span><span class="cx"> AXFocusable: 0
</span><span class="cx"> AXFocused: 0
</span><del>-AXSelectable: 1
</del><ins>+AXSelectable: 0
</ins><span class="cx"> AXSelected: 0
</span><span class="cx"> AXMultiSelectable: 0
</span><span class="cx"> AXEnabled: 1
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 355.000000, 89.000000 }
</span><span class="lines">@@ -116,7 +116,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 355.000000, 118.000000 }
</span><span class="lines">@@ -163,7 +163,7 @@
</span><span class="cx"> 
</span><span class="cx"> --------------------------
</span><span class="cx"> 
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXColumnHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 355.000000, 60.000000 }
</span><span class="lines">@@ -173,7 +173,7 @@
</span><span class="cx"> AXValue: 1
</span><span class="cx"> AXFocusable: 0
</span><span class="cx"> AXFocused: 0
</span><del>-AXSelectable: 1
</del><ins>+AXSelectable: 0
</ins><span class="cx"> AXSelected: 0
</span><span class="cx"> AXMultiSelectable: 0
</span><span class="cx"> AXEnabled: 1
</span><span class="lines">@@ -182,7 +182,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXColumnHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 375.000000, 60.000000 }
</span><span class="lines">@@ -192,7 +192,7 @@
</span><span class="cx"> AXValue: a
</span><span class="cx"> AXFocusable: 0
</span><span class="cx"> AXFocused: 0
</span><del>-AXSelectable: 1
</del><ins>+AXSelectable: 0
</ins><span class="cx"> AXSelected: 0
</span><span class="cx"> AXMultiSelectable: 0
</span><span class="cx"> AXEnabled: 1
</span><span class="lines">@@ -220,7 +220,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 355.000000, 89.000000 }
</span><span class="lines">@@ -277,7 +277,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 355.000000, 118.000000 }
</span><span class="lines">@@ -403,7 +403,7 @@
</span><span class="cx"> Multi-TBODY table
</span><span class="cx"> --------------------------
</span><span class="cx"> 
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXColumnHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 355.000000, 60.000000 }
</span><span class="lines">@@ -413,7 +413,7 @@
</span><span class="cx"> AXValue: 1
</span><span class="cx"> AXFocusable: 0
</span><span class="cx"> AXFocused: 0
</span><del>-AXSelectable: 1
</del><ins>+AXSelectable: 0
</ins><span class="cx"> AXSelected: 0
</span><span class="cx"> AXMultiSelectable: 0
</span><span class="cx"> AXEnabled: 1
</span><span class="lines">@@ -422,7 +422,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXColumnHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 375.000000, 60.000000 }
</span><span class="lines">@@ -432,7 +432,7 @@
</span><span class="cx"> AXValue: a
</span><span class="cx"> AXFocusable: 0
</span><span class="cx"> AXFocused: 0
</span><del>-AXSelectable: 1
</del><ins>+AXSelectable: 0
</ins><span class="cx"> AXSelected: 0
</span><span class="cx"> AXMultiSelectable: 0
</span><span class="cx"> AXEnabled: 1
</span><span class="lines">@@ -464,7 +464,7 @@
</span><span class="cx"> 
</span><span class="cx"> --------------------------
</span><span class="cx"> 
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXColumnHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 355.000000, 60.000000 }
</span><span class="lines">@@ -474,7 +474,7 @@
</span><span class="cx"> AXValue: 1
</span><span class="cx"> AXFocusable: 0
</span><span class="cx"> AXFocused: 0
</span><del>-AXSelectable: 1
</del><ins>+AXSelectable: 0
</ins><span class="cx"> AXSelected: 0
</span><span class="cx"> AXMultiSelectable: 0
</span><span class="cx"> AXEnabled: 1
</span><span class="lines">@@ -483,7 +483,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 355.000000, 89.000000 }
</span><span class="lines">@@ -502,7 +502,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 355.000000, 118.000000 }
</span><span class="lines">@@ -549,7 +549,7 @@
</span><span class="cx"> 
</span><span class="cx"> --------------------------
</span><span class="cx"> 
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXColumnHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 355.000000, 60.000000 }
</span><span class="lines">@@ -559,7 +559,7 @@
</span><span class="cx"> AXValue: 1
</span><span class="cx"> AXFocusable: 0
</span><span class="cx"> AXFocused: 0
</span><del>-AXSelectable: 1
</del><ins>+AXSelectable: 0
</ins><span class="cx"> AXSelected: 0
</span><span class="cx"> AXMultiSelectable: 0
</span><span class="cx"> AXEnabled: 1
</span><span class="lines">@@ -568,7 +568,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXColumnHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 375.000000, 60.000000 }
</span><span class="lines">@@ -578,7 +578,7 @@
</span><span class="cx"> AXValue: a
</span><span class="cx"> AXFocusable: 0
</span><span class="cx"> AXFocused: 0
</span><del>-AXSelectable: 1
</del><ins>+AXSelectable: 0
</ins><span class="cx"> AXSelected: 0
</span><span class="cx"> AXMultiSelectable: 0
</span><span class="cx"> AXEnabled: 1
</span><span class="lines">@@ -606,7 +606,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 355.000000, 89.000000 }
</span><span class="lines">@@ -663,7 +663,7 @@
</span><span class="cx"> AXChecked: 0
</span><span class="cx"> AXPlatformAttributes: toolkit:WebKitGtk
</span><span class="cx"> ------------
</span><del>-AXRole: AXCell
</del><ins>+AXRole: AXRowHeader
</ins><span class="cx"> AXParent: AXTable: Example #1: Nested Stubs
</span><span class="cx"> AXChildren: 0
</span><span class="cx"> AXPosition: { 355.000000, 118.000000 }
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacaccessibilityariatablesexpectedtxtfromrev174563trunkLayoutTestsaccessibilityariatablesexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/platform/mac/accessibility/aria-tables-expected.txt (from rev 174563, trunk/LayoutTests/accessibility/aria-tables-expected.txt) (0 => 174567)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/accessibility/aria-tables-expected.txt                                (rev 0)
+++ trunk/LayoutTests/platform/mac/accessibility/aria-tables-expected.txt        2014-10-10 08:32:58 UTC (rev 174567)
</span><span class="lines">@@ -0,0 +1,20 @@
</span><ins>+header 1
+header 2
+header 3
+cell
+cell
+cell
+cell
+cell
+cell
+header 1        header 2        header 2
+cell        cell        cell
+cell
+AXRole: AXTable
+AXRole: AXTable
+AXRole: AXCell
+AXRole: AXCell
+AXRole: AXCell
+AXRole: AXCell
+Test passed
+
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmacaccessibilitytableroleshierarchyexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac/accessibility/table-roles-hierarchy-expected.txt (0 => 174567)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/accessibility/table-roles-hierarchy-expected.txt                                (rev 0)
+++ trunk/LayoutTests/platform/mac/accessibility/table-roles-hierarchy-expected.txt        2014-10-10 08:32:58 UTC (rev 174567)
</span><span class="lines">@@ -0,0 +1,86 @@
</span><ins>+No        Country        Capital
+1.        Poland        Warsaw
+2.        Russia        Moscow
+3.        Ukraine        Kiev
+All        3 countries        3 capitals
+
+
+This shows the hierarchy of table roles.
+
+role: AXRole: AXTable
+    role: AXRole: AXRow
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+    role: AXRole: AXRow
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+    role: AXRole: AXRow
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+    role: AXRole: AXRow
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+    role: AXRole: AXRow
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+    role: AXRole: AXColumn
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+    role: AXRole: AXColumn
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+    role: AXRole: AXColumn
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+    role: AXRole: AXGroup
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+        role: AXRole: AXCell
+            role: AXRole: AXStaticText
+
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (174566 => 174567)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-10-10 08:22:39 UTC (rev 174566)
+++ trunk/Source/WebCore/ChangeLog        2014-10-10 08:32:58 UTC (rev 174567)
</span><span class="lines">@@ -1,3 +1,29 @@
</span><ins>+2014-10-10  Andrzej Badowski  &lt;a.badowski@samsung.com&gt;
+
+        [ATK] Changing the mapping of ARIA rowheader and columnheader into respective ATK roles.
+        https://bugs.webkit.org/show_bug.cgi?id=136150
+
+        Reviewed by Chris Fleizach.
+
+        Expose ColumnHeaderRole and RowHeaderRole objects into ATK.
+
+        Test: accessibility/table-roles-hierarchy.html
+
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
+        Platforms based on ATK: added distinction of roles for the &lt;th&gt; elements.
+        * accessibility/AccessibilityTableCell.cpp:
+        (WebCore::AccessibilityTableCell::determineAccessibilityRole):
+        Platforms based on ATK: the return value is determined in the ancestor.
+        * accessibility/atk/AccessibilityObjectAtk.cpp:
+        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
+        In addition to CellRole also included ColumnHeaderRole and RowHeaderRole.
+        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
+        (atkRole):
+        Changing the mapping of ARIA rowheader and columnheader into respective ATK roles.
+        (getInterfaceMaskFromObject):
+        In addition to CellRole also included ColumnHeaderRole and RowHeaderRole.
+
</ins><span class="cx"> 2014-10-09  Carlos Garcia Campos  &lt;cgarcia@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         MediaPlayer should use a reference for the MediaPlayerClient
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityRenderObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (174566 => 174567)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2014-10-10 08:22:39 UTC (rev 174566)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2014-10-10 08:32:58 UTC (rev 174567)
</span><span class="lines">@@ -2551,11 +2551,23 @@
</span><span class="cx">     if (node &amp;&amp; (node-&gt;hasTagName(rpTag) || node-&gt;hasTagName(rtTag)))
</span><span class="cx">         return AnnotationRole;
</span><span class="cx"> 
</span><del>-#if PLATFORM(GTK)
</del><ins>+#if PLATFORM(GTK) || PLATFORM(EFL)
</ins><span class="cx">     // Gtk ATs expect all tables, data and layout, to be exposed as tables.
</span><del>-    if (node &amp;&amp; (node-&gt;hasTagName(tdTag) || node-&gt;hasTagName(thTag)))
</del><ins>+    if (node &amp;&amp; (node-&gt;hasTagName(tdTag)))
</ins><span class="cx">         return CellRole;
</span><span class="cx"> 
</span><ins>+    if (node &amp;&amp; (node-&gt;hasTagName(thTag))) {
+        for (Node* parentNode = node-&gt;parentNode(); parentNode; parentNode = parentNode-&gt;parentNode()) {
+            if (parentNode-&gt;hasTagName(theadTag))
+                return ColumnHeaderRole;
+            if (parentNode-&gt;hasTagName(tbodyTag) || parentNode-&gt;hasTagName(tfootTag))
+                return RowHeaderRole;
+            if (parentNode-&gt;hasTagName(tableTag))
+                return CellRole;
+        }
+        return CellRole;
+    }
+
</ins><span class="cx">     if (node &amp;&amp; node-&gt;hasTagName(trTag))
</span><span class="cx">         return RowRole;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityTableCellcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityTableCell.cpp (174566 => 174567)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityTableCell.cpp        2014-10-10 08:22:39 UTC (rev 174566)
+++ trunk/Source/WebCore/accessibility/AccessibilityTableCell.cpp        2014-10-10 08:32:58 UTC (rev 174567)
</span><span class="lines">@@ -108,10 +108,13 @@
</span><span class="cx">     // Even though this object reports a Cell role, the ARIA role will be used
</span><span class="cx">     // to determine if it's a column header.
</span><span class="cx">     AccessibilityRole defaultRole = AccessibilityRenderObject::determineAccessibilityRole();
</span><ins>+#if !PLATFORM(EFL) &amp;&amp; !PLATFORM(GTK)
</ins><span class="cx">     if (!isTableCell())
</span><span class="cx">         return defaultRole;
</span><span class="cx">     
</span><span class="cx">     return CellRole;
</span><ins>+#endif
+    return defaultRole;
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> bool AccessibilityTableCell::isTableHeaderCell() const
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityatkAccessibilityObjectAtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/atk/AccessibilityObjectAtk.cpp (174566 => 174567)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/atk/AccessibilityObjectAtk.cpp        2014-10-10 08:22:39 UTC (rev 174566)
+++ trunk/Source/WebCore/accessibility/atk/AccessibilityObjectAtk.cpp        2014-10-10 08:32:58 UTC (rev 174567)
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx">         return IgnoreObject;
</span><span class="cx"> 
</span><span class="cx">     // Include all tables, even layout tables. The AT can decide what to do with each.
</span><del>-    if (role == CellRole || role == TableRole)
</del><ins>+    if (role == CellRole || role == TableRole || role == ColumnHeaderRole || role == RowHeaderRole)
</ins><span class="cx">         return IncludeObject;
</span><span class="cx"> 
</span><span class="cx">     // The object containing the text should implement AtkText itself.
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityatkWebKitAccessibleWrapperAtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp (174566 => 174567)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp        2014-10-10 08:22:39 UTC (rev 174566)
+++ trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp        2014-10-10 08:32:58 UTC (rev 174567)
</span><span class="lines">@@ -662,8 +662,10 @@
</span><span class="cx">     case RadioGroupRole:
</span><span class="cx">     case TabPanelRole:
</span><span class="cx">         return ATK_ROLE_PANEL;
</span><del>-    case RowHeaderRole: // Row headers are cells after all.
-    case ColumnHeaderRole: // Column headers are cells after all.
</del><ins>+    case RowHeaderRole:
+        return ATK_ROLE_ROW_HEADER;
+    case ColumnHeaderRole:
+        return ATK_ROLE_COLUMN_HEADER;
</ins><span class="cx">     case CellRole:
</span><span class="cx">         return coreObject-&gt;inheritsPresentationalRole() ? ATK_ROLE_SECTION : ATK_ROLE_TABLE_CELL;
</span><span class="cx">     case LinkRole:
</span><span class="lines">@@ -1175,7 +1177,7 @@
</span><span class="cx">         interfaceMask |= 1 &lt;&lt; WAITable;
</span><span class="cx"> 
</span><span class="cx"> #if ATK_CHECK_VERSION(2,11,90)
</span><del>-    if (role == CellRole)
</del><ins>+    if (role == CellRole || role == ColumnHeaderRole || role == RowHeaderRole)
</ins><span class="cx">         interfaceMask |= 1 &lt;&lt; WAITableCell;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>