Title: [174567] trunk
Revision
174567
Author
[email protected]
Date
2014-10-10 01:32:58 -0700 (Fri, 10 Oct 2014)

Log Message

[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 <[email protected]> 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 <th> 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 <th> 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.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (174566 => 174567)


--- trunk/LayoutTests/ChangeLog	2014-10-10 08:22:39 UTC (rev 174566)
+++ trunk/LayoutTests/ChangeLog	2014-10-10 08:32:58 UTC (rev 174567)
@@ -1,3 +1,29 @@
+2014-10-10  Andrzej Badowski  <[email protected]>
+
+        [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 <th> 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.
+
 2014-10-09  Simon Fraser  <[email protected]>
 
         Rename some tests that oddly had -html.html suffixes.

Modified: trunk/LayoutTests/accessibility/aria-tables-expected.txt (174566 => 174567)


--- 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)
@@ -12,9 +12,9 @@
 cell
 AXRole: AXTable
 AXRole: AXTable
+AXRole: AXColumnHeader
+AXRole: AXColumnHeader
+AXRole: AXRowHeader
 AXRole: AXCell
-AXRole: AXCell
-AXRole: AXCell
-AXRole: AXCell
 Test passed
 

Modified: trunk/LayoutTests/accessibility/roles-exposed.html (174566 => 174567)


--- 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)
@@ -206,8 +206,8 @@
     <!-- [ATK] Object not exposed (webkit.org/b/125491) --><div data-platform="mac" role="rowgroup"             class="ex">
         <!-- [ATK] Object not exposed (webkit.org/b/125491) --><div data-platform="mac" role="row"              class="ex">
             <!-- Note: diff between rowheader, columnheader, and gridcell is in cross-reference from grid; need additional non-role verification in another test. -->
-            <!-- [ATK] Wrong role (webkit.org/b/125493) --><div data-platform="mac" role="rowheader"    class="ex">X</div>
-            <!-- [ATK] Wrong role (webkit.org/b/125493) --><div data-platform="mac" role="columnheader" class="ex">X</div>
+            <div data-platform="atk,mac" role="rowheader"    class="ex">X</div>
+            <div data-platform="atk,mac" role="columnheader" class="ex">X</div>
             <div data-platform="atk,mac" role="gridcell"     class="ex">X</div>
         </div>
     </div>
@@ -270,8 +270,8 @@
     <!-- [ATK] Object not exposed (webkit.org/b/125491) --><div role="rowgroup"             data-platform="mac" class="ex">
         <!-- [ATK] Object not exposed (webkit.org/b/125491) --><div role="row"              data-platform="mac" class="ex">
             <!-- Note: diff between rowheader, columnheader, and gridcell is in cross-reference from grid; need additional non-role verification in another test. -->
-            <!-- [ATK] Wrong role (webkit.org/b/125493) --><div role="rowheader"    data-platform="mac" class="ex">X</div>
-            <!-- [ATK] Wrong role (webkit.org/b/125493) --><div role="columnheader" data-platform="mac" class="ex">X</div>
+            <div role="rowheader"    data-platform="atk,mac" class="ex">X</div>
+            <div role="columnheader" data-platform="atk,mac" class="ex">X</div>
             <div role="gridcell"     data-platform="atk,mac" class="ex">X</div>
         </div>
     </div>

Added: trunk/LayoutTests/accessibility/table-roles-hierarchy-expected.txt (0 => 174567)


--- 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)
@@ -0,0 +1,26 @@
+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
+

Added: trunk/LayoutTests/accessibility/table-roles-hierarchy.html (0 => 174567)


