blob: 5390c725a94189a374ee120051df76fb5932ade0 [file] [edit]
<!DOCTYPE HTML>
<html>
<body>
<script src="../resources/js-test.js"></script>
<!-- ==================================================================================================== -->
<!-- HTML elements in alphabetical order, excepting the need for nesting (e.g. <li> is with its <ol> and <ul> parents) -->
<!-- This only tests elements that have an exact 1:1 ARIA role mapping, and computed role overrides. -->
<!-- ==================================================================================================== -->
<div id="content">
<a data-role="link" href="#" data-note="[href]" data-platform="atspi,mac" id="ex0" class="ex">X</a>
<article data-role="article" data-platform="atspi,mac" id="ex1" class="ex">X</article>
<aside data-role="complementary" data-platform="atspi,mac" id="ex2" class="ex">X</aside>
<button data-role="button" data-platform="atspi,mac" id="ex3" class="ex">X</button>
<code data-role="code" data-platform="atspi,mac" id="ex4" class="ex">X</code>
<del data-role="deletion" data-platform="atspi,mac" id="ex5" class="ex">X</ins>
<dfn data-role="term" data-platform="atspi,mac" id="ex6" class="ex">X</dfn>
<dl data-role="" data-platform="atspi,mac" id="ex7" class="ex">
<dt>X</dt>
<dd>X</dd>
</dl>
<footer data-role="contentinfo" data-platform="atspi,mac" id="ex8" class="ex">X</footer>
<form data-role="form" data-platform="atspi,mac" id="ex9" class="ex">X</form>
<header data-role="banner" data-platform="atspi,mac" id="ex10" class="ex">X</header>
<h1 data-role="heading" data-platform="atspi,mac" id="ex11" class="ex">X</h1>
<h2 data-role="heading" data-platform="atspi,mac" id="ex12" class="ex">X</h2>
<h3 data-role="heading" data-platform="atspi,mac" id="ex13" class="ex">X</h3>
<h4 data-role="heading" data-platform="atspi,mac" id="ex14" class="ex">X</h4>
<h5 data-role="heading" data-platform="atspi,mac" id="ex15" class="ex">X</h5>
<h5 data-role="heading" data-platform="atspi,mac" id="ex16" class="ex">X</h6>
<hr data-role="separator" data-platform="atspi,mac" id="ex17" class="ex">
<img data-role="image" data-platform="atspi,mac" id="ex18" class="ex" data-note=":not([src]):not([alt])">
<img data-role="" data-platform="atspi,mac" id="ex19" class="ex" alt="" data-note="[alt='']">
<img data-role="image" data-platform="atspi,mac" id="ex20" class="ex" src="foo.png" data-note="[src]:not([alt])">
<img data-role="image" data-platform="atspi,mac" id="ex21" class="ex" alt="X" data-note="[alt='X']">
<input type="button" value="X" data-role="button" data-platform="atspi,mac" id="ex22" class="ex" data-note="[type='button']">
<input type="checkbox" data-role="checkbox" data-platform="atspi,mac" id="ex23" class="ex" data-note="[type='checkbox']">
<input type="date" data-role="textbox" data-platform="atspi,mac" id="ex24" class="ex" data-note="[type='date']">
<input type="datetime" value="X" data-role="textbox" data-platform="atspi,mac" id="ex25" class="ex" data-note="[type='datetime']">
<input type="datetime-local" value="X" data-role="textbox" data-platform="atspi,mac" id="ex26" class="ex" data-note="[type='datetime-local']">
<input type="email" value="X" data-role="textbox" data-platform="atspi,mac" id="ex27" class="ex" data-note="[type='email']">
<input type="file" data-role="button" data-platform="atspi,mac" id="ex28" class="ex" data-note="[type='file']">
<input type="hidden" data-role="" data-platform="atspi,mac" id="ex29" class="ex" data-note="[type='hidden']">
<input type="image" data-role="button" data-platform="atspi,mac" id="ex30" class="ex" data-note="[type='image']">
<input type="month" value="X" data-role="textbox" data-platform="atspi,mac" id="ex31" class="ex" data-note="[type='month']">
<input type="number" value="X" data-role="textbox" data-platform="atspi,mac" id="ex32" class="ex" data-note="[type='number']">
<input type="password" value="X" data-role="textbox" data-platform="atspi,mac" id="ex33" class="ex" data-note="[type='password']">
<input type="radio" data-role="radio" data-platform="atspi,mac" id="ex34" class="ex" data-note="[type='radio']">
<input type="range" data-role="slider" data-platform="atspi,mac" id="ex35" class="ex" data-note="[type='range']">
<input type="reset" data-role="button" data-platform="atspi,mac" id="ex36" class="ex" data-note="[type='reset']">
<input type="search" value="X" data-role="searchbox" data-platform="atspi,mac" id="ex37" class="ex" data-note="[type='search']">
<input type="submit" data-role="button" data-platform="atspi,mac" id="ex38" class="ex" data-note="[type='submit']">
<input type="tel" value="X" data-role="textbox" data-platform="atspi,mac" id="ex39" class="ex" data-note="[type='tel']">
<input type="text" value="X" data-role="textbox" data-platform="atspi,mac" id="ex40" class="ex" data-note="[type='text']">
<input type="time" value="X" data-role="textbox" data-platform="atspi,mac" id="ex41" class="ex" data-note="[type='time']">
<input type="url" value="X" data-role="textbox" data-platform="atspi,mac" id="ex42" class="ex" data-note="[type='url']">
<input type="week" value="X" data-role="textbox" data-platform="atspi,mac" id="ex43" class="ex" data-note="[type='week']">
<ins data-role="insertion" data-platform="atspi,mac" id="ex44" class="ex">X</ins>
<mark data-role="mark" data-platform="atspi,mac" id="ex45" class="ex">X</mark>
<math data-role="math" data-platform="atspi,mac" id="ex46" class="ex">X</math>
<!-- skipped <menu> -->
<!-- skipped <meta> -->
<!-- renable for atspi after http://webkit.org/b/163383 fixed --><meter data-role="meter" data-platform="mac" id="ex47" class="ex" value="0.75">X</meter>
<nav data-role="navigation" data-platform="atspi,mac" id="ex48" class="ex">X</nav>
<!-- skipped <noscript> -->
<!-- skipped <object> -->
<ol data-role="list" data-platform="atspi,mac" id="ex49" class="ex">
<li data-role="listitem" data-platform="atspi,mac" id="ex50" class="ex">X</li>
</ol>
<!-- skipped <optgroup> -->
<!-- skipped <option> -->
<!-- skipped <output> -->
<p data-role="paragraph" data-platform="atspi,mac" id="ex51" class="ex">X</p>
<!-- skipped <param> -->
<pre data-role="" data-platform="atspi,mac" id="ex52" class="ex">X</pre>
<progress data-role="progressbar" data-platform="atspi,mac" id="ex53" class="ex" value="0.75">X</progress>
<q data-role="" data-platform="atspi,mac" id="ex54" class="ex">X</q>
<!-- skipped <ruby/rp/rt> -->
<s data-role="" data-platform="atspi,mac" id="ex55" class="ex">X</s>
<samp data-role="" data-platform="atspi,mac" id="ex56" class="ex">X</samp>
<!-- skipped <script> -->
<section data-role="" data-platform="atspi,mac" id="ex57" class="ex" data-note=":not([aria-label]:not([aria-labelledby])">X</section>
<section data-role="region" data-platform="atspi,mac" id="ex58" class="ex" aria-label="x" data-note="[aria-label]">X</section>
<section data-role="region" data-platform="atspi,mac" id="ex59" class="ex" aria-labelledby="section-label" data-note="[aria-labelledby]">
<h2 id="section-label">X</h2>
</section>
<select data-role="button" data-platform="atspi,mac" id="ex60" class="ex" data-note=":not([multiple])">
<option data-role="" data-platform="atspi,mac" id="ex61" class="ex">X</option>
<optgroup data-role="" data-platform="atspi,mac" id="ex62" class="ex" label="more">
<option data-role="" data-platform="atspi,mac" id="ex63" class="ex">X</option>
</optgroup>
</select>
<select data-role="listbox" data-platform="atspi,mac" id="ex64" class="ex" multiple data-note="[multiple]">
<option data-role="option" data-platform="atspi,mac" id="ex65" class="ex">X</option>
<optgroup data-role="option" data-platform="atspi,mac" id="ex66" class="ex" label="more">
<option data-role="option" data-platform="atspi,mac" id="ex67" class="ex">Y</option>
<option data-role="option" data-platform="atspi,mac" id="ex68" class="ex">Z</option>
</optgroup>
</select>
<small data-role="" data-platform="atspi,mac" id="ex69" class="ex">X</small>
<span data-role="" data-platform="atspi,mac" id="ex70" class="ex">X</span>
<strong data-role="" data-platform="atspi,mac" id="ex71" class="ex">X</strong>
<sub data-role="subscript" data-platform="atspi,mac" id="ex72" class="ex">X</sub>
<sup data-role="superscript" data-platform="atspi,mac" id="ex73" class="ex">X</sup>
<svg data-role="" data-platform="atspi,mac" id="ex74" class="ex">X</svg>
<table data-role="table" data-platform="atspi,mac" id="ex75" class="ex">
<caption data-role="caption" data-platform="atspi,mac" id="ex76" class="ex">X</caption>
<thead data-role="rowgroup" data-platform="atspi,mac" id="ex77" class="ex">
<tr data-role="row" data-platform="atspi,mac" id="ex78" class="ex">
<th data-role="columnheader" data-platform="atspi,mac" id="ex79" class="ex">X</th>
</tr>
</thead>
<tbody data-role="rowgroup" data-platform="atspi,mac" id="ex80" class="ex">
<tr data-role="row" data-platform="atspi,mac" id="ex81" class="ex">
<td data-role="cell" data-platform="atspi,mac" id="ex82" class="ex">X</td>
</tr>
</tbody>
<tfoot data-role="rowgroup" data-platform="atspi,mac" id="ex83" class="ex">
<tr data-role="row" data-platform="atspi,mac" id="ex84" class="ex">
<td data-role="cell" data-platform="atspi,mac" id="ex85" class="ex">X</td>
</tr>
</tfoot>
</table>
<table role="grid" data-role="grid" data-platform="atspi,mac" id="ex86" class="ex">
<caption data-role="caption" data-platform="atspi,mac" id="ex87" class="ex">X</caption>
<thead data-role="rowgroup" data-platform="atspi,mac" id="ex88" class="ex">
<tr data-role="row" data-platform="atspi,mac" id="ex89" class="ex">
<th data-role="columnheader" data-platform="atspi,mac" id="ex90" class="ex">X</th>
</tr>
</thead>
<tbody data-role="rowgroup" data-platform="atspi,mac" id="ex91" class="ex">
<tr data-role="row" data-platform="atspi,mac" id="ex92" class="ex">
<td role="gridcell" data-role="gridcell" data-platform="atspi,mac" id="ex93" class="ex">X</td>
</tr>
</tbody>
<tfoot data-role="rowgroup" data-platform="atspi,mac" id="ex94" class="ex">
<tr data-role="row" data-platform="atspi,mac" id="ex95" class="ex">
<td role="gridcell" data-role="gridcell" data-platform="atspi,mac" id="ex96" class="ex">X</td>
</tr>
</tfoot>
</table>
<textarea data-role="textbox" data-platform="atspi,mac" id="ex97" class="ex">X</textarea>
<time data-role="time" data-platform="atspi,mac" id="ex98" class="ex">X</time>
<ul data-role="list" data-platform="atspi,mac" id="ex99" class="ex">
<li data-role="listitem" data-platform="atspi,mac" id="ex100" class="ex">X</li>
</ul>
<var data-role="" data-platform="atspi,mac" id="ex101" class="ex">X</var>
<wbr data-role="" data-platform="atspi,mac" id="ex102" class="ex">X</wbr>
<!-- ==================================================================================================== -->
<!-- Abstract ARIA roles in alphabetical order; only generic role should be exposed on abstract roles -->
<!-- ==================================================================================================== -->
<div role="command" data-role="generic" data-platform="atspi,mac" id="ex103" class="ex">X</div>
<div role="composite" data-role="generic" data-platform="atspi,mac" id="ex104" class="ex">X</div>
<div role="input" data-role="generic" data-platform="atspi,mac" id="ex105" class="ex">X</div>
<div role="landmark" data-role="generic" data-platform="atspi,mac" id="ex106" class="ex">X</div>
<div role="range" data-role="generic" data-platform="atspi,mac" id="ex107" class="ex">X</div>
<div role="roletype" data-role="generic" data-platform="atspi,mac" id="ex108" class="ex">X</div>
<div role="section" data-role="generic" data-platform="atspi,mac" id="ex109" class="ex">X</div>
<div role="sectionhead" data-role="generic" data-platform="atspi,mac" id="ex110" class="ex">X</div>
<div role="select" data-role="generic" data-platform="atspi,mac" id="ex111" class="ex">X</div>
<div role="structure" data-role="generic" data-platform="atspi,mac" id="ex112" class="ex">X</div>
<div role="widget" data-role="generic" data-platform="atspi,mac" id="ex113" class="ex">X</div>
<div role="window" data-role="generic" data-platform="atspi,mac" id="ex114" 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="alert" data-platform="atspi,mac" id="ex115" class="ex">X</div>
<div role="alertdialog" data-role="alertdialog" data-platform="atspi,mac" id="ex116" class="ex">X</div>
<div role="application" data-role="application" data-platform="atspi,mac" id="ex117" class="ex">X</div>
<div role="article" data-role="article" data-platform="atspi,mac" id="ex118" class="ex">X</div>
<div role="banner" data-role="banner" data-platform="atspi,mac" id="ex119" class="ex">X</div>
<div role="blockquote" data-role="blockquote" data-platform="atspi,mac" id="ex120" class="ex">X</div>
<div role="button" data-role="button" data-platform="atspi,mac" id="ex121" class="ex">X</div>
<div role="caption" data-role="caption" data-platform="atspi,mac" id="ex122" class="ex">X</div>
<div role="checkbox" data-role="checkbox" data-platform="atspi,mac" id="ex123" class="ex">X</div>
<div role="code" data-role="code" data-platform="atspi,mac" id="ex124" class="ex">X</div>
<div role="combobox" data-role="combobox" data-platform="atspi,mac" id="ex125" class="ex">X</div>
<div role="complementary" data-role="complementary" data-platform="atspi,mac" id="ex126" class="ex">X</div>
<div role="contentinfo" data-role="contentinfo" data-platform="atspi,mac" id="ex127" class="ex">X</div>
<div role="definition" data-role="definition" data-platform="atspi,mac" id="ex128" class="ex">X</div>
<div role="deletion" data-role="deletion" data-platform="atspi,mac" id="ex129" class="ex">X</div>
<div role="dialog" data-role="dialog" data-platform="atspi,mac" id="ex130" class="ex">X</div>
<div role="directory" data-role="list" data-platform="atspi,mac" id="ex131" class="ex">X</div><!-- FIXME: should be directory -->
<div role="document" data-role="document" data-platform="atspi,mac" id="ex132" class="ex">X</div>
<div role="figure" data-role="figure" data-platform="atspi,mac" id="ex133" class="ex">X</div>
<div role="form" data-role="generic" data-platform="atspi,mac" id="ex134" class="ex" data-note=":not([aria-label]:not([aria-labelledby])">X</div>
<div role="form" data-role="form" data-platform="atspi,mac" id="ex135" class="ex" aria-label="x" data-note="[aria-label]">X</div>
<div role="form" data-role="form" data-platform="atspi,mac" id="ex136" class="ex" aria-labelledby="form-label" data-note="[aria-labelledby]">
<h2 id="form-label">X</h2>
</div>
<div role="grid" data-role="grid" data-platform="atspi,mac" id="ex137" class="ex">
<div role="rowgroup" data-role="rowgroup" data-platform="atspi,mac" id="ex138" class="ex">
<div role="row" data-role="row" data-platform="atspi,mac" id="ex139" class="ex">
<div role="rowheader" data-role="rowheader" data-platform="atspi,mac" id="ex140" class="ex">X</div>
<div role="columnheader" data-role="columnheader" data-platform="atspi,mac" id="ex141" class="ex">X</div>
<div role="gridcell" data-role="gridcell" data-platform="atspi,mac" id="ex142" class="ex">X</div>
</div>
</div>
</div>
<div role="feed" data-role="feed" data-platform="atspi,mac" id="ex143" class="ex">X</div>
<div role="group" data-role="group" data-platform="atspi,mac" id="ex144" class="ex">X</div>
<div role="heading" data-role="heading" data-platform="atspi,mac" id="ex145" class="ex">X</div>
<div role="img" data-role="image" data-platform="atspi,mac" id="ex146" class="ex">X</div>
<div role="insertion" data-role="insertion" data-platform="atspi,mac" id="ex147" class="ex">X</div>
<div role="link" data-role="link" data-platform="atspi,mac" id="ex148" class="ex">X</div>
<div role="list" data-role="list" data-platform="atspi,mac" id="ex149" class="ex">
<div role="listitem" data-role="listitem" data-platform="atspi,mac" id="ex150" class="ex">X</div>
</div>
<div role="listbox" data-role="listbox" data-platform="atspi,mac" id="ex151" class="ex">
<div role="option" data-role="option" data-platform="atspi,mac" id="ex152" class="ex">X</div>
</div>
<div role="log" data-role="log" data-platform="atspi,mac" id="ex153" class="ex">X</div>
<div role="main" data-role="main" data-platform="atspi,mac" id="ex154" class="ex">X</div>
<div role="marquee" data-role="marquee" data-platform="atspi,mac" id="ex155" class="ex">X</div>
<div role="math" data-role="math" data-platform="atspi,mac" id="ex156" class="ex">X</div>
<div role="menu" data-role="menu" data-platform="atspi,mac" id="ex157" class="ex">
<div role="menuitem" data-role="menuitem" data-platform="atspi,mac" id="ex158" class="ex">X</div>
<div role="menuitemcheckbox" data-role="menuitemcheckbox" data-platform="atspi,mac" id="ex159" class="ex">X</div>
<div role="menuitemradio" data-role="menuitemradio" data-platform="atspi,mac" id="ex160" class="ex">X</div>
<div role="group" data-role="group" data-platform="atspi,mac" id="ex161" class="ex">
<div role="menuitem" data-role="menuitem" data-platform="atspi,mac" id="ex162" class="ex">x</div>
</div>
</div>
<div role="menubar" data-role="menubar" data-platform="atspi,mac" id="ex163" class="ex">
<div role="menuitem" data-role="menuitem" data-platform="atspi,mac" id="ex164" class="ex">X</div>
<div role="menuitemcheckbox" data-role="menuitemcheckbox" data-platform="atspi,mac" id="ex165" class="ex">X</div>
<div role="menuitemradio" data-role="menuitemradio" data-platform="atspi,mac" id="ex166" class="ex">X</div>
<div role="group" data-role="group" data-platform="atspi,mac" id="ex167" class="ex">
<div role="menuitem" data-role="menuitem" data-platform="atspi,mac" id="ex168" class="ex">x</div>
</div>
</div>
<div role="meter" data-role="meter" data-platform="atspi,mac" id="ex169" class="ex">X</div>
<div role="navigation" data-role="navigation" data-platform="atspi,mac" id="ex170" class="ex">X</div>
<div role="note" data-role="note" data-platform="atspi,mac" id="ex171" class="ex">X</div>
<div role="paragraph" data-role="paragraph" data-platform="atspi,mac" id="ex172" class="ex">X</div>
<div role="presentation" data-role="" data-platform="atspi,mac" id="ex173" class="ex">X</div>
<div role="progressbar" data-role="progressbar" data-platform="atspi,mac" id="ex174" class="ex">X</div>
<div role="radiogroup" data-role="radiogroup" data-platform="atspi,mac" id="ex175" class="ex">
<div role="radio" data-role="radio" data-platform="atspi,mac" id="ex176" class="ex">X</div>
</div>
<div role="region" data-platform="atspi,mac" id="ex177" class="ex" data-role="generic" data-note=":not([aria-label]:not([aria-labelledby])">X</div>
<div role="region" data-platform="atspi,mac" id="ex178" class="ex" data-role="region" aria-label="x" data-note="[aria-label]">X</div>
<div role="region" data-platform="atspi,mac" id="ex179" class="ex" data-role="region" aria-labelledby="region-label" data-note="[aria-labelledby]">
<h2 id="region-label">X</h2>
</div>
<div role="scrollbar" data-role="scrollbar" data-platform="atspi,mac" id="ex180" class="ex">X</div>
<div role="search" data-role="search" data-platform="atspi,mac" id="ex181" class="ex">X</div>
<div role="separator" data-role="separator" data-platform="atspi,mac" id="ex182" class="ex">X</div>
<div role="slider" data-role="slider" data-platform="atspi,mac" id="ex183" class="ex">X</div>
<div role="spinbutton" data-role="spinbutton" data-platform="atspi,mac" id="ex184" class="ex">X</div>
<div role="status" data-role="status" data-platform="atspi,mac" id="ex185" class="ex">X</div>
<div role="subscript" data-role="subscript" data-platform="atspi,mac" id="ex186" class="ex">X</div>
<div role="superscript" data-role="superscript" data-platform="atspi,mac" id="ex187" class="ex">X</div>
<div role="tablist" data-role="tablist" data-platform="atspi,mac" id="ex188" class="ex">
<div role="tab" data-role="tab" data-platform="atspi,mac" id="ex189" class="ex">X</div>
</div>
<div role="tabpanel" data-role="tabpanel" data-platform="atspi,mac" id="ex190" class="ex">X</div>
<div role="textbox" data-role="textbox" data-platform="atspi,mac" id="ex191" class="ex">X</div>
<div role="term" data-role="term" data-platform="atspi,mac" id="ex192" class="ex">X</div>
<div role="time" data-role="time" data-platform="atspi,mac" id="ex193" class="ex">X</div>
<div role="timer" data-role="timer" data-platform="atspi,mac" id="ex194" class="ex">X</div>
<div role="toolbar" data-role="toolbar" data-platform="atspi,mac" id="ex195" class="ex">X</div>
<div role="tooltip" data-role="tooltip" data-platform="atspi,mac" id="ex196" class="ex">X</div>
<div role="tree" data-role="tree" data-platform="atspi,mac" id="ex197" class="ex">
<div role="treeitem" data-role="treeitem" data-platform="atspi,mac" id="ex198" class="ex">X</div>
<div role="group" data-role="group" data-platform="atspi,mac" id="ex199" class="ex">
<div role="treeitem" data-role="treeitem" data-platform="atspi,mac" id="ex200" class="ex">X</div>
</div>
</div>
<div role="treegrid" data-role="treegrid" data-platform="atspi,mac" id="ex201" class="ex">
<div role="rowgroup" data-role="rowgroup" data-platform="atspi,mac" id="ex202" class="ex">
<div role="row" data-role="row" data-platform="atspi,mac" id="ex203" class="ex">
<div role="rowheader" data-role="rowheader" data-platform="atspi,mac" id="ex204" class="ex">X</div>
<div role="columnheader" data-role="columnheader" data-platform="atspi,mac" id="ex205" class="ex">X</div>
<div role="gridcell" data-role="gridcell" data-platform="atspi,mac" id="ex206" class="ex">X</div>
</div>
</div>
</div>
<!-- ==================================================================================================== -->
<!-- generic role attribute parsing tests -->
<!-- ==================================================================================================== -->
<div role="generic" data-role="generic" data-platform="atspi,mac" id="ex207" class="ex">X</div>
<div role="button foo" data-role="button" data-platform="atspi,mac" id="ex208" class="ex">X</div>
<div role="foo button bar" data-role="button" data-platform="atspi,mac" id="ex209" class="ex">X</div>
<div role="foo button bar" data-role="button" data-platform="atspi,mac" id="ex210" class="ex">X</div><!-- [sic] Two spaces in role string -->
<div role="foo button bar" data-role="button" data-platform="atspi,mac" id="ex211" class="ex">X</div><!-- [sic] Tab chars in role string -->
<div role="foo
button
bar" data-role="button" data-platform="atspi,mac" id="ex212" class="ex">X</div><!-- [sic] Newlines in role string -->
<!-- ==================================================================================================== -->
<!-- implicit role parsing tests -->
<!-- ==================================================================================================== -->
<img role="foo" src="foo.png" data-role="image" alt="X" data-platform="atspi,mac" id="ex213" class="ex">
<img role="foo bar" src="foo.png" data-role="image" alt="X" data-platform="atspi,mac" id="ex214" class="ex">
<img role="foo bar" src="foo.png" data-role="image" alt="X" data-platform="atspi,mac" id="ex215" class="ex"><!-- [sic] Two spaces in role string -->
<img role="foo bar" src="foo.png" data-role="image" alt="X" data-platform="atspi,mac" id="ex216" class="ex"><!-- [sic] Newline in role string -->
<img role="foo
bar" src="foo.png" data-role="image" alt="X" data-platform="atspi,mac" id="ex217" class="ex"><!-- [sic] Tab char in role string -->
<img role="text" src="foo.png" data-role="text" alt="X" data-platform="atspi,mac" id="ex218" class="ex">
<img role="text img" src="foo.png" data-role="text" alt="X" data-platform="atspi,mac" id="ex219" class="ex">
<img role="img text" src="foo.png" data-role="image" alt="X" data-platform="atspi,mac" id="ex220" class="ex">
<img role="presentation" data-role="image" data-note="[aria-label]" alt="X" src="foo.png" aria-label="X" data-platform="atspi,mac" id="ex221" class="ex"><!-- presentation with global attr should fallback to implicit role -->
<a href="#" role="foo bar" data-role="link" data-platform="atspi,mac" id="ex222" class="ex">X</a>
</div>
<div id="console"></div>
<script>
if (window.testRunner && window.accessibilityController) {
description("This tests that native elements and ARIA overrides result in the same ARIA computed role, regardless of platform.")
var examples = document.querySelectorAll(".ex");
var el, contentAttrRoleString, axElement, computedAriaRole, output, expectedRole, expectation, result, note;
var currentPlatform = accessibilityController.platformName;
let consoleOutput = "";
for (var i = 0, c = examples.length; i < c; i++) {
el = examples[i];
axElement = accessibilityController.accessibleElementById(el.id);
if (!axElement)
continue;
supportedPlatforms = el.getAttribute('data-platform');
if (!supportedPlatforms || supportedPlatforms.indexOf(currentPlatform) == -1)
continue;
computedAriaRole = axElement.computedRoleString;
contentAttrRoleString = el.getAttribute("role");
note = el.getAttribute("data-note")
output = el.tagName.toLowerCase() + (contentAttrRoleString ? ("[role=\""+contentAttrRoleString+"\"]") : "") + (note ? note : "");
output += " -> ";
output += computedAriaRole;
output += ". ";
expectedRole = "";
if (el.hasAttribute("data-role")) {
expectedRole = el.getAttribute("data-role");
}
expectation = expectedRole;
matchedResults = (computedAriaRole == expectedRole)
if (matchedResults)
consoleOutput += "PASS " + output + "\n";
else
consoleOutput += "FAIL " + output + "Expected: " + expectation + "\n";
}
document.getElementById("console").textContent = consoleOutput;
// Once tests are complete, hide all the example markup.
document.getElementById("content").style.visibility = "hidden";
}
</script>
</body>
</html>