Title: [160447] trunk/LayoutTests
Revision
160447
Author
mario.pr...@samsung.com
Date
2013-12-11 10:58:23 -0800 (Wed, 11 Dec 2013)

Log Message

[ATK] Add new layout test to check ATK roles in a central place
https://bugs.webkit.org/show_bug.cgi?id=125525

Reviewed by Chris Fleizach.

New test added, with some skipped tests already present in
platform/mac/accessibility/role-subrole-roledescription.html (this
test is based in that one) as well as some issues specific to ATK
that have been reported in bugs, for traceability.

* platform/gtk/accessibility/roles-exposed-expected.txt: Added.
* platform/gtk/accessibility/roles-exposed.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (160446 => 160447)


--- trunk/LayoutTests/ChangeLog	2013-12-11 18:25:06 UTC (rev 160446)
+++ trunk/LayoutTests/ChangeLog	2013-12-11 18:58:23 UTC (rev 160447)
@@ -1,3 +1,18 @@
+2013-12-11  Mario Sanchez Prada  <mario.pr...@samsung.com>
+
+        [ATK] Add new layout test to check ATK roles in a central place
+        https://bugs.webkit.org/show_bug.cgi?id=125525
+
+        Reviewed by Chris Fleizach.
+
+        New test added, with some skipped tests already present in
+        platform/mac/accessibility/role-subrole-roledescription.html (this
+        test is based in that one) as well as some issues specific to ATK
+        that have been reported in bugs, for traceability.
+
+        * platform/gtk/accessibility/roles-exposed-expected.txt: Added.
+        * platform/gtk/accessibility/roles-exposed.html: Added.
+
 2013-12-11  Zan Dobersek  <zdober...@igalia.com>
 
         [GTK] Enable Battery Status API

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


--- trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt	2013-12-11 18:58:23 UTC (rev 160447)
@@ -0,0 +1,336 @@
+This tests that native elements and ARIA overrides result in the expected role and role description.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS: a[href]
+      AXRole: AXLink
+      
+PASS: blockquote
+      AXRole: AXGroup
+      
+PASS: button
+      AXRole: AXButton
+      
+PASS: div
+      AXRole: AXSection
+      
+PASS: fieldset
+      AXRole: AXGroup
+      
+PASS: legend
+      AXRole: AXLabel
+      
+PASS: form
+      AXRole: AXForm
+      
+PASS: hgroup
+      AXRole: AXGroup
+      
+PASS: h1
+      AXRole: AXHeading
+      
+PASS: h2
+      AXRole: AXHeading
+      
+PASS: h3
+      AXRole: AXHeading
+      
+PASS: h4
+      AXRole: AXHeading
+      
+PASS: h5
+      AXRole: AXHeading
+      
+PASS: h6
+      AXRole: AXHeading
+      
+PASS: hr
+      AXRole: AXSeparator
+      
+PASS: img[alt='X']
+      AXRole: AXImage
+      
+PASS: input[type='button']
+      AXRole: AXButton
+      
+PASS: input[type='checkbox']
+      AXRole: AXCheckBox
+      
+PASS: input[type='date']
+      AXRole: AXTextField
+      
+PASS: input[type='datetime']
+      AXRole: AXTextField
+      
+PASS: input[type='datetime-local']
+      AXRole: AXTextField
+      
+PASS: input[type='email']
+      AXRole: AXTextField
+      
+PASS: input[type='file']
+      AXRole: AXButton
+      
+PASS: input[type='image']
+      AXRole: AXButton
+      
+PASS: input[type='month']
+      AXRole: AXTextField
+      
+PASS: input[type='number']
+      AXRole: AXTextField
+      
+PASS: input[type='password']
+      AXRole: AXPasswordField
+      
+PASS: input[type='radio']
+      AXRole: AXRadioButton
+      
+PASS: input[type='range']
+      AXRole: AXSlider
+      
+PASS: input[type='reset']
+      AXRole: AXButton
+      
+PASS: input[type='search']
+      AXRole: AXTextField
+      
+PASS: input[type='submit']
+      AXRole: AXButton
+      
+PASS: input[type='tel']
+      AXRole: AXTextField
+      
+PASS: input[type='text']
+      AXRole: AXTextField
+      
+PASS: input[type='time']
+      AXRole: AXTextField
+      
+PASS: input[type='url']
+      AXRole: AXTextField
+      
+PASS: input[type='week']
+      AXRole: AXTextField
+      
+PASS: ol
+      AXRole: AXList
+      
+PASS: li
+      AXRole: AXListItem
+      
+PASS: p
+      AXRole: AXParagraph
+      
+PASS: pre
+      AXRole: AXGroup
+      
+PASS: progress
+      AXRole: AXProgressIndicator
+      
+PASS: select:not([multiple])
+      AXRole: AXComboBox
+      
+PASS: select[multiple]
+      AXRole: AXList
+      
+PASS: option
+      AXRole: AXListItem
+      
+PASS: optgroup
+      AXRole: AXListItem
+      
+PASS: table
+      AXRole: AXTable
+      
+FAIL: tr
+      
+      Expected: AXRow
+
+PASS: th
+      AXRole: AXCell
+      
+FAIL: tr
+      
+      Expected: AXRow
+
+PASS: td
+      AXRole: AXCell
+      
+FAIL: tr
+      
+      Expected: AXRow
+
+PASS: th
+      AXRole: AXCell
+      
+PASS: textarea
+      AXRole: AXTextField
+      
+PASS: ul
+      AXRole: AXList
+      
+PASS: li
+      AXRole: AXListItem
+      
+PASS: div[role=command]
+      AXRole: AXSection
+      
+PASS: div[role=composite]
+      AXRole: AXSection
+      
+PASS: div[role=input]
+      AXRole: AXSection
+      
+PASS: div[role=landmark]
+      AXRole: AXSection
+      
+PASS: div[role=range]
+      AXRole: AXSection
+      
+PASS: div[role=roletype]
+      AXRole: AXSection
+      
+PASS: div[role=section]
+      AXRole: AXSection
+      
+PASS: div[role=sectionhead]
+      AXRole: AXSection
+      
+PASS: div[role=select]
+      AXRole: AXSection
+      
+PASS: div[role=structure]
+      AXRole: AXSection
+      
+PASS: div[role=widget]
+      AXRole: AXSection
+      
+PASS: div[role=window]
+      AXRole: AXSection
+      
+PASS: div[role=alert]
+      AXRole: AXAlert
+      
+PASS: div[role=alertdialog]
+      AXRole: AXAlert
+      
+PASS: div[role=button]
+      AXRole: AXButton
+      
+PASS: div[role=checkbox]
+      AXRole: AXCheckBox
+      
+PASS: div[role=combobox]
+      AXRole: AXComboBox
+      
+PASS: div[role=directory]
+      AXRole: AXList
+      
+PASS: div[role=grid]
+      AXRole: AXTable
+      
+PASS: div[role=rowgroup]
+      
+      
+FAIL: div[role=row]
+      
+      Expected: AXRow
+
+PASS: div[role=gridcell]
+      AXRole: AXCell
+      
+PASS: div[role=group]
+      AXRole: AXGroup
+      
+PASS: div[role=heading]
+      AXRole: AXHeading
+      
+PASS: div[role=img]
+      AXRole: AXImage
+      
+PASS: div[role=link]
+      AXRole: AXLink
+      
+PASS: div[role=list]
+      AXRole: AXList
+      
+PASS: div[role=listitem]
+      AXRole: AXListItem
+      
+FAIL: div[role=listbox]
+      AXRole: AXList
+      Expected: AXListBox
+
+PASS: div[role=option]
+      AXRole: AXListItem
+      
+PASS: div[role=menu]
+      AXRole: AXMenu
+      
+PASS: div[role=menuitem]
+      AXRole: AXMenuItem
+      
+PASS: div[role=menuitemradio]
+      AXRole: AXRadioMenuItem
+      
+PASS: div[role=menubar]
+      AXRole: AXMenuBar
+      
+PASS: div[role=menuitem]
+      AXRole: AXMenuItem
+      
+PASS: div[role=menuitemradio]
+      AXRole: AXRadioMenuItem
+      
+PASS: div[role=progressbar]
+      AXRole: AXProgressIndicator
+      
+PASS: div[role=radiogroup]
+      AXRole: AXGroup
+      
+PASS: div[role=radio]
+      AXRole: AXRadioButton
+      
+PASS: div[role=scrollbar]
+      AXRole: AXScrollBar
+      
+PASS: div[role=separator]
+      AXRole: AXSeparator
+      
+PASS: div[role=slider]
+      AXRole: AXSlider
+      
+PASS: div[role=spinbutton]
+      AXRole: AXSpinButton
+      
+PASS: div[role=tablist]
+      AXRole: AXTabGroup
+      
+PASS: div[role=tab]
+      AXRole: AXTab
+      
+PASS: div[role=textbox]
+      AXRole: AXTextField
+      
+PASS: div[role=toolbar]
+      AXRole: AXToolbar
+      
+PASS: div[role=treegrid]
+      AXRole: AXTable
+      
+PASS: div[role=rowgroup]
+      
+      
+FAIL: div[role=row]
+      
+      Expected: AXRow
+
+PASS: div[role=gridcell]
+      AXRole: AXCell
+      
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/platform/gtk/accessibility/roles-exposed.html (0 => 160447)