--- 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)
@@ -0,0 +1,95 @@
+<html>
+<head>
+  <script src=""
+  <script>
+    var tableAXObject;
+    var indentLevel = 0;
+
+    if (window.testRunner) {
+      testRunner.dumpAsText();
+    }
+
+    function indent(count) {
+      var spaces = "                                                      ";
+      return spaces.substr(0, count);
+    }
+
+    function dumpObject(axObject) {
+      debug(indent(indentLevel) + "role: " + axObject.role);
+      if (axObject.subrole && axObject.subrole != 'AXSubrole: ') debug(indent(indentLevel) + "subrole: " + axObject.subrole);
+    }
+
+    function dumpChildren(axObject) {
+      var count = axObject.childrenCount
+      if (!count)
+        return;
+
+      indentLevel += 4;
+      for (var ndx = 0; ndx < count; ndx++) {
+        var childAXObject = axObject.childAtIndex(ndx);
+        dumpObject(childAXObject);
+        if (childAXObject.childrenCount) {
+          // don't bother dumping static text children
+          if (childAXObject.role != "AXRole: AXStaticText")
+            dumpChildren(childAXObject);
+        }
+      }
+      indentLevel -= 4;
+    }
+    function dumpTableAX()
+    {
+      if (!window.accessibilityController)
+        return;
+      var table = accessibilityController.accessibleElementById("table1");
+
+      dumpObject(table);
+      dumpChildren(table);
+    }
+  </script>
+</head>
+<body _onload_="dumpTableAX()">
+
+<table id="table1">
+  <thead>
+  <tr>
+    <th>No</th>
+    <th>Country</th>
+    <th>Capital</th>
+  </tr>
+  </thead>
+  <tbody>
+  <tr>
+    <th>1.</th>
+    <td>Poland</td>
+    <td>Warsaw</td>
+  </tr>
+  <tr>
+    <th>2.</th>
+    <td>Russia</td>
+    <td>Moscow</td>
+  </tr>
+   <tr>
+    <th>3.</th>
+    <td>Ukraine</td>
+    <td>Kiev</td>
+  </tr>
+  </tbody>
+  <tfoot>
+  <tr>
+    <th>All</th>
+    <td>3 countries</td>
+    <td>3 capitals</td>
+  </tr>
+  </tfoot>
+</table>
+
+<br>
+<br>
+<br>
+
+<p>This shows the hierarchy of table roles.</p>
+
+<div id=console></div>
+
+</body>
+</html>

Added: trunk/LayoutTests/platform/efl/accessibility/roles-exposed-expected.txt (0 => 174567)


--- 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)
@@ -0,0 +1,397 @@
+ 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 "PASS" messages, followed by "TEST COMPLETE".
+
+
+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
+

Modified: trunk/LayoutTests/platform/efl/accessibility/table-attributes-expected.txt (174566 => 174567)


--- 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)
@@ -8,7 +8,7 @@
 South	3333	1111	2222
 --------------------------
 
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -27,7 +27,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -46,7 +46,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -65,7 +65,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -84,7 +84,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -107,7 +107,7 @@
 
 --------------------------
 
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -126,7 +126,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -145,7 +145,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -164,7 +164,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -195,7 +195,7 @@
 
 --------------------------
 
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -214,7 +214,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -233,7 +233,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -252,7 +252,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -271,7 +271,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -290,7 +290,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -309,7 +309,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -328,7 +328,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -347,7 +347,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -366,7 +366,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -385,7 +385,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -404,7 +404,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -480,7 +480,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -499,7 +499,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }

Modified: trunk/LayoutTests/platform/efl/accessibility/table-cells-expected.txt (174566 => 174567)


--- 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)
@@ -10,7 +10,7 @@
 South	3333	1111	2222
 ------------------------
 [0,0]
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -30,7 +30,7 @@
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------------------
 [3,1]
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }
@@ -50,7 +50,7 @@
 AXPlatformAttributes: toolkit:WebKitEfl
 ------------------------
 [1,1]
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 0.000000, 0.000000 }

Modified: trunk/LayoutTests/platform/efl/accessibility/table-detection-expected.txt (174566 => 174567)


--- 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)
@@ -457,14 +457,13 @@
 
 This should be a table even though it uses table-row-group for it's display type.
 
-AXRole: AXGroup
+AXRole: AXTable
 AXParent: AXWebArea
