| <!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> |