--- trunk/LayoutTests/platform/gtk/accessibility/roles-exposed.html	                        (rev 0)
+++ trunk/LayoutTests/platform/gtk/accessibility/roles-exposed.html	2013-12-11 18:58:23 UTC (rev 160447)
@@ -0,0 +1,325 @@
+
+<!DOCTYPE HTML>
+<html>
+<body>
+<script src=""
+
+<!-- ==================================================================================================== -->
+<!-- HTML elements in alphabetical order, excepting the need for nesting (e.g. <li> is with its <ol> and <ul> parents) -->
+<!-- ==================================================================================================== -->
+<a data-role="AXLink" href="" data-note="[href]" class="ex">X</a>
+<!-- skipped ATK: not focusable <a data-role="" data-note=":not([href])" class="ex">X</a>-->
+<!-- skipped ATK: not focusable <abbr data-role="" class="ex">X</abbr>-->
+<!-- http://webkit.org/b/125493 <address data-role="AXLandmarkContentInfo" class="ex">X</address>-->
+<!-- skipped <area> -->
+<!-- http://webkit.org/b/125493 <article data-role="AXArticle" class="ex">X</article>-->
+<!-- http://webkit.org/b/125493 <aside data-role="AXLandmarkComplementary" class="ex">X</aside>-->
+<!-- http://webkit.org/b/125491 <audio data-role="" class="ex">X</audio>-->
+<!-- skipped ATK: not focusable <b data-role="" class="ex">X</b>-->
+<!-- skipped ATK: not focusable <bdo data-role="" class="ex">X</bdo>-->
+<blockquote data-role="AXGroup" class="ex">X</blockquote>
+<button data-role="AXButton" class="ex">X</button>
+<!-- http://webkit.org/b/125491 <canvas data-role="" class="ex">X</canvas>-->
+<!-- http://webkit.org/b/125491 <cite data-role="" class="ex">X</cite>-->
+<!-- http://webkit.org/b/125491 <code data-role="" class="ex">X</code>-->
+<!-- skipped <command> -->
+<!-- skipped <datalist> -->
+<!-- skipped ATK: not focusable <del data-role="" class="ex">X</del>-->
+<!-- skipped <details/summary> http://webkit.org/b/108979 -->
+<!-- skipped <dfn data-role="AXGroup" class="ex">X</dfn> -->
+<!-- http://webkit.org/b/125493 <dl data-role="AXDefinitionList" list" class="ex">-->
+    <!-- http://webkit.org/b/125493 <dt data-role="AXGroup" class="ex">X</dt> -->
+    <!-- http://webkit.org/b/125493 <dd data-role="AXGroup" class="ex">X</dd> -->
+<!-- </dl> -->
+<div data-role="AXSection" class="ex">X</div>
+<!-- skipped ATK: not focusable <em data-role="" class="ex">X</em>-->
+<!-- skipped <embed> -->
+<fieldset data-role="AXGroup" class="ex">
+    <legend data-role="AXLabel" class="ex">X</legend>
+</fieldset>
+<!-- skipped figure/figcaption http://webkit.org/b/108996 -->
+<!-- skipped <footer data-role="AXGroup" class="ex">X</footer> -->
+<form data-role="AXForm" class="ex">X</form>
+<!-- skipped <frame> -->
+<!-- skipped <frameset> -->
+<!-- skipped <head> -->
+<!-- http://webkit.org/b/125493 <header data-role="AXLandmarkBanner" class="ex">X</header>-->
+<hgroup data-role="AXGroup" class="ex">X</hgroup>
+<h1 data-role="AXHeading" class="ex">X</h1>
+<h2 data-role="AXHeading" class="ex">X</h2>
+<h3 data-role="AXHeading" class="ex">X</h3>
+<h4 data-role="AXHeading" class="ex">X</h4>
+<h5 data-role="AXHeading" class="ex">X</h5>
+<h6 data-role="AXHeading" class="ex">X</h6>
+<hr data-role="AXSeparator" class="ex">
+<!-- skipped <html> -->
+<!-- skipped ATK: not focusable <i data-role="" class="ex">X</i>-->
+<!-- skipped <iframe> -->
+<!-- http://webkit.org/b/125491 <img data-role="" class="ex" data-note=":not([src]):not([alt])">-->
+<!-- http://webkit.org/b/125491 <img data-role="" class="ex" alt="" data-note="[alt='']">-->
+<!-- http://webkit.org/b/125491 <img data-role="" class="ex" src="" data-note="[src]:not([alt])">-->
+<img data-role="AXImage" class="ex" alt="X" data-note="[alt='X']">
+<input type="button" value="X" data-role="AXButton" class="ex" data-note="[type='button']">
+<!-- skipped <menu><input type="button"></menu> -->
+<!-- http://webkit.org/b/125493 <input type="color" value="X" data-role="AXColorWell" class="ex" data-note="[type='color']">-->
+<input type="checkbox" data-role="AXCheckBox" class="ex" data-note="[type='checkbox']">
+<!-- skipped <menu><input type="checkbox"></menu> -->
+<!-- http://webkit.org/b/109017 --><input type="date" value="X" data-role="AXTextField" class="ex" data-note="[type='date']">
+<!-- http://webkit.org/b/109017 --><input type="datetime" value="X" data-role="AXTextField" class="ex" data-note="[type='datetime']">
+<!-- http://webkit.org/b/109017 --><input type="datetime-local" value="X" data-role="AXTextField" class="ex" data-note="[type='datetime-local']">
+<!-- http://webkit.org/b/109017 --><input type="email" value="X" data-role="AXTextField" class="ex" data-note="[type='email']">
+<input type="file" data-role="AXButton" class="ex" data-note="[type='file']">
+<!-- skipped ATK: not visible <input type="hidden" data-role="" class="ex" data-note="[type='hidden']">-->
+<input type="image" data-role="AXButton" class="ex" data-note="[type='image']">
+<!-- http://webkit.org/b/109017 --><input type="month" value="X" data-role="AXTextField" class="ex" data-note="[type='month']">
+<!-- http://webkit.org/b/109017 --><input type="number" value="X" data-role="AXTextField" class="ex" data-note="[type='number']">
+<input type="password" value="X" data-role="AXPasswordField" class="ex" data-note="[type='password']">
+<input type="radio" data-role="AXRadioButton" class="ex" data-note="[type='radio']">
+<!-- skipped <menu><input type="radio"></menu> -->
+<input type="range" data-role="AXSlider" class="ex" data-note="[type='range']">
+<input type="reset" data-role="AXButton" class="ex" data-note="[type='reset']">
+<input type="search" value="X" data-role="AXTextField" class="ex" data-note="[type='search']">
+<input type="submit" data-role="AXButton" class="ex" data-note="[type='submit']">
+<!-- http://webkit.org/b/109017 --><input type="tel" value="X" data-role="AXTextField" class="ex" data-note="[type='tel']">
+<input type="text" value="X" data-role="AXTextField" class="ex" data-note="[type='text']">
+<!-- skipped <input type="text"> with suggestions source element: http://www.w3.org/html/wg/drafts/html/master/forms.html#concept-input-list -->
+<!-- http://webkit.org/b/109017 --><input type="time" value="X" data-role="AXTextField" class="ex" data-note="[type='time']">
+<!-- http://webkit.org/b/109017 --><input type="url" value="X" data-role="AXTextField" class="ex" data-note="[type='url']">
+<!-- http://webkit.org/b/109017 --><input type="week" value="X" data-role="AXTextField" class="ex" data-note="[type='week']">
+<!-- skipped ATK: not focusable <ins data-role="" class="ex">X</ins>-->
+<!-- skipped <link> -->
+<!-- skipped <map> -->
+<!-- skipped ATK: not focusable -- http://webkit.org/b/109018 <mark data-role="" class="ex">X</mark>-->
+<!-- http://webkit.org/b/125493 <math data-role="AXMath" class="ex">X</math>-->
+<!-- skipped <menu> -->
+<!-- skipped <meta> -->
+<!-- http://webkit.org/b/125491 <meter data-role="AXProgressIndicator" class="ex" value="0.75">X</meter>-->
+<!-- http://webkit.org/b/125493 <nav data-role="AXLandmarkNavigation" class="ex">X</nav>-->
+<!-- skipped <noscript> -->
+<!-- skipped <object> -->
+<ol data-role="AXList" class="ex">
+    <li data-role="AXListItem" class="ex">X</li>
+</ol>
+<!-- skipped <optgroup> -->
+<!-- skipped <option> -->
+<!-- skipped <output> -->
+<p data-role="AXParagraph" class="ex">X</p>
+<!-- skipped <param> -->
+<pre data-role="AXGroup" class="ex">X</pre>
+<progress data-role="AXProgressIndicator" class="ex" value="0.75">X</progress>
+<!-- skipped ATK: not focusable <q data-role="" class="ex">X</q> -->
+<!-- skipped <ruby/rp/rt> -->
+<!-- skipped ATK: not focusable <s data-role="" class="ex">X</s> -->
+<!-- skipped ATK: not focusable <samp data-role="" class="ex">X</samp> -->
+<!-- skipped <script> -->
+<!-- http://webkit.org/b/125493 <section data-role="AXSection" class="ex">X</section> -->
+<select data-role="AXComboBox" class="ex" data-note=":not([multiple])">
+<!-- http://webkit.org/b/125491 <option data-role="" class="ex">X</option> -->
+<!-- http://webkit.org/b/125491 <optgroup data-role="" class="ex" label="more"> <option>X</option> </optgroup> -->
+</select>
+<select data-role="AXList" class="ex" multiple data-note="[multiple]">
+    <option data-role="AXListItem" class="ex">X</option>
+    <optgroup data-role="AXListItem" class="ex" label="more">
+        <option>Y</option>
+        <option>Z</option>
+    </optgroup>
+</select>
+<!-- skipped ATK: not focusable <small data-role="" class="ex">X</small> -->
+<!-- skipped <source> -->
+<!-- skipped ATK: not focusable <span data-role="" class="ex">X</span> -->
+<!-- skipped ATK: not focusable <strong data-role="" class="ex">X</strong> -->
+<!-- skipped <style> -->
+<!-- skipped ATK: not focusable <sub data-role="" class="ex">X</sub> -->
+<!-- skipped ATK: not focusable <sup data-role="" class="ex">X</sup> -->
+<!-- http://webkit.org/b/125491 <svg data-role="" class="ex">X</svg> -->
+
+<table data-role="AXTable" class="ex">
+<!-- skipped ATK: not to be exposed <caption data-role="" class="ex">X</caption> -->
+    <thead data-role=""><!-- skipped ATK: not to be exposed -->
+        <tr data-role="AXRow" class="ex"><!-- http://webkit.org/b/125491 -->
+            <!-- Need separate test to verify colheader/rowheader -->
+            <th data-role="AXCell" class="ex">X</th>
+        </tr>
+    </thead>
+    <tbody data-role=""><!-- skipped ATK: not to be exposed -->
+        <tr data-role="AXRow" class="ex"><!-- http://webkit.org/b/125491 -->
+            <td data-role="AXCell" class="ex">X</td>
+        </tr>
+    </tbody>
+    <tfoot data-role=""><!-- skipped ATK: not to be exposed -->
+        <tr data-role="AXRow" class="ex"><!-- http://webkit.org/b/125491 -->
+            <!-- Need separate test to verify colheader/rowheader -->
+            <th data-role="AXCell" class="ex">X</th>
+        </tr>
+    </tfoot>
+</table>
+<textarea data-role="AXTextField" class="ex">X</textarea>
+<!-- http://webkit.org/b/125491 <time data-role="" class="ex">X</time> -->
+<!-- skipped <title> -->
+<ul data-role="AXList" class="ex">
+    <li data-role="AXListItem" class="ex">X</li>
+</ul>
+<!-- skipped ATK: not focusable <var data-role="" class="ex">X</var> -->
+<!-- http://webkit.org/b/125491 <video> -->
+<!-- skipped ATK: not focusable <wbr data-role="" class="ex">X</wbr> -->
+<!-- Todo: I left off adding HTML5 elements here at previous element: https://dvcs.w3.org/hg/html-api-map/raw-file/default/Overview.html -->
+
+
+
+<!-- ====================================================================================================== -->
+<!-- Abstract ARIA roles in alphabetical order; only generic AXSection role should be exposed on abstract roles -->
+<!-- ====================================================================================================== -->
+<div role="command"     data-role="AXSection" class="ex">X</div>
+<div role="composite"   data-role="AXSection" class="ex">X</div>
+<div role="input"       data-role="AXSection" class="ex">X</div>
+<div role="landmark"    data-role="AXSection" class="ex">X</div>
+<div role="range"       data-role="AXSection" class="ex">X</div>
+<div role="roletype"    data-role="AXSection" class="ex">X</div>
+<div role="section"     data-role="AXSection" class="ex">X</div>
+<div role="sectionhead" data-role="AXSection" class="ex">X</div>
+<div role="select"      data-role="AXSection" class="ex">X</div>
+<div role="structure"   data-role="AXSection" class="ex">X</div>
+<div role="widget"      data-role="AXSection" class="ex">X</div>
+<div role="window"      data-role="AXSection" class="ex">X</div>
+
+
+<!-- ==================================================================================================== -->
+<!-- Non-abstract ARIA roles in alphabetical order, excepting the need for nesting (e.g. row is with its grid parent) -->
+<!-- ==================================================================================================== -->
+<div role="alert"                    data-role="AXAlert" class="ex">X</div>
+<div role="alertdialog"              data-role="AXAlert" class="ex">X</div>
+<!-- http://webkit.org/b/125493 <div role="application"              data-role="AXEmbedded" class="ex">X</div>-->
+<!-- http://webkit.org/b/125493 <div role="article"                  data-role="AXArticle" class="ex">X</div>-->
+<!-- http://webkit.org/b/125493 <div role="banner"                   data-role="AXLandmarkBanner" class="ex">X</div>-->
+<div role="button"                   data-role="AXButton" class="ex">X</div>
+<div role="checkbox"                 data-role="AXCheckBox" class="ex">X</div>
+<div role="combobox"                 data-role="AXComboBox" class="ex">X</div>
+<!-- http://webkit.org/b/125493 <div role="complementary"            data-role="AXLandmarkComplementary" class="ex">X</div>-->
+<!-- http://webkit.org/b/125493 <div role="contentinfo"              data-role="AXLandmarkContentInfo" class="ex">X</div>-->
+<!-- http://webkit.org/b/125493 <div role="definition"               data-role="AXDefinition" class="ex">X</div>-->
+<!-- http://webkit.org/b/125493 <div role="dialog"                   data-role="AXGroup" class="ex">X</div>-->
+<div role="directory"                data-role="AXList" class="ex">X</div>
+<!-- http://webkit.org/b/125493 <div role="document"                 data-role="AXGroup" class="ex">X</div>-->
+<!-- skipped ATK: wrong role <div role="form"                     data-role="AXForm" class="ex">X</div>-->
+<div role="grid"                     data-role="AXTable" class="ex">
+    <div role="rowgroup"             data-role="" class="ex"><!-- http://webkit.org/b/125491 -->
+        <div role="row"              data-role="AXRow" class="ex"><!-- http://webkit.org/b/125491 -->
+            <!-- Note: diff between rowheader, columnheader, and gridcell is in cross-reference from grid; need additional non-role verification in another test. -->
+            <!-- http://webkit.org/b/125493<div role="rowheader"    data-role="AXCell" class="ex">X</div>-->
+            <!-- http://webkit.org/b/125493<div role="columnheader" data-role="AXCell" class="ex">X</div>-->
+            <div role="gridcell"     data-role="AXCell" class="ex">X</div>
+        </div>
+    </div>
+</div>
+<div role="group"                    data-role="AXGroup" class="ex">X</div>
+<div role="heading"                  data-role="AXHeading" class="ex">X</div>
+<div role="img"                      data-role="AXImage" class="ex">X</div>
+<div role="link"                     data-role="AXLink" class="ex">X</div>
+<div role="list"                     data-role="AXList" class="ex">
+    <div role="listitem"             data-role="AXListItem" class="ex">X</div>
+</div>
+<div role="listbox"                  data-role="AXListBox" class="ex"><!-- http://webkit.org/b/125491 -->
+    <div role="option"               data-role="AXListItem" class="ex">X</div>
+</div>
+<!-- http://webkit.org/b/125493 <div role="log"                      data-role="AXLog" class="ex">X</div>-->
+<!-- http://webkit.org/b/125493 <div role="main"                     data-role="AXLandmarkMain" class="ex">X</div>-->
+<!-- http://webkit.org/b/125493 <div role="marquee"                  data-role="AXMarquee" class="ex">X</div>-->
+<!-- http://webkit.org/b/125493 <div role="math"                     data-role="AXMath" class="ex">X</div>-->
+<div role="menu"                     data-role="AXMenu" class="ex">
+    <!-- Note: diff between menuitem types is an attribute; need additional non-role verification in another test. -->
+    <div role="menuitem"             data-role="AXMenuItem" class="ex">X</div>
+    <!-- http://webkit.org/b/125493 <div role="menuitemcheckbox"     data-role="AXCheckMenuItem" class="ex">X</div>-->
+    <div role="menuitemradio"        data-role="AXRadioMenuItem" class="ex">X</div>
+</div>
+<div role="menubar"                  data-role="AXMenuBar" class="ex">
+    <!-- Note: diff between menuitem types is an attribute; need additional non-role verification in another test. -->
+    <div role="menuitem"             data-role="AXMenuItem" class="ex">X</div>
+    <!-- http://webkit.org/b/125493 <div role="menuitemcheckbox"     data-role="AXCheckMenuItem" class="ex">X</div>-->
+    <div role="menuitemradio"        data-role="AXRadioMenuItem" class="ex">X</div>
+</div>
+<!-- http://webkit.org/b/125493 <div role="navigation"               data-role="AXLandmarkNavigation" class="ex">X</div>-->
+<!-- http://webkit.org/b/125493 <div role="note"                     data-role="AXComment" class="ex">X</div>-->
+<!-- skipped: presentation elements should not be exposed directly <div role="presentation"             data-role="" class="ex">X</div>-->
+<div role="progressbar"              data-role="AXProgressIndicator" class="ex">X</div>
+<div role="radiogroup"               data-role="AXGroup" class="ex">
+    <div role="radio"                data-role="AXRadioButton" class="ex">X</div>
+</div>
+<!-- http://webkit.org/b/125493 <div role="region"                   data-role="AXGroup" class="ex">X</div>-->
+<div role="scrollbar"                data-role="AXScrollBar" class="ex">X</div>
+<!-- http://webkit.org/b/125493 <div role="search"                   data-role="AXLandmarkSearch" class="ex">X</div>-->
+<div role="separator"                data-role="AXSeparator" class="ex">X</div>
+<div role="slider"                   data-role="AXSlider" class="ex">X</div>
+<div role="spinbutton"               data-role="AXSpinButton" class="ex">X</div>
+<!-- http://webkit.org/b/125493 <div role="status"                   data-role="AXGroup" class="ex">X</div>-->
+<div role="tablist"                  data-role="AXTabGroup" class="ex">
+    <div role="tab"                  data-role="AXTab" class="ex">X</div>
+</div>
+<!-- skipped ATK: wrong role <div role="tabpanel"                 data-role="AXGroup" panel" class="ex">X</div>-->
+<div role="textbox"                  data-role="AXTextField" class="ex">X</div>
+<!-- http://webkit.org/b/125493 <div role="timer"                    data-role="AXTimer" class="ex">X</div>-->
+<div role="toolbar"                  data-role="AXToolbar" class="ex">X</div>
+<!-- http://webkit.org/b/125493 <div role="tooltip"                  data-role="AXGroup" class="ex">X</div>-->
+<!-- http://webkit.org/b/125493 <div role="tree"                     data-role="AXOutline" class="ex">-->
+<!-- http://webkit.org/b/125493     <div role="treeitem"             data-role="AXRow" class="ex">X</div>-->
+<!-- http://webkit.org/b/125493     <div role="group"                data-role="" class="ex">-->
+<!-- http://webkit.org/b/125493         <div role="treeitem"         data-role="AXRow" class="ex">X</div>-->
+<!--</div>-->
+<!--</div>-->
+<div role="treegrid"                 data-role="AXTable" class="ex">
+    <div role="rowgroup"             data-role="" class="ex"><!-- http://webkit.org/b/125491 -->
+        <div role="row"              data-role="AXRow" class="ex"><!-- http://webkit.org/b/125491 -->
+            <!-- Note: diff between rowheader, columnheader, and gridcell is in cross-reference from grid; need additional non-role verification in another test. -->
+            <!-- http://webkit.org/b/125493<div role="rowheader"    data-role="AXCell" class="ex">X</div>-->
+            <!-- http://webkit.org/b/125493<div role="columnheader" data-role="AXCell" class="ex">X</div>-->
+            <div role="gridcell"     data-role="AXCell" class="ex">X</div>
+        </div>
+    </div>
+</div>
+
+
+<div id="console"></div>
+<script>
+if (window.testRunner && window.accessibilityController) {
+    description("This tests that native elements and ARIA overrides result in the expected role and role description.")
+    var examples = document.querySelectorAll('.ex');
+    var indent = "\n      "; // newline and six spaces
+    var el, ariaRole, axElement, role, output, expectation, result;
+    for (var i = 0, c = examples.length; i < c; i++) {
+        el = examples[i];
+        el.id = 'ex' + i;
+        ariaRole = el.getAttribute('role');
+        axElement = accessibilityController.accessibleElementById(el.id);
+        if (axElement)
+            role = axElement.role;
+        else
+            role = 'AXRole: ';
+
+        output = el.tagName.toLowerCase() + (ariaRole?("[role="+ariaRole+"]"):'');
+        if (el.getAttribute('data-note')) {
+            output += el.getAttribute('data-note');
+        }
+        output += indent;
+        output += role + indent;
+
+        expectation = el.getAttribute('data-role');
+
+        result = document.getElementById('console');
+
+        // Test AXRole
+        if (role.replace('AXRole: ','') == el.getAttribute('data-role'))
+            result.innerText += "PASS: " + output + "\n";
+        else
+            result.innerText += "FAIL: " + output + "Expected: " + expectation + "\n\n";
+    }
+
+    // Once tests are complete, hide all the example markup.
+    examples = document.querySelectorAll('.ex');
+    for (var i = 0, c = examples.length; i < c; i++) {
+        el = examples[i];
+        el.style.display = 'none';
+    }
+}
+</script>
+<script src=""
+</body>
+</html>
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to