-AXChildren: 0
+AXChildren: 4
 AXPosition: { 0.000000, 0.000000 }
-AXSize: { 35.000000, 21.000000 }
+AXSize: { 84.000000, 47.000000 }
 AXTitle: 
 AXDescription: 
-AXValue: head
 AXFocusable: 0
 AXFocused: 0
 AXSelectable: 0

Added: trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt (0 => 174567)


--- 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)
@@ -0,0 +1,397 @@
+ 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 "PASS" messages, followed by "TEST COMPLETE".
+
+
+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
+

Modified: trunk/LayoutTests/platform/gtk/accessibility/table-attributes-expected.txt (174566 => 174567)


--- 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)
@@ -8,7 +8,7 @@
 South	3333	1111	2222
 --------------------------
 
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 235.000000, 26.000000 }
@@ -27,7 +27,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 235.000000, 26.000000 }
@@ -46,7 +46,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 378.000000, 26.000000 }
@@ -65,7 +65,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 447.000000, 26.000000 }
@@ -84,7 +84,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 447.000000, 26.000000 }
@@ -107,7 +107,7 @@
 
 --------------------------
 
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 227.000000, 26.000000 }
@@ -126,7 +126,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 227.000000, 26.000000 }
@@ -145,7 +145,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 227.000000, 89.000000 }
@@ -164,7 +164,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 227.000000, 89.000000 }
@@ -195,7 +195,7 @@
 
 --------------------------
 
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 227.000000, 26.000000 }
@@ -214,7 +214,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 227.000000, 26.000000 }
@@ -233,7 +233,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 370.000000, 26.000000 }
@@ -252,7 +252,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 439.000000, 26.000000 }
@@ -271,7 +271,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 439.000000, 26.000000 }
@@ -290,7 +290,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 227.000000, 26.000000 }
@@ -309,7 +309,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 227.000000, 26.000000 }
@@ -328,7 +328,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 370.000000, 26.000000 }
@@ -347,7 +347,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 439.000000, 55.000000 }
@@ -366,7 +366,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 491.000000, 55.000000 }
@@ -385,7 +385,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 227.000000, 89.000000 }
@@ -404,7 +404,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 317.000000, 89.000000 }
@@ -480,7 +480,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 227.000000, 89.000000 }
@@ -499,7 +499,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 317.000000, 118.000000 }

Modified: trunk/LayoutTests/platform/gtk/accessibility/table-cells-expected.txt (174566 => 174567)


--- 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)
@@ -10,7 +10,7 @@
 South	3333	1111	2222
 ------------------------
 [0,0]
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 235.000000, 26.000000 }
@@ -30,7 +30,7 @@
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------------------
 [3,1]
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 447.000000, 55.000000 }
@@ -50,7 +50,7 @@
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------------------
 [1,1]
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 227.000000, 26.000000 }

Modified: trunk/LayoutTests/platform/gtk/accessibility/table-sections-expected.txt (174566 => 174567)


--- 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)
@@ -17,7 +17,7 @@
 THEAD, TFOOT table
 --------------------------
 
-AXRole: AXCell
+AXRole: AXColumnHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 363.000000, 60.000000 }
@@ -27,7 +27,7 @@
 AXValue: 1
 AXFocusable: 0
 AXFocused: 0
-AXSelectable: 1
+AXSelectable: 0
 AXSelected: 0
 AXMultiSelectable: 0
 AXEnabled: 1
@@ -36,7 +36,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXColumnHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 383.000000, 60.000000 }
@@ -46,7 +46,7 @@
 AXValue: a
 AXFocusable: 0
 AXFocused: 0
-AXSelectable: 1
+AXSelectable: 0
 AXSelected: 0
 AXMultiSelectable: 0
 AXEnabled: 1
@@ -78,7 +78,7 @@
 
 --------------------------
 
-AXRole: AXCell
+AXRole: AXColumnHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 355.000000, 60.000000 }
@@ -88,7 +88,7 @@
 AXValue: 1
 AXFocusable: 0
 AXFocused: 0
-AXSelectable: 1
+AXSelectable: 0
 AXSelected: 0
 AXMultiSelectable: 0
 AXEnabled: 1
@@ -97,7 +97,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 355.000000, 89.000000 }
@@ -116,7 +116,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 355.000000, 118.000000 }
@@ -163,7 +163,7 @@
 
 --------------------------
 
-AXRole: AXCell
+AXRole: AXColumnHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 355.000000, 60.000000 }
@@ -173,7 +173,7 @@
 AXValue: 1
 AXFocusable: 0
 AXFocused: 0
-AXSelectable: 1
+AXSelectable: 0
 AXSelected: 0
 AXMultiSelectable: 0
 AXEnabled: 1
@@ -182,7 +182,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXColumnHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 375.000000, 60.000000 }
@@ -192,7 +192,7 @@
 AXValue: a
 AXFocusable: 0
 AXFocused: 0
-AXSelectable: 1
+AXSelectable: 0
 AXSelected: 0
 AXMultiSelectable: 0
 AXEnabled: 1
@@ -220,7 +220,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 355.000000, 89.000000 }
@@ -277,7 +277,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 355.000000, 118.000000 }
@@ -403,7 +403,7 @@
 Multi-TBODY table
 --------------------------
 
-AXRole: AXCell
+AXRole: AXColumnHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 355.000000, 60.000000 }
@@ -413,7 +413,7 @@
 AXValue: 1
 AXFocusable: 0
 AXFocused: 0
-AXSelectable: 1
+AXSelectable: 0
 AXSelected: 0
 AXMultiSelectable: 0
 AXEnabled: 1
@@ -422,7 +422,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXColumnHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 375.000000, 60.000000 }
@@ -432,7 +432,7 @@
 AXValue: a
 AXFocusable: 0
 AXFocused: 0
-AXSelectable: 1
+AXSelectable: 0
 AXSelected: 0
 AXMultiSelectable: 0
 AXEnabled: 1
@@ -464,7 +464,7 @@
 
 --------------------------
 
-AXRole: AXCell
+AXRole: AXColumnHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 355.000000, 60.000000 }
@@ -474,7 +474,7 @@
 AXValue: 1
 AXFocusable: 0
 AXFocused: 0
-AXSelectable: 1
+AXSelectable: 0
 AXSelected: 0
 AXMultiSelectable: 0
 AXEnabled: 1
@@ -483,7 +483,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 355.000000, 89.000000 }
@@ -502,7 +502,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 355.000000, 118.000000 }
@@ -549,7 +549,7 @@
 
 --------------------------
 
-AXRole: AXCell
+AXRole: AXColumnHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 355.000000, 60.000000 }
@@ -559,7 +559,7 @@
 AXValue: 1
 AXFocusable: 0
 AXFocused: 0
-AXSelectable: 1
+AXSelectable: 0
 AXSelected: 0
 AXMultiSelectable: 0
 AXEnabled: 1
@@ -568,7 +568,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXColumnHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 375.000000, 60.000000 }
@@ -578,7 +578,7 @@
 AXValue: a
 AXFocusable: 0
 AXFocused: 0
-AXSelectable: 1
+AXSelectable: 0
 AXSelected: 0
 AXMultiSelectable: 0
 AXEnabled: 1
@@ -606,7 +606,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 355.000000, 89.000000 }
@@ -663,7 +663,7 @@
 AXChecked: 0
 AXPlatformAttributes: toolkit:WebKitGtk
 ------------
-AXRole: AXCell
+AXRole: AXRowHeader
 AXParent: AXTable: Example #1: Nested Stubs
 AXChildren: 0
 AXPosition: { 355.000000, 118.000000 }

Copied: trunk/LayoutTests/platform/mac/accessibility/aria-tables-expected.txt (from rev 174563, trunk/LayoutTests/accessibility/aria-tables-expected.txt) (0 => 174567)


--- 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)
@@ -0,0 +1,20 @@
+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
+

Added: trunk/LayoutTests/platform/mac/accessibility/table-roles-hierarchy-expected.txt (0 => 174567)


--- 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)
@@ -0,0 +1,86 @@
+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
+

Modified: trunk/Source/WebCore/ChangeLog (174566 => 174567)


--- 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)
@@ -1,3 +1,29 @@
+2014-10-10  Andrzej Badowski  <[email protected]>
+
+        [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 <th> 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.
+
 2014-10-09  Carlos Garcia Campos  <[email protected]>
 
         MediaPlayer should use a reference for the MediaPlayerClient

Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (174566 => 174567)


--- 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)
@@ -2551,11 +2551,23 @@
     if (node && (node->hasTagName(rpTag) || node->hasTagName(rtTag)))
         return AnnotationRole;
 
-#if PLATFORM(GTK)
+#if PLATFORM(GTK) || PLATFORM(EFL)
     // Gtk ATs expect all tables, data and layout, to be exposed as tables.
-    if (node && (node->hasTagName(tdTag) || node->hasTagName(thTag)))
+    if (node && (node->hasTagName(tdTag)))
         return CellRole;
 
+    if (node && (node->hasTagName(thTag))) {
+        for (Node* parentNode = node->parentNode(); parentNode; parentNode = parentNode->parentNode()) {
+            if (parentNode->hasTagName(theadTag))
+                return ColumnHeaderRole;
+            if (parentNode->hasTagName(tbodyTag) || parentNode->hasTagName(tfootTag))
+                return RowHeaderRole;
+            if (parentNode->hasTagName(tableTag))
+                return CellRole;
+        }
+        return CellRole;
+    }
+
     if (node && node->hasTagName(trTag))
         return RowRole;
 

Modified: trunk/Source/WebCore/accessibility/AccessibilityTableCell.cpp (174566 => 174567)


--- 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)
@@ -108,10 +108,13 @@
     // Even though this object reports a Cell role, the ARIA role will be used
     // to determine if it's a column header.
     AccessibilityRole defaultRole = AccessibilityRenderObject::determineAccessibilityRole();
+#if !PLATFORM(EFL) && !PLATFORM(GTK)
     if (!isTableCell())
         return defaultRole;
     
     return CellRole;
+#endif
+    return defaultRole;
 }
     
 bool AccessibilityTableCell::isTableHeaderCell() const

Modified: trunk/Source/WebCore/accessibility/atk/AccessibilityObjectAtk.cpp (174566 => 174567)


--- 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)
@@ -56,7 +56,7 @@
         return IgnoreObject;
 
     // Include all tables, even layout tables. The AT can decide what to do with each.
-    if (role == CellRole || role == TableRole)
+    if (role == CellRole || role == TableRole || role == ColumnHeaderRole || role == RowHeaderRole)
         return IncludeObject;
 
     // The object containing the text should implement AtkText itself.

Modified: trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp (174566 => 174567)


--- 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)
@@ -662,8 +662,10 @@
     case RadioGroupRole:
     case TabPanelRole:
         return ATK_ROLE_PANEL;
-    case RowHeaderRole: // Row headers are cells after all.
-    case ColumnHeaderRole: // Column headers are cells after all.
+    case RowHeaderRole:
+        return ATK_ROLE_ROW_HEADER;
+    case ColumnHeaderRole:
+        return ATK_ROLE_COLUMN_HEADER;
     case CellRole:
         return coreObject->inheritsPresentationalRole() ? ATK_ROLE_SECTION : ATK_ROLE_TABLE_CELL;
     case LinkRole:
@@ -1175,7 +1177,7 @@
         interfaceMask |= 1 << WAITable;
 
 #if ATK_CHECK_VERSION(2,11,90)
-    if (role == CellRole)
+    if (role == CellRole || role == ColumnHeaderRole || role == RowHeaderRole)
         interfaceMask |= 1 << WAITableCell;
 #endif
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to