- commit
- 1d3691a9aab4618c22d305f0242fb60d8c857304
- parent
- bf5df09b60161b2aa2657da090e67f03c7d2b8af
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2024-06-21 15:50
update wpt
Diffstat
| M | test/wpt.js | 204 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++------ |
1 files changed, 184 insertions, 20 deletions
diff --git a/test/wpt.js b/test/wpt.js
@@ -1116,49 +1116,61 @@ window.wpt["accname"] = [ 1116 1116 { 1117 1117 "filename": "comp_tooltip.html", 1118 1118 "title": "Name Comp: Tooltip",1119 -1 "html": "<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_tooltip\">#comp_tooltip</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<a href=\"#\" title=\"label\" data-expectedlabel=\"label\" data-testname=\"link label from tooltip\" class=\"ex\"><img src=\"#\" alt=\"\"></a>\n\n<!-- Todo: test all remaining cases of https://w3c.github.io/accname/#comp_tooltip -->",-1 1119 "html": "<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_tooltip\">#comp_tooltip</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<a href=\"#\" title=\"title\" data-expectedlabel=\"title\" data-testname=\"link with img with tooltip label\" class=\"ex\"><img alt=\"\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\"></a>\n<a href=\"#\" title=\"title\" data-expectedlabel=\"title\" data-testname=\"link with text with tooltip label and no contents\" class=\"ex\"></a>\n<a href=\"#\" title=\"title\" data-expectedlabel=\"contents\" data-testname=\"link with text with tooltip label and contents\" class=\"ex\">contents</a>\n<div title=\"title\" role=\"group\" data-expectedlabel=\"title\" data-testname=\"div with text with tooltip label\" class=\"ex\">contents</div><!-- Note: group role disallows nameFrom:contents -->\n<img title=\"title\" data-expectedlabel=\"title\" data-testname=\"img with tooltip label without alt\" class=\"ex\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">\n<img title=\"title\" data-expectedlabel=\"title\" alt=\"\" data-testname=\"img with tooltip label with empty alt\" class=\"ex\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">\n<img title=\"title\" data-expectedlabel=\"alt\" alt=\"alt\" data-testname=\"img with tooltip label with alt\" class=\"ex\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">\n<img data-expectedlabel=\"alt\" alt=\"alt\" data-testname=\"img with tooltip label without title\" class=\"ex\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">\n\n<select title=\"title\" data-expectedlabel=\"title\" data-testname=\"select with tooltip label\" class=\"ex\">\n <option value=\"\" disabled selected>select options</option>\n <option value=\"1\">option 1</option>\n <option value=\"2\">option 2</option>\n <option value=\"3\">option 3</option>\n</select>\n\n\n<!-- TODO: Move these: https://github.com/web-platform-tests/interop-accessibility/issues/78 -->\n<button title=\"title\" data-expectedlabel=\"contents\" data-testname=\"button with tooltip label\" class=\"ex\">contents</button>\n<input type=\"checkbox\" title=\"title\" data-expectedlabel=\"title\" data-testname=\"checkbox input with tooltip label\" class=\"ex\">\n<input type=\"radio\" title=\"title\" data-expectedlabel=\"title\" data-testname=\"radio input with tooltip label\" class=\"ex\">\n\n<!-- TODO: Move these: https://github.com/web-platform-tests/interop-accessibility/issues/78 -->\n<!-- https://w3c.github.io/html-aam/#input-type-text-input-type-password-input-type-number-input-type-search-input-type-tel-input-type-email-input-type-url-and-textarea-element-accessible-name-computation -->\n<input type=\"text\" title=\"title\" data-expectedlabel=\"title\" placeholder=\"placeholder\" data-testname=\"text input with placeholder and tooltip label\" class=\"ex\">\n<input type=\"password\" title=\"title\" data-expectedlabel=\"title\" placeholder=\"placeholder\" data-testname=\"password input with placeholder and tooltip label\" class=\"ex\">\n<input type=\"number\" title=\"title\" data-expectedlabel=\"title\" placeholder=\"placeholder\" data-testname=\"number input with placeholder and tooltip label\" class=\"ex\">\n<input type=\"search\" title=\"title\" data-expectedlabel=\"title\" placeholder=\"placeholder\" data-testname=\"search input with placeholder and tooltip label\" class=\"ex\">\n<input type=\"tel\" title=\"title\" data-expectedlabel=\"title\" placeholder=\"placeholder\" data-testname=\"tel input with placeholder and tooltip label\" class=\"ex\">\n<input type=\"email\" title=\"title\" data-expectedlabel=\"title\" placeholder=\"placeholder\" data-testname=\"email input with placeholder and tooltip label\" class=\"ex\">\n<input type=\"url\" title=\"title\" data-expectedlabel=\"title\" placeholder=\"placeholder\" data-testname=\"url input with placeholder and tooltip label\" class=\"ex\">\n<textarea title=\"title\" data-expectedlabel=\"title\" placeholder=\"placeholder\" data-testname=\"textarea with placeholder and tooltip label\" class=\"ex\"></textarea>\n\n<!-- TODO: Move these: https://github.com/web-platform-tests/interop-accessibility/issues/78 -->\n<!-- https://w3c.github.io/html-aam/#text-level-element-accessible-name-computation -->\n<abbr title=\"Web Platform Tests\" data-expectedlabel=\"Web Platform Tests\" data-testname=\"abbr with tooltip label\" class=\"ex\">WPT</abbr>\n<kbd title=\"Control + Option\" data-expectedlabel=\"Control + Option\" data-testname=\"kbd with tooltip label\" class=\"ex\">CTRL + OPT</kbd>\n\n<!-- TODO: Move these: https://github.com/web-platform-tests/interop-accessibility/issues/78 -->\n<!-- https://w3c.github.io/html-aam/#summary-element-accessible-name-computation -->\n<details>\n <summary title=\"title\" data-expectedlabel=\"contents\" data-testname=\"summary with tooltip label and contents\" class=\"ex\">contents</summary>\n details\n</details>\n\n<!-- TODO: Move these: https://github.com/web-platform-tests/interop-accessibility/issues/78 -->\n<!-- https://w3c.github.io/html-aam/#iframe-element-accessible-name-computation -->\n<iframe title=\"title\" data-expectedlabel=\"title\" data-testname=\"iframe with tooltip label\" width=\"20px\" height=\"20px\" class=\"ex\"></iframe>", 1120 1120 "selector": ".ex" 1121 1121 }, 1122 1122 { 1123 1123 "filename": "comp_hidden_not_referenced.html", 1124 1124 "title": "Name Comp: Hidden Not Referenced",1125 -1 "html": "<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_hidden_not_referenced\">#comp_hidden_not_referenced</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<h2 class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"heading with interior hidden node\">\n heading\n <span hidden>bogus</span>\n label\n</h2>\n\n<!-- Todo: test all remaining cases of https://w3c.github.io/accname/#comp_hidden_not_referenced -->",-1 1125 "html": "<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_hidden_not_referenced\">#comp_hidden_not_referenced</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<button\n class=\"ex\"\n data-expectedlabel=\"visible to all users\"\n data-testname=\"button containing a rendered, unreferenced element that is aria-hidden=true, an unreferenced element with the hidden host language attribute, and an unreferenced element that is unconditionally rendered\"\n>\n <span aria-hidden=\"true\">hidden,</span>\n <span hidden>hidden from all users,</span>\n <span>visible to all users</span>\n</button>\n\n<button\n class=\"ex\"\n data-expectedlabel=\"hidden but referenced,\"\n data-testname=\"button labelled by element that is aria-hidden=true\"\n aria-labelledby=\"button-label-2\"\n>\n <span aria-hidden=\"true\" id=\"button-label-2\">hidden but referenced,</span>\n <span hidden>hidden from all users,</span>\n <span>visible to all users</span>\n</button>\n\n<button\n class=\"ex\"\n data-expectedlabel=\"hidden from all users but referenced,\"\n data-testname=\"button labelled by element with the hidden host language attribute\"\n aria-labelledby=\"button-label-3\"\n>\n <span aria-hidden=\"true\">hidden,</span>\n <span hidden id=\"button-label-3\">hidden from all users but referenced,</span>\n <span>visible to all users</span>\n</button>\n\n<a\n class=\"ex\"\n data-testname=\"link labelled by elements with assorted visibility and a11y tree exposure\"\n data-expectedlabel=\"visible to all users, hidden but referenced, hidden from all users but referenced\"\n href=\"#\"\n aria-labelledby=\"link-label-1a link-label-1b link-label-1c\"\n>\n <span id=\"link-label-1a\">\n <span>visible to all users,</span>\n <span aria-hidden=\"true\">hidden,</span>\n </span>\n <span aria-hidden=\"true\" id=\"link-label-1b\">hidden but referenced,</span>\n <span hidden id=\"link-label-1c\">hidden from all users but referenced</span>\n</a>\n\n<h2\n class=\"ex\"\n data-testname=\"heading with name from content, containing element that is visibility:hidden with nested content that is visibility:visible\"\n data-expectedlabel=\"visible to all users, un-hidden for all users\"\n>\n visible to all users,\n <span style=\"visibility: hidden;\">\n hidden from all users,\n <span style=\"visibility: visible;\">un-hidden for all users</span>\n </span>\n</h2>\n\n<!-- TODO: Test cases once https://github.com/w3c/aria/issues/1256 resolved: -->\n<!-- - button labelled by an element that is aria-hidden=true which contains a nested child that is aria-hidden=false -->\n<!-- - button labelled by an element that is aria-hidden=false which belongs to a parent that is aria-hidden=true -->\n<!-- - heading with name from content, containing rendered content that is aria-hidden=true with nested, rendered content that is aria-hidden=false -->\n<!-- - heading with name from content, containing element with the hidden host language attribute with nested content that is aria-hidden=false -->\n\n<!-- TODO: New test case?\n<!-- What is the expectation for a details element when it\u2019s given an -->\n<!-- explicit role that allows name from contents (e.g., `comment`) -->\n<!-- but is also not in the open state, and therefore has contents -->\n<!-- that are both not rendered and excluded from the a11y tree. -->", 1126 1126 "selector": ".ex" 1127 1127 }, 1128 1128 { 1129 1129 "filename": "comp_label.html", 1130 1130 "title": "Name Comp: Label",1131 -1 "html": "<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_label\">#comp_label</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<div aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on group\" role=\"group\" class=\"ex\">x</div>\n\n<!-- Todo: test all remaining cases of https://w3c.github.io/accname/#comp_label -->",-1 1131 "html": "<h1>AccName: Label Tests</h1>\n<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_label\">#comp_label</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<!-- https://www.w3.org/TR/wai-aria/#namefromauthor -->\n\n<!-- Embedded controls tested in ./comp_embedded_control.html -->\n\n<h2>Elements with roles that support aria-label use</h2>\n<!-- https://www.w3.org/TR/wai-aria/#namefromauthor -->\n\n<div role=\"alert\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with alert role\" class=\"ex\">x</div>\n<div role=\"alertdialog\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with alertdialog role\" class=\"ex\">x</div>\n<div role=\"application\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with application role\" class=\"ex\">x</div>\n<div role=\"article\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with article role\" class=\"ex\">x</div>\n<div role=\"associationlist\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with associationlist role\" class=\"ex\">x</div>\n<div role=\"associationlistitemkey\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with associationlistitemkey role\" class=\"ex\">x</div>\n<div role=\"associationlistitemvalue\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with associationlistitemvalue role\" class=\"ex\">x</div>\n<div role=\"banner\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with banner role\" class=\"ex\">x</div>\n<div role=\"blockquote\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with blockquote role\" class=\"ex\">x</div>\n<div role=\"button\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with button role\" class=\"ex\">x</div>\n<div role=\"cell\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with cell role\" class=\"ex\">x</div>\n<div role=\"checkbox\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with checkbox role\" class=\"ex\">x</div>\n<div role=\"columnheader\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with columnheader role\" class=\"ex\">x</div>\n<div role=\"combobox\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with combobox role\" class=\"ex\">x</div>\n<div role=\"complementary\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with complementary role\" class=\"ex\">x</div>\n<div role=\"contentinfo\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with contentinfo role\" class=\"ex\">x</div>\n<div role=\"dialog\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with dialog role\" class=\"ex\">x</div>\n<div role=\"directory\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with directory role\" class=\"ex\">x</div>\n<div role=\"document\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with document role\" class=\"ex\">x</div>\n<div role=\"feed\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with feed role\" class=\"ex\">x</div>\n<div role=\"figure\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with figure role\" class=\"ex\">x</div>\n<div role=\"form\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with form role\" class=\"ex\">x</div>\n<div role=\"grid\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with grid role\" class=\"ex\">x</div>\n<div role=\"gridcell\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with gridcell role\" class=\"ex\">x</div>\n<div role=\"group\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with group role\" class=\"ex\">x</div>\n<div role=\"heading\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with heading role\" class=\"ex\">x</div>\n<div role=\"img\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with img role\" class=\"ex\">x</div>\n<div role=\"link\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with link role\" class=\"ex\">x</div>\n<div role=\"list\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with list role\" class=\"ex\">x</div>\n<div role=\"listbox\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with listbox role\" class=\"ex\">x</div>\n<div role=\"listitem\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with listitem role\" class=\"ex\">x</div>\n<div role=\"log\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with log role\" class=\"ex\">x</div>\n<div role=\"main\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with main role\" class=\"ex\">x</div>\n<div role=\"marquee\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with marquee role\" class=\"ex\">x</div>\n<div role=\"math\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with math role\" class=\"ex\">x</div>\n<div role=\"menu\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with menu role\" class=\"ex\">x</div>\n<div role=\"menubar\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with menubar role\" class=\"ex\">x</div>\n<div role=\"menuitem\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with menuitem role\" class=\"ex\">x</div>\n<div role=\"menuitemcheckbox\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with menuitemcheckbox role\" class=\"ex\">x</div>\n<div role=\"menuitemradio\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with menuitemradio role\" class=\"ex\">x</div>\n<div role=\"meter\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with meter role\" class=\"ex\">x</div>\n<div role=\"navigation\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with navigation role\" class=\"ex\">x</div>\n<div role=\"note\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with note role\" class=\"ex\">x</div>\n<div role=\"option\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with option role\" class=\"ex\">x</div>\n<div role=\"progressbar\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with progressbar role\" class=\"ex\">x</div>\n<div role=\"radio\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with radio role\" class=\"ex\">x</div>\n<div role=\"radiogroup\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with radiogroup role\" class=\"ex\">x</div>\n<div role=\"region\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with region role\" class=\"ex\">x</div>\n<div role=\"row\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with row role\" class=\"ex\">x</div>\n<div role=\"rowgroup\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with rowgroup role\" class=\"ex\">x</div>\n<div role=\"rowheader\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with rowheader role\" class=\"ex\">x</div>\n<div role=\"scrollbar\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with scrollbar role\" class=\"ex\">x</div>\n<div role=\"search\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with search role\" class=\"ex\">x</div>\n<div role=\"searchbox\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with searchbox role\" class=\"ex\">x</div>\n<div role=\"separator\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with separator role\" class=\"ex\">x</div>\n<div role=\"slider\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with slider role\" class=\"ex\">x</div>\n<div role=\"spinbutton\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with spinbutton role\" class=\"ex\">x</div>\n<div role=\"status\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with status role\" class=\"ex\">x</div>\n<div role=\"switch\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with switch role\" class=\"ex\">x</div>\n<div role=\"tab\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with tab role\" class=\"ex\">x</div>\n<div role=\"table\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with table role\" class=\"ex\">x</div>\n<div role=\"tablist\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with tablist role\" class=\"ex\">x</div>\n<div role=\"tabpanel\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with tabpanel role\" class=\"ex\">x</div>\n<div role=\"textbox\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with textbox role\" class=\"ex\">x</div>\n<div role=\"timer\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with timer role\" class=\"ex\">x</div>\n<div role=\"toolbar\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with toolbar role\" class=\"ex\">x</div>\n<div role=\"tooltip\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with tooltip role\" class=\"ex\">x</div>\n<div role=\"tree\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with tree role\" class=\"ex\">x</div>\n<div role=\"treegrid\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with treegrid role\" class=\"ex\">x</div>\n<div role=\"treeitem\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on div with treeitem role\" class=\"ex\">x</div>\n\n<h2>HTML elements that support aria-label</h2>\n<!-- aria-label permitted on \"all elements of the base markup\" with exceptions: https://w3c.github.io/aria/#aria-label -->\n\n<a href=\"\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on link element\" class=\"ex\">x</a>\n<article aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on article element\" class=\"ex\">x</article>\n<aside aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on aside element\" class=\"ex\">x</aside>\n<blockquote aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on blockquote element\" class=\"ex\">x</blockquote>\n<button aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on button element\" class=\"ex\">x</button>\n<dd aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on dd element\" class=\"ex\">x</dd>\n<dl aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on dl element\" class=\"ex\">x</dl>\n<dt aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on dt element\" class=\"ex\">x</dt>\n<footer aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on footer element\" class=\"ex\">x</footer>\n<fieldset aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on fieldset element\" class=\"ex\">x</fieldset>\n<figure aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on figure element\" class=\"ex\">x</figure>\n<form action=\"\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on form element\" class=\"ex\">x</form>\n<header aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on header element\" class=\"ex\">x</header>\n<h1 aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on h1 element\" class=\"ex\">x</h1>\n<h2 aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on h2 element\" class=\"ex\">x</h2>\n<h3 aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on h3 element\" class=\"ex\">x</h3>\n<h4 aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on h4 element\" class=\"ex\">x</h4>\n<h5 aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on h5 element\" class=\"ex\">x</h5>\n<h6 aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on h6 element\" class=\"ex\">x</h6>\n<hr aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on hr element\" class=\"ex\" />\n<img alt=\"\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on img element\" class=\"ex\" />\n<input type=\"checkbox\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on input type checkbox element\" class=\"ex\"/>\n<input type=\"radio\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on input type radio element\" class=\"ex\" />\n<input type=\"search\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on input type search element\" class=\"ex\" />\n<input type=\"text\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on input type text element\" class=\"ex\" />\n<li aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on listitem element\" class=\"ex\">x</li>\n<main aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on main element\" class=\"ex\">x</main>\n<math aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on math element\" class=\"ex\">x</math>\n<meter aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on meter element\" class=\"ex\">x</meter>\n<nav aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on nav element\" class=\"ex\">x</nav>\n<ol aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on list (ordered) element\" class=\"ex\">x</ol>\n<section aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on section element\" class=\"ex\">x</section>\n<select aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on select element\" class=\"ex\">x</select>\n<select>\n <option aria-label=\"label\" value=\"foo\" data-expectedlabel=\"label\" data-testname=\"label valid on option element\" class=\"ex\">x</option>\n</select>\n<table aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on table element\" class=\"ex\">\n <thead aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on thead element\" class=\"ex\">\n <tr>\n <th scope=\"col\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on th element with the scope of col\" class=\"ex\">x</th>\n <th scope=\"row\" aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on th (scope row) element\" class=\"ex\">x</th>\n </tr>\n </thead>\n <tbody aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on tbody element\" class=\"ex\">\n <tr aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on tr element\" class=\"ex\">\n <td aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on td element\" class=\"ex\">x</td>\n <td>x</td>\n </tr>\n </tbody>\n <tfoot aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on tfoot element\" class=\"ex\">\n <tr>\n <td>x</td>\n <td>x</td>\n </tr>\n </tfoot>\n</table>\n<textarea aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on textarea element\" class=\"ex\">x</textarea>\n<ul aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on list (unordered) element\" class=\"ex\">x</ul>\n\n<h2>Name computation precedence tests</h2>\n<!-- Name computation: https://w3c.github.io/accname/#computation-steps -->\n\n<!-- Step 2A: Hidden Not Referenced supercedes 2D: AriaLabel, also see wpt/accname/name/comp_hidden_not_referenced.html -->\n<button aria-labelledby=\"span1\" aria-label=\"foo\" data-expectedlabel=\"label\" data-testname=\"button's hidden referenced name (display:none) supercedes aria-label\" class=\"ex\">\n <span id=\"span1\" style=\"display:none;\">\n <span id=\"span2\" style=\"display:none;\">label</span>\n </span>\nx\n</button>\n\n<button aria-labelledby=\"span3\" aria-label=\"foo\" data-expectedlabel=\"label\" data-testname=\"button's hidden referenced name (visibility:hidden) supercedes aria-label\" class=\"ex\">\n <span id=\"span3\" style=\"visibility:hidden;\">\n <span id=\"span4\" style=\"visibility:hidden;\">label</span>\n </span>\n x\n</button>\n\n<button aria-labelledby=\"span5\" aria-label=\"foo\" data-expectedlabel=\"foo\" data-testname=\"button's hidden referenced name (visibility:hidden) with hidden aria-labelledby traversal falls back to aria-label\" class=\"ex\">\n <span id=\"span5\">\n <span id=\"span6\" style=\"visibility:hidden;\">label</span>\n </span>\n x\n</button>\n\n<span style=\"display: none\">\n<button data-expectedlabel=\"\" data-testname=\"Hidden button's label should be the empty string\" class=\"ex\">\nx\n</button>\n</span>\n\n<!-- Step 2B: LabelledBy supercedes 2D: AriaLabel, also see wpt/accname/name/comp_labelledby.html -->\n<a href=\"#\" aria-labelledby=\"span7\" aria-label=\"foo\" data-expectedlabel=\"label\" data-testname=\"link's aria-labelledby name supercedes aria-label\" class=\"ex\">x</a>\n<span id=\"span7\">label</span>\n\n<!-- Step 2C: Embedded Control labelling supercedes 2D: AriaLabel, see wpt/accname/name/comp_embedded_control.html -->\n\n<!-- Step 2E: Host Language Label is superceded by 2D: AriaLabel, also see wpt/accname/name/comp_host_language_label.html -->\n<img alt=\"alt\" aria-label=\"foo\" data-expectedlabel=\"foo\" data-testname=\"img's aria-label supercedes alt attribute\" class=\"ex\" />\n\n<svg aria-label=\"foo\" data-expectedlabel=\"foo\" data-testname=\"svg's aria-label supercedes title tag\" class=\"ex\">\n <circle cx=\"5\" cy=\"5\" r=\"4\">\n <title>circle</title>\n </circle>\n</svg>\n\n<label for=\"input1\">label</label>\n<input type=\"text\" id=\"input1\" aria-label=\"foo\" data-expectedlabel=\"foo\" data-testname=\"input with label for association is superceded by aria-label\" class=\"ex\" />\n\n<!-- Step 2F: Name From Content is superceded by 2D: AriaLabel, also see wpt/accname/name/comp_name_from_content.html -->\n<button aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"button name from contents is superceded by aria-label\" class=\"ex\">x</button>\n\n<!-- Step 2G: Text Node is superceded by 2D: AriaLabel, also see wpt/accname/name/comp_text_node.html -->\n<h1 aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"h1 text is superceded by aria-label\" class=\"ex\">x</h1>\n\n<!-- Step 2H: Recursive Name from Content, see wpt/accname/name/comp_name_from_content.html -->\n\n<!-- Step 2I: Tooltip is superceded by 2D: AriaLabel, also see wpt/accname/name/comp_tooltip.html -->\n<button aria-label=\"label\" title=\"foo\" data-expectedlabel=\"label\" data-testname=\"button with title is superceded by aria-label\" class=\"ex\">x</button>\n\n<h2>Empty/whitespace aria-label tests</h2>\n<!--\n- AccName computation links to the following definition of \"Whitespace\": https://infra.spec.whatwg.org/#ascii-whitespace\n- Generally, if the current node has an aria-label attribute whose value is not the empty string (including when trimmed of whitespace), return the value of aria-label.\n\nNote: PR for computedLabel whitespace trimming in aria-utils.js: https://github.com/web-platform-tests/wpt/pull/42407/files#diff-6870d82f11ff11cf7c7b544756cecfdac2046acbfe2fbb0640e6d415fbf99916\n\n-->\n\n<textarea aria-label=\"label \" data-expectedlabel=\"label\" data-testname=\"textarea's name with trailing whitespace in aria-label is valid\" class=\"ex\">x</textarea>\n<a href=\"#\" aria-label=\" label\" data-expectedlabel=\"label\" data-testname=\"link's name with leading whitespace in aria-label is valid\" class=\"ex\">x</a>\n<button aria-label=\"\u2800\" data-expectedlabel=\"\u2800\" data-testname=\"button with blank braille pattern has name as such (not treated as whitespace per Unicode standard)\" class=\"ex\">my button</button>\n<div role=\"alert\" aria-label=\"\nalert message\" data-expectedlabel=\"alert message\" data-testname=\"div with role alert and carriage return in aria-label is valid\" class=\"ex\">x</div>\n<a href=\"#\" aria-label=\" label\" data-expectedlabel=\"label\" data-testname=\"link's name with tab in aria-label is valid\" class=\"ex\">x</a>\n<button aria-label=\"\flabel\" data-expectedlabel=\"label\" data-testname=\"button with leading form feed control character in aria-label is valid\" class=\"ex\">my button</button>\n<nav aria-label=\"label \" data-expectedlabel=\"label \" data-testname=\"nav with trailing nbsp char aria-label is valid (nbsp is preserved in name)\" class=\"ex\">x</nav>\n<button aria-label=\" label\" data-expectedlabel=\" label\" data-testname=\"button with leading nbsp char in aria-label is valid (and uses aria-label)\" class=\"ex\">my button</button>\n\n<button aria-label=\"\" data-testname=\"button with empty aria-label does not use aria-label as name\" data-expectedlabel=\"my button\" class=\"ex\">my button</button>\n<textarea aria-label=\" \" title=\"title\" data-testname=\"textarea with tab character as aria-label does not use aria-label as name\" data-expectedlabel=\"title\" class=\"ex\">textarea contents</textarea>\n<button aria-label=\"\n\" data-testname=\"button with carriage return as aria-label does not use aria-label as name\" data-expectedlabel=\"my button\" class=\"ex\">my button</button>\n<button aria-label=\" \" data-testname=\"button with space characters as aria-label does not use aria-label as name\" data-expectedlabel=\"my button\" class=\"ex\">my button</button>", 1132 1132 "selector": ".ex" 1133 1133 }, 1134 1134 { 1135 1135 "filename": "comp_name_from_content.html", 1136 1136 "title": "Name Comp: Name From Content",1137 -1 "html": "<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_name_from_content\">#comp_name_from_content</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<h1 data-expectedlabel=\"label\" data-testname=\"heading name from content\" class=\"ex\">label</h1>\n\n<!--\n\nTodo: test all remaining cases of https://w3c.github.io/accname/#comp_name_from_content\n - comp_name_from_content_reset\n - comp_name_from_content_pseudo_element\n - comp_name_from_content_pseudo_element_before\n - comp_name_from_content_pseudo_element_after\n - comp_name_from_content_for_each_child\n - comp_name_from_content_for_each_child_set_current\n - comp_name_from_content_for_each_child_recursion\n - comp_for_each_child_append\n - comp_name_from_content_return\n\nTodo: test all remaining *recursive* cases in https://w3c.github.io/accname/#comp_recursive_name_from_content\n\n-->",-1 1137 "html": "<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_name_from_content\">#comp_name_from_content</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<p>This series of tests exercises the button, heading, and link elements, because each have different characteristics worthy of testing in each of the name computation algorithm scenarios:</p>\n<ul>\n <li>button is a leaf node with sub-level elements presentational.</li>\n <li>heading is block level, and can contain sub-level interactives like links.</li>\n <li>link (a[href]) is an interactive inline element that can include non-presentational descendants.</li>\n</ul>\n\n<h1>ARIA roles, inline</h1>\n<span tabindex=\"0\" role=\"button\" data-expectedlabel=\"label\" data-testname=\"aria button name from content, inline\" class=\"ex\">label</span><br>\n<span tabindex=\"0\" role=\"heading\" data-expectedlabel=\"label\" data-testname=\"aria heading name from content, inline\" class=\"ex\">label</span><br>\n<span tabindex=\"0\" role=\"link\" data-expectedlabel=\"label\" data-testname=\"aria link name from content, inline\" class=\"ex\">label</span><br>\n<br>\n\n<h1>ARIA roles, block</h1>\n<div tabindex=\"0\" role=\"button\" data-expectedlabel=\"label\" data-testname=\"aria button name from content, block\" class=\"ex\">label</div>\n<div tabindex=\"0\" role=\"heading\" data-expectedlabel=\"label\" data-testname=\"aria heading name from content, block\" class=\"ex\">label</div>\n<div tabindex=\"0\" role=\"link\" data-expectedlabel=\"label\" data-testname=\"aria link name from content, block\" class=\"ex\">label</div>\n<br>\n\n<h1>simple</h1>\n<button data-expectedlabel=\"label\" data-testname=\"button name from content\" class=\"ex\">label</button><br>\n<h3 data-expectedlabel=\"label\" data-testname=\"heading name from content\" class=\"ex\">label</h3>\n<a href=\"#\" data-expectedlabel=\"label\" data-testname=\"link name from content\" class=\"ex\">label</a><br>\n<br>\n\n<h1>simple with ::before</h1>\n<button data-expectedlabel=\"before label\" data-testname=\"button name from content with ::before\" class=\"ex simple-before\">label</button><br>\n<h3 data-expectedlabel=\"before label\" data-testname=\"heading name from content with ::before\" class=\"ex simple-before\">label</h3>\n<a href=\"#\" data-expectedlabel=\"before label\" data-testname=\"link name from content with ::before\" class=\"ex simple-before\">label</a><br>\n<br>\n\n<h1>simple with ::after</h1>\n<button data-expectedlabel=\"label after\" data-testname=\"button name from content with ::after\" class=\"ex simple-after\">label</button><br>\n<h3 data-expectedlabel=\"label after\" data-testname=\"heading name from content with ::after\" class=\"ex simple-after\">label</h3>\n<a href=\"#\" data-expectedlabel=\"label after\" data-testname=\"link name from content with ::after\" class=\"ex simple-after\">label</a><br>\n<br>\n\n<h1>simple with ::before and ::after</h1>\n<button data-expectedlabel=\"before label after\" data-testname=\"button name from content with ::before and ::after\" class=\"ex simple-before simple-after\">label</button><br>\n<h3 data-expectedlabel=\"before label after\" data-testname=\"heading name from content with ::before and ::after\" class=\"ex simple-before simple-after\">label</h3>\n<a href=\"#\" data-expectedlabel=\"before label after\" data-testname=\"link name from content with ::before and ::after\" class=\"ex simple-before simple-after\">label</a><br>\n<br>\n\n<h1>no space joiners ::before and ::after</h1>\n<button data-expectedlabel=\"nospacelabelnospace\" data-testname=\"button name from content no space joiners ::before and ::after\" class=\"ex no-space\">label</button><br>\n<h3 data-expectedlabel=\"nospacelabelnospace\" data-testname=\"heading name from content no space joiners ::before and ::after\" class=\"ex no-space\">label</h3>\n<a href=\"#\" data-expectedlabel=\"nospacelabelnospace\" data-testname=\"link name from content no space joiners ::before and ::after\" class=\"ex no-space\">label</a><br>\n<br>\n\n<h1>Arabic right-to-left (RTL) with ::before and ::after</h1>\n<div dir=\"rtl\" lang=\"ar\">\n <button data-expectedlabel=\"\u0645\u0646 \u0642\u0628\u0644 \u0627\u0633\u0645 \u0628\u0639\u062f\" data-testname=\"button name from content with ::before and ::after in rtl\" class=\"ex simple-before simple-after\">\u0627\u0633\u0645</button><br>\n <h3 data-expectedlabel=\"\u0645\u0646 \u0642\u0628\u0644 \u0627\u0633\u0645 \u0628\u0639\u062f\" data-testname=\"heading name from content with ::before and ::after in rtl\" class=\"ex simple-before simple-after\">\u0627\u0633\u0645</h3>\n <a href=\"#\" data-expectedlabel=\"\u0645\u0646 \u0642\u0628\u0644 \u0627\u0633\u0645 \u0628\u0639\u062f\" data-testname=\"link name from content with ::before and ::after in rtl\" class=\"ex simple-before simple-after\">\u0627\u0633\u0645</a><br>\n</div>\n<br>\n\n<h1><a href=\"https://drafts.csswg.org/css-content/#alt\">Alternative Text for CSS content (previously `alt:`)</a> in pseudo-elements</h1>\n<p>rendered text should be \"before label after\"</p>\n<p>accessibility label should be \"alt-before label alt-after\"</p>\n<button data-expectedlabel=\"alt-before label alt-after\" data-testname=\"button name from fallback content with ::before and ::after\" class=\"ex fallback-before fallback-after\">label</button><br>\n<h3 data-expectedlabel=\"alt-before label alt-after\" data-testname=\"heading name from fallback content with ::before and ::after\" class=\"ex fallback-before fallback-after\">label</h3>\n<a href=\"#\" data-expectedlabel=\"alt-before label alt-after\" data-testname=\"link name from fallback content with ::before and ::after\" class=\"ex fallback-before fallback-after\">label</a><br>\n<br>\n\n<h1><a href=\"https://drafts.csswg.org/css-content/#alt\">Mixed Alternative Text (attr() and strings) for CSS content (previously `alt:`)</a> in pseudo-elements</h1>\n<p>rendered text should be \"before label after\"</p>\n<p>accessibility label should be \"start alt-before end label start alt-after end\"</p>\n<button data-alt-text-before=\"alt-before\" data-alt-text-after=\"alt-after\" data-expectedlabel=\"start alt-before end label start alt-after end\" data-testname=\"button name from fallback content mixing attr() and strings with ::before and ::after\" class=\"ex fallback-before-mixed fallback-after-mixed\">label</button><br>\n<h3 data-alt-text-before=\"alt-before\" data-alt-text-after=\"alt-after\" data-expectedlabel=\"start alt-before end label start alt-after end\" data-testname=\"heading name from fallback content mixing attr() and strings with ::before and ::after\" class=\"ex fallback-before-mixed fallback-after-mixed\">label</h3>\n<a href=\"#\" data-alt-text-before=\"alt-before\" data-alt-text-after=\"alt-after\" data-expectedlabel=\"start alt-before end label start alt-after end\" data-testname=\"link name from fallback content mixing attr() and strings with ::before and ::after\" class=\"ex fallback-before-mixed fallback-after-mixed\">label</a><br>\n<br>\n\n<h1>Empty alternative text for CSS content in pseudo-elements when applied to primitive appearance form controls</h1>\n<p><input data-expectedlabel=\"\" data-testname=\"primitive radio input with ::before containing empty alternative text\" class=\"ex fallback-before-empty\" type=radio style=appearance:none>\n<p><input data-expectedlabel=\"\" data-testname=\"primitive radio input with ::before containing empty alternative text for an image\" class=\"ex fallback-before-image-empty\" type=radio style=appearance:none>\n\n<h1>simple w/ for each child</h1>\n<button data-expectedlabel=\"one two three\" data-testname=\"button name from content for each child\" class=\"ex\"><span>one</span> <span>two</span> <span>three</span></button><br>\n<h3 data-expectedlabel=\"one two three\" data-testname=\"heading name from content for each child\" class=\"ex\"><span>one</span> <span>two</span> <span>three</span></h3>\n<a href=\"#\" data-expectedlabel=\"one two three\" data-testname=\"link name from content for each child\" class=\"ex\"><span>one</span> <span>two</span> <span>three</span></a><br>\n<br>\n\n<h1>simple for each child with image</h1>\n<button data-expectedlabel=\"one two three\" data-testname=\"button name from content for each child including image\" class=\"ex\"><span>one</span> <img alt=\"two\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\"> <span>three</span></button><br>\n<h3 data-expectedlabel=\"one two three\" data-testname=\"heading name from content for each child including image\" class=\"ex\"><span>one</span> <img alt=\"two\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\"> <span>three</span></h3>\n<a href=\"#\" data-expectedlabel=\"one two three\" data-testname=\"link name from content for each child including image\" class=\"ex\"><span>one</span> <img alt=\"two\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\"> <span>three</span></a><br>\n<br>\n\n\n<h1>simple for each child with extra nesting containing image</h1>\n<button data-expectedlabel=\"one two three four\" data-testname=\"button name from content for each child including nested image\" class=\"ex\"><span>one</span> <span>two <img alt=\"three\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\"></span> <span>four</span></button><br>\n<h3 data-expectedlabel=\"one two three four\" data-testname=\"heading name from content for each child including nested image\" class=\"ex\"><span>one</span> <span>two <img alt=\"three\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\"></span> <span>four</span></h3>\n<a href=\"#\" data-expectedlabel=\"one two three four\" data-testname=\"link name from content for each child including nested image\" class=\"ex\"><span>one</span> <span>two <img alt=\"three\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\"></span> <span>four</span></a><br>\n<br>\n\n<h1>heading with nested button with nested image</h1>\n<h3 data-expectedlabel=\"heading button image button heading\" data-testname=\"heading name from content for each child including nested button with nested image\" class=\"ex\">\n heading\n <button>\n button\n <img alt=\"image\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">\n button\n </button>\n heading\n</h3>\n\n<h1>heading with nested link with nested image</h1>\n<h3 data-expectedlabel=\"heading link image link heading\" data-testname=\"heading name from content for each child including nested link with nested image\" class=\"ex\">\n heading\n <a href=\"#\">\n link\n <img alt=\"image\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">\n link\n </a>\n heading\n</h3>\n\n<h1>heading with nested link with nested image using aria-label</h1>\n<h3 data-expectedlabel=\"heading link aria-label heading\" data-testname=\"heading name from content for each child including nested link using aria-label with nested image\" class=\"ex\">\n heading\n <a href=\"#\" aria-label=\"link aria-label\"><!-- should skip the other link text -->\n ignored link text\n <img id=\"nested_image_label_1\" alt=\"ignored image alt\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">\n ignored link text\n </a>\n heading\n</h3>\n\n<h1>heading with nested link with nested image using aria-labelledby</h1>\n<h3 data-expectedlabel=\"heading image heading\" data-testname=\"heading name from content for each child including nested link using aria-labelledby with nested image\" class=\"ex\">\n heading\n <a href=\"#\" aria-labelledby=\"nested_image_label1\"><!-- should skip the other link text -->\n ignored link text\n <img id=\"nested_image_label1\" alt=\"image\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">\n ignored link text\n </a>\n heading\n</h3>\n\n<h1>heading with two nested links referencing image using aria-labelledby</h1>\n<h3 data-expectedlabel=\"image link2 link3\" data-testname=\"heading name from content for each child including two nested links using aria-labelledby with nested image\" class=\"ex\">\n <a href=\"#\" aria-labelledby=\"nested_image_label2\">\n link1<!-- this text is skipped because of aria-labelledby -->\n </a>\n <a href=\"#\" data-expectedlabel=\"link2 image link3\" data-testname=\"link name from content for each child including nested image (referenced elsewhere via labelledby)\" class=\"ex\">\n link2\n <img id=\"nested_image_label2\" alt=\"image\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">\n <!-- image skipped in this link (when computing heading text) because it was already referenced by the first link within this heading label recursion cycle. -->\n <!-- but image not skipped when computing the text of the link itself since it has not been referenced in that context -->\n link3\n </a>\n</h3>\n\n\n<!-- Note: The following test is out of line with the spec, but matching two out of three implementations at the time of writing, and spec changes are expeected. -->\n<!-- See details in https://github.com/w3c/accname/issues/205 -->\n<!-- Final spec resolution will be addressed in AccName Whitespace Project: https://github.com/w3c/accname/projects/1#card-42288231 -->\n<h1>simple w/ for each child (w/o spaces and display:inline)</h1>\n<button data-expectedlabel=\"onetwothree\" data-testname=\"button name from content for each child (no space, inline)\" class=\"ex\"><span>one</span><span>two</span><span>three</span></button><br>\n<h3 data-expectedlabel=\"onetwothree\" data-testname=\"heading name from content for each child (no space, inline)\" class=\"ex\"><span>one</span><span>two</span><span>three</span></h3>\n<a href=\"#\" data-expectedlabel=\"onetwothree\" data-testname=\"link name from content for each child (no space, inline)\" class=\"ex\"><span>one</span><span>two</span><span>three</span></a><br>\n<br>\n\n<h1>simple w/ for each child (w/o spaces and display:block)</h1>\n<button data-expectedlabel=\"one two three\" data-testname=\"button name from content for each child (no space, display:block)\" class=\"ex block\"><span>one</span><span>two</span><span>three</span></button><br>\n<h3 data-expectedlabel=\"one two three\" data-testname=\"heading name from content for each child (no space, display:block)\" class=\"ex block\"><span>one</span><span>two</span><span>three</span></h3>\n<a href=\"#\" data-expectedlabel=\"one two three\" data-testname=\"link name from content for each child (no space, display:block)\" class=\"ex block\"><span>one</span><span>two</span><span>three</span></a><br>\n<br>\n\n<h1>simple w/ for each child (w/o spaces and display:inline block)</h1>\n<button data-expectedlabel=\"one two three\" data-testname=\"button name from content for each child (no space, display:inline-block)\" class=\"ex iblock\"><span>one</span><span>two</span><span>three</span></button><br>\n<h3 data-expectedlabel=\"one two three\" data-testname=\"heading name from content for each child (no space, display:inline-block)\" class=\"ex iblock\"><span>one</span><span>two</span><span>three</span></h3>\n<a href=\"#\" data-expectedlabel=\"one two three\" data-testname=\"link name from content for each child (no space, display:inline-block)\" class=\"ex iblock\"><span>one</span><span>two</span><span>three</span></a><br>\n<br>", -1 1138 "selector": ".ex" -1 1139 }, -1 1140 { -1 1141 "filename": "comp_name_from_content.tentative.html", -1 1142 "title": "Name Comp: Name From Content (Tentative)", -1 1143 "html": "<!--\n These aria-labelledby tests may not be valid, pending spec discussion.\n See https://github.com/w3c/accname/issues/209\n-->\n\n<!-- cross-referencial edge case-->\n<h1>heading with link referencing image using aria-labelledby, that in turn references text element via aria-labelledby</h1>\n<h3 data-expectedlabel=\"image link\" data-testname=\"heading with link referencing image using aria-labelledby, that in turn references text element via aria-labelledby\" class=\"ex\">\n <a href=\"#\" aria-labelledby=\"nested_image_label3\">\n <span class=\"note\" id=\"crossref_link\">link</span><!-- this text is skipped the first time around because of aria-labelledby on parent element -->\n </a>\n <!-- but it's picked up again in inverse order b/c of cross-referencial aria-labelledby edge case -->\n <img id=\"nested_image_label3\" alt=\"image\" aria-labelledby=\"crossref_link\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">\n</h3>\n\n<!-- self-referencial edge case-->\n<h1>heading with link referencing image using aria-labelledby, that in turn references itself and another element via aria-labelledby</h1>\n<h3 data-expectedlabel=\"image link\" data-testname=\"heading with link referencing image using aria-labelledby, that in turn references itself and another element via aria-labelledby\" class=\"ex\">\n <a href=\"#\" aria-labelledby=\"nested_image_label4\">\n <span class=\"note\" id=\"crossref_link2\">link</span><!-- this text is skipped the first time around because of aria-labelledby on parent element -->\n </a>\n <!-- but it's picked up again (after the self-referencial image alt) in inverse order b/c of cross-referencial aria-labelledby edge case -->\n <img id=\"nested_image_label4\" alt=\"image\" aria-labelledby=\"nested_image_label4 crossref_link2\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">\n</h3>", -1 1144 "selector": ".ex" -1 1145 }, -1 1146 { -1 1147 "filename": "comp_labelledby_hidden_nodes.html", -1 1148 "title": "Name Comp: Labelledby & Hidden Nodes", -1 1149 "html": "<p>Tests hidden node name computation as part of the <a href=\"https://w3c.github.io/accname/#comp_labelledby\">#comp_labelledby</a> portion of the AccName <em>Name Computation</em> algorithm.</p>\n\n<!--\n\n These tests verify browser conformance with the following note as part of accName computation Step 2B:\n\n \"The result of LabelledBy Recursion in combination with Hidden Not Referenced means\n that user agents MUST include all nodes in the subtree as part of\n the accessible name or accessible description, when the node referenced\n by aria-labelledby or aria-describedby is hidden.\"\n\n-->\n\n<h2>Testing with <code>display:none</code></h2>\n\n <button aria-labelledby=\"a11\" data-expectedlabel=\"foo bar\" data-testname=\"button with aria-labelledby using display:none hidden span (with nested span)\" class=\"ex\">x</button>\n <span id=\"a11\" style=\"display: none;\">\n foo\n <span id=\"a12\">bar</span>\n </span>\n\n <button aria-labelledby=\"a21\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using display:none hidden span (with nested spans, depth 2)\" class=\"ex\">x</button>\n <span id=\"a21\" style=\"display: none;\">\n foo\n <span id=\"a22\">\n bar\n <span id=\"a23\">baz</span>\n </span>\n </span>\n\n <button aria-labelledby=\"a31\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without display:none (with nested display:none spans, depth 2)\" class=\"ex\">x</button>\n <span id=\"a31\">\n foo\n <span id=\"a32\" style=\"display: none;\">\n bar\n <span id=\"a33\">baz</span>\n </span>\n </span>\n\n <button aria-labelledby=\"a41\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using display:none hidden span (with nested sibling spans)\" class=\"ex\">x</button>\n <span id=\"a41\" style=\"display: none;\">\n foo\n <span id=\"a42\">bar</span>\n <span id=\"a43\">baz</span>\n </span>\n\n <button aria-labelledby=\"a51\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without display:none (with nested display:none sibling spans)\" class=\"ex\">x</button>\n <span id=\"a51\">\n foo\n <span id=\"a52\" style=\"display: none;\">bar</span>\n <span id=\"a53\" style=\"display: none;\">baz</span>\n </span>\n\n <button aria-labelledby=\"a61\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using span with display:none (with nested display:inline sibling spans)\" class=\"ex\">x</button>\n <span id=\"a61\" style=\"display: none;\">\n foo\n <span id=\"a62\" style=\"display: inline;\">bar</span>\n <span id=\"a63\" style=\"display: inline;\">baz</span>\n </span>\n\n<h2>Testing with <code>visibility:hidden</code></h2>\n\n <button aria-labelledby=\"b11\" data-expectedlabel=\"foo bar\" data-testname=\"button with aria-labelledby using visibility:hidden span (with nested span)\" class=\"ex\">x</button>\n <span id=\"b11\" style=\"visibility: hidden;\">\n foo\n <span id=\"b12\">bar</span>\n </span>\n\n <button aria-labelledby=\"b21\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using visibility:hidden span (with nested spans, depth 2)\" class=\"ex\">x</button>\n <span id=\"b21\" style=\"visibility: hidden;\">\n foo\n <span id=\"b22\">\n bar\n <span id=\"b23\">baz</span>\n </span>\n </span>\n\n <button aria-labelledby=\"b31\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without visibility:hidden (with nested visibility:hidden spans, depth 2)\" class=\"ex\">x</button>\n <span id=\"b31\">\n foo\n <span id=\"b32\" style=\"visibility: hidden;\">\n bar\n <span id=\"b33\">baz</span>\n </span>\n </span>\n\n <button aria-labelledby=\"b41\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using visibility:hidden hidden span (with nested sibling spans)\" class=\"ex\">x</button>\n <span id=\"b41\" style=\"visibility: hidden;\">\n foo\n <span id=\"b42\">bar</span>\n <span id=\"b43\">baz</span>\n </span>\n\n <button aria-labelledby=\"b51\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without visibility:hidden (with nested visibility:hidden sibling spans)\" class=\"ex\">x</button>\n <span id=\"b51\">\n foo\n <span id=\"b52\" style=\"visibility: hidden;\">bar</span>\n <span id=\"b53\" style=\"visibility: hidden;\">baz</span>\n </span>\n\n <button aria-labelledby=\"b61\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using span with visibility:hidden (with nested visibility:visible sibling spans)\" class=\"ex\">x</button>\n <span id=\"b61\" style=\"visibility: hidden;\">\n foo\n <span id=\"b62\" style=\"visibility: visible;\">bar</span>\n <span id=\"b63\" style=\"visibility: visible;\">baz</span>\n </span>\n\n<h2>Testing with <code>visibility:collapse</code></h2>\n\n <button aria-labelledby=\"c11\" data-expectedlabel=\"foo bar\" data-testname=\"button with aria-labelledby using visibility:collapse span (with nested span)\" class=\"ex\">x</button>\n <span id=\"c11\" style=\"visibility: collapse;\">\n foo\n <span id=\"c12\">bar</span>\n </span>\n\n <button aria-labelledby=\"c21\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using visibility:collapse span (with nested spans, depth 2)\" class=\"ex\">x</button>\n <span id=\"c21\" style=\"visibility: collapse;\">\n foo\n <span id=\"c22\">\n bar\n <span id=\"c23\">baz</span>\n </span>\n </span>\n\n <button aria-labelledby=\"c31\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using span without visibility:collapse (with nested visibility:visible spans, depth 2)\" class=\"ex\">x</button>\n <span id=\"c31\">\n foo\n <span id=\"c32\" style=\"visibility: visible;\">\n bar\n <span id=\"c33\" style=\"visibility: visible;\">baz</span>\n </span>\n </span>\n\n <button aria-labelledby=\"c41\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using visibility:collapse span (with nested sibling spans)\" class=\"ex\">x</button>\n <span id=\"c41\" style=\"visibility: collapse;\">\n foo\n <span id=\"c42\">bar</span>\n <span id=\"c43\">baz</span>\n </span>\n\n <button aria-labelledby=\"c51\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without visibility:collapse (with nested visibility:collapse sibling spans)\" class=\"ex\">x</button>\n <span id=\"c51\">\n foo\n <span id=\"c52\" style=\"visibility: collapse;\">bar</span>\n <span id=\"c53\" style=\"visibility: collapse;\">baz</span>\n </span>\n\n <button aria-labelledby=\"c61\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using span with visibility:collapse (with nested visible sibling spans)\" class=\"ex\">x</button>\n <span id=\"c61\" style=\"visibility: collapse;\">\n foo\n <span id=\"c62\" style=\"visibility: visible;\">bar</span>\n <span id=\"c63\" style=\"visibility: visible;\">baz</span>\n </span>\n\n<h2>Testing with <code>aria-hidden</code></h2>\n\n <button aria-labelledby=\"d11\" data-expectedlabel=\"foo bar\" data-testname=\"button with aria-labelledby using aria-hidden span (with nested span)\" class=\"ex\">x</button>\n <span id=\"d11\" aria-hidden=\"true\">\n foo\n <span id=\"d12\">bar</span>\n </span>\n\n <button aria-labelledby=\"d21\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using aria-hidden span (with nested spans, depth 2)\" class=\"ex\">x</button>\n <span id=\"d21\" aria-hidden=\"true\">\n foo\n <span id=\"d22\">\n bar\n <span id=\"d23\">baz</span>\n </span>\n </span>\n\n <button aria-labelledby=\"d31\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without aria-hidden (with nested aria-hidden spans, depth 2)\" class=\"ex\">x</button>\n <span id=\"d31\">\n foo\n <span id=\"d32\" aria-hidden=\"true\">\n bar\n <span id=\"d33\">baz</span>\n </span>\n </span>\n\n <button aria-labelledby=\"d41\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using aria-hidden hidden span (with nested sibling spans)\" class=\"ex\">x</button>\n <span id=\"d41\" aria-hidden=\"true\">\n foo\n <span id=\"d42\">bar</span>\n <span id=\"d43\">baz</span>\n </span>\n\n<h2>Testing with <code>hidden</code> attribute</h2>\n\n <button aria-labelledby=\"e11\" data-expectedlabel=\"foo bar\" data-testname=\"button with aria-labelledby using HTML5 hidden span (with nested span)\" class=\"ex\">x</button>\n <span id=\"e11\" hidden>\n foo\n <span id=\"e12\">bar</span>\n </span>\n\n <button aria-labelledby=\"e21\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using HTML5 hidden span (with nested spans, depth 2)\" class=\"ex\">x</button>\n <span id=\"e21\" hidden>\n foo\n <span id=\"e22\">\n bar\n <span id=\"e23\">baz</span>\n </span>\n </span>\n\n <button aria-labelledby=\"e31\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without HTML5 hidden (with nested HTML5 hidden spans, depth 2)\" class=\"ex\">x</button>\n <span id=\"e31\">\n foo\n <span id=\"e32\" hidden>\n bar\n <span id=\"e33\">baz</span>\n </span>\n </span>\n\n <button aria-labelledby=\"e41\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using HTML5 hidden span (with nested hidden sibling spans)\" class=\"ex\">x</button>\n <span id=\"e41\" hidden>\n foo\n <span id=\"e42\">bar</span>\n <span id=\"e43\">baz</span>\n </span>\n\n <button aria-labelledby=\"e51\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without HTML5 hidden (with nested hidden sibling spans)\" class=\"ex\">x</button>\n <span id=\"e51\">\n foo\n <span id=\"e52\" hidden>bar</span>\n <span id=\"e53\" hidden>baz</span>\n </span>", 1138 1150 "selector": ".ex" 1139 1151 }, 1140 1152 { 1141 1153 "filename": "comp_labelledby.html", 1142 1154 "title": "Name Comp: Labelledby",1143 -1 "html": "<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_labelledby\">#comp_labelledby</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<div role=\"group\" aria-labelledby=\"h\" class=\"ex\" data-expectedlabel=\"div group label\" data-testname=\"div group explicitly labelledby heading\">\n <h2 id=\"h\">div group label</h2>\n <p>text inside div group</p>\n</div>\n\n<!--\n\nTodo: test all remaining cases of https://w3c.github.io/accname/#comp_labelledby\n - comp_labelledby_reset\n - comp_labelledby_foreach\n - comp_labelledby_set_current\n - comp_labelledby_recursion\n - comp_labelledby_append\n - comp_labelledby_return\n\n-->",-1 1155 "html": "<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_labelledby\">#comp_labelledby</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<!--\n\n Some overlap with other aria-labelledby tests in:\n - /accname/name/comp_label.html (aria-labelledby / aria-label fallback, etc.)\n - /accname/name/comp_name_from_content.html\n - /accname/name/shadowdom/*\n\n-->\n\n<div role=\"group\" aria-labelledby=\"h\" class=\"ex\" data-expectedlabel=\"first heading\" data-testname=\"div group explicitly labelledby heading\">\n <h2 id=\"h\">first heading</h2>\n <p>text inside div group</p>\n</div>\n\n<div role=\"group\" aria-label=\"self label\" id=\"g2\" aria-labelledby=\"g2 h2\" class=\"ex\" data-expectedlabel=\"self label + first heading\" data-testname=\"div group explicitly labelledby self and heading\">\n <h2 id=\"h2\">+ first heading</h2>\n <p>text inside div group</p>\n</div>\n\n<nav aria-labelledby=\"s1 s2 s3 s4\" class=\"ex\" data-expectedlabel=\"verify spaces between foreach\" data-testname=\"nav with verified spaces appended between each of IDREFS\">\n <span id=\"s1\">verify</span><span id=\"s2\">spaces</span><span>FAIL IF INCLUDED</span><span id=\"s3\">between</span><span id=\"s4\">foreach</span>\n</nav>\n\n<!--\n\n BLOCKED on https://github.com/w3c/accname/issues/209\n\n Once that's resolved, it may be worthwhile to add a new ./comp_labelledby_recursion.html file,\n so that the implementation diffs rolling in don't penalize this Interop 2024 test.\n\n All remaining cases of https://w3c.github.io/accname/#comp_labelledby\n - comp_labelledby_reset\n - comp_labelledby_foreach\n - comp_labelledby_set_current\n - comp_labelledby_recursion\n - comp_labelledby_append\n - comp_labelledby_return\n\n-->", 1144 1156 "selector": ".ex" 1145 1157 }, 1146 1158 { 1147 1159 "filename": "comp_text_node.html", 1148 1160 "title": "Name Comp: Text Node",1149 -1 "html": "<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_text_node\">#comp_text_node</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<!-- I'm not certain whether #comp_text_node requires a lot of testing outside of the #comp_name_from_content contexts, -->\n<!-- but I did think of one example where text node versus comment node may make a difference when joining text nodes with a space vs innerText. -->\n\n<!-- Skipped (class=\"ex\" removed) until https://github.com/w3c/accname/issues/193 is resolved -->\n<h2 class=\"ex-skipped\" data-expectedlabel=\"heading label\" data-testname=\"heading with text/comment/text nodes, no space\">\n heading<!-- with non-text node splitting concatenated text nodes -->label<!-- [sic] no extra spaces around first comment -->\n</h2>\n\n\n<h2 class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"heading with text/comment/text nodes, with space\">\n heading\n <!-- comment node between text nodes with leading/trailing whitespace -->\n label\n</h2>\n\n\n<!-- Todo: test all remaining cases of https://w3c.github.io/accname/#comp_text_node -->",-1 1161 "html": "<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_text_node\">#comp_text_node</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<!--\n\n Note: some overlap with the tests in:\n - /accname/name/comp_label.html\n - /accname/name/comp_name_from_content.html\n\n-->\n\n<h1>text/element/text nodes, no space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"buttonlabel\" data-testname=\"span[role=button] with text/element/text nodes, no space\">button<span></span>label</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"headinglabel\" data-testname=\"div[role=heading] with text/element/text nodes, no space\">heading<span></span>label</div>\n<button class=\"ex\" data-expectedlabel=\"buttonlabel\" data-testname=\"button with text/element/text nodes, no space\">button<span></span>label</button>\n<h3 class=\"ex\" data-expectedlabel=\"headinglabel\" data-testname=\"heading with text/element/text nodes, no space\">heading<span></span>label</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"linklabel\" data-testname=\"link with text/element/text nodes, no space\">link<span></span>label</a>\n<br>\n\n<h1>text/comment/text nodes, no space</h1>\n<!-- Note: This set is not currently to spec until https://github.com/w3c/accname/issues/193 is resolved. -->\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"buttonlabel\" data-testname=\"span[role=button] with text/comment/text nodes, no space\">\n button<!-- with non-text node splitting concatenated text nodes -->label<!-- [sic] no extra spaces around first comment -->\n</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"headinglabel\" data-testname=\"div[role=heading] with text/comment/text nodes, no space\">\n heading<!-- with non-text node splitting concatenated text nodes -->label<!-- [sic] no extra spaces around first comment -->\n</div>\n<button class=\"ex\" data-expectedlabel=\"buttonlabel\" data-testname=\"button with text/comment/text nodes, no space\">\n button<!-- with non-text node splitting concatenated text nodes -->label<!-- [sic] no extra spaces around first comment -->\n</button>\n<h3 class=\"ex\" data-expectedlabel=\"headinglabel\" data-testname=\"heading with text/comment/text nodes, no space\">\n heading<!-- with non-text node splitting concatenated text nodes -->label<!-- [sic] no extra spaces around first comment -->\n</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"linklabel\" data-testname=\"link with text/comment/text nodes, no space\">\n link<!-- with non-text node splitting concatenated text nodes -->label<!-- [sic] no extra spaces around first comment -->\n</a>\n<br>\n\n<h1>text/comment/text nodes, with space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"span[role=button] with text/comment/text nodes, with space\">\n button\n <!-- comment node between text nodes with leading/trailing whitespace -->\n label\n</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"div[role=heading] with text/comment/text nodes, with space\">\n heading\n <!-- comment node between text nodes with leading/trailing whitespace -->\n label\n</div>\n<button class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"button with text/comment/text nodes, with space\">\n button\n <!-- comment node between text nodes with leading/trailing whitespace -->\n label\n</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"heading with text/comment/text nodes, with space\">\n heading\n <!-- comment node between text nodes with leading/trailing whitespace -->\n label\n</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link label\" data-testname=\"link with text/comment/text nodes, with space\">\n link\n <!-- comment node between text nodes with leading/trailing whitespace -->\n label\n</a>\n<br>\n\n<h1>text node, with tab char</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"span[role=button] with text node, with tab char\">button label</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"div[role=heading] with text node, with tab char\">heading label</div>\n<button class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"button with text node, with tab char\">button label</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"heading with text node, with tab char\">heading label</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link label\" data-testname=\"link with text node, with tab char\">link\tlabel</a>\n<br>\n\n<h1>text node, with non-breaking space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"span[role=button] with text node, with non-breaking space\">button label</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"div[role=heading] with text node, with non-breaking space\">heading label</div>\n<button class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"button with text node, with non-breaking space\">button label</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"heading with text node, with non-breaking space\">heading label</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link label\" data-testname=\"link with text node, with non-breaking space\">link label</a>\n<br>\n\n<h1>text node, with extra non-breaking space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"span[role=button] with text node, with extra non-breaking space\">button label</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"div[role=heading] with text node, with extra non-breaking space\">heading label</div>\n<button class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"button with text node, with extra non-breaking space\">button label</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"heading with text node, with extra non-breaking space\">heading label</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link label\" data-testname=\"link with text node, with extra non-breaking space\">link label</a>\n<br>\n\n<h1>text node, with leading/trailing non-breaking space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\" button label \" data-testname=\"span[role=button] with text node, with leading/trailing non-breaking space\"> button label </span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\" heading label \" data-testname=\"div[role=heading] with text node, with leading/trailing non-breaking space\"> heading label </div>\n<button class=\"ex\" data-expectedlabel=\" button label \" data-testname=\"button with text node, with leading/trailing non-breaking space\"> button label </button>\n<h3 class=\"ex\" data-expectedlabel=\" heading label \" data-testname=\"heading with text node, with leading/trailing non-breaking space\"> heading label </h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\" link label \" data-testname=\"link with text node, with leading/trailing non-breaking space\"> link label </a>\n<br>\n\n<h1>text node, with mixed space and non-breaking space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"span[role=button] with text node, with mixed space and non-breaking space\">button label</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"div[role=heading] with text node, with mixed space and non-breaking space\">heading label</div>\n<button class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"button with text node, with mixed space and non-breaking space\">button label</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"heading with text node, with mixed space and non-breaking space\">heading label</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link label\" data-testname=\"link with text node, with mixed space and non-breaking space\">link label</a>\n<br>\n\n<h1>text nodes, with deeply nested space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"span[role=button] with text node, with deeply nested space\">\nbutton<span><span><span><span><span><span><span> </span></span></span></span></span></span></span>label\n</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"div[role=heading] with text node, with deeply nested space\">\nheading<span><span><span><span><span><span><span> </span></span></span></span></span></span></span>label\n</div>\n<button class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"button with text node, with deeply nested space\">\nbutton<span><span><span><span><span><span><span> </span></span></span></span></span></span></span>label\n</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"heading with text node, with deeply nested space\">\nheading<span><span><span><span><span><span><span> </span></span></span></span></span></span></span>label\n</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link label\" data-testname=\"link with text node, with deeply nested space\">\nlink<span><span><span><span><span><span><span> </span></span></span></span></span></span></span>label\n</a>\n<br>\n\n<h1>text nodes, with single line break</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"span[role=button] with text node, with single line break\">button\nlabel</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"div[role=heading] with text node, with single line break\">heading\nlabel</div>\n<button class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"button with text node, with single line break\">button\nlabel</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"heading with text node, with single line break\">heading\nlabel</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link label\" data-testname=\"link with text node, with single line break\">link\nlabel</a>\n<br>", 1150 1162 "selector": ".ex" 1151 1163 }, 1152 1164 { 1153 1165 "filename": "comp_embedded_control.html", 1154 1166 "title": "Name Comp: Embedded Control",1155 -1 "html": "<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_embedded_control\">#comp_embedded_control</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<label>\n <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded textfield\" class=\"ex\">\n Flash the screen\n <input value=\"3\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded textfield inside checkbox label\" class=\"ex\"> times\n</label>\n\n\n<!--\n\nTodo: test all remaining cases of https://w3c.github.io/accname/#comp_embedded_control\n - comp_embedded_control_textbox\n - comp_embedded_control_combobox_or_listbox\n - comp_embedded_control_range\n - comp_embedded_control_range_valuetext\n - comp_embedded_control_range_valuenow\n - comp_embedded_control_range_host_language_value\n\n-->",-1 1167 "html": "<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_embedded_control\">#comp_embedded_control</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<!-- Textfield (textbox) -->\n<label>\n <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded textfield\" class=\"ex\">\n Flash the screen\n <input value=\"3\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded textfield inside checkbox label\" class=\"ex\"> times\n</label>\n<br><br>\n\n<!-- HTML select:not([size]) element renders as menu button (on Mac) or single-row listbox (on Windows/Linux) -->\n<label>\n <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded select:not([size])\" class=\"ex\">\n Flash the screen\n <select aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded select:not([size]) inside checkbox label\" class=\"ex\">\n <option value=\"1\">1</option>\n <option value=\"2\">2</option>\n <option value=\"3\" selected>3</option>\n <option value=\"4\">4</option>\n <option value=\"5\">5</option>\n </select>\n times\n</label>\n<br><br>\n\n<!-- HTML select[size] element renders as multi-row listbox -->\n<label>\n <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded select[size]\" class=\"ex\">\n Flash the screen\n <select size=5 aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded select[size] inside checkbox label\" class=\"ex\">\n <option value=\"1\">1</option>\n <option value=\"2\">2</option>\n <option value=\"3\" selected>3</option>\n <option value=\"4\">4</option>\n <option value=\"5\">5</option>\n </select>\n times\n</label>\n<br><br>\n\n<!-- ARIA combobox examples (not interactive) -->\n<label>\n <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded combobox (input[type=text])\" class=\"ex\">\n Flash the screen\n <input role=\"combobox\" value=\"3\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded combobox (input[type=text]) inside checkbox label\" class=\"ex\"> times\n</label>\n<br><br>\n<label>\n <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded combobox (span)\" class=\"ex\">\n Flash the screen\n <span role=\"combobox\" tabindex=\"0\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded combobox (span) inside checkbox label\" class=\"ex\">3</span> times\n</label>\n<br><br>\n<label>\n <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded combobox (div)\" class=\"ex\">\n Flash the screen\n <div style=\"display: inline-block;\" role=\"combobox\" tabindex=\"0\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded combobox (div) inside checkbox label\" class=\"ex\">3</div> times\n</label>\n<br><br>\n<!-- Todo: we may want another combobox example using aria-activedescendant? -->\n\n\n<!-- ARIA listbox examples (not interactive) -->\n<label>\n <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded listbox>option[aria-selected=true]\" class=\"ex\">\n Flash the screen\n <ul role=\"listbox\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded listbox>option[aria-selected=true] inside checkbox label\" class=\"ex\" style=\"padding:0; list-style:none; border: solid 1px gray; width: 15em; display: inline-block;\">\n <li role=\"option\" tabindex=\"-1\" style=\"padding:0.2em 0.8em; list-style:none;\">1</li>\n <li role=\"option\" tabindex=\"-1\" style=\"padding:0.2em 0.8em; list-style:none;\">2</li>\n <li role=\"option\" tabindex=\"0\" aria-selected=\"true\" style=\"padding:0.2em 0.8em; list-style:none; color: white; background-color: #555;\">3</li>\n <li role=\"option\" tabindex=\"-1\" style=\"padding:0.2em 0.8em; list-style:none;\">4</li>\n <li role=\"option\" tabindex=\"-1\" style=\"padding:0.2em 0.8em; list-style:none;\">5</li>\n </ul> times\n</label>\n<br><br>\n\n\n<!-- Ranges: HTML native and ARIA sliders and steppers (valuetext, valuenow, host language specific) -->\n<label>\n <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded input[type=range]\" class=\"ex\">\n Flash the screen\n <input type =\"range\" min=\"1\" max=\"5\" value=\"3\" step=\"1\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded input[type=range] inside checkbox label\" class=\"ex\"> times\n</label>\n<br><br>\n<label>\n <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded input[type=number]\" class=\"ex\">\n Flash the screen\n <input type =\"number\" min=\"1\" max=\"5\" value=\"3\" step=\"1\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded input[type=number] inside checkbox label\" class=\"ex\"> times\n</label>\n<br><br>\n<label>\n <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded ARIA slider (aria-valuenow)\" class=\"ex\">\n Flash the screen\n <span tabindex=\"0\" role=\"slider\" aria-valuemin=\"1\" aria-valuemax=\"5\" aria-valuenow=\"3\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded ARIA slider (aria-valuenow) inside checkbox label\" class=\"ex\">3.0</span> times\n</label>\n<br><br>\n<label>\n <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded ARIA slider (aria-valuetext)\" class=\"ex\">\n Flash the screen\n <span tabindex=\"0\" role=\"slider\" aria-valuemin=\"1.0\" aria-valuemax=\"5.0\" aria-valuenow=\"3.0\" aria-valuetext=\"3\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded ARIA slider (aria-valuetext) inside checkbox label\" class=\"ex\">3.0</span> times\n</label>\n<br><br>\n<label>\n <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded ARIA spinbutton (aria-valuenow)\" class=\"ex\">\n Flash the screen\n <span tabindex=\"0\" role=\"spinbutton\" aria-valuemin=\"1\" aria-valuemax=\"5\" aria-valuenow=\"3\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded ARIA spinbutton (aria-valuenow) inside checkbox label\" class=\"ex\">3.0</span> times\n</label>\n<br><br>\n<label>\n <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded ARIA spinbutton (aria-valuetext)\" class=\"ex\">\n Flash the screen\n <span tabindex=\"0\" role=\"spinbutton\" aria-valuemin=\"1.0\" aria-valuemax=\"5.0\" aria-valuenow=\"3.0\" aria-valuetext=\"3\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded ARIA spinbutton (aria-valuetext) inside checkbox label\" class=\"ex\">3.0</span> times\n</label>\n<br><br>", 1156 1168 "selector": ".ex" 1157 1169 }, 1158 1170 { 1159 1171 "filename": "comp_host_language_label.html", 1160 1172 "title": "Name Comp: Host Language Label",1161 -1 "html": "<h1>AccName: Host Language Label Tests</h1>\n<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_host_language_label\">#comp_host_language_label</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<h2>HTML input with value, alt, etc.</h2>\n<input type=\"button\" value=\"button label\" data-expectedlabel=\"button label\" data-testname=\"html: input[type=button]\" class=\"ex\">\n<input type=\"image\" src=\"#\" alt=\"image input label\" data-expectedlabel=\"image input label\" data-testname=\"html: input[type=image]\" class=\"ex\">\n<input type=\"reset\" value=\"reset label\" data-expectedlabel=\"reset label\" data-testname=\"html: input[type=reset]\" class=\"ex\">\n<input type=\"submit\" value=\"submit label\" data-expectedlabel=\"submit label\" data-testname=\"html: input[type=submit]\" class=\"ex\">\n\n\n<h2>HTML input label/for</h2>\n<!-- above: input[type=button] -->\n<label for=\"cb\">checkbox label</label><input id=\"cb\" type=\"checkbox\" data-expectedlabel=\"checkbox label\" data-testname=\"html: label[for] input[type=checkbox]\" class=\"ex\"><br>\n<label for=\"co\">color label</label><input id=\"co\" type=\"color\" data-expectedlabel=\"color label\" data-testname=\"html: label[for] input[type=color]\" class=\"ex\"><br>\n<label for=\"da\">date label</label><input id=\"da\" type=\"date\" data-expectedlabel=\"date label\" data-testname=\"html: label[for] input[type=date]\" class=\"ex\"><br>\n<label for=\"dtl\">datetime-local label</label><input id=\"dtl\" type=\"date\" data-expectedlabel=\"datetime-local label\" data-testname=\"html: label[for] input[type=datetime-local]\" class=\"ex\"><br>\n<label for=\"em\">email label</label><input id=\"em\" type=\"email\" data-expectedlabel=\"email label\" data-testname=\"html: label[for] input[type=email]\" class=\"ex\"><br>\n\n<!-- todo: results for input[type=file] currently differ in all engines -->\n<!--\n<label for=\"fi\">file label</label><input id=\"fi\" type=\"file\" data-expectedlabel=\"file label\" data-testname=\"html: label[for] input[type=file]\" class=\"ex\"><br>\n-->\n\n<!-- skipped: input[type=hidden] for/id n/a -->\n<!-- above: input[type=image] -->\n<label for=\"mo\">month label</label><input id=\"mo\" type=\"month\" data-expectedlabel=\"month label\" data-testname=\"html: label[for] input[type=month]\" class=\"ex\"><br>\n<label for=\"n\">number label</label><input id=\"n\" type=\"number\" data-expectedlabel=\"number label\" data-testname=\"html: label[for] input[type=number]\" class=\"ex\"><br>\n<label for=\"pw\">password label</label><input id=\"pw\" type=\"password\" data-expectedlabel=\"password label\" data-testname=\"html: label[for] input[type=password]\" class=\"ex\"><br>\n<label for=\"ra\">radio label</label><input id=\"ra\" type=\"radio\" data-expectedlabel=\"radio label\" data-testname=\"html: label[for] input[type=radio]\" class=\"ex\"><br>\n<label for=\"rng\">range label</label><input id=\"rng\" type=\"range\" data-expectedlabel=\"range label\" data-testname=\"html: label[for] input[type=range]\" class=\"ex\"><br>\n<!-- input[type=reset] above -->\n<label for=\"search\">search label</label><input id=\"search\" type=\"search\" data-expectedlabel=\"search label\" data-testname=\"html: label[for] input[type=search]\" class=\"ex\"><br>\n<!-- input[type=submit] above -->\n<label for=\"tel\">tel label</label><input id=\"tel\" type=\"tel\" data-expectedlabel=\"tel label\" data-testname=\"html: label[for] input[type=tel]\" class=\"ex\"><br>\n<label for=\"t\">textfield label</label><input id=\"t\" type=\"text\" data-expectedlabel=\"textfield label\" data-testname=\"html: label[for] input[type=text]\" class=\"ex\"><br>\n<label for=\"time\">time label</label><input id=\"time\" type=\"time\" data-expectedlabel=\"time label\" data-testname=\"html: label[for] input[type=time]\" class=\"ex\"><br>\n<label for=\"url\">url label</label><input id=\"url\" type=\"url\" data-expectedlabel=\"url label\" data-testname=\"html: label[for] input[type=url]\" class=\"ex\"><br>\n<label for=\"week\">week label</label><input id=\"week\" type=\"week\" data-expectedlabel=\"week label\" data-testname=\"html: label[for] input[type=week]\" class=\"ex\"><br>\n\n\n<h2>HTML input label encapsulation</h2>\n<!-- above: input[type=button] -->\n<label><input type=\"checkbox\" data-expectedlabel=\"checkbox label\" data-testname=\"html: label input[type=checkbox] encapsulation\" class=\"ex\">checkbox label</label><br>\n<label><input type=\"color\" data-expectedlabel=\"color label\" data-testname=\"html: label input[type=color] encapsulation\" class=\"ex\">color label</label><br>\n<label><input type=\"date\" data-expectedlabel=\"date label\" data-testname=\"html: label input[type=date] encapsulation\" class=\"ex\">date label</label><br>\n<label><input type=\"datetime-local\" data-expectedlabel=\"datetime-local label\" data-testname=\"html: label input[type=datetime-local] encapsulation\" class=\"ex\">datetime-local label</label><br>\n<label><input type=\"email\" data-expectedlabel=\"email label\" data-testname=\"html: label input[type=email] encapsulation\" class=\"ex\">email label</label><br>\n\n<!-- todo: results for input[type=file] currently differ in all engines -->\n<!--\n<label><input type=\"file\" data-expectedlabel=\"file label\" data-testname=\"html: label input[type=file] encapsulation\" class=\"ex\">file label</label><br>\n-->\n\n<!-- skipped: input[type=hidden] n/a -->\n<!-- above: input[type=image] -->\n<label><input type=\"month\" data-expectedlabel=\"month label\" data-testname=\"html: label input[type=month] encapsulation\" class=\"ex\">month label</label><br>\n<label><input type=\"number\" data-expectedlabel=\"number label\" data-testname=\"html: label input[type=number] encapsulation\" class=\"ex\">number label</label><br>\n<label><input type=\"password\" data-expectedlabel=\"password label\" data-testname=\"html: label input[type=password] encapsulation\" class=\"ex\">password label</label><br>\n<label><input type=\"radio\" data-expectedlabel=\"radio label\" data-testname=\"html: label input[type=radio] encapsulation\" class=\"ex\">radio label</label><br>\n<label><input type=\"range\" data-expectedlabel=\"range label\" data-testname=\"html: label input[type=range] encapsulation\" class=\"ex\">range label</label><br>\n<!-- above: input[type=reset] -->\n<label><input type=\"search\" data-expectedlabel=\"search label\" data-testname=\"html: label input[type=search] encapsulation\" class=\"ex\">search label</label><br>\n<!-- above: input[type=submit] -->\n<label><input type=\"tel\" data-expectedlabel=\"tel label\" data-testname=\"html: label input[type=tel] encapsulation\" class=\"ex\">tel label</label><br>\n<label><input type=\"text\" data-expectedlabel=\"textfield label\" data-testname=\"html: label[for] input[type=text] encapsulation\" class=\"ex\">textfield label</label><br>\n<label><input type=\"time\" data-expectedlabel=\"time label\" data-testname=\"html: label input[type=time] encapsulation\" class=\"ex\">time label</label><br>\n<label><input type=\"url\" data-expectedlabel=\"url label\" data-testname=\"html: label input[type=url] encapsulation\" class=\"ex\">url label</label><br>\n<label><input type=\"week\" data-expectedlabel=\"week label\" data-testname=\"html: label input[type=week] encapsulation\" class=\"ex\">week label</label><br>\n\n\n<!-- skipped: skip textarea for v1 since all engines fail in different ways. need to verify label/textarea is expected. -->\n<!--\n<h2>HTML textarea</h2>\n<label for=\"ta\">textarea label</label><textarea data-expectedlabel=\"textarea label\" data-testname=\"html: label[for] textarea\" class=\"ex\"></textarea><br>\n<label for=\"ta\">textarea label<textarea data-expectedlabel=\"textarea label\" data-testname=\"html: textarea encapsulation\" class=\"ex\"></textarea></label><br>\n-->\n\n\n<h2>HTML select</h2>\n<!-- todo: select for/id -->\n<label for=\"select\">select label</label>\n<select id=\"select\" data-expectedlabel=\"select label\" data-testname=\"html: select for/id\" class=\"ex\">\n <option>foo</option>\n</select>\n<br>\n<!-- select encapsulation -->\n<label>\n select label\n <select data-expectedlabel=\"select label\" data-testname=\"html: select encapsulation\" class=\"ex\">\n <option>foo</option>\n </select>\n</label><br>\n<!-- todo: select labeled by selected option. All engines currently fail in different ways. Not sure which is correct. -->\n<!--\n<select data-expectedlabel=\"select label\" data-testname=\"html: select w/selected option\" class=\"ex\">\n <option>foo</option>\n <option selected>select label</option>\n <option>bar</option>\n</select>\n<br>\n-->\n\n\n<h2>HTML img/picture</h2>\n<!-- skipped: img:not([alt]) -->\n<!-- skipped: img[alt=\"\"] -->\n<img src=\"#\" alt=\"image label\" data-expectedlabel=\"image label\" data-testname=\"html: img[alt] (non-empty)\" class=\"ex\">\n<picture>\n <source srcset=\"#\">\n <img src=\"#\" alt=\"picture label\" data-expectedlabel=\"picture label\" data-testname=\"html: picture > img[alt] (non-empty)\" class=\"ex\">\n</picture>\n<!-- elsewhere: image map area alt -> ./fragile/area-alt.html -->\n\n\n<h2>HTML fieldset/legend</h2>\n<fieldset data-expectedlabel=\"fieldset legend label\" data-testname=\"html: fieldset > legend\" class=\"ex\">\n <legend>fieldset legend label</legend>\n <input type=\"text\"><br>\n</fieldset>\n\n\n<h2>HTML table/caption</h2>\n<table data-expectedlabel=\"table caption label\" data-testname=\"html: table > caption\" class=\"ex\">\n <caption>table caption label</caption>\n <tr><th>a</th><th>b</th><th>c</th></tr>\n <tr><th>1</th><td>2</td><td>3</td></tr>\n</table>\n\n\n<h2>SVG title</h2>\n<svg viewbox=\"0 0 300 100\">\n <circle cx=\"26\" cy=\"26\" r=\"25\" data-expectedlabel=\"circle label\" data-testname=\"svg: circle > title\" class=\"ex\">\n <title>circle label</title>\n </circle>\n\n <rect x=\"60\" y=\"1\" width=\"50\" height=\"50\" data-expectedlabel=\"rect label\" data-testname=\"svg: rect > title\" class=\"ex\">\n <title>rect label</title>\n </rect>\n <polygon points=\"100,100 150,25 150,75 200,0\" fill=\"none\" stroke=\"black\" data-expectedlabel=\"polygon label\" data-testname=\"svg: polygon > title\" class=\"ex\">\n <title>polygon label</title>\n </polygon>\n</svg><br>\n<svg viewbox=\"0 0 200 90\">\n <g fill=\"white\" stroke=\"green\" stroke-width=\"5\" data-expectedlabel=\"group label\" data-testname=\"svg: g > title\" class=\"ex\">\n <title>group label</title>\n <circle cx=\"40\" cy=\"40\" r=\"25\" />\n <circle cx=\"60\" cy=\"60\" r=\"25\" />\n </g>\n</svg><br>\n<!-- todo: more SVG tests -->\n\n<!-- todo: Ruby? -->\n<!-- todo: MathML? -->\n<!-- todo: does HTML input[placeholder=\"foo\"] count as a host language labeling mechanism? -->",-1 1173 "html": "<h1>AccName: Host Language Label Tests</h1>\n<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_host_language_label\">#comp_host_language_label</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<h2>HTML input with value, alt, etc.</h2>\n<input type=\"button\" value=\"button label\" data-expectedlabel=\"button label\" data-testname=\"html: input[type=button]\" class=\"ex\">\n<input type=\"image\" alt=\"image input label\" data-expectedlabel=\"image input label\" data-testname=\"html: input[type=image]\" class=\"ex\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">\n<input type=\"reset\" value=\"reset label\" data-expectedlabel=\"reset label\" data-testname=\"html: input[type=reset]\" class=\"ex\">\n<input type=\"submit\" value=\"submit label\" data-expectedlabel=\"submit label\" data-testname=\"html: input[type=submit]\" class=\"ex\">\n\n\n<h2>HTML input label/for</h2>\n<!-- above: input[type=button] -->\n<label for=\"cb\">checkbox label</label><input id=\"cb\" type=\"checkbox\" data-expectedlabel=\"checkbox label\" data-testname=\"html: label[for] input[type=checkbox]\" class=\"ex\"><br>\n<label for=\"co\">color label</label><input id=\"co\" type=\"color\" data-expectedlabel=\"color label\" data-testname=\"html: label[for] input[type=color]\" class=\"ex\"><br>\n<label for=\"da\">date label</label><input id=\"da\" type=\"date\" data-expectedlabel=\"date label\" data-testname=\"html: label[for] input[type=date]\" class=\"ex\"><br>\n<label for=\"dtl\">datetime-local label</label><input id=\"dtl\" type=\"date\" data-expectedlabel=\"datetime-local label\" data-testname=\"html: label[for] input[type=datetime-local]\" class=\"ex\"><br>\n<label for=\"em\">email label</label><input id=\"em\" type=\"email\" data-expectedlabel=\"email label\" data-testname=\"html: label[for] input[type=email]\" class=\"ex\"><br>\n\n<!-- todo: results for input[type=file] currently differ in all engines -->\n<!--\n<label for=\"fi\">file label</label><input id=\"fi\" type=\"file\" data-expectedlabel=\"file label\" data-testname=\"html: label[for] input[type=file]\" class=\"ex\"><br>\n-->\n\n<!-- skipped: input[type=hidden] for/id n/a -->\n<!-- above: input[type=image] -->\n<label for=\"mo\">month label</label><input id=\"mo\" type=\"month\" data-expectedlabel=\"month label\" data-testname=\"html: label[for] input[type=month]\" class=\"ex\"><br>\n<label for=\"n\">number label</label><input id=\"n\" type=\"number\" data-expectedlabel=\"number label\" data-testname=\"html: label[for] input[type=number]\" class=\"ex\"><br>\n<label for=\"pw\">password label</label><input id=\"pw\" type=\"password\" data-expectedlabel=\"password label\" data-testname=\"html: label[for] input[type=password]\" class=\"ex\"><br>\n<label for=\"ra\">radio label</label><input id=\"ra\" type=\"radio\" data-expectedlabel=\"radio label\" data-testname=\"html: label[for] input[type=radio]\" class=\"ex\"><br>\n<label for=\"rng\">range label</label><input id=\"rng\" type=\"range\" data-expectedlabel=\"range label\" data-testname=\"html: label[for] input[type=range]\" class=\"ex\"><br>\n<!-- input[type=reset] above -->\n<label for=\"search\">search label</label><input id=\"search\" type=\"search\" data-expectedlabel=\"search label\" data-testname=\"html: label[for] input[type=search]\" class=\"ex\"><br>\n<!-- input[type=submit] above -->\n<label for=\"tel\">tel label</label><input id=\"tel\" type=\"tel\" data-expectedlabel=\"tel label\" data-testname=\"html: label[for] input[type=tel]\" class=\"ex\"><br>\n<label for=\"t\">textfield label</label><input id=\"t\" type=\"text\" data-expectedlabel=\"textfield label\" data-testname=\"html: label[for] input[type=text]\" class=\"ex\"><br>\n<label for=\"time\">time label</label><input id=\"time\" type=\"time\" data-expectedlabel=\"time label\" data-testname=\"html: label[for] input[type=time]\" class=\"ex\"><br>\n<label for=\"url\">url label</label><input id=\"url\" type=\"url\" data-expectedlabel=\"url label\" data-testname=\"html: label[for] input[type=url]\" class=\"ex\"><br>\n<label for=\"week\">week label</label><input id=\"week\" type=\"week\" data-expectedlabel=\"week label\" data-testname=\"html: label[for] input[type=week]\" class=\"ex\"><br>\n\n\n<h2>HTML input label encapsulation</h2>\n<!-- above: input[type=button] -->\n<label><input type=\"checkbox\" data-expectedlabel=\"checkbox label\" data-testname=\"html: label input[type=checkbox] encapsulation\" class=\"ex\">checkbox label</label><br>\n<label><input type=\"color\" data-expectedlabel=\"color label\" data-testname=\"html: label input[type=color] encapsulation\" class=\"ex\">color label</label><br>\n<label><input type=\"date\" data-expectedlabel=\"date label\" data-testname=\"html: label input[type=date] encapsulation\" class=\"ex\">date label</label><br>\n<label><input type=\"datetime-local\" data-expectedlabel=\"datetime-local label\" data-testname=\"html: label input[type=datetime-local] encapsulation\" class=\"ex\">datetime-local label</label><br>\n<label><input type=\"email\" data-expectedlabel=\"email label\" data-testname=\"html: label input[type=email] encapsulation\" class=\"ex\">email label</label><br>\n\n<!-- todo: results for input[type=file] currently differ in all engines -->\n<!--\n<label><input type=\"file\" data-expectedlabel=\"file label\" data-testname=\"html: label input[type=file] encapsulation\" class=\"ex\">file label</label><br>\n-->\n\n<!-- skipped: input[type=hidden] n/a -->\n<!-- above: input[type=image] -->\n<label><input type=\"month\" data-expectedlabel=\"month label\" data-testname=\"html: label input[type=month] encapsulation\" class=\"ex\">month label</label><br>\n<label><input type=\"number\" data-expectedlabel=\"number label\" data-testname=\"html: label input[type=number] encapsulation\" class=\"ex\">number label</label><br>\n<label><input type=\"password\" data-expectedlabel=\"password label\" data-testname=\"html: label input[type=password] encapsulation\" class=\"ex\">password label</label><br>\n<label><input type=\"radio\" data-expectedlabel=\"radio label\" data-testname=\"html: label input[type=radio] encapsulation\" class=\"ex\">radio label</label><br>\n<label><input type=\"range\" data-expectedlabel=\"range label\" data-testname=\"html: label input[type=range] encapsulation\" class=\"ex\">range label</label><br>\n<!-- above: input[type=reset] -->\n<label><input type=\"search\" data-expectedlabel=\"search label\" data-testname=\"html: label input[type=search] encapsulation\" class=\"ex\">search label</label><br>\n<!-- above: input[type=submit] -->\n<label><input type=\"tel\" data-expectedlabel=\"tel label\" data-testname=\"html: label input[type=tel] encapsulation\" class=\"ex\">tel label</label><br>\n<label><input type=\"text\" data-expectedlabel=\"textfield label\" data-testname=\"html: label[for] input[type=text] encapsulation\" class=\"ex\">textfield label</label><br>\n<label><input type=\"time\" data-expectedlabel=\"time label\" data-testname=\"html: label input[type=time] encapsulation\" class=\"ex\">time label</label><br>\n<label><input type=\"url\" data-expectedlabel=\"url label\" data-testname=\"html: label input[type=url] encapsulation\" class=\"ex\">url label</label><br>\n<label><input type=\"week\" data-expectedlabel=\"week label\" data-testname=\"html: label input[type=week] encapsulation\" class=\"ex\">week label</label><br>\n\n\n<!-- skipped: skip textarea for v1 since all engines fail in different ways. need to verify label/textarea is expected. -->\n<!--\n<h2>HTML textarea</h2>\n<label for=\"ta\">textarea label</label><textarea data-expectedlabel=\"textarea label\" data-testname=\"html: label[for] textarea\" class=\"ex\"></textarea><br>\n<label for=\"ta\">textarea label<textarea data-expectedlabel=\"textarea label\" data-testname=\"html: textarea encapsulation\" class=\"ex\"></textarea></label><br>\n-->\n\n\n<h2>HTML select</h2>\n<!-- todo: select for/id -->\n<label for=\"select\">select label</label>\n<select id=\"select\" data-expectedlabel=\"select label\" data-testname=\"html: select for/id\" class=\"ex\">\n <option>foo</option>\n</select>\n<br>\n<!-- select encapsulation -->\n<label>\n select label\n <select data-expectedlabel=\"select label\" data-testname=\"html: select encapsulation\" class=\"ex\">\n <option>foo</option>\n </select>\n</label><br>\n<!-- todo: select labeled by selected option. All engines currently fail in different ways. Not sure which is correct. -->\n<!--\n<select data-expectedlabel=\"select label\" data-testname=\"html: select w/selected option\" class=\"ex\">\n <option>foo</option>\n <option selected>select label</option>\n <option>bar</option>\n</select>\n<br>\n-->\n\n\n<h2>HTML img/picture</h2>\n<!-- skipped: img:not([alt]) -->\n<!-- skipped: img[alt=\"\"] -->\n<img alt=\"image label\" data-expectedlabel=\"image label\" data-testname=\"html: img[alt] (non-empty)\" class=\"ex\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">\n<picture>\n <source srcset=\"#\">\n <img alt=\"picture label\" data-expectedlabel=\"picture label\" data-testname=\"html: picture > img[alt] (non-empty)\" class=\"ex\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">\n</picture>\n<!-- elsewhere: image map area alt -> ./fragile/area-alt.html -->\n\n\n<h2>HTML fieldset/legend</h2>\n<fieldset data-expectedlabel=\"fieldset legend label\" data-testname=\"html: fieldset > legend\" class=\"ex\">\n <legend>fieldset legend label</legend>\n <input type=\"text\"><br>\n</fieldset>\n\n\n<h2>HTML table/caption</h2>\n<table data-expectedlabel=\"table caption label\" data-testname=\"html: table > caption\" class=\"ex\">\n <caption>table caption label</caption>\n <tr><th>a</th><th>b</th><th>c</th></tr>\n <tr><th>1</th><td>2</td><td>3</td></tr>\n</table>\n\n\n<!-- SVG: -> /svg-aam/name/ -->\n\n\n<!-- todo: Ruby? -->\n<!-- todo: MathML? -->\n<!-- todo: does HTML input[placeholder=\"foo\"] count as a host language labeling mechanism? -->", 1162 1174 "selector": ".ex" 1163 1175 } 1164 1176 ]; @@ -1166,19 +1178,59 @@ window.wpt["wai-aria"] = [ 1166 1178 { 1167 1179 "filename": "invalid-roles.html", 1168 1180 "title": "Invalid Role Verification Tests",1169 -1 "html": "<p>Verifies Invalid Roles from <a href=\"https://w3c.github.io/aria/#document-handling_author-errors_roles\">9.1 Roles - handling author errors</a></p>\n\n<nav role=\"foo\" data-testname=\"invalid role name foo\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"foo bar\" data-testname=\"multiple invalid role names\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- todo: additional invalid roles:\n\n- whitespace tests (including line breaks, tabs, zero-width space, braille space)\n- diacritics\n- zero-width joiners (e.g. ZWJ like emoji variants use)\n- non-western chars\n- RTL strings (Hebrew & Arabic)\n- escaped chars, URL-encoded chars\n- backslash closing quote and other obvious hack attempts\n- etc.\n\n-->",-1 1181 "html": "<p>Tests invalid ARIA roles from <a href=\"https://w3c.github.io/aria/#document-handling_author-errors_roles\">9.1 Roles - handling author errors</a>.</p>\n\n<!-- Tests fallback for <nav> when 1/2/3 invalid roles are supplied -->\n<nav role=\"foo\" data-testname=\"nav with invalid role name foo\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"foo bar\" data-testname=\"nav with two invalid role names\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"foo bar baz\" data-testname=\"nav with three invalid role names\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Tests fallback for <button> when 1/2/3 invalid roles are supplied -->\n<button role=\"foo\" data-testname=\"button with invalid role name foo\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<button role=\"foo bar\" data-testname=\"button with two invalid role names\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<button role=\"foo bar baz\" data-testname=\"button with three invalid role names\" data-expectedrole=\"button\" class=\"ex\">x</button>\n\n<!-- Tests fallback for semantically neutral elements when 1/2/3 invalid roles are supplied -->\n<span role=\"foo\" data-testname=\"span with invalid role name foo\" class=\"ex-generic\">x</span>\n<span role=\"foo bar\" data-testname=\"span with two invalid role names\" class=\"ex-generic\">x</span>\n<span role=\"foo bar baz\" data-testname=\"span with three invalid role names\" class=\"ex-generic\">x</span>\n<div role=\"foo\" data-testname=\"div with invalid role name foo\" class=\"ex-generic\">x</div>\n<div role=\"foo bar\" data-testname=\"div with two invalid role names\" class=\"ex-generic\">x</div>\n<div role=\"foo bar baz\" data-testname=\"div with three invalid role names\"class=\"ex-generic\">x</div>\n\n<!-- Whitespace tests with <nav> (including line breaks, tabs, zero-width space, braille space, non-breaking space, standard space) -->\n<nav role=\" \" data-testname=\"nav with empty character as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"
\" data-testname=\"nav with line break (
) character as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"	\" data-testname=\"nav with tab (	) as role (should be treated as whitespace)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"​\" data-testname=\"nav with zero-width space as role (should be treated as whitespace)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"⠀\" data-testname=\"nav with braille space (10240) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"⠀\" data-testname=\"nav with braille space (x2800) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\" \" data-testname=\"nav with non-breaking space (nbsp) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\" data-testname=\"nav with standard space (nbsp) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Escaped whitespace tests with <span> (including line breaks, tabs, zero-width space, braille space, non-breaking space, standard space) -->\n<span role=\" \" data-testname=\"span with escaped empty character as role\" class=\"ex-generic\">x</span>\n<span role=\"
\" data-testname=\"span with escaped line break (
) character as role\" class=\"ex-generic\">x</span>\n<span role=\"	\" data-testname=\"span with escaped tab (	) as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n<span role=\"​\" data-testname=\"span with escaped zero-width space as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n<span role=\"⠀\" data-testname=\"span with escaped braille space (10240) as role\" class=\"ex-generic\">x</span>\n<span role=\"⠀\" data-testname=\"span with escaped braille space (x2800) as role\" class=\"ex-generic\">x</span>\n<span role=\" \" data-testname=\"span with escaped non-breaking space (nbsp) as role\" class=\"ex-generic\">x</span>\n<span role=\"\" data-testname=\"span with escaped standard space (nbsp) as role\" class=\"ex-generic\">x</span>\n\n<!-- Unescaped whitespace tests with <span> (including line breaks, tabs, zero-width space, braille space, non-breaking space, standard space) -->\n <span role=\" \" data-testname=\"span with empty character as role\" class=\"ex-generic\">x</span>\n <span role=\"\n \" data-testname=\"span with line break (
) character as role\" class=\"ex-generic\">x</span>\n <span role=\" \" data-testname=\"span with tab (	) as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n <span role=\"\u200d\" data-testname=\"span with zero-width space as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n <span role=\"\u2800\" data-testname=\"span with braille space (10240) as role\" class=\"ex-generic\">x</span>\n <span role=\" \" data-testname=\"span with non-breaking space (nbsp) as role\" class=\"ex-generic\">x</span>\n <span role=\" \" data-testname=\"span with standard space as role\" class=\"ex-generic\">x</span>\n\n<!-- Diacritics with <a> -->\n<a href=\"#\" role=\"̃\" data-testname=\"link with role set to tilde diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"foõ\" data-testname=\"link with role foo that has tilde diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"̅\" data-testname=\"link with role set to overline diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"foo̅\" data-testname=\"link with role foo that has overline diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"̭\" data-testname=\"link with role set to circumflex diacritic below\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"foo̭\" data-testname=\"link with role foo that has circumflex diacritic below\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"buttoñ\" data-testname=\"link with role set to button with tilde diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n\n<!-- Diacritics with <div> -->\n<div role=\"̃\" data-testname=\"div with role set to tilde diacritic\" class=\"ex-generic\">x</div>\n<div role=\"foõ\" data-testname=\"div with role foo that has tilde diacritic\" class=\"ex-generic\">x</div>\n<div role=\"buttoñ\" data-testname=\"div with role set to button with tilde diacritic\" class=\"ex-generic\">x</div>\n<div role=\"button\u00b4\" data-testname=\"div with role set to button with unescaped tilde diacritic\" class=\"ex-generic\">x</div>\n\n<!-- Zero-width joiners (e.g., ZWJ like emoji variants use) with <button> -->\n<!-- [sic] role=\"\u200d\" should include an invisible ZWJ], and role=\"link\u200d\" ends with an invisible ZWJ. Use caution when editing. -->\n<button role=\"\u200d\" data-testname=\"button with role set to zero-width joiner\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<button role=\"link\u200d\" data-testname=\"button with role set to foo with zero-width joiner\" data-expectedrole=\"button\" class=\"ex\">x</button>\n\n<!-- Non-western chars with <nav> -->\n<nav role=\"\u0398\" data-testname=\"nav with role set to theta (\u0398)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u0698\" data-testname=\"nav with role set to Persian character (\u0698)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u0698 \u266e\" data-testname=\"nav with multiple non-latin character roles, Persian character (\u0698) and \u266e\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u6f22\u5b57\" data-testname=\"nav with role set to Japanese kanji\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Non-western chars with <span> -->\n<span role=\"\u0398\" data-testname=\"span with role set to theta (\u0398)\" class=\"ex-generic\">x</span>\n<span role=\"\u0698\" data-testname=\"span with role set to Persian character (\u0698)\" class=\"ex-generic\">x</span>\n<span role=\"\u0698 \u266e\" data-testname=\"span with multiple non-latin character roles, Persian character (\u0698) and \u266e\" class=\"ex-generic\">x</span>\n<span role=\"\u6f22\u5b57\" data-testname=\"span with role set to Japanese kanji\" class=\"ex-generic\">x</span>\n\n<!-- RTL strings (Hebrew & Arabic) with <nav> -->\n<nav role=\"\u0633\u0644\u0627\u0645\" data-testname=\"nav with role set to Arabic text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u0633\u0644\u0627\u0645 \u062d\u0628\u064a\u0628\" data-testname=\"nav with multiple role assignments set to Arabic text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u05e9\u05dc\u05d5\u05dd\" data-testname=\"nav with role set to Hebrew text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u05e9\u05dc\u05d5\u05dd \u05d7\u05d1\u05e8\" data-testname=\"nav with multiple role assignments set to Hebrew text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- RTL strings (Hebrew & Arabic) with <div> -->\n<div role=\"\u0633\u0644\u0627\u0645\" data-testname=\"div with role set to Arabic text\" class=\"ex-generic\">x</div>\n<div role=\"\u0633\u0644\u0627\u0645 \u062d\u0628\u064a\u0628\" data-testname=\"div with multiple role assignments set to Arabic text\" class=\"ex-generic\">x</div>\n<div role=\"\u05e9\u05dc\u05d5\u05dd\" data-testname=\"div with role set to Hebrew text\" class=\"ex-generic\">x</div>\n<div role=\"\u05e9\u05dc\u05d5\u05dd \u05d7\u05d1\u05e8\" data-testname=\"div with multiple role assignments set to Hebrew text\" class=\"ex-generic\">x</div>\n\n<!-- Escaped chars, URL-encoded chars with <a> -->\n<a href=\"https://www.apple.com/\" role=\"&\" data-testname=\"link with role set to ampersand character\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"https://www.apple.com/\" role=\"<\" data-testname=\"link with role set to less than angle bracket character\" data-expectedrole=\"link\" class=\"ex\">x</a>\n\n<!-- Escaped chars, URL-encoded chars with <span> -->\n<span role=\"&\" data-testname=\"span with role set to ampersand character\" class=\"ex-generic\">x</span>\n<span role=\"<\" data-testname=\"span with role set to less than angle bracket character\" class=\"ex-generic\">x</span>\n<span role=\"&\" data-testname=\"span with role set to unescaped ampersand character\" class=\"ex-generic\">x</span>\n<span role=\"<\" data-testname=\"span with role set to unescaped less than angle bracket character\" class=\"ex-generic\">x</span>\n\n<!-- Backslash closing quote and other malformed roles with characters with <nav> -->\n<nav role=\"region\\\" data-testname=\"nav with role set to region followed by backslash\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\\region\" data-testname=\"nav with role set to backslash followed by region\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"re/gion\" data-testname=\"nav with role set to region with backslash after e character\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Backslash closing quote and other malformed roles with characters with <span> -->\n<span role=\"region\\\" data-testname=\"span with role set to region followed by backslash\" class=\"ex-generic\">x</span>\n<span role=\"\\region\" data-testname=\"span with role set to backslash followed by region\" class=\"ex-generic\">x</span>\n<span role=\"re/gion\" data-testname=\"span with role set to region with forward slash after e character\" class=\"ex-generic\">x</span>", -1 1182 "selector": ".ex" -1 1183 }, -1 1184 { -1 1185 "filename": "invalid-roles.html", -1 1186 "title": "Invalid Role Verification Tests", -1 1187 "html": "<p>Tests invalid ARIA roles from <a href=\"https://w3c.github.io/aria/#document-handling_author-errors_roles\">9.1 Roles - handling author errors</a>.</p>\n\n<!-- Tests fallback for <nav> when 1/2/3 invalid roles are supplied -->\n<nav role=\"foo\" data-testname=\"nav with invalid role name foo\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"foo bar\" data-testname=\"nav with two invalid role names\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"foo bar baz\" data-testname=\"nav with three invalid role names\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Tests fallback for <button> when 1/2/3 invalid roles are supplied -->\n<button role=\"foo\" data-testname=\"button with invalid role name foo\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<button role=\"foo bar\" data-testname=\"button with two invalid role names\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<button role=\"foo bar baz\" data-testname=\"button with three invalid role names\" data-expectedrole=\"button\" class=\"ex\">x</button>\n\n<!-- Tests fallback for semantically neutral elements when 1/2/3 invalid roles are supplied -->\n<span role=\"foo\" data-testname=\"span with invalid role name foo\" class=\"ex-generic\">x</span>\n<span role=\"foo bar\" data-testname=\"span with two invalid role names\" class=\"ex-generic\">x</span>\n<span role=\"foo bar baz\" data-testname=\"span with three invalid role names\" class=\"ex-generic\">x</span>\n<div role=\"foo\" data-testname=\"div with invalid role name foo\" class=\"ex-generic\">x</div>\n<div role=\"foo bar\" data-testname=\"div with two invalid role names\" class=\"ex-generic\">x</div>\n<div role=\"foo bar baz\" data-testname=\"div with three invalid role names\"class=\"ex-generic\">x</div>\n\n<!-- Whitespace tests with <nav> (including line breaks, tabs, zero-width space, braille space, non-breaking space, standard space) -->\n<nav role=\" \" data-testname=\"nav with empty character as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"
\" data-testname=\"nav with line break (
) character as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"	\" data-testname=\"nav with tab (	) as role (should be treated as whitespace)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"​\" data-testname=\"nav with zero-width space as role (should be treated as whitespace)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"⠀\" data-testname=\"nav with braille space (10240) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"⠀\" data-testname=\"nav with braille space (x2800) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\" \" data-testname=\"nav with non-breaking space (nbsp) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\" data-testname=\"nav with standard space (nbsp) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Escaped whitespace tests with <span> (including line breaks, tabs, zero-width space, braille space, non-breaking space, standard space) -->\n<span role=\" \" data-testname=\"span with escaped empty character as role\" class=\"ex-generic\">x</span>\n<span role=\"
\" data-testname=\"span with escaped line break (
) character as role\" class=\"ex-generic\">x</span>\n<span role=\"	\" data-testname=\"span with escaped tab (	) as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n<span role=\"​\" data-testname=\"span with escaped zero-width space as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n<span role=\"⠀\" data-testname=\"span with escaped braille space (10240) as role\" class=\"ex-generic\">x</span>\n<span role=\"⠀\" data-testname=\"span with escaped braille space (x2800) as role\" class=\"ex-generic\">x</span>\n<span role=\" \" data-testname=\"span with escaped non-breaking space (nbsp) as role\" class=\"ex-generic\">x</span>\n<span role=\"\" data-testname=\"span with escaped standard space (nbsp) as role\" class=\"ex-generic\">x</span>\n\n<!-- Unescaped whitespace tests with <span> (including line breaks, tabs, zero-width space, braille space, non-breaking space, standard space) -->\n <span role=\" \" data-testname=\"span with empty character as role\" class=\"ex-generic\">x</span>\n <span role=\"\n \" data-testname=\"span with line break (
) character as role\" class=\"ex-generic\">x</span>\n <span role=\" \" data-testname=\"span with tab (	) as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n <span role=\"\u200d\" data-testname=\"span with zero-width space as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n <span role=\"\u2800\" data-testname=\"span with braille space (10240) as role\" class=\"ex-generic\">x</span>\n <span role=\" \" data-testname=\"span with non-breaking space (nbsp) as role\" class=\"ex-generic\">x</span>\n <span role=\" \" data-testname=\"span with standard space as role\" class=\"ex-generic\">x</span>\n\n<!-- Diacritics with <a> -->\n<a href=\"#\" role=\"̃\" data-testname=\"link with role set to tilde diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"foõ\" data-testname=\"link with role foo that has tilde diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"̅\" data-testname=\"link with role set to overline diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"foo̅\" data-testname=\"link with role foo that has overline diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"̭\" data-testname=\"link with role set to circumflex diacritic below\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"foo̭\" data-testname=\"link with role foo that has circumflex diacritic below\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"buttoñ\" data-testname=\"link with role set to button with tilde diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n\n<!-- Diacritics with <div> -->\n<div role=\"̃\" data-testname=\"div with role set to tilde diacritic\" class=\"ex-generic\">x</div>\n<div role=\"foõ\" data-testname=\"div with role foo that has tilde diacritic\" class=\"ex-generic\">x</div>\n<div role=\"buttoñ\" data-testname=\"div with role set to button with tilde diacritic\" class=\"ex-generic\">x</div>\n<div role=\"button\u00b4\" data-testname=\"div with role set to button with unescaped tilde diacritic\" class=\"ex-generic\">x</div>\n\n<!-- Zero-width joiners (e.g., ZWJ like emoji variants use) with <button> -->\n<!-- [sic] role=\"\u200d\" should include an invisible ZWJ], and role=\"link\u200d\" ends with an invisible ZWJ. Use caution when editing. -->\n<button role=\"\u200d\" data-testname=\"button with role set to zero-width joiner\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<button role=\"link\u200d\" data-testname=\"button with role set to foo with zero-width joiner\" data-expectedrole=\"button\" class=\"ex\">x</button>\n\n<!-- Non-western chars with <nav> -->\n<nav role=\"\u0398\" data-testname=\"nav with role set to theta (\u0398)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u0698\" data-testname=\"nav with role set to Persian character (\u0698)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u0698 \u266e\" data-testname=\"nav with multiple non-latin character roles, Persian character (\u0698) and \u266e\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u6f22\u5b57\" data-testname=\"nav with role set to Japanese kanji\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Non-western chars with <span> -->\n<span role=\"\u0398\" data-testname=\"span with role set to theta (\u0398)\" class=\"ex-generic\">x</span>\n<span role=\"\u0698\" data-testname=\"span with role set to Persian character (\u0698)\" class=\"ex-generic\">x</span>\n<span role=\"\u0698 \u266e\" data-testname=\"span with multiple non-latin character roles, Persian character (\u0698) and \u266e\" class=\"ex-generic\">x</span>\n<span role=\"\u6f22\u5b57\" data-testname=\"span with role set to Japanese kanji\" class=\"ex-generic\">x</span>\n\n<!-- RTL strings (Hebrew & Arabic) with <nav> -->\n<nav role=\"\u0633\u0644\u0627\u0645\" data-testname=\"nav with role set to Arabic text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u0633\u0644\u0627\u0645 \u062d\u0628\u064a\u0628\" data-testname=\"nav with multiple role assignments set to Arabic text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u05e9\u05dc\u05d5\u05dd\" data-testname=\"nav with role set to Hebrew text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u05e9\u05dc\u05d5\u05dd \u05d7\u05d1\u05e8\" data-testname=\"nav with multiple role assignments set to Hebrew text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- RTL strings (Hebrew & Arabic) with <div> -->\n<div role=\"\u0633\u0644\u0627\u0645\" data-testname=\"div with role set to Arabic text\" class=\"ex-generic\">x</div>\n<div role=\"\u0633\u0644\u0627\u0645 \u062d\u0628\u064a\u0628\" data-testname=\"div with multiple role assignments set to Arabic text\" class=\"ex-generic\">x</div>\n<div role=\"\u05e9\u05dc\u05d5\u05dd\" data-testname=\"div with role set to Hebrew text\" class=\"ex-generic\">x</div>\n<div role=\"\u05e9\u05dc\u05d5\u05dd \u05d7\u05d1\u05e8\" data-testname=\"div with multiple role assignments set to Hebrew text\" class=\"ex-generic\">x</div>\n\n<!-- Escaped chars, URL-encoded chars with <a> -->\n<a href=\"https://www.apple.com/\" role=\"&\" data-testname=\"link with role set to ampersand character\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"https://www.apple.com/\" role=\"<\" data-testname=\"link with role set to less than angle bracket character\" data-expectedrole=\"link\" class=\"ex\">x</a>\n\n<!-- Escaped chars, URL-encoded chars with <span> -->\n<span role=\"&\" data-testname=\"span with role set to ampersand character\" class=\"ex-generic\">x</span>\n<span role=\"<\" data-testname=\"span with role set to less than angle bracket character\" class=\"ex-generic\">x</span>\n<span role=\"&\" data-testname=\"span with role set to unescaped ampersand character\" class=\"ex-generic\">x</span>\n<span role=\"<\" data-testname=\"span with role set to unescaped less than angle bracket character\" class=\"ex-generic\">x</span>\n\n<!-- Backslash closing quote and other malformed roles with characters with <nav> -->\n<nav role=\"region\\\" data-testname=\"nav with role set to region followed by backslash\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\\region\" data-testname=\"nav with role set to backslash followed by region\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"re/gion\" data-testname=\"nav with role set to region with backslash after e character\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Backslash closing quote and other malformed roles with characters with <span> -->\n<span role=\"region\\\" data-testname=\"span with role set to region followed by backslash\" class=\"ex-generic\">x</span>\n<span role=\"\\region\" data-testname=\"span with role set to backslash followed by region\" class=\"ex-generic\">x</span>\n<span role=\"re/gion\" data-testname=\"span with role set to region with forward slash after e character\" class=\"ex-generic\">x</span>", -1 1188 "role": "generic", -1 1189 "selector": ".ex-generic" -1 1190 }, -1 1191 { -1 1192 "filename": "list-roles.html", -1 1193 "title": "List-related Role Verification Tests", -1 1194 "html": "<p>Tests <a href=\"https://w3c.github.io/aria/#list\">list</a> and related roles.</p>\n\n<div role=\"list\" data-testname=\"first simple list\" data-expectedrole=\"list\" class=\"ex\">\n <div role=\"listitem\" data-testname=\"first simple listitem\" data-expectedrole=\"listitem\" class=\"ex\">x</div>\n <div role=\"listitem\" data-testname=\"last simple listitem\" data-expectedrole=\"listitem\" class=\"ex\">x</div>\n</div>\n\n<!--\n CORE-AAM requires that, for elements with roles not contained in the\n required context, user agents must ignore the role token and return the\n computed role as if the ignored role token had not been included.\n See https://w3c.github.io/core-aam/#roleMappingComputedRole\n-->\n<div role=\"listitem\" data-testname=\"orphan div with listitem role\" class=\"ex-generic\">x</div>\n<p role=\"listitem\" data-testname=\"orphan p with listitem role\" data-expectedrole=\"paragraph\" class=\"ex\">x</p>", 1170 1195 "selector": ".ex" 1171 1196 }, 1172 1197 { 1173 1198 "filename": "list-roles.html", 1174 1199 "title": "List-related Role Verification Tests",1175 -1 "html": "<p>Tests <a href=\"https://w3c.github.io/aria/#list\">list</a> and related roles.</p>\n\n<div role=\"list\" data-testname=\"first simple list\" data-expectedrole=\"list\" class=\"ex\">\n <div role=\"listitem\" data-testname=\"first simple listitem\" data-expectedrole=\"listitem\" class=\"ex\">x</div>\n <div role=\"listitem\" data-testname=\"last simple listitem\" data-expectedrole=\"listitem\" class=\"ex\">x</div>\n</div>",-1 1200 "html": "<p>Tests <a href=\"https://w3c.github.io/aria/#list\">list</a> and related roles.</p>\n\n<div role=\"list\" data-testname=\"first simple list\" data-expectedrole=\"list\" class=\"ex\">\n <div role=\"listitem\" data-testname=\"first simple listitem\" data-expectedrole=\"listitem\" class=\"ex\">x</div>\n <div role=\"listitem\" data-testname=\"last simple listitem\" data-expectedrole=\"listitem\" class=\"ex\">x</div>\n</div>\n\n<!--\n CORE-AAM requires that, for elements with roles not contained in the\n required context, user agents must ignore the role token and return the\n computed role as if the ignored role token had not been included.\n See https://w3c.github.io/core-aam/#roleMappingComputedRole\n-->\n<div role=\"listitem\" data-testname=\"orphan div with listitem role\" class=\"ex-generic\">x</div>\n<p role=\"listitem\" data-testname=\"orphan p with listitem role\" data-expectedrole=\"paragraph\" class=\"ex\">x</p>", -1 1201 "role": "generic", -1 1202 "selector": ".ex-generic" -1 1203 }, -1 1204 { -1 1205 "filename": "synonym-roles.html", -1 1206 "title": "Region Role Verification Tests", -1 1207 "html": "<p>Tests synonym roles image/img and none/presentation via <a href=\"https://w3c.github.io/core-aam/#roleMappingComputedRole\">Core-AAM Computed Role</a>.</p>\n\n<!-- spec resolution https://github.com/w3c/core-aam/issues/166 -->\n\n<div role=\"none\" id=\"none\" data-testname=\"none role == computedrole none\" class=\"ex-generic\">x</div><!-- preferred -->\n<div role=\"presentation\" id=\"presentation\" data-testname=\"synonym presentation role == computedrole none\" class=\"ex-generic\">x</div><!-- synonym -->\n\n<div role=\"image\" id=\"image\" data-expectedrole=\"image\" data-testname=\"image role == computedrole image\" class=\"ex\">x</div><!-- preferred -->\n<div role=\"img\" id=\"img\" data-expectedrole=\"image\" data-testname=\"synonym img role == computedrole image\" class=\"ex\">x</div><!-- synonym -->\n\n<!-- `directory` synonym deprecated in ARIA 1.2; these examples should all return computedrole `list` -->\n<ul role=\"list\" id=\"list2\" data-expectedrole=\"list\" data-testname=\"list role == computedrole list\" class=\"ex\"><li>x</li></ul>\n<ul role=\"directory\" id=\"directory\" data-expectedrole=\"list\" data-testname=\"directory role == computedrole list\" class=\"ex\"><li>x</li></ul>\n<div role=\"directory\" id=\"div\" data-expectedrole=\"list\" data-testname=\"div w/directory role == computedrole list\" class=\"ex\"><div role=\"listitem\">x</div></div>", 1176 1208 "selector": ".ex" 1177 1209 }, 1178 1210 { 1179 1211 "filename": "synonym-roles.html", 1180 1212 "title": "Region Role Verification Tests",1181 -1 "html": "<p>Tests synonym roles image/img and none/presentation via <a href=\"https://w3c.github.io/core-aam/#roleMappingComputedRole\">Core-AAM Computed Role</a>.</p>\n\n<!-- spec resolution https://github.com/w3c/core-aam/issues/166 -->\n\n<div role=\"none\" id=\"none\" data-expectedrole=\"none\" data-testname=\"none role == computedrole none\" class=\"ex\">x</div><!-- preferred -->\n<div role=\"presentation\" id=\"presentation\" data-expectedrole=\"none\" data-testname=\"synonym presentation role == computedrole none\" class=\"ex\">x</div><!-- synonym -->\n\n<div role=\"image\" id=\"image\" data-expectedrole=\"image\" data-testname=\"image role == computedrole image\" class=\"ex\">x</div><!-- preferred -->\n<div role=\"img\" id=\"img\" data-expectedrole=\"image\" data-testname=\"synonym img role == computedrole image\" class=\"ex\">x</div><!-- synonym -->\n\n<!-- `directory` synonym deprecated in ARIA 1.2; these examples should all return computedrole `list` -->\n<ul role=\"list\" id=\"list2\" data-expectedrole=\"list\" data-testname=\"list role == computedrole list\" class=\"ex\"><li>x</li></ul>\n<ul role=\"directory\" id=\"directory\" data-expectedrole=\"list\" data-testname=\"directory role == computedrole list\" class=\"ex\"><li>x</li></ul>\n<div role=\"directory\" id=\"div\" data-expectedrole=\"list\" data-testname=\"div w/directory role == computedrole list\" class=\"ex\"><div role=\"listitem\">x</div></div>",-1 1213 "html": "<p>Tests synonym roles image/img and none/presentation via <a href=\"https://w3c.github.io/core-aam/#roleMappingComputedRole\">Core-AAM Computed Role</a>.</p>\n\n<!-- spec resolution https://github.com/w3c/core-aam/issues/166 -->\n\n<div role=\"none\" id=\"none\" data-testname=\"none role == computedrole none\" class=\"ex-generic\">x</div><!-- preferred -->\n<div role=\"presentation\" id=\"presentation\" data-testname=\"synonym presentation role == computedrole none\" class=\"ex-generic\">x</div><!-- synonym -->\n\n<div role=\"image\" id=\"image\" data-expectedrole=\"image\" data-testname=\"image role == computedrole image\" class=\"ex\">x</div><!-- preferred -->\n<div role=\"img\" id=\"img\" data-expectedrole=\"image\" data-testname=\"synonym img role == computedrole image\" class=\"ex\">x</div><!-- synonym -->\n\n<!-- `directory` synonym deprecated in ARIA 1.2; these examples should all return computedrole `list` -->\n<ul role=\"list\" id=\"list2\" data-expectedrole=\"list\" data-testname=\"list role == computedrole list\" class=\"ex\"><li>x</li></ul>\n<ul role=\"directory\" id=\"directory\" data-expectedrole=\"list\" data-testname=\"directory role == computedrole list\" class=\"ex\"><li>x</li></ul>\n<div role=\"directory\" id=\"div\" data-expectedrole=\"list\" data-testname=\"div w/directory role == computedrole list\" class=\"ex\"><div role=\"listitem\">x</div></div>", -1 1214 "role": "generic", -1 1215 "selector": ".ex-generic" -1 1216 }, -1 1217 { -1 1218 "filename": "tab-roles.html", -1 1219 "title": "Tab-related Role Verification Tests", -1 1220 "html": "<p>Tests <a href=\"https://w3c.github.io/aria/#tab\">tab</a> and related roles.</p>\n\n<!--<div> tab with tablist/tab/tabpanel semantics-->\n<div role=\"tablist\" data-testname=\"div role is tablist\" data-expectedrole=\"tablist\" class=\"ex\">\n <div role=\"tab\" data-testname=\"role is tab (in div tablist)\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel (with sibling div tablist)\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n\n<!--<div> tabs with tablist/tab/tabpanel semantics, selection, no focus management-->\n<div role=\"tablist\" data-testname=\"div role is tablist (with selection)\" data-expectedrole=\"tablist\" class=\"ex\">\n <div role=\"tab\" aria-selected=\"true\" data-testname=\"role is tab and tab is selected\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n <div role=\"tab\" aria-selected=\"false\" data-testname=\"role is tab and tab is not selected\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel (faux selected)\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel (faux unselected)\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n\n<!--<div> tabs with tablist/tab/tabpanel semantics, selection, roving tabindex-->\n<div role=\"tablist\" data-testname=\"div role is tablist (with selection, roving tabindex)\" data-expectedrole=\"tablist\" class=\"ex\">\n <div role=\"tab\" aria-selected=\"true\" tabindex = \"0\" data-testname=\"role is tab, tab is selected and in tab order\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n <div role=\"tab\" aria-selected=\"false\" tabindex = \"-1\" data-testname=\"role is tab and tab is not selected, not tabbable\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n <div role=\"tab\" aria-selected=\"false\" tabindex = \"-1\" data-testname=\"role is tab and tab is not selected, not tabbable (duplicate)\" data-expectedrole=\"tab\" class=\"ex\">z</div>\n</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel with selection, roving tabindex\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel with selection, roving tabindex (duplicate)\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel with selection, roving tabindex (duplicate 2)\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n\n<!--<div> tabs with tablist/tab/tabpanel semantics and non-empty tabpanel-->\n<div role=\"tablist\" data-testname=\"div role is tablist (with non-empty tabpanel)\" data-expectedrole=\"tablist\" class=\"ex\">\n <div role=\"tab\" aria-selected=\"true\" data-testname=\"role is tab and tab is selected (with non-empty tabpanel content)\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n <div role=\"tab\" aria-selected=\"false\" data-testname=\"role is tab and tab is not selected (with non-empty tabpanel content)\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel with selection, non-empty content\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab one's stuff</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel with selection, non-empty content (duplicate)\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab two's stuff</div>\n\n<!--<div> tabs with tablist/tab/tabpanel semantics, non-empty tabpanel and aria-controls-->\n<div role=\"tablist\" data-testname=\"div role is tablist (with non-empty tabpanel and aria-controls)\" data-expectedrole=\"tablist\" class=\"ex\">\n <div role=\"tab\" aria-controls = \"tabpanel1\" aria-selected=\"true\" data-testname=\"role is tab, tab is selected (with aria-controls)\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n <div role=\"tab\" aria-controls = \"tabpanel2\" aria-selected=\"false\" data-testname=\"role is tab, tab is not selected (with aria-controls)\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n</div>\n<div role=\"tabpanel\" id=\"tabpanel1\" data-testname=\"role is tabpanel with aria-controls and non-empty content\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab one's stuff</div>\n<div role=\"tabpanel\" id=\"tabpanel2\" data-testname=\"role is tabpanel with aria-controls and non-empty content (duplicate)\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab one's stuff</div>\n\n<!--<div> tablist with child <button> that has explicit role=\"tab\"-->\n<div role=\"tablist\" data-testname=\"div role for button parent container is tablist\" data-expectedrole=\"tablist\" class=\"ex\">\n <button role=\"tab\" data-testname=\"button role is tab (in div tablist)\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n</div>\n\n<!--<ul> tablist with child <divs> that have explicit role=\"tab\"-->\n<ul role=\"tablist\" data-testname=\"ul role is tablist\" data-expectedrole=\"tablist\" class=\"ex\">\n <li>\n <div role=\"tab\" aria-selected=\"true\" tabindex = \"0\" data-testname=\"role is tab (within li), tab is selected and in tab order\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n </li>\n <li>\n <div role=\"tab\" aria-selected=\"false\" tabindex = \"-1\" data-testname=\"role is tab (within li), tab is not selected and in tab order\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n </li>\n</ul>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel as sibling to ul\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab one's stuff</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel as sibling to ul (duplicate)\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab two's stuff</div>\n\n<!--<ul> tablist with child <divs> that have explicit role=\"tab\", role=\"none\" on li elements-->\n <ul role=\"tablist\" data-testname=\"ul role is tablist (child li have role none)\" data-expectedrole=\"tablist\" class=\"ex\">\n <li role=\"none\">\n <div role=\"tab\" aria-selected=\"true\" tabindex = \"0\" data-testname=\"role is tab (within li with role none), tab is selected and in tab order\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n </li>\n <li role=\"none\">\n <div role=\"tab\" aria-selected=\"false\" tabindex = \"-1\" data-testname=\"role is tab (within li with role none), tab is not selected and in tab order\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n </li>\n </ul>\n <div role=\"tabpanel\" data-testname=\"role is tabpanel as sibling to ul with child role none li elements\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab one's stuff</div>\n <div role=\"tabpanel\" data-testname=\"role is tabpanel as sibling to ul with child role none li elements (duplicate)\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab two's stuff</div>\n\n<!--\n CORE-AAM requires that, for elements with roles not contained in the\n required context, user agents must ignore the role token and return the\n computed role as if the ignored role token had not been included.\n See https://w3c.github.io/core-aam/#roleMappingComputedRole\n-->\n<button role=\"tab\" data-testname=\"orphan button with tab role\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<span role=\"tab\" data-testname=\"orphan span with tab role\" class=\"ex-generic\">x</span>", -1 1221 "selector": ".ex" -1 1222 }, -1 1223 { -1 1224 "filename": "tab-roles.html", -1 1225 "title": "Tab-related Role Verification Tests", -1 1226 "html": "<p>Tests <a href=\"https://w3c.github.io/aria/#tab\">tab</a> and related roles.</p>\n\n<!--<div> tab with tablist/tab/tabpanel semantics-->\n<div role=\"tablist\" data-testname=\"div role is tablist\" data-expectedrole=\"tablist\" class=\"ex\">\n <div role=\"tab\" data-testname=\"role is tab (in div tablist)\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel (with sibling div tablist)\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n\n<!--<div> tabs with tablist/tab/tabpanel semantics, selection, no focus management-->\n<div role=\"tablist\" data-testname=\"div role is tablist (with selection)\" data-expectedrole=\"tablist\" class=\"ex\">\n <div role=\"tab\" aria-selected=\"true\" data-testname=\"role is tab and tab is selected\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n <div role=\"tab\" aria-selected=\"false\" data-testname=\"role is tab and tab is not selected\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel (faux selected)\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel (faux unselected)\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n\n<!--<div> tabs with tablist/tab/tabpanel semantics, selection, roving tabindex-->\n<div role=\"tablist\" data-testname=\"div role is tablist (with selection, roving tabindex)\" data-expectedrole=\"tablist\" class=\"ex\">\n <div role=\"tab\" aria-selected=\"true\" tabindex = \"0\" data-testname=\"role is tab, tab is selected and in tab order\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n <div role=\"tab\" aria-selected=\"false\" tabindex = \"-1\" data-testname=\"role is tab and tab is not selected, not tabbable\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n <div role=\"tab\" aria-selected=\"false\" tabindex = \"-1\" data-testname=\"role is tab and tab is not selected, not tabbable (duplicate)\" data-expectedrole=\"tab\" class=\"ex\">z</div>\n</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel with selection, roving tabindex\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel with selection, roving tabindex (duplicate)\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel with selection, roving tabindex (duplicate 2)\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n\n<!--<div> tabs with tablist/tab/tabpanel semantics and non-empty tabpanel-->\n<div role=\"tablist\" data-testname=\"div role is tablist (with non-empty tabpanel)\" data-expectedrole=\"tablist\" class=\"ex\">\n <div role=\"tab\" aria-selected=\"true\" data-testname=\"role is tab and tab is selected (with non-empty tabpanel content)\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n <div role=\"tab\" aria-selected=\"false\" data-testname=\"role is tab and tab is not selected (with non-empty tabpanel content)\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel with selection, non-empty content\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab one's stuff</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel with selection, non-empty content (duplicate)\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab two's stuff</div>\n\n<!--<div> tabs with tablist/tab/tabpanel semantics, non-empty tabpanel and aria-controls-->\n<div role=\"tablist\" data-testname=\"div role is tablist (with non-empty tabpanel and aria-controls)\" data-expectedrole=\"tablist\" class=\"ex\">\n <div role=\"tab\" aria-controls = \"tabpanel1\" aria-selected=\"true\" data-testname=\"role is tab, tab is selected (with aria-controls)\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n <div role=\"tab\" aria-controls = \"tabpanel2\" aria-selected=\"false\" data-testname=\"role is tab, tab is not selected (with aria-controls)\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n</div>\n<div role=\"tabpanel\" id=\"tabpanel1\" data-testname=\"role is tabpanel with aria-controls and non-empty content\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab one's stuff</div>\n<div role=\"tabpanel\" id=\"tabpanel2\" data-testname=\"role is tabpanel with aria-controls and non-empty content (duplicate)\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab one's stuff</div>\n\n<!--<div> tablist with child <button> that has explicit role=\"tab\"-->\n<div role=\"tablist\" data-testname=\"div role for button parent container is tablist\" data-expectedrole=\"tablist\" class=\"ex\">\n <button role=\"tab\" data-testname=\"button role is tab (in div tablist)\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n</div>\n\n<!--<ul> tablist with child <divs> that have explicit role=\"tab\"-->\n<ul role=\"tablist\" data-testname=\"ul role is tablist\" data-expectedrole=\"tablist\" class=\"ex\">\n <li>\n <div role=\"tab\" aria-selected=\"true\" tabindex = \"0\" data-testname=\"role is tab (within li), tab is selected and in tab order\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n </li>\n <li>\n <div role=\"tab\" aria-selected=\"false\" tabindex = \"-1\" data-testname=\"role is tab (within li), tab is not selected and in tab order\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n </li>\n</ul>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel as sibling to ul\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab one's stuff</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel as sibling to ul (duplicate)\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab two's stuff</div>\n\n<!--<ul> tablist with child <divs> that have explicit role=\"tab\", role=\"none\" on li elements-->\n <ul role=\"tablist\" data-testname=\"ul role is tablist (child li have role none)\" data-expectedrole=\"tablist\" class=\"ex\">\n <li role=\"none\">\n <div role=\"tab\" aria-selected=\"true\" tabindex = \"0\" data-testname=\"role is tab (within li with role none), tab is selected and in tab order\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n </li>\n <li role=\"none\">\n <div role=\"tab\" aria-selected=\"false\" tabindex = \"-1\" data-testname=\"role is tab (within li with role none), tab is not selected and in tab order\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n </li>\n </ul>\n <div role=\"tabpanel\" data-testname=\"role is tabpanel as sibling to ul with child role none li elements\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab one's stuff</div>\n <div role=\"tabpanel\" data-testname=\"role is tabpanel as sibling to ul with child role none li elements (duplicate)\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab two's stuff</div>\n\n<!--\n CORE-AAM requires that, for elements with roles not contained in the\n required context, user agents must ignore the role token and return the\n computed role as if the ignored role token had not been included.\n See https://w3c.github.io/core-aam/#roleMappingComputedRole\n-->\n<button role=\"tab\" data-testname=\"orphan button with tab role\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<span role=\"tab\" data-testname=\"orphan span with tab role\" class=\"ex-generic\">x</span>", -1 1227 "role": "generic", -1 1228 "selector": ".ex-generic" -1 1229 }, -1 1230 { -1 1231 "filename": "table-roles.html", -1 1232 "title": "Table Role Verification Tests", -1 1233 "html": "<p>Tests <a href=\"https://w3c.github.io/aria/#table\">table</a> and related roles.</p>\n\n<!-- HTML <table> Elements Testing -->\n\n <!-- <caption> -> wpt/html-aam/table-roles.html -->\n\n <!-- <table> -> wpt/html-aam/table-roles.html -->\n <!-- <tbody> -> wpt/html-aam/table-roles.html -->\n\n <!-- <td> -> wpt/html-aam/table-roles.html -->\n\n <!-- <tfoot> -> wpt/html-aam/table-roles.html -->\n\n <!-- <th> -> wpt/html-aam/table-roles.html -->\n <!-- <thead> -> wpt/html-aam/table-roles.html -->\n\n <!-- <tr> -> wpt/html-aam/table-roles.html -->\n\n\n<!-- ARIA Grid Elements Testing -->\n\n <!-- Grid roles tested in ./grid-roles.html -->\n\n\n<!-- ARIA Table Roles Testing -->\n\n <!-- caption -->\n <div role=\"table\">\n <div role=\"caption\" data-testname=\"div role is caption (in div with table role)\" data-expectedrole=\"caption\" class=\"ex\">x</div>\n </div>\n\n <p role=\"caption\" data-testname=\"orphan p role is caption\" data-expectedrole=\"caption\" class=\"ex\">x</p>\n\n <!-- cell -->\n <div role=\"table\">\n <div role=\"rowgroup\">\n <div role=\"row\">\n <span role=\"columnheader\">x</span>\n <span role=\"columnheader\">x</span>\n </div>\n </div>\n <div role=\"rowgroup\">\n <div role=\"row\">\n <span role=\"cell\" data-testname=\"span role is cell (in div with row role, in div with rowgroup role, in div with table role)\" data-expectedrole=\"cell\" class=\"ex\">x</span>\n <span role=\"cell\">x</span>\n </div>\n </div>\n </div>\n\n <span role=\"cell\" data-testname=\"orphan span role is cell\" data-expectedrole=\"cell\" class=\"ex\">x</span>\n\n <!-- columnheader -->\n <div role=\"table\">\n <div role=\"rowgroup\">\n <div role=\"row\">\n <span role=\"columnheader\" data-testname=\"span role is columnheader (in div with row role, in div with rowgroup role, in div with table role)\" data-expectedrole=\"columnheader\" class=\"ex\">x</span>\n <span role=\"columnheader\">x</span>\n <span role=\"columnheader\">x</span>\n </div>\n </div>\n <div role=\"rowgroup\">\n <div role=\"row\">\n <span role=\"rowheader\">x</span>\n <span role=\"cell\">x</span>\n <span role=\"cell\">x</span>\n </div>\n </div>\n </div>\n\n <!-- columnheader, orphaned -> ./grid-roles.html -->\n\n <!-- row -->\n <div role=\"table\">\n <div role=\"rowgroup\">\n <div role=\"row\" data-testname=\"div role is row (in div with rowgroup role, in div with table role)\" data-expectedrole=\"row\" class=\"ex\">\n <span role=\"columnheader\">x</span>\n </div>\n </div>\n <div role=\"rowgroup\">\n <div role=\"row\">\n <span role=\"cell\">x</span>\n </div>\n </div>\n </div>\n\n <!-- row, orphaned -> ./grid-roles.html -->\n\n <!-- rowgroup -->\n <div role=\"table\">\n <div role=\"rowgroup\" data-testname=\"div role is rowgroup (in div with table role)\" data-expectedrole=\"rowgroup\" class=\"ex\">\n <div role=\"row\">\n <span role=\"columnheader\">x</span>\n <span role=\"columnheader\">x</span>\n </div>\n </div>\n <div role=\"rowgroup\">\n <div role=\"row\">\n <span role=\"cell\">x</span>\n <span role=\"cell\">x</span>\n </div>\n </div>\n </div>\n\n <!-- rowgroup, orphaned -> ./grid-roles.html -->\n\n <!-- rowheader -->\n <div role=\"table\">\n <div role=\"rowgroup\">\n <div role=\"row\">\n <span role=\"columnheader\">x</span>\n <span role=\"columnheader\">x</span>\n <span role=\"columnheader\">x</span>\n </div>\n </div>\n <div role=\"rowgroup\">\n <div role=\"row\">\n <span role=\"rowheader\" data-testname=\"role is rowheader (in div with row role, in div with rowgroup role, in div with table role)\" data-expectedrole=\"rowheader\" class=\"ex\">x</span>\n <span role=\"cell\">x</span>\n <span role=\"cell\">x</span>\n <span role=\"cell\">x</span>\n </div>\n </div>\n </div>\n\n <!-- rowheader, orphaned -> ./grid-roles.html -->\n\n <!-- table -->\n <div role=\"table\" data-testname=\"div role is table\" data-expectedrole=\"table\" class=\"ex\">\n <div role=\"row\">\n <span role=\"columnheader\">x</span>\n <span role=\"columnheader\">x</span>\n </div>\n <div role=\"row\">\n <span role=\"cell\">x</span>\n <span role=\"cell\">x</span>\n </div>\n </div>", 1182 1234 "selector": ".ex" 1183 1235 }, 1184 1236 { @@ -1188,30 +1240,89 @@ window.wpt["wai-aria"] = [ 1188 1240 "selector": ".ex" 1189 1241 }, 1190 1242 { -1 1243 "filename": "button-roles.html", -1 1244 "title": "Button-related Role Verification Tests", -1 1245 "html": "<p>Tests <a href=\"https://w3c.github.io/aria/#button\">button</a> and related roles.</p>\n\n<div role=\"button\" aria-haspopup=\"false\" data-testname=\"button aria-haspopup false\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-haspopup=\"true\" data-testname=\"button aria-haspopup true\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-haspopup=\"menu\" data-testname=\"button aria-haspopup menu\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-haspopup=\"dialog\" data-testname=\"button aria-haspopup dialog\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-haspopup=\"listbox\" data-testname=\"button aria-haspopup listbox\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-haspopup=\"tree\" data-testname=\"button aria-haspopup tree\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-haspopup=\"grid\" data-testname=\"button aria-haspopup grid\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-pressed=\"true\" data-testname=\"button aria-pressed true\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-pressed=\"false\" data-testname=\"button aria-pressed false\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-pressed=\"\" data-testname=\"button aria-pressed undefined\" data-expectedrole=\"button\" class=\"ex\"></div>", -1 1246 "selector": ".ex" -1 1247 }, -1 1248 { -1 1249 "filename": "tree-roles.html", -1 1250 "title": "Tree related Role Verification Tests", -1 1251 "html": "<p>Tests <a href=\"https://w3c.github.io/aria/#tree\">tree</a> and related roles.</p>\n\n<ul role=\"tree\" data-testname=\"role is tree\" data-expectedrole=\"tree\" class=\"ex\">\n <li role=\"treeitem\" data-testname=\"role is treeitem (in tree)\" data-expectedrole=\"treeitem\" class=\"ex\">\n x\n <ul role=\"group\" data-testname=\"role is group (in treeitem)\" data-expectedrole=\"group\" class=\"ex\">\n <li role=\"treeitem\" data-testname=\"role is treeitem (in group, in treeitem)\" data-expectedrole=\"treeitem\" class=\"ex\">x</li>\n <li role=\"treeitem\">x</li>\n </ul>\n </li>\n <li role=\"treeitem\">x</li>\n</ul>\n\n<table role=\"treegrid\" data-testname=\"role is treegrid\" data-expectedrole=\"treegrid\" class=\"ex\">\n <tbody>\n <tr role=\"row\" aria-expanded=\"true\" aria-level=\"1\" aria-posinset=\"1\" aria-setsize=\"2\" data-testname=\"role is row (in treegrid)\" data-expectedrole=\"row\" class=\"ex expander\">\n <td role=\"gridcell\" data-testname=\"role is gridcell (in row, in treegrid)\" data-expectedrole=\"gridcell\" class=\"ex\">x</td>\n <td role=\"gridcell\">x</td>\n <td role=\"gridcell\">x</td>\n </tr>\n <tr role=\"row\" aria-level=\"2\" aria-posinset=\"1\" aria-setsize=\"2\">\n <td role=\"gridcell\">x</td>\n <td role=\"gridcell\">x</td>\n <td role=\"gridcell\">x</td>\n </tr>\n <tr aria-expanded=\"false\" aria-level=\"2\" aria-posinset=\"2\" aria-setsize=\"2\" role=\"row\" class=\"expander\">\n <td role=\"gridcell\">x</td>\n <td role=\"gridcell\">x</td>\n <td role=\"gridcell\">x</td>\n </tr>\n <tr role=\"row\" aria-level=\"3\" aria-posinset=\"1\" aria-setsize=\"1\" class=\"hidden\">\n <td role=\"gridcell\">x</td>\n <td role=\"gridcell\">x</td>\n <td role=\"gridcell\">x</td>\n </tr>\n <tr role=\"row\" aria-expanded=\"false\" aria-level=\"1\" aria-posinset=\"2\" aria-setsize=\"2\" class=\"expander\">\n <td role=\"gridcell\">x</td>\n <td role=\"gridcell\">x</td>\n <td role=\"gridcell\">x</td>\n </tr>\n <tr role=\"row\" aria-level=\"2\" aria-posinset=\"1\" aria-setsize=\"2\" class=\"hidden\">\n <td role=\"gridcell\">x</td>\n <td role=\"gridcell\">x</td>\n <td role=\"gridcell\">x</td>\n </tr>\n <tr role=\"row\" aria-level=\"2\" aria-posinset=\"1\" aria-setsize=\"2\" class=\"hidden\">\n <td role=\"gridcell\">x</td>\n <td role=\"gridcell\">x</td>\n <td role=\"gridcell\">x</td>\n </tr>\n </tbody>\n</table>\n\n<!--\n CORE-AAM requires that, for elements with roles not contained in the\n required context, user agents must ignore the role token and return the\n computed role as if the ignored role token had not been included.\n See https://w3c.github.io/core-aam/#roleMappingComputedRole\n-->\n<nav role=\"treeitem\" data-testname=\"orphaned treeitem outside the context of tree\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<button role=\"treeitem\" data-testname=\"orphaned button with treeitem role outside tree context\" data-expectedrole=\"button\" class=\"ex\">x</button>", -1 1252 "selector": ".ex" -1 1253 }, -1 1254 { 1191 1255 "filename": "form-roles.html", 1192 1256 "title": "Form Role Verification Tests", 1193 1257 "html": "<p>Verifies <a href=\"https://w3c.github.io/aria/#document-handling_author-errors_roles\">9.1 Roles - handling author errors</a> and the <a href=\"https://w3c.github.io/aria/#form\">form</a> role.</p>\n\n\n<!-- no label -->\n<nav role=\"form\" data-testname=\"form without label\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- w/ label -->\n<nav role=\"form\" data-testname=\"form with label\" data-expectedrole=\"form\" aria-label=\"x\" class=\"ex\">x</nav>", 1194 1258 "selector": ".ex" 1195 1259 }, 1196 1260 { -1 1261 "filename": "generic-roles.html", -1 1262 "title": "Generic Role Verification Tests", -1 1263 "html": "<p>Tests <a href=\"https://w3c.github.io/aria/#generic\">generic</a>.</p>\n\n<p role=\"generic\" data-testname=\"generic role on p element is generic\" class=\"ex-generic\">x</p>", -1 1264 "role": "generic", -1 1265 "selector": ".ex-generic" -1 1266 }, -1 1267 { -1 1268 "filename": "contextual-roles.html", -1 1269 "title": "Contextual Role Verification Tests", -1 1270 "html": "<p>Verifies Required Accessibility Parent Roles from <a href=\"https://w3c.github.io/aria/#scope\">5.2.7 Required Accessibility Parent Role</a></p>\n <p>Also verifies Allowed Accessibility Child Roles from <a href=\"https://w3c.github.io/aria/#mustContain\">5.2.6 Allowed Accessibility Child Roles</a></p>\n\n<!-- Notes for \"required context\" testing:\n\n - See Computed Role for more details on role computation when an element lacks required context:\n https://w3c.github.io/core-aam/#roleMappingComputedRole\n\n - See ARIA spec for full listing of \"Required Accessibility Parent Role\" for each element:\n https://w3c.github.io/aria/#scope\n\n Identified roles with \"Required Context\" excluding abstract roles (e.g., child -> parent):\n\n - caption -> {figure, grid, table, treegrid}\n - cell -> row\n - columnheader -> row\n - gridcell -> row\n - listitem -> {list, directory} *Note: directory role is deprecated as of ARIA 1.2\n - menuitem -> {group, menu, menubar}\n - menuitemcheckbox -> {group, menu, menubar}\n - menuitemradio -> {group, menu, menubar}\n - option -> {group, listbox}\n - row -> {grid, rowgroup, table, treegrid}\n - rowgroup -> {grid, table, treegrid}\n - rowheader -> row\n - tab -> tablist\n - treeitem -> {group, tree}\n\n -->\n\n<!-- Required Context Roles Testing -->\n\n <!-- caption -> ./table-roles.html -->\n\n <!-- cell -> ./table-roles.html -->\n\n <!-- columnheader -> ./grid-roles.html, ./table-roles.html -->\n\n <!-- gridcell -> ./grid-roles.html -->\n\n <!-- listitem -> ./list-roles.html -->\n\n <!-- menuitem, menuitemcheckbox, menuitemradio -> ./menu-roles.html -->\n\n <!-- option -> ./listbox-roles.html -->\n\n <!-- row -> ./grid-roles.html, ./table-roles.html -->\n\n <!-- rowgroup -> ./grid-roles.html, ./table-roles.html -->\n\n <!-- rowheader -> ./grid-roles.html, ./table-roles.html -->\n\n <!-- tab -> ./tab-roles.html -->\n\n <!-- treeitem -> ./tree-roles.html -->\n\n<!-- Misc Contextual Role Testing -->\n\n <!-- Testing contentinfo role computation when scoped to <main> or not:\n 1. If <footer> is a descendant of <main>, it should become 'generic'\n 2. If <footer> is scoped to <body>, it should be 'contentinfo' as expected\n\n see: https://w3c.github.io/html-aam/#el-footer-ancestorbody -->\n <main>\n <footer data-testname=\"footer element scoped to main element is generic\" class=\"ex-generic\">x</footer>\n </main>\n\n <footer data-testname=\"footer scoped to body element is contentinfo\" data-expectedrole=\"contentinfo\" class=\"ex\">x</footer>\n <div role=\"contentinfo\" data-testname=\"contentinfo region scoped to body element is contentinfo\" data-expectedrole=\"contentinfo\" class=\"ex\">x</div>", -1 1271 "selector": ".ex" -1 1272 }, -1 1273 { -1 1274 "filename": "contextual-roles.html", -1 1275 "title": "Contextual Role Verification Tests", -1 1276 "html": "<p>Verifies Required Accessibility Parent Roles from <a href=\"https://w3c.github.io/aria/#scope\">5.2.7 Required Accessibility Parent Role</a></p>\n <p>Also verifies Allowed Accessibility Child Roles from <a href=\"https://w3c.github.io/aria/#mustContain\">5.2.6 Allowed Accessibility Child Roles</a></p>\n\n<!-- Notes for \"required context\" testing:\n\n - See Computed Role for more details on role computation when an element lacks required context:\n https://w3c.github.io/core-aam/#roleMappingComputedRole\n\n - See ARIA spec for full listing of \"Required Accessibility Parent Role\" for each element:\n https://w3c.github.io/aria/#scope\n\n Identified roles with \"Required Context\" excluding abstract roles (e.g., child -> parent):\n\n - caption -> {figure, grid, table, treegrid}\n - cell -> row\n - columnheader -> row\n - gridcell -> row\n - listitem -> {list, directory} *Note: directory role is deprecated as of ARIA 1.2\n - menuitem -> {group, menu, menubar}\n - menuitemcheckbox -> {group, menu, menubar}\n - menuitemradio -> {group, menu, menubar}\n - option -> {group, listbox}\n - row -> {grid, rowgroup, table, treegrid}\n - rowgroup -> {grid, table, treegrid}\n - rowheader -> row\n - tab -> tablist\n - treeitem -> {group, tree}\n\n -->\n\n<!-- Required Context Roles Testing -->\n\n <!-- caption -> ./table-roles.html -->\n\n <!-- cell -> ./table-roles.html -->\n\n <!-- columnheader -> ./grid-roles.html, ./table-roles.html -->\n\n <!-- gridcell -> ./grid-roles.html -->\n\n <!-- listitem -> ./list-roles.html -->\n\n <!-- menuitem, menuitemcheckbox, menuitemradio -> ./menu-roles.html -->\n\n <!-- option -> ./listbox-roles.html -->\n\n <!-- row -> ./grid-roles.html, ./table-roles.html -->\n\n <!-- rowgroup -> ./grid-roles.html, ./table-roles.html -->\n\n <!-- rowheader -> ./grid-roles.html, ./table-roles.html -->\n\n <!-- tab -> ./tab-roles.html -->\n\n <!-- treeitem -> ./tree-roles.html -->\n\n<!-- Misc Contextual Role Testing -->\n\n <!-- Testing contentinfo role computation when scoped to <main> or not:\n 1. If <footer> is a descendant of <main>, it should become 'generic'\n 2. If <footer> is scoped to <body>, it should be 'contentinfo' as expected\n\n see: https://w3c.github.io/html-aam/#el-footer-ancestorbody -->\n <main>\n <footer data-testname=\"footer element scoped to main element is generic\" class=\"ex-generic\">x</footer>\n </main>\n\n <footer data-testname=\"footer scoped to body element is contentinfo\" data-expectedrole=\"contentinfo\" class=\"ex\">x</footer>\n <div role=\"contentinfo\" data-testname=\"contentinfo region scoped to body element is contentinfo\" data-expectedrole=\"contentinfo\" class=\"ex\">x</div>", -1 1277 "role": "generic", -1 1278 "selector": ".ex-generic" -1 1279 }, -1 1280 { 1197 1281 "filename": "listbox-roles.html", 1198 1282 "title": "Listbox-related Role Verification Tests",1199 -1 "html": "<p>Tests <a href=\"https://w3c.github.io/aria/#listbox\">listbox</a> and related roles.</p>\n\n<div role=\"listbox\" data-testname=\"div role is listbox\" data-expectedrole=\"listbox\" class=\"ex\">\n <div role=\"option\" data-testname=\"role is option (in div listbox)\" data-expectedrole=\"option\" class=\"ex\">x</div>\n <div role=\"group\" data-testname=\"role is group (in div listbox)\" data-expectedrole=\"group\" class=\"ex\">\n <span role=\"option\" data-testname=\"role is option (in group, in div listbox)\" data-expectedrole=\"option\" class=\"ex\">x</span>\n <span role=\"option\">x</span>\n </div>\n <div role=\"option\">x</div>\n</div>\n\n<ul role=\"listbox\" data-testname=\"ul role is listbox\" data-expectedrole=\"listbox\" class=\"ex\">\n <li role=\"option\" data-testname=\"li role is option (in ul listbox)\" data-expectedrole=\"option\" class=\"ex\">\n x\n </li>\n <li role=\"option\">\n x\n </li>\n</ul>\n\n<nav role=\"option\" data-testname=\"orphaned option outside the context of listbox\" data-expectedrole=\"navigation\"\n class=\"ex\">x\n</nav>",-1 1283 "html": "<p>Tests <a href=\"https://w3c.github.io/aria/#listbox\">listbox</a> and related roles.</p>\n\n<div role=\"listbox\" data-testname=\"div role is listbox\" data-expectedrole=\"listbox\" class=\"ex\">\n <div role=\"option\" data-testname=\"role is option (in div listbox)\" data-expectedrole=\"option\" class=\"ex\">x</div>\n <div role=\"group\" data-testname=\"role is group (in div listbox)\" data-expectedrole=\"group\" class=\"ex\">\n <span role=\"option\" data-testname=\"role is option (in group, in div listbox)\" data-expectedrole=\"option\" class=\"ex\">x</span>\n <span role=\"option\">x</span>\n </div>\n <div role=\"option\">x</div>\n</div>\n\n<ul role=\"listbox\" data-testname=\"ul role is listbox\" data-expectedrole=\"listbox\" class=\"ex\">\n <li role=\"option\" data-testname=\"li role is option (in ul listbox)\" data-expectedrole=\"option\" class=\"ex\">\n x\n </li>\n <li role=\"option\">\n x\n </li>\n</ul>\n\n<!--\n CORE-AAM requires that, for elements with roles not contained in the\n required context, user agents must ignore the role token and return the\n computed role as if the ignored role token had not been included.\n See https://w3c.github.io/core-aam/#roleMappingComputedRole\n-->\n<nav role=\"option\" data-testname=\"orphaned option outside the context of listbox\" data-expectedrole=\"navigation\"\n class=\"ex\">x\n</nav>", 1200 1284 "selector": ".ex" 1201 1285 }, 1202 1286 { 1203 1287 "filename": "grid-roles.html", 1204 1288 "title": "Grid Role Verification Tests",1205 -1 "html": "<p>Tests <a href=\"https://w3c.github.io/aria/#grid\">grid</a> and related roles.</p>\n\n <div role=\"grid\" data-testname=\"role is grid\" data-expectedrole=\"grid\" class=\"ex\">\n <div role=\"row\" data-testname=\"role is row (in grid)\" data-expectedrole=\"row\" class=\"ex\">\n <span role=\"columnheader\" data-testname=\"role is columnheader (in row, in grid)\" data-expectedrole=\"columnheader\" class=\"ex\">x</span>\n <span role=\"columnheader\">x</span>\n </div>\n <div role=\"row\">\n <span role=\"rowheader\" data-testname=\"role is rowheader (in row, in grid)\" data-expectedrole=\"rowheader\" class=\"ex\">x</span>\n <span role=\"gridcell\" data-testname=\"role is gridcell (in row, in grid)\" data-expectedrole=\"gridcell\" class=\"ex\">x</span>\n </div>\n </div>\n\n <div role=\"grid\">\n <div role=\"rowgroup\" data-testname=\"role is rowgroup (in grid)\" data-expectedrole=\"rowgroup\" class=\"ex\">\n <div role=\"row\" data-testname=\"role is row (in rowgroup, in grid)\" data-expectedrole=\"row\" class=\"ex\">\n <span role=\"columnheader\" data-testname=\"role is columnheader (in row, in rowgroup, in grid)\" data-expectedrole=\"columnheader\" class=\"ex\">x</span>\n <span role=\"columnheader\">x</span>\n <span role=\"columnheader\">x</span>\n </div>\n </div>\n <div role=\"rowgroup\">\n <div role=\"row\">\n <span role=\"rowheader\" data-testname=\"role is rowheader (in row, in rowgroup, in grid)\" data-expectedrole=\"rowheader\" class=\"ex\">x</span>\n <span role=\"gridcell\" data-testname=\"role is gridcell (in row, in rowgroup, in grid)\" data-expectedrole=\"gridcell\" class=\"ex\">x</span>\n <span role=\"gridcell\">x</span>\n </div>\n </div>\n </div>\n\n <div role=\"gridcell\" data-testname=\"orphaned gridcell outside the context of row\" data-expectedrole=\"none\" class=\"ex\">x</div>\n <div role=\"rowheader\" data-testname=\"orphaned rowheader outside the context of row\" data-expectedrole=\"none\" class=\"ex\">x</div>\n <div role=\"columnheader\" data-testname=\"orphaned columnheader outside the context of row\" data-expectedrole=\"none\" class=\"ex\">x</div>",-1 1289 "html": "<p>Tests <a href=\"https://w3c.github.io/aria/#grid\">grid</a> and related roles.</p>\n\n <!-- ARIA table roles tested in ./table-roles.html -->\n\n <div role=\"grid\" data-testname=\"role is grid\" data-expectedrole=\"grid\" class=\"ex\">\n <div role=\"row\" data-testname=\"role is row (in grid)\" data-expectedrole=\"row\" class=\"ex\">\n <span role=\"columnheader\" data-testname=\"role is columnheader (in row, in grid)\" data-expectedrole=\"columnheader\" class=\"ex\">x</span>\n <span role=\"columnheader\">x</span>\n </div>\n <div role=\"row\">\n <span role=\"rowheader\" data-testname=\"role is rowheader (in row, in grid)\" data-expectedrole=\"rowheader\" class=\"ex\">x</span>\n <span role=\"gridcell\" data-testname=\"role is gridcell (in row, in grid)\" data-expectedrole=\"gridcell\" class=\"ex\">x</span>\n </div>\n </div>\n\n <div role=\"grid\">\n <div role=\"rowgroup\" data-testname=\"role is rowgroup (in grid)\" data-expectedrole=\"rowgroup\" class=\"ex\">\n <div role=\"row\" data-testname=\"role is row (in rowgroup, in grid)\" data-expectedrole=\"row\" class=\"ex\">\n <span role=\"columnheader\" data-testname=\"role is columnheader (in row, in rowgroup, in grid)\" data-expectedrole=\"columnheader\" class=\"ex\">x</span>\n <span role=\"columnheader\">x</span>\n <span role=\"columnheader\">x</span>\n </div>\n </div>\n <div role=\"rowgroup\">\n <div role=\"row\">\n <span role=\"rowheader\" data-testname=\"role is rowheader (in row, in rowgroup, in grid)\" data-expectedrole=\"rowheader\" class=\"ex\">x</span>\n <span role=\"gridcell\" data-testname=\"role is gridcell (in row, in rowgroup, in grid)\" data-expectedrole=\"gridcell\" class=\"ex\">x</span>\n <span role=\"gridcell\">x</span>\n </div>\n </div>\n </div>\n\n <!--\n CORE-AAM requires that, for elements with roles not contained in the\n required context, user agents must ignore the role token and return the\n computed role as if the ignored role token had not been included.\n See https://w3c.github.io/core-aam/#roleMappingComputedRole\n -->\n <span role=\"row\" data-testname=\"orphaned row outside the context of table\" class=\"ex-generic\">x</span>\n <span role=\"rowgroup\" data-testname=\"orphaned rowgroup outside the context of row\" class=\"ex-generic\">x</span>\n <div role=\"gridcell\" data-testname=\"orphaned div with gridcell role outside the context of row\" class=\"ex-generic\">x</div>\n <button role=\"gridcell\" data-testname=\"orphaned button with gridcell role outside the context of row\" data-expectedrole=\"button\" class=\"ex\">x</button>\n <div role=\"rowheader\" data-testname=\"orphaned rowheader outside the context of row\" class=\"ex-generic\">x</div>\n <div role=\"columnheader\" data-testname=\"orphaned columnheader outside the context of row\" class=\"ex-generic\">x</div>", 1206 1290 "selector": ".ex" 1207 1291 }, 1208 1292 { -1 1293 "filename": "grid-roles.html", -1 1294 "title": "Grid Role Verification Tests", -1 1295 "html": "<p>Tests <a href=\"https://w3c.github.io/aria/#grid\">grid</a> and related roles.</p>\n\n <!-- ARIA table roles tested in ./table-roles.html -->\n\n <div role=\"grid\" data-testname=\"role is grid\" data-expectedrole=\"grid\" class=\"ex\">\n <div role=\"row\" data-testname=\"role is row (in grid)\" data-expectedrole=\"row\" class=\"ex\">\n <span role=\"columnheader\" data-testname=\"role is columnheader (in row, in grid)\" data-expectedrole=\"columnheader\" class=\"ex\">x</span>\n <span role=\"columnheader\">x</span>\n </div>\n <div role=\"row\">\n <span role=\"rowheader\" data-testname=\"role is rowheader (in row, in grid)\" data-expectedrole=\"rowheader\" class=\"ex\">x</span>\n <span role=\"gridcell\" data-testname=\"role is gridcell (in row, in grid)\" data-expectedrole=\"gridcell\" class=\"ex\">x</span>\n </div>\n </div>\n\n <div role=\"grid\">\n <div role=\"rowgroup\" data-testname=\"role is rowgroup (in grid)\" data-expectedrole=\"rowgroup\" class=\"ex\">\n <div role=\"row\" data-testname=\"role is row (in rowgroup, in grid)\" data-expectedrole=\"row\" class=\"ex\">\n <span role=\"columnheader\" data-testname=\"role is columnheader (in row, in rowgroup, in grid)\" data-expectedrole=\"columnheader\" class=\"ex\">x</span>\n <span role=\"columnheader\">x</span>\n <span role=\"columnheader\">x</span>\n </div>\n </div>\n <div role=\"rowgroup\">\n <div role=\"row\">\n <span role=\"rowheader\" data-testname=\"role is rowheader (in row, in rowgroup, in grid)\" data-expectedrole=\"rowheader\" class=\"ex\">x</span>\n <span role=\"gridcell\" data-testname=\"role is gridcell (in row, in rowgroup, in grid)\" data-expectedrole=\"gridcell\" class=\"ex\">x</span>\n <span role=\"gridcell\">x</span>\n </div>\n </div>\n </div>\n\n <!--\n CORE-AAM requires that, for elements with roles not contained in the\n required context, user agents must ignore the role token and return the\n computed role as if the ignored role token had not been included.\n See https://w3c.github.io/core-aam/#roleMappingComputedRole\n -->\n <span role=\"row\" data-testname=\"orphaned row outside the context of table\" class=\"ex-generic\">x</span>\n <span role=\"rowgroup\" data-testname=\"orphaned rowgroup outside the context of row\" class=\"ex-generic\">x</span>\n <div role=\"gridcell\" data-testname=\"orphaned div with gridcell role outside the context of row\" class=\"ex-generic\">x</div>\n <button role=\"gridcell\" data-testname=\"orphaned button with gridcell role outside the context of row\" data-expectedrole=\"button\" class=\"ex\">x</button>\n <div role=\"rowheader\" data-testname=\"orphaned rowheader outside the context of row\" class=\"ex-generic\">x</div>\n <div role=\"columnheader\" data-testname=\"orphaned columnheader outside the context of row\" class=\"ex-generic\">x</div>", -1 1296 "role": "generic", -1 1297 "selector": ".ex-generic" -1 1298 }, -1 1299 { -1 1300 "filename": "menu-roles.html", -1 1301 "title": "Menu-related Role Verification Tests", -1 1302 "html": "<p>Tests <a href=\"https://w3c.github.io/aria/#menu\">menu</a> and related roles.</p>\n\n<div role=\"menu\" data-testname=\"role is menu\" data-expectedrole=\"menu\" class=\"ex\">\n <div role=\"menuitem\" data-testname=\"role is menuitem (in menu)\" data-expectedrole=\"menuitem\" class=\"ex\">x</div>\n <div role=\"menuitem\">x</div>\n <div role=\"menuitem\">x</div>\n <div role=\"group\" data-testname=\"role is group (in menu)\" data-expectedrole=\"group\" class=\"ex\">\n <div role=\"menuitem\" data-testname=\"role is menuitem (in group, in menu)\" data-expectedrole=\"menuitem\" class=\"ex\">x</div>\n <div role=\"menuitem\">x</div>\n </div>\n <div role=\"group\">\n <div role=\"menuitemradio\" aria-checked=\"true\" data-testname=\"role is menuitemradio (in group, in menu)\" data-expectedrole=\"menuitemradio\" class=\"ex\">x</div>\n <div role=\"menuitemradio\">x</div>\n </div>\n <div role=\"group\">\n <div role=\"menuitemcheckbox\" aria-checked=\"true\" data-testname=\"role is menuitemcheckbox (in group, in menu)\" data-expectedrole=\"menuitemcheckbox\" class=\"ex\">x</div>\n <div role=\"menuitemcheckbox\">x</div>\n </div>\n</div>\n\n<div role=\"menubar\" data-testname=\"role is menubar\" data-expectedrole=\"menubar\" class=\"ex\">\n <div role=\"menuitem\" data-testname=\"role is menuitem (in menubar)\" data-expectedrole=\"menuitem\" class=\"ex\">x</div>\n <div role=\"menuitem\">x</div>\n <div role=\"menuitem\">x</div>\n <div role=\"group\" data-testname=\"role is group (in menubar)\" data-expectedrole=\"group\" class=\"ex\">\n <div role=\"menuitem\" data-testname=\"role is menuitem (in group, in menubar)\" data-expectedrole=\"menuitem\" class=\"ex\">x</div>\n <div role=\"menuitem\">x</div>\n </div>\n <div role=\"group\">\n <div role=\"menuitemradio\" aria-checked=\"true\" data-testname=\"role is menuitemradio (in group, in menubar)\" data-expectedrole=\"menuitemradio\" class=\"ex\">x</div>\n <div role=\"menuitemradio\">x</div>\n </div>\n <div role=\"group\">\n <div role=\"menuitemcheckbox\" aria-checked=\"true\" data-testname=\"role is menuitemcheckbox (in group, in menubar)\" data-expectedrole=\"menuitemcheckbox\" class=\"ex\">x</div>\n <div role=\"menuitemcheckbox\">x</div>\n </div>\n</div>\n\n<!--\n CORE-AAM requires that, for elements with roles not contained in the\n required context, user agents must ignore the role token and return the\n computed role as if the ignored role token had not been included.\n See https://w3c.github.io/core-aam/#roleMappingComputedRole\n-->\n<nav role=\"menuitem\" data-testname=\"orphaned menuitem outside the context of menu/menubar\" data-expectedrole=\"navigation\"\n class=\"ex\">x\n</nav>\n<nav role=\"menuitemradio\" data-testname=\"orphaned menuitemradio outside the context of menu/menubar\" data-expectedrole=\"navigation\"\n class=\"ex\">x\n</nav>\n<nav role=\"menuitemcheckbox\" data-testname=\"orphaned menuitemcheckbox outside the context of menu/menubar\" data-expectedrole=\"navigation\"\n class=\"ex\">x\n</nav>\n\n<button role=\"menuitem\" data-testname=\"orphan button with menuitem role\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<div role=\"menuitem\" data-testname=\"orphan div with menuitem role\" class=\"ex-generic\">x</div>\n\n<button role=\"menuitemcheckbox\" data-testname=\"orphan button with menuitemcheckbox role\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<div role=\"menuitemcheckbox\" data-testname=\"orphan div with menuitemcheckbox role\" class=\"ex-generic\">x</div>\n\n<button role=\"menuitemradio\" data-testname=\"orphan button with menuitemradio role\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<div role=\"menuitemradio\" data-testname=\"orphan div with menuitemradio role\" class=\"ex-generic\">x</div>", -1 1303 "selector": ".ex" -1 1304 }, -1 1305 { -1 1306 "filename": "menu-roles.html", -1 1307 "title": "Menu-related Role Verification Tests", -1 1308 "html": "<p>Tests <a href=\"https://w3c.github.io/aria/#menu\">menu</a> and related roles.</p>\n\n<div role=\"menu\" data-testname=\"role is menu\" data-expectedrole=\"menu\" class=\"ex\">\n <div role=\"menuitem\" data-testname=\"role is menuitem (in menu)\" data-expectedrole=\"menuitem\" class=\"ex\">x</div>\n <div role=\"menuitem\">x</div>\n <div role=\"menuitem\">x</div>\n <div role=\"group\" data-testname=\"role is group (in menu)\" data-expectedrole=\"group\" class=\"ex\">\n <div role=\"menuitem\" data-testname=\"role is menuitem (in group, in menu)\" data-expectedrole=\"menuitem\" class=\"ex\">x</div>\n <div role=\"menuitem\">x</div>\n </div>\n <div role=\"group\">\n <div role=\"menuitemradio\" aria-checked=\"true\" data-testname=\"role is menuitemradio (in group, in menu)\" data-expectedrole=\"menuitemradio\" class=\"ex\">x</div>\n <div role=\"menuitemradio\">x</div>\n </div>\n <div role=\"group\">\n <div role=\"menuitemcheckbox\" aria-checked=\"true\" data-testname=\"role is menuitemcheckbox (in group, in menu)\" data-expectedrole=\"menuitemcheckbox\" class=\"ex\">x</div>\n <div role=\"menuitemcheckbox\">x</div>\n </div>\n</div>\n\n<div role=\"menubar\" data-testname=\"role is menubar\" data-expectedrole=\"menubar\" class=\"ex\">\n <div role=\"menuitem\" data-testname=\"role is menuitem (in menubar)\" data-expectedrole=\"menuitem\" class=\"ex\">x</div>\n <div role=\"menuitem\">x</div>\n <div role=\"menuitem\">x</div>\n <div role=\"group\" data-testname=\"role is group (in menubar)\" data-expectedrole=\"group\" class=\"ex\">\n <div role=\"menuitem\" data-testname=\"role is menuitem (in group, in menubar)\" data-expectedrole=\"menuitem\" class=\"ex\">x</div>\n <div role=\"menuitem\">x</div>\n </div>\n <div role=\"group\">\n <div role=\"menuitemradio\" aria-checked=\"true\" data-testname=\"role is menuitemradio (in group, in menubar)\" data-expectedrole=\"menuitemradio\" class=\"ex\">x</div>\n <div role=\"menuitemradio\">x</div>\n </div>\n <div role=\"group\">\n <div role=\"menuitemcheckbox\" aria-checked=\"true\" data-testname=\"role is menuitemcheckbox (in group, in menubar)\" data-expectedrole=\"menuitemcheckbox\" class=\"ex\">x</div>\n <div role=\"menuitemcheckbox\">x</div>\n </div>\n</div>\n\n<!--\n CORE-AAM requires that, for elements with roles not contained in the\n required context, user agents must ignore the role token and return the\n computed role as if the ignored role token had not been included.\n See https://w3c.github.io/core-aam/#roleMappingComputedRole\n-->\n<nav role=\"menuitem\" data-testname=\"orphaned menuitem outside the context of menu/menubar\" data-expectedrole=\"navigation\"\n class=\"ex\">x\n</nav>\n<nav role=\"menuitemradio\" data-testname=\"orphaned menuitemradio outside the context of menu/menubar\" data-expectedrole=\"navigation\"\n class=\"ex\">x\n</nav>\n<nav role=\"menuitemcheckbox\" data-testname=\"orphaned menuitemcheckbox outside the context of menu/menubar\" data-expectedrole=\"navigation\"\n class=\"ex\">x\n</nav>\n\n<button role=\"menuitem\" data-testname=\"orphan button with menuitem role\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<div role=\"menuitem\" data-testname=\"orphan div with menuitem role\" class=\"ex-generic\">x</div>\n\n<button role=\"menuitemcheckbox\" data-testname=\"orphan button with menuitemcheckbox role\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<div role=\"menuitemcheckbox\" data-testname=\"orphan div with menuitemcheckbox role\" class=\"ex-generic\">x</div>\n\n<button role=\"menuitemradio\" data-testname=\"orphan button with menuitemradio role\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<div role=\"menuitemradio\" data-testname=\"orphan div with menuitemradio role\" class=\"ex-generic\">x</div>", -1 1309 "role": "generic", -1 1310 "selector": ".ex-generic" -1 1311 }, -1 1312 { 1209 1313 "filename": "role_none_conflict_resolution.html", 1210 1314 "title": "Role None Conflict Resolution Verification Tests",1211 -1 "html": "<p>Verifies <a href=\"https://w3c.github.io/aria/#conflict_resolution_presentation_none\"></a>conflict resolution</a> requirements for the ARIA <a href=\"https://w3c.github.io/aria/#none\">none</a> and <a href=\"https://w3c.github.io/aria/#presentation\">presentation</a> roles.</p>\n\n<!-- none with label(global) on header -->\n<h1 role=\"none\" data-testname=\"heading role none with global attr aria-label\" data-expectedrole=\"heading\" aria-label=\"x\" class=\"ex\">x</h1>\n\n<!-- none with label(global) on paragraph -->\n<p role=\"none\" data-testname=\"p role none with global attr aria-label (prohibited role)\" data-expectedrole=\"paragraph\" aria-label=\"x\" class=\"ex\">x</p>\n<p role=\"none\" data-testname=\"p role none without global attr aria-label (prohibited role)\" data-expectedrole=\"none\" class=\"ex\">x</p>\n\n<!-- none with focusable header -->\n<h1 role=\"none\" data-testname=\"focusable heading role none with tabindex=0\" data-expectedrole=\"heading\" tabindex=\"0\" class=\"ex\">x</h1>\n<h1 role=\"none\" data-testname=\"focusable heading role none with tabindex=-1\" data-expectedrole=\"heading\" tabindex=\"-1\" class=\"ex\">x</h1>\n<h1 role=\"none\" data-testname=\"non-focusable heading role none\" data-expectedrole=\"none\" class=\"ex\">x</h1>\n\n<!-- none with non-global-->\n<h1 role=\"none\" data-testname=\"none with non-global\" data-expectedrole=\"none\" class=\"ex\" aria-level=\"2\"> Sample Content </h1>",-1 1315 "html": "<p>Verifies <a href=\"https://w3c.github.io/aria/#conflict_resolution_presentation_none\"></a>conflict resolution</a> requirements for the ARIA <a href=\"https://w3c.github.io/aria/#none\">none</a> and <a href=\"https://w3c.github.io/aria/#presentation\">presentation</a> roles.</p>\n\n<!-- none with label(global) on header -->\n<h1 role=\"none\" data-testname=\"heading role none with global attr aria-label\" data-expectedrole=\"heading\" aria-label=\"x\" class=\"ex\">x</h1>\n\n<!-- none with label(global) on paragraph -->\n<p role=\"none\" data-testname=\"p role none with global attr aria-label (prohibited role)\" data-expectedrole=\"paragraph\" aria-label=\"x\" class=\"ex\">x</p>\n<p role=\"none\" data-testname=\"p role none without global attr aria-label (prohibited role)\" class=\"ex-generic\">x</p>\n\n<!-- none with focusable header -->\n<h1 role=\"none\" data-testname=\"focusable heading role none with tabindex=0\" data-expectedrole=\"heading\" tabindex=\"0\" class=\"ex\">x</h1>\n<h1 role=\"none\" data-testname=\"focusable heading role none with tabindex=-1\" data-expectedrole=\"heading\" tabindex=\"-1\" class=\"ex\">x</h1>\n<h1 role=\"none\" data-testname=\"non-focusable heading role none\" class=\"ex-generic\">x</h1>\n\n<!-- none with non-global-->\n<h1 role=\"none\" data-testname=\"none with non-global\" class=\"ex-generic\" aria-level=\"2\"> Sample Content </h1>", 1212 1316 "selector": ".ex" 1213 1317 }, 1214 1318 { -1 1319 "filename": "role_none_conflict_resolution.html", -1 1320 "title": "Role None Conflict Resolution Verification Tests", -1 1321 "html": "<p>Verifies <a href=\"https://w3c.github.io/aria/#conflict_resolution_presentation_none\"></a>conflict resolution</a> requirements for the ARIA <a href=\"https://w3c.github.io/aria/#none\">none</a> and <a href=\"https://w3c.github.io/aria/#presentation\">presentation</a> roles.</p>\n\n<!-- none with label(global) on header -->\n<h1 role=\"none\" data-testname=\"heading role none with global attr aria-label\" data-expectedrole=\"heading\" aria-label=\"x\" class=\"ex\">x</h1>\n\n<!-- none with label(global) on paragraph -->\n<p role=\"none\" data-testname=\"p role none with global attr aria-label (prohibited role)\" data-expectedrole=\"paragraph\" aria-label=\"x\" class=\"ex\">x</p>\n<p role=\"none\" data-testname=\"p role none without global attr aria-label (prohibited role)\" class=\"ex-generic\">x</p>\n\n<!-- none with focusable header -->\n<h1 role=\"none\" data-testname=\"focusable heading role none with tabindex=0\" data-expectedrole=\"heading\" tabindex=\"0\" class=\"ex\">x</h1>\n<h1 role=\"none\" data-testname=\"focusable heading role none with tabindex=-1\" data-expectedrole=\"heading\" tabindex=\"-1\" class=\"ex\">x</h1>\n<h1 role=\"none\" data-testname=\"non-focusable heading role none\" class=\"ex-generic\">x</h1>\n\n<!-- none with non-global-->\n<h1 role=\"none\" data-testname=\"none with non-global\" class=\"ex-generic\" aria-level=\"2\"> Sample Content </h1>", -1 1322 "role": "generic", -1 1323 "selector": ".ex-generic" -1 1324 }, -1 1325 { 1215 1326 "filename": "abstract-roles.html", 1216 1327 "title": "Abstract Role Verification Tests", 1217 1328 "html": "<p>Tests <a href=\"https://w3c.github.io/aria/#abstract_roles\">Abstract Roles</a> and related <a href=\"https://w3c.github.io/aria/#document-handling_author-errors_roles\">9.1 Roles - handling author errors</a></p>\n\n <nav role=\"command\" data-testname=\"command role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n <nav role=\"composite\" data-testname=\"composite role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n <nav role=\"input\" data-testname=\"input role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n <nav role=\"landmark\" data-testname=\"landmark role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n <nav role=\"range\" data-testname=\"range role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n <nav role=\"roletype\" data-testname=\"roletype role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n <nav role=\"section\" data-testname=\"section role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n <nav role=\"sectionhead\" data-testname=\"sectionhead role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n <nav role=\"select\" data-testname=\"select role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n <nav role=\"structure\" data-testname=\"structure role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n <nav role=\"widget\" data-testname=\"widget role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n <nav role=\"window\" data-testname=\"window role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>", @@ -1269,10 +1380,17 @@ window.wpt["html-aam"] = [ 1269 1380 { 1270 1381 "filename": "roles.html", 1271 1382 "title": "HTML-AAM Role Verification Tests",1272 -1 "html": "<p>Tests the computedrole mappings defined in <a href=\"https://w3c.github.io/html-aam/\">HTML-AAM</a>. Most test names correspond to a unique ID defined in the spec.<p>\n\n<p>These should remain in alphabetical order, and include all HTML tagnames. If a tag is not tested here, include a pointer to the file where it is tested, such as: <code><!-- caption -> ./table-roles.html --></code></p>\n\n\n<!-- a (w/ and w/o href) -> ./roles-contextual.html -->\n<!-- todo: abbr -->\n<address data-testname=\"el-address\" data-expectedrole=\"group\" class=\"ex\">x</address>\n<!-- area -> ./fragile/area-role.html -->\n<article data-testname=\"el-article\" data-expectedrole=\"article\" class=\"ex\">x</article>\n<!-- aside -> ./roles-contextual.html -->\n<!-- todo: audio -->\n<!-- todo: autonomous custom element -->\n<!-- b -> ./roles-generic.html -->\n<!-- base (not mapped) -->\n<!-- bdi -> ./roles-generic.html -->\n<!-- bdo -> ./roles-generic.html -->\n<blockquote data-testname=\"el-blockquote\" data-expectedrole=\"blockquote\" class=\"ex\">x</blockquote>\n<!-- todo: body -->\n<!-- br (not mapped) -->\n<button data-testname=\"el-button\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<!-- todo: canvas -->\n<!-- caption -> ./table-roles.html -->\n<!-- todo: cite -->\n<code data-testname=\"el-code\" data-expectedrole=\"code\" class=\"ex\">x</code>\n<!-- todo: col -->\n<!-- todo: colgroup -->\n<!-- data -> ./roles-generic.html -->\n<!-- todo: datalist -->\n\n<!-- el-dd -->\n<dl>\n <dt>x</dt>\n <dd data-testname=\"el-dd\" data-expectedrole=\"definition\" class=\"ex\">x</dd>\n</dl>\n\n<del data-testname=\"el-del\" data-expectedrole=\"deletion\" class=\"ex\">x</del>\n<details data-testname=\"el-details\" data-expectedrole=\"group\" class=\"ex\"><summary>x</summary>x</details>\n<dfn data-testname=\"el-dfn\" data-expectedrole=\"term\" class=\"ex\">x</dfn>\n<!-- div -> ./roles-generic.html -->\n<!-- todo: dl -->\n\n<!-- el-dt -->\n<dl>\n <dt data-testname=\"el-dt\" data-expectedrole=\"term\" class=\"ex\">x</dt>\n <dd>x</dd>\n</dl>\n\n<em data-testname=\"el-em\" data-expectedrole=\"emphasis\" class=\"ex\">x</em>\n<!-- todo: embed -->\n<fieldset data-testname=\"el-fieldset\" data-expectedrole=\"group\" class=\"ex\"><legend>x</legend><input></fieldset>\n<!-- todo: figcaption -->\n<figure data-testname=\"el-figure\" data-expectedrole=\"figure\" class=\"ex\"><img src=\"#\" alt=\"x\"><figcaption>x</figcaption></figure>\n<!-- footer -> ./roles-contextual.html -->\n<form data-testname=\"el-form\" data-expectedrole=\"form\" class=\"ex\"><input></form>\n<!-- todo: form-associated custom element -->\n\n<!-- el-h1-h6 -->\n<h1 data-testname=\"el-h1\" data-expectedrole=\"heading\" class=\"ex\">x</h1>\n<h2 data-testname=\"el-h2\" data-expectedrole=\"heading\" class=\"ex\">x</h2>\n<h3 data-testname=\"el-h3\" data-expectedrole=\"heading\" class=\"ex\">x</h3>\n<h4 data-testname=\"el-h4\" data-expectedrole=\"heading\" class=\"ex\">x</h4>\n<h5 data-testname=\"el-h5\" data-expectedrole=\"heading\" class=\"ex\">x</h5>\n<h6 data-testname=\"el-h6\" data-expectedrole=\"heading\" class=\"ex\">x</h6>\n\n<!-- head (not mapped) -->\n\n<!-- header -> ./roles-contextual.html -->\n<hgroup data-testname=\"el-hgroup\" data-expectedrole=\"group\" class=\"ex\"><h1>x</h1></hgroup>\n<hr data-testname=\"el-hr\" data-expectedrole=\"separator\" class=\"ex\">\n<!-- todo: html -->\n<!-- i -> ./roles-generic.html -->\n<!-- todo: iframe -->\n<img src=\"#\" alt=\"x\" data-testname=\"el-img\" data-expectedrole=\"image\" class=\"ex\">\n\n<!-- Implementations might also be valid if ignored rather than returning 'none' for the following images. -->\n<img src=\"#\" alt data-testname=\"el-img-alt-no-value\" data-expectedrole=\"none\" class=\"ex\">\n<img src=\"#\" alt=\"\" data-testname=\"el-img-empty-alt\" data-expectedrole=\"none\" class=\"ex\">\n\n<input type=\"button\" value=\"x\" data-testname=\"el-input-button\" data-expectedrole=\"button\" class=\"ex\">\n<input type=\"checkbox\" data-testname=\"el-input-checkbox\" data-expectedrole=\"checkbox\" class=\"ex\">\n<!-- todo: input type=\"color\" -->\n<!-- todo: input type=\"date\" -->\n<!-- todo: input type=\"datetime\" -->\n<!-- todo: input type=\"datetime-local\" -->\n<input type=\"email\" data-testname=\"el-input-email\" data-expectedrole=\"textbox\" class=\"ex\">\n<!-- todo: input type=\"file\" -->\n<!-- input type=\"hidden\" (not mapped) -->\n<!-- todo: input type=\"month\" -->\n\n<!-- Blocked: HTML-AAM Issue #467 -->\n<!-- <input type=\"number\" data-testname=\"el-input-number\" data-expectedrole=\"spinbutton\" class=\"ex\"> -->\n\n<!-- todo: input type=\"password\" -->\n<input type=\"radio\" data-testname=\"el-input-radio\" data-expectedrole=\"radio\" class=\"ex\">\n<input type=\"range\" data-testname=\"el-input-range\" data-expectedrole=\"slider\" class=\"ex\">\n<input type=\"reset\" value=\"x\" data-testname=\"el-input-reset\" data-expectedrole=\"button\" class=\"ex\">\n<input type=\"search\" data-testname=\"el-input-search\" data-expectedrole=\"searchbox\" class=\"ex\">\n<input type=\"submit\" value=\"x\" data-testname=\"el-input-submit\" data-expectedrole=\"button\" class=\"ex\">\n<input type=\"tel\" data-testname=\"el-input-tel\" data-expectedrole=\"textbox\" class=\"ex\">\n<input type=\"text\" data-testname=\"el-input-text\" data-expectedrole=\"textbox\" class=\"ex\">\n<!-- todo: input (type attribute in the Text, Search, Telephone, URL, or E-mail states with a suggestions source element) -->\n<!-- todo: input type=\"time\" -->\n<input type=\"url\" data-testname=\"el-input-url\" data-expectedrole=\"textbox\" class=\"ex\">\n<!-- todo: input type=\"week\" -->\n<ins data-testname=\"el-ins\" data-expectedrole=\"insertion\" class=\"ex\">x</ins>\n<!-- todo: kbd -->\n<!-- todo: label -->\n<!-- todo: legend -->\n\n<!-- el-li -->\n<!-- li (orphaned) -> ./roles-generic.html -->\n<ul><li data-testname=\"el-li-in-ul\" data-expectedrole=\"listitem\" class=\"ex\">x</li><li>x</li></ul>\n<ol><li data-testname=\"el-li-in-ol\" data-expectedrole=\"listitem\" class=\"ex\">x</li><li>x</li></ol>\n\n<!-- link (not mapped) -->\n<main data-testname=\"el-main\" data-expectedrole=\"main\" class=\"ex\">x</main>\n<!-- map (not mapped) -->\n<mark data-testname=\"el-mark\" data-expectedrole=\"mark\" class=\"ex\">x</mark>\n<!-- todo: math -->\n<menu data-testname=\"el-menu\" data-expectedrole=\"list\" class=\"ex\"><li>x</li></menu>\n<!-- meta (not mapped) -->\n<meter data-testname=\"el-meter\" data-expectedrole=\"meter\" class=\"ex\" min=\"0\" max=\"100\" low=\"20\" high=\"80\" optimum=\"60\" value=\"50\">x</meter>\n<nav data-testname=\"el-nav\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<!-- noscript (not mapped) -->\n<!-- object (not mapped) -->\n<ol data-testname=\"el-ol\" data-expectedrole=\"list\" class=\"ex\"><li>x</li><li>x</li></ol>\n\n<!-- optgroup -> ./fragile/optgroup-role.html -->\n\n<!-- option -->\n<select>\n <option data-testname=\"el-option\" data-expectedrole=\"option\" class=\"ex\">x</option>\n <option>x</option>\n</select>\n\n<output data-testname=\"el-output\" data-expectedrole=\"status\" class=\"ex\">x</output>\n<p data-testname=\"el-p\" data-expectedrole=\"paragraph\" class=\"ex\">x</p>\n<!-- param (not mapped) -->\n<!-- todo: picture -->\n<!-- pre -> ./roles-generic.html -->\n<progress data-testname=\"el-progress\" data-expectedrole=\"progressbar\" class=\"ex\">x</progress>\n<!-- q -> ./roles-generic.html -->\n<!-- todo: rp -> /ruby-aam? -->\n<!-- todo: rt -> /ruby-aam? -->\n<!-- todo: ruby -> /ruby-aam? -->\n<s data-testname=\"el-s\" data-expectedrole=\"deletion\" class=\"ex\">x</s>\n<!-- samp -> ./roles-generic.html -->\n<!-- script (not mapped) -->\n<search data-testname=\"el-search\" data-expectedrole=\"search\" class=\"ex\">x</search>\n<!-- section -> ./roles-contextual.html -->\n\n<!-- Blocked: HTML-AAM Issue #467 -->\n<!-- <select data-testname=\"el-select-combobox\" data-expectedrole=\"combobox\" class=\"ex\"><option>a1</option><option>a2</option></select>-->\n\n<select data-testname=\"el-select-listbox\" size=\"2\" data-expectedrole=\"listbox\" class=\"ex\"><option>b1</option><option>b2</option></select>\n\n<!-- slot (not mapped) -->\n<!-- small -> ./roles-generic.html -->\n<!-- source (not mapped) -->\n<!-- span -> ./roles-generic.html -->\n<strong data-testname=\"el-strong\" data-expectedrole=\"strong\" class=\"ex\">x</strong>\n<!-- style (not mapped) -->\n<sub data-testname=\"el-sub\" data-expectedrole=\"subscript\" class=\"ex\">x</sub>\n<!-- todo: summary -->\n<sup data-testname=\"el-sup\" data-expectedrole=\"superscript\" class=\"ex\">x</sup>\n<!-- todo: svg (see /graphics-aam and /svg-aam tests) -->\n<!-- table -> ./table-roles.html -->\n<!-- tbody -> ./table-roles.html -->\n<!-- td -> ./table-roles.html -->\n<!-- template (not mapped) -->\n<!-- tfoot -> ./table-roles.html -->\n<!-- th -> ./table-roles.html -->\n<!-- thead -> ./table-roles.html -->\n<time data-testname=\"el-time\" data-expectedrole=\"time\" class=\"ex\">x</time>\n<!-- title (not mapped) -->\n<!-- tr -> ./table-roles.html -->\n<textarea data-testname=\"el-textarea\" data-expectedrole=\"textbox\" class=\"ex\">x</textarea>\n<!-- track (not mapped) -->\n<!-- u -> ./roles-generic.html -->\n<ul data-testname=\"el-ul\" data-expectedrole=\"list\" class=\"ex\"><li>x</li><li>x</li></ul>\n<!-- var (not mapped) -->\n<!-- todo: video -->\n<!-- wbr (not mapped) -->",-1 1383 "html": "<p>Tests the computedrole mappings defined in <a href=\"https://w3c.github.io/html-aam/\">HTML-AAM</a>. Most test names correspond to a unique ID defined in the spec.<p>\n\n<p>These should remain in alphabetical order, and include all HTML tagnames. If a tag is not tested here, include a pointer to the file where it is tested, such as: <code><!-- caption -> ./table-roles.html --></code></p>\n\n\n<!-- a (w/ and w/o href) -> ./roles-contextual.html -->\n<!-- todo: abbr -->\n<address data-testname=\"el-address\" data-expectedrole=\"group\" class=\"ex\">x</address>\n<!-- area -> ./fragile/area-role.html -->\n<article data-testname=\"el-article\" data-expectedrole=\"article\" class=\"ex\">x</article>\n<!-- aside -> ./roles-contextual.html -->\n<!-- todo: audio -->\n<!-- todo: autonomous custom element -->\n<!-- b -> ./roles-generic.html -->\n<!-- base (not mapped) -->\n<!-- bdi -> ./roles-generic.html -->\n<!-- bdo -> ./roles-generic.html -->\n<blockquote data-testname=\"el-blockquote\" data-expectedrole=\"blockquote\" class=\"ex\">x</blockquote>\n<!-- todo: body -->\n<!-- br (not mapped) -->\n<button data-testname=\"el-button\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<!-- todo: canvas -->\n<!-- caption -> ./table-roles.html -->\n<!-- todo: cite -->\n<code data-testname=\"el-code\" data-expectedrole=\"code\" class=\"ex\">x</code>\n<!-- todo: col -->\n<!-- todo: colgroup -->\n<!-- data -> ./roles-generic.html -->\n<!-- todo: datalist -->\n\n<!-- el-dd -->\n<dl>\n <dt>x</dt>\n <dd data-testname=\"el-dd\" data-expectedrole=\"definition\" class=\"ex\">x</dd>\n</dl>\n\n<del data-testname=\"el-del\" data-expectedrole=\"deletion\" class=\"ex\">x</del>\n<details data-testname=\"el-details\" data-expectedrole=\"group\" class=\"ex\"><summary>x</summary>x</details>\n<dfn data-testname=\"el-dfn\" data-expectedrole=\"term\" class=\"ex\">x</dfn>\n<!-- div -> ./roles-generic.html -->\n<!-- todo: dl -->\n\n<!-- el-dt -->\n<dl>\n <dt data-testname=\"el-dt\" data-expectedrole=\"term\" class=\"ex\">x</dt>\n <dd>x</dd>\n</dl>\n\n<em data-testname=\"el-em\" data-expectedrole=\"emphasis\" class=\"ex\">x</em>\n<!-- todo: embed -->\n<fieldset data-testname=\"el-fieldset\" data-expectedrole=\"group\" class=\"ex\"><legend>x</legend><input></fieldset>\n<!-- todo: figcaption -->\n<figure data-testname=\"el-figure\" data-expectedrole=\"figure\" class=\"ex\"><img alt=\"x\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\"><figcaption>x</figcaption></figure>\n<!-- footer -> ./roles-contextual.html -->\n<form aria-label=\"form\" data-testname=\"el-form\" data-expectedrole=\"form\" class=\"ex\"><input></form>\n<!-- todo: form-associated custom element -->\n\n<!-- el-h1-h6 -->\n<h1 data-testname=\"el-h1\" data-expectedrole=\"heading\" class=\"ex\">x</h1>\n<h2 data-testname=\"el-h2\" data-expectedrole=\"heading\" class=\"ex\">x</h2>\n<h3 data-testname=\"el-h3\" data-expectedrole=\"heading\" class=\"ex\">x</h3>\n<h4 data-testname=\"el-h4\" data-expectedrole=\"heading\" class=\"ex\">x</h4>\n<h5 data-testname=\"el-h5\" data-expectedrole=\"heading\" class=\"ex\">x</h5>\n<h6 data-testname=\"el-h6\" data-expectedrole=\"heading\" class=\"ex\">x</h6>\n\n<!-- head (not mapped) -->\n\n<!-- header -> ./roles-contextual.html -->\n<hgroup data-testname=\"el-hgroup\" data-expectedrole=\"group\" class=\"ex\"><h1>x</h1></hgroup>\n<hr data-testname=\"el-hr\" data-expectedrole=\"separator\" class=\"ex\">\n<!-- todo: html -->\n<!-- i -> ./roles-generic.html -->\n<!-- todo: iframe -->\n<img alt=\"x\" data-testname=\"el-img\" data-expectedrole=\"image\" class=\"ex\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">\n\n<!-- Implementations might also be valid if ignored rather than returning 'none' for the following images. -->\n<img alt data-testname=\"el-img-alt-no-value\" class=\"ex-generic\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">\n<img alt=\"\" data-testname=\"el-img-empty-alt\" class=\"ex-generic\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">\n\n<input type=\"button\" value=\"x\" data-testname=\"el-input-button\" data-expectedrole=\"button\" class=\"ex\">\n<input type=\"checkbox\" data-testname=\"el-input-checkbox\" data-expectedrole=\"checkbox\" class=\"ex\">\n<!-- todo: input type=\"color\" -->\n<!-- todo: input type=\"date\" -->\n<!-- todo: input type=\"datetime\" -->\n<!-- todo: input type=\"datetime-local\" -->\n<input type=\"email\" data-testname=\"el-input-email\" data-expectedrole=\"textbox\" class=\"ex\">\n<!-- todo: input type=\"file\" -->\n<!-- input type=\"hidden\" (not mapped) -->\n<!-- todo: input type=\"month\" -->\n\n<!-- Blocked: HTML-AAM Issue #467 -->\n<!-- <input type=\"number\" data-testname=\"el-input-number\" data-expectedrole=\"spinbutton\" class=\"ex\"> -->\n\n<!-- todo: input type=\"password\" -->\n<input type=\"radio\" data-testname=\"el-input-radio\" data-expectedrole=\"radio\" class=\"ex\">\n<input type=\"range\" data-testname=\"el-input-range\" data-expectedrole=\"slider\" class=\"ex\">\n<input type=\"reset\" value=\"x\" data-testname=\"el-input-reset\" data-expectedrole=\"button\" class=\"ex\">\n<input type=\"search\" data-testname=\"el-input-search\" data-expectedrole=\"searchbox\" class=\"ex\">\n<input type=\"submit\" value=\"x\" data-testname=\"el-input-submit\" data-expectedrole=\"button\" class=\"ex\">\n<input type=\"tel\" data-testname=\"el-input-tel\" data-expectedrole=\"textbox\" class=\"ex\">\n<input type=\"text\" data-testname=\"el-input-text\" data-expectedrole=\"textbox\" class=\"ex\">\n<!-- todo: input (type attribute in the Text, Search, Telephone, URL, or E-mail states with a suggestions source element) -->\n<!-- todo: input type=\"time\" -->\n<input type=\"url\" data-testname=\"el-input-url\" data-expectedrole=\"textbox\" class=\"ex\">\n<!-- todo: input type=\"week\" -->\n<ins data-testname=\"el-ins\" data-expectedrole=\"insertion\" class=\"ex\">x</ins>\n<!-- todo: kbd -->\n<!-- todo: label -->\n<!-- todo: legend -->\n\n<!-- el-li -->\n<!-- li (orphaned) -> ./roles-generic.html -->\n<ul><li data-testname=\"el-li-in-ul\" data-expectedrole=\"listitem\" class=\"ex\">x</li><li>x</li></ul>\n<ol><li data-testname=\"el-li-in-ol\" data-expectedrole=\"listitem\" class=\"ex\">x</li><li>x</li></ol>\n\n<!-- link (not mapped) -->\n<main data-testname=\"el-main\" data-expectedrole=\"main\" class=\"ex\">x</main>\n<!-- map (not mapped) -->\n<mark data-testname=\"el-mark\" data-expectedrole=\"mark\" class=\"ex\">x</mark>\n<!-- todo: math -->\n<menu data-testname=\"el-menu\" data-expectedrole=\"list\" class=\"ex\"><li>x</li></menu>\n<!-- meta (not mapped) -->\n<meter data-testname=\"el-meter\" data-expectedrole=\"meter\" class=\"ex\" min=\"0\" max=\"100\" low=\"20\" high=\"80\" optimum=\"60\" value=\"50\">x</meter>\n<nav data-testname=\"el-nav\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<!-- noscript (not mapped) -->\n<!-- object (not mapped) -->\n<ol data-testname=\"el-ol\" data-expectedrole=\"list\" class=\"ex\"><li>x</li><li>x</li></ol>\n\n<!-- optgroup -> ./fragile/optgroup-role.html -->\n\n<!-- option -->\n<select>\n <option data-testname=\"el-option\" data-expectedrole=\"option\" class=\"ex\">x</option>\n <option>x</option>\n</select>\n\n<output data-testname=\"el-output\" data-expectedrole=\"status\" class=\"ex\">x</output>\n<p data-testname=\"el-p\" data-expectedrole=\"paragraph\" class=\"ex\">x</p>\n<!-- param (not mapped) -->\n<!-- todo: picture -->\n<!-- pre -> ./roles-generic.html -->\n<progress data-testname=\"el-progress\" data-expectedrole=\"progressbar\" class=\"ex\">x</progress>\n<!-- q -> ./roles-generic.html -->\n<!-- todo: rp -> /ruby-aam? -->\n<!-- todo: rt -> /ruby-aam? -->\n<!-- todo: ruby -> /ruby-aam? -->\n<s data-testname=\"el-s\" data-expectedrole=\"deletion\" class=\"ex\">x</s>\n<!-- samp -> ./roles-generic.html -->\n<!-- script (not mapped) -->\n<search data-testname=\"el-search\" data-expectedrole=\"search\" class=\"ex\">x</search>\n<!-- section -> ./roles-contextual.html -->\n\n<!-- Blocked: HTML-AAM Issue #467 -->\n<!-- <select data-testname=\"el-select-combobox\" data-expectedrole=\"combobox\" class=\"ex\"><option>a1</option><option>a2</option></select>-->\n\n<select data-testname=\"el-select-listbox\" size=\"2\" data-expectedrole=\"listbox\" class=\"ex\"><option>b1</option><option>b2</option></select>\n\n<!-- slot (not mapped) -->\n<!-- small -> ./roles-generic.html -->\n<!-- source (not mapped) -->\n<!-- span -> ./roles-generic.html -->\n<strong data-testname=\"el-strong\" data-expectedrole=\"strong\" class=\"ex\">x</strong>\n<!-- style (not mapped) -->\n<sub data-testname=\"el-sub\" data-expectedrole=\"subscript\" class=\"ex\">x</sub>\n<!-- todo: summary -->\n<sup data-testname=\"el-sup\" data-expectedrole=\"superscript\" class=\"ex\">x</sup>\n<!-- todo: svg (see /graphics-aam and /svg-aam tests) -->\n<!-- table -> ./table-roles.html -->\n<!-- tbody -> ./table-roles.html -->\n<!-- td -> ./table-roles.html -->\n<!-- template (not mapped) -->\n<!-- tfoot -> ./table-roles.html -->\n<!-- th -> ./table-roles.html -->\n<!-- thead -> ./table-roles.html -->\n<time data-testname=\"el-time\" data-expectedrole=\"time\" class=\"ex\">x</time>\n<!-- title (not mapped) -->\n<!-- tr -> ./table-roles.html -->\n<textarea data-testname=\"el-textarea\" data-expectedrole=\"textbox\" class=\"ex\">x</textarea>\n<!-- track (not mapped) -->\n<!-- u -> ./roles-generic.html -->\n<ul data-testname=\"el-ul\" data-expectedrole=\"list\" class=\"ex\"><li>x</li><li>x</li></ul>\n<!-- var (not mapped) -->\n<!-- todo: video -->\n<!-- wbr (not mapped) -->", 1273 1384 "selector": ".ex" 1274 1385 }, 1275 1386 { -1 1387 "filename": "roles.html", -1 1388 "title": "HTML-AAM Role Verification Tests", -1 1389 "html": "<p>Tests the computedrole mappings defined in <a href=\"https://w3c.github.io/html-aam/\">HTML-AAM</a>. Most test names correspond to a unique ID defined in the spec.<p>\n\n<p>These should remain in alphabetical order, and include all HTML tagnames. If a tag is not tested here, include a pointer to the file where it is tested, such as: <code><!-- caption -> ./table-roles.html --></code></p>\n\n\n<!-- a (w/ and w/o href) -> ./roles-contextual.html -->\n<!-- todo: abbr -->\n<address data-testname=\"el-address\" data-expectedrole=\"group\" class=\"ex\">x</address>\n<!-- area -> ./fragile/area-role.html -->\n<article data-testname=\"el-article\" data-expectedrole=\"article\" class=\"ex\">x</article>\n<!-- aside -> ./roles-contextual.html -->\n<!-- todo: audio -->\n<!-- todo: autonomous custom element -->\n<!-- b -> ./roles-generic.html -->\n<!-- base (not mapped) -->\n<!-- bdi -> ./roles-generic.html -->\n<!-- bdo -> ./roles-generic.html -->\n<blockquote data-testname=\"el-blockquote\" data-expectedrole=\"blockquote\" class=\"ex\">x</blockquote>\n<!-- todo: body -->\n<!-- br (not mapped) -->\n<button data-testname=\"el-button\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<!-- todo: canvas -->\n<!-- caption -> ./table-roles.html -->\n<!-- todo: cite -->\n<code data-testname=\"el-code\" data-expectedrole=\"code\" class=\"ex\">x</code>\n<!-- todo: col -->\n<!-- todo: colgroup -->\n<!-- data -> ./roles-generic.html -->\n<!-- todo: datalist -->\n\n<!-- el-dd -->\n<dl>\n <dt>x</dt>\n <dd data-testname=\"el-dd\" data-expectedrole=\"definition\" class=\"ex\">x</dd>\n</dl>\n\n<del data-testname=\"el-del\" data-expectedrole=\"deletion\" class=\"ex\">x</del>\n<details data-testname=\"el-details\" data-expectedrole=\"group\" class=\"ex\"><summary>x</summary>x</details>\n<dfn data-testname=\"el-dfn\" data-expectedrole=\"term\" class=\"ex\">x</dfn>\n<!-- div -> ./roles-generic.html -->\n<!-- todo: dl -->\n\n<!-- el-dt -->\n<dl>\n <dt data-testname=\"el-dt\" data-expectedrole=\"term\" class=\"ex\">x</dt>\n <dd>x</dd>\n</dl>\n\n<em data-testname=\"el-em\" data-expectedrole=\"emphasis\" class=\"ex\">x</em>\n<!-- todo: embed -->\n<fieldset data-testname=\"el-fieldset\" data-expectedrole=\"group\" class=\"ex\"><legend>x</legend><input></fieldset>\n<!-- todo: figcaption -->\n<figure data-testname=\"el-figure\" data-expectedrole=\"figure\" class=\"ex\"><img alt=\"x\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\"><figcaption>x</figcaption></figure>\n<!-- footer -> ./roles-contextual.html -->\n<form aria-label=\"form\" data-testname=\"el-form\" data-expectedrole=\"form\" class=\"ex\"><input></form>\n<!-- todo: form-associated custom element -->\n\n<!-- el-h1-h6 -->\n<h1 data-testname=\"el-h1\" data-expectedrole=\"heading\" class=\"ex\">x</h1>\n<h2 data-testname=\"el-h2\" data-expectedrole=\"heading\" class=\"ex\">x</h2>\n<h3 data-testname=\"el-h3\" data-expectedrole=\"heading\" class=\"ex\">x</h3>\n<h4 data-testname=\"el-h4\" data-expectedrole=\"heading\" class=\"ex\">x</h4>\n<h5 data-testname=\"el-h5\" data-expectedrole=\"heading\" class=\"ex\">x</h5>\n<h6 data-testname=\"el-h6\" data-expectedrole=\"heading\" class=\"ex\">x</h6>\n\n<!-- head (not mapped) -->\n\n<!-- header -> ./roles-contextual.html -->\n<hgroup data-testname=\"el-hgroup\" data-expectedrole=\"group\" class=\"ex\"><h1>x</h1></hgroup>\n<hr data-testname=\"el-hr\" data-expectedrole=\"separator\" class=\"ex\">\n<!-- todo: html -->\n<!-- i -> ./roles-generic.html -->\n<!-- todo: iframe -->\n<img alt=\"x\" data-testname=\"el-img\" data-expectedrole=\"image\" class=\"ex\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">\n\n<!-- Implementations might also be valid if ignored rather than returning 'none' for the following images. -->\n<img alt data-testname=\"el-img-alt-no-value\" class=\"ex-generic\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">\n<img alt=\"\" data-testname=\"el-img-empty-alt\" class=\"ex-generic\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">\n\n<input type=\"button\" value=\"x\" data-testname=\"el-input-button\" data-expectedrole=\"button\" class=\"ex\">\n<input type=\"checkbox\" data-testname=\"el-input-checkbox\" data-expectedrole=\"checkbox\" class=\"ex\">\n<!-- todo: input type=\"color\" -->\n<!-- todo: input type=\"date\" -->\n<!-- todo: input type=\"datetime\" -->\n<!-- todo: input type=\"datetime-local\" -->\n<input type=\"email\" data-testname=\"el-input-email\" data-expectedrole=\"textbox\" class=\"ex\">\n<!-- todo: input type=\"file\" -->\n<!-- input type=\"hidden\" (not mapped) -->\n<!-- todo: input type=\"month\" -->\n\n<!-- Blocked: HTML-AAM Issue #467 -->\n<!-- <input type=\"number\" data-testname=\"el-input-number\" data-expectedrole=\"spinbutton\" class=\"ex\"> -->\n\n<!-- todo: input type=\"password\" -->\n<input type=\"radio\" data-testname=\"el-input-radio\" data-expectedrole=\"radio\" class=\"ex\">\n<input type=\"range\" data-testname=\"el-input-range\" data-expectedrole=\"slider\" class=\"ex\">\n<input type=\"reset\" value=\"x\" data-testname=\"el-input-reset\" data-expectedrole=\"button\" class=\"ex\">\n<input type=\"search\" data-testname=\"el-input-search\" data-expectedrole=\"searchbox\" class=\"ex\">\n<input type=\"submit\" value=\"x\" data-testname=\"el-input-submit\" data-expectedrole=\"button\" class=\"ex\">\n<input type=\"tel\" data-testname=\"el-input-tel\" data-expectedrole=\"textbox\" class=\"ex\">\n<input type=\"text\" data-testname=\"el-input-text\" data-expectedrole=\"textbox\" class=\"ex\">\n<!-- todo: input (type attribute in the Text, Search, Telephone, URL, or E-mail states with a suggestions source element) -->\n<!-- todo: input type=\"time\" -->\n<input type=\"url\" data-testname=\"el-input-url\" data-expectedrole=\"textbox\" class=\"ex\">\n<!-- todo: input type=\"week\" -->\n<ins data-testname=\"el-ins\" data-expectedrole=\"insertion\" class=\"ex\">x</ins>\n<!-- todo: kbd -->\n<!-- todo: label -->\n<!-- todo: legend -->\n\n<!-- el-li -->\n<!-- li (orphaned) -> ./roles-generic.html -->\n<ul><li data-testname=\"el-li-in-ul\" data-expectedrole=\"listitem\" class=\"ex\">x</li><li>x</li></ul>\n<ol><li data-testname=\"el-li-in-ol\" data-expectedrole=\"listitem\" class=\"ex\">x</li><li>x</li></ol>\n\n<!-- link (not mapped) -->\n<main data-testname=\"el-main\" data-expectedrole=\"main\" class=\"ex\">x</main>\n<!-- map (not mapped) -->\n<mark data-testname=\"el-mark\" data-expectedrole=\"mark\" class=\"ex\">x</mark>\n<!-- todo: math -->\n<menu data-testname=\"el-menu\" data-expectedrole=\"list\" class=\"ex\"><li>x</li></menu>\n<!-- meta (not mapped) -->\n<meter data-testname=\"el-meter\" data-expectedrole=\"meter\" class=\"ex\" min=\"0\" max=\"100\" low=\"20\" high=\"80\" optimum=\"60\" value=\"50\">x</meter>\n<nav data-testname=\"el-nav\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<!-- noscript (not mapped) -->\n<!-- object (not mapped) -->\n<ol data-testname=\"el-ol\" data-expectedrole=\"list\" class=\"ex\"><li>x</li><li>x</li></ol>\n\n<!-- optgroup -> ./fragile/optgroup-role.html -->\n\n<!-- option -->\n<select>\n <option data-testname=\"el-option\" data-expectedrole=\"option\" class=\"ex\">x</option>\n <option>x</option>\n</select>\n\n<output data-testname=\"el-output\" data-expectedrole=\"status\" class=\"ex\">x</output>\n<p data-testname=\"el-p\" data-expectedrole=\"paragraph\" class=\"ex\">x</p>\n<!-- param (not mapped) -->\n<!-- todo: picture -->\n<!-- pre -> ./roles-generic.html -->\n<progress data-testname=\"el-progress\" data-expectedrole=\"progressbar\" class=\"ex\">x</progress>\n<!-- q -> ./roles-generic.html -->\n<!-- todo: rp -> /ruby-aam? -->\n<!-- todo: rt -> /ruby-aam? -->\n<!-- todo: ruby -> /ruby-aam? -->\n<s data-testname=\"el-s\" data-expectedrole=\"deletion\" class=\"ex\">x</s>\n<!-- samp -> ./roles-generic.html -->\n<!-- script (not mapped) -->\n<search data-testname=\"el-search\" data-expectedrole=\"search\" class=\"ex\">x</search>\n<!-- section -> ./roles-contextual.html -->\n\n<!-- Blocked: HTML-AAM Issue #467 -->\n<!-- <select data-testname=\"el-select-combobox\" data-expectedrole=\"combobox\" class=\"ex\"><option>a1</option><option>a2</option></select>-->\n\n<select data-testname=\"el-select-listbox\" size=\"2\" data-expectedrole=\"listbox\" class=\"ex\"><option>b1</option><option>b2</option></select>\n\n<!-- slot (not mapped) -->\n<!-- small -> ./roles-generic.html -->\n<!-- source (not mapped) -->\n<!-- span -> ./roles-generic.html -->\n<strong data-testname=\"el-strong\" data-expectedrole=\"strong\" class=\"ex\">x</strong>\n<!-- style (not mapped) -->\n<sub data-testname=\"el-sub\" data-expectedrole=\"subscript\" class=\"ex\">x</sub>\n<!-- todo: summary -->\n<sup data-testname=\"el-sup\" data-expectedrole=\"superscript\" class=\"ex\">x</sup>\n<!-- todo: svg (see /graphics-aam and /svg-aam tests) -->\n<!-- table -> ./table-roles.html -->\n<!-- tbody -> ./table-roles.html -->\n<!-- td -> ./table-roles.html -->\n<!-- template (not mapped) -->\n<!-- tfoot -> ./table-roles.html -->\n<!-- th -> ./table-roles.html -->\n<!-- thead -> ./table-roles.html -->\n<time data-testname=\"el-time\" data-expectedrole=\"time\" class=\"ex\">x</time>\n<!-- title (not mapped) -->\n<!-- tr -> ./table-roles.html -->\n<textarea data-testname=\"el-textarea\" data-expectedrole=\"textbox\" class=\"ex\">x</textarea>\n<!-- track (not mapped) -->\n<!-- u -> ./roles-generic.html -->\n<ul data-testname=\"el-ul\" data-expectedrole=\"list\" class=\"ex\"><li>x</li><li>x</li></ul>\n<!-- var (not mapped) -->\n<!-- todo: video -->\n<!-- wbr (not mapped) -->", -1 1390 "role": "generic", -1 1391 "selector": ".ex-generic" -1 1392 }, -1 1393 { 1276 1394 "filename": "roles-generic.html", 1277 1395 "title": "HTML-AAM Generic Role Verification Tests", 1278 1396 "html": "<p>Tests ONLY the <code>generic</code> mappings defined in <a href=\"https://w3c.github.io/html-aam/\">HTML-AAM</a>. Most test names correspond to a unique ID defined in the spec.<p>\n\n<p>These should remain in alphabetical order by tagname.</p>\n\n<!-- a -> ./roles-contextual.html -->\n<!-- aside -> ./roles-contextual.html -->\n<b data-testname=\"el-b\" class=\"ex-generic\">x</b>\n<bdi data-testname=\"el-bdi\" class=\"ex-generic\">x</bdi>\n<bdo data-testname=\"el-bdo\" class=\"ex-generic\">x</bdo>\n<data value=\"1\" data-testname=\"el-data\" class=\"ex-generic\">x</data>\n<div open data-testname=\"el-div\" class=\"ex-generic\">x</div>\n<!-- footer -> ./roles-contextual.html -->\n<!-- header -> ./roles-contextual.html -->\n<i data-testname=\"el-i\" class=\"ex-generic\">x</i>\n<li data-testname=\"el-li-orphaned\" class=\"ex-generic\">x</li><!-- todo: should orphaned roles be tested in a new ./roles-orphaned.html file? -->\n<pre data-testname=\"el-pre\" class=\"ex-generic\">x</pre>\n<q data-testname=\"el-q\" class=\"ex-generic\">x</q>\n<samp data-testname=\"el-samp\" class=\"ex-generic\">x</samp>\n<!-- section -> ./roles-contextual.html -->\n<small data-testname=\"el-small\" class=\"ex-generic\">x</small>\n<span data-testname=\"el-span\" class=\"ex-generic\">x</span>\n<u data-testname=\"el-u\" class=\"ex-generic\">x</u>", @@ -1282,33 +1400,79 @@ window.wpt["html-aam"] = [ 1282 1400 { 1283 1401 "filename": "table-roles.html", 1284 1402 "title": "HTML-AAM Role Verification Tests",1285 -1 "html": "<p>Tests the computedrole mappings for the table-related roles defined in <a href=\"https://w3c.github.io/html-aam/\">HTML-AAM</a>. Most test names correspond to unique ID defined in the spec.<p>\n\n<table data-testname=\"el-table\" data-expectedrole=\"table\" class=\"ex\">\n <caption data-testname=\"el-caption\" data-expectedrole=\"caption\" class=\"ex\">caption</caption>\n <thead data-testname=\"el-thead\" data-expectedrole=\"rowgroup\" class=\"ex\">\n <tr data-testname=\"el-tr-thead\" data-expectedrole=\"row\" class=\"ex\">\n <th data-testname=\"el-th\" data-expectedrole=\"columnheader\" class=\"ex\">a</th>\n <th>b</th>\n <th>c</th>\n </tr>\n </thead>\n <tbody data-testname=\"el-tbody\" data-expectedrole=\"rowgroup\" class=\"ex\">\n <tr data-testname=\"el-tr-tbody\" data-expectedrole=\"row\" class=\"ex\">\n <th data-testname=\"el-th-in-row\" data-expectedrole=\"rowheader\" class=\"ex\">1</th>\n <td data-testname=\"el-td\" data-expectedrole=\"cell\" class=\"ex\">2</td>\n <td>3</td>\n </tr>\n <tr>\n <th>4</th>\n <td>5</td>\n <td>6</td>\n </tr>\n </tbody>\n <tfoot data-testname=\"el-tfoot\" data-expectedrole=\"rowgroup\" class=\"ex\">\n <tr>\n <th>x</th>\n <th>y</th>\n <th>z</th>\n </tr>\n </tfoot>\n</table>",-1 1403 "html": "<p>Tests the computedrole mappings for the table-related roles defined in <a href=\"https://w3c.github.io/html-aam/\">HTML-AAM</a>. Most test names correspond to unique ID defined in the spec.<p>\n\n<!-- ARIA table roles tested in wpt/wai-aria/role/table-roles.html -->\n\n<table data-testname=\"el-table\" data-expectedrole=\"table\" class=\"ex\">\n <caption data-testname=\"el-caption\" data-expectedrole=\"caption\" class=\"ex\">caption</caption>\n <thead>\n <tr data-testname=\"el-tr-thead\" data-expectedrole=\"row\" class=\"ex\">\n <th data-testname=\"el-th\" data-expectedrole=\"columnheader\" class=\"ex\">a</th>\n <th>b</th>\n <th>c</th>\n </tr>\n </thead>\n <tbody>\n <tr data-testname=\"el-tr-tbody\" data-expectedrole=\"row\" class=\"ex\">\n <th data-testname=\"el-th-in-row\" data-expectedrole=\"rowheader\" class=\"ex\">1</th>\n <td data-testname=\"el-td\" data-expectedrole=\"cell\" class=\"ex\">2</td>\n <td>3</td>\n </tr>\n <tr>\n <th>4</th>\n <td>5</td>\n <td>6</td>\n </tr>\n </tbody>\n <tfoot>\n <tr>\n <th>x</th>\n <th>y</th>\n <th>z</th>\n </tr>\n </tfoot>\n</table>", -1 1404 "selector": ".ex" -1 1405 }, -1 1406 { -1 1407 "filename": "names.html", -1 1408 "title": "HTML-AAM Element Accessible Name From Author Tests", -1 1409 "html": "<p>Tests the accName for elements defined in <a href=\"https://w3c.github.io/html-aam/#accessible-name-and-description-computation\">HTML-AAM: Accessible Name Computations By HTML Element</a>.\n These tests are meant to show whether an element returns a name per the naming mechanism used. See <a href=\"https://wpt.fyi/results/accname\">wpt: accname</a> for expanded accName testing.</p>\n\n\n<!--\nThe following elements are those which can be named by authors. They do not receive their name from elements for which they are an accessibility ancestor.\n\nThere are other elements which can be named by author, but have additional ways in which they can be named. These elements will be tested separately.\n-->\n\n\n<h2>address element</h2>\n<address data-testname=\"address no name\" data-expectedlabel=\"\" class=\"ex\">x</address>\n\n<address data-testname=\"address aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</address>\n<address data-testname=\"address aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</address>\n<address data-testname=\"address title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</address>\n\n<address data-testname=\"address aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</address>\n<address data-testname=\"address aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</address>\n\n<address data-testname=\"address aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</address>\n<address data-testname=\"address aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</address>\n\n\n\n<h2>aside element</h2>\n<aside data-testname=\"aside no name\" data-expectedlabel=\"\" class=\"ex\">x</aside>\n\n<aside data-testname=\"aside aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</aside>\n<aside data-testname=\"aside aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</aside>\n<aside data-testname=\"aside title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</aside>\n\n<aside data-testname=\"aside aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</aside>\n<aside data-testname=\"aside aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</aside>\n\n<aside data-testname=\"aside aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</aside>\n<aside data-testname=\"aside aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</aside>\n\n\n<h2>blockquote element</h2>\n<blockquote data-testname=\"blockquote no name\" data-expectedlabel=\"\" class=\"ex\">x</blockquote>\n\n<blockquote data-testname=\"blockquote aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</blockquote>\n<blockquote data-testname=\"blockquote aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</blockquote>\n<blockquote data-testname=\"blockquote title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</blockquote>\n\n<blockquote data-testname=\"blockquote aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</blockquote>\n<blockquote data-testname=\"blockquote aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</blockquote>\n\n<blockquote data-testname=\"blockquote aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</blockquote>\n<blockquote data-testname=\"blockquote aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</blockquote>\n\n\n\n<h2>details element</h2>\n<details data-testname=\"details no name\" data-expectedlabel=\"\" class=\"ex\"><summary>x</summary></details>\n\n<details data-testname=\"details aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\"><summary>x</summary></details>\n<details data-testname=\"details aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\"><summary>x</summary></details>\n<details data-testname=\"details title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\"><summary>x</summary></details>\n\n<details data-testname=\"details aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><summary>x</summary></details>\n<details data-testname=\"details aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\"><summary>x</summary></details>\n\n<details data-testname=\"details aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><summary>x</summary></details>\n<details data-testname=\"details aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\"><summary>x</summary></details>\n\n\n<h2>figure element</h2>\n<figure data-testname=\"figure no name\" data-expectedlabel=\"\" class=\"ex\">x</figure>\n\n<figure data-testname=\"figure aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</figure>\n<figure data-testname=\"figure aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</figure>\n<figure data-testname=\"figure title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</figure>\n\n<figure data-testname=\"figure aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</figure>\n<figure data-testname=\"figure aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</figure>\n\n<figure data-testname=\"figure aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</figure>\n<figure data-testname=\"figure aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</figure>\n\n\n<h2>footer element</h2>\n<footer data-testname=\"footer no name\" data-expectedlabel=\"\" class=\"ex\">x</footer>\n\n<footer data-testname=\"footer aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</footer>\n<footer data-testname=\"footer aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</footer>\n<footer data-testname=\"footer title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</footer>\n\n<footer data-testname=\"footer aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</footer>\n<footer data-testname=\"footer aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</footer>\n\n<footer data-testname=\"footer aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</footer>\n<footer data-testname=\"footer aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</footer>\n\n\n<h2>form element</h2>\n<form data-testname=\"form no name\" data-expectedlabel=\"\" class=\"ex\">x</form>\n\n<form data-testname=\"form aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</form>\n<form data-testname=\"form aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</form>\n<form data-testname=\"form title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</form>\n\n<form data-testname=\"form aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</form>\n<form data-testname=\"form aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</form>\n\n<form data-testname=\"form aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</form>\n<form data-testname=\"form aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</form>\n\n\n<h2>hgroup element</h2>\n<hgroup data-testname=\"hgroup no name\" data-expectedlabel=\"\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n\n<hgroup data-testname=\"hgroup aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n<hgroup data-testname=\"hgroup aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n<hgroup data-testname=\"hgroup title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n\n<hgroup data-testname=\"hgroup aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n<hgroup data-testname=\"hgroup aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n\n<hgroup data-testname=\"hgroup aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n<hgroup data-testname=\"hgroup aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n\n\n<h2>hr element</h2>\n<hr data-testname=\"hr no name\" data-expectedlabel=\"\" class=\"ex\">\n\n<hr data-testname=\"hr aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">\n<hr data-testname=\"hr aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">\n<hr data-testname=\"hr title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">\n\n<hr data-testname=\"hr aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">\n<hr data-testname=\"hr aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">\n\n<hr data-testname=\"hr aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">\n<hr data-testname=\"hr aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">\n\n\n<h2>ol element</h2>\n<ol data-testname=\"ol no name\" data-expectedlabel=\"\" class=\"ex\"><li>x</li></ol>\n\n<ol data-testname=\"ol aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\"><li>x</li></ol>\n<ol data-testname=\"ol aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ol>\n<ol data-testname=\"ol title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\"><li>x</li></ol>\n\n<ol data-testname=\"ol aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ol>\n<ol data-testname=\"ol aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ol>\n\n<ol data-testname=\"ol aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ol>\n<ol data-testname=\"ol aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\"><li>x</li></ol>\n\n\n<h2>main element</h2>\n<main data-testname=\"main no name\" data-expectedlabel=\"\" class=\"ex\">x</main>\n\n<main data-testname=\"main aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</main>\n<main data-testname=\"main aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</main>\n<main data-testname=\"main title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</main>\n\n<main data-testname=\"main aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</main>\n<main data-testname=\"main aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</main>\n\n<main data-testname=\"main aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</main>\n<main data-testname=\"main aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</main>\n\n\n<h2>menu element</h2>\n<menu data-testname=\"menu no name\" data-expectedlabel=\"\" class=\"ex\"><li>x</li></menu>\n\n<menu data-testname=\"menu aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\"><li>x</li></menu>\n<menu data-testname=\"menu aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></menu>\n<menu data-testname=\"menu title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\"><li>x</li></menu>\n\n<menu data-testname=\"menu aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></menu>\n<menu data-testname=\"menu aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></menu>\n\n<menu data-testname=\"menu aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></menu>\n<menu data-testname=\"menu aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\"><li>x</li></menu>\n\n\n<h2>nav element</h2>\n<nav data-testname=\"nav no name\" data-expectedlabel=\"\" class=\"ex\">x</nav>\n\n<nav data-testname=\"nav aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</nav>\n<nav data-testname=\"nav aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</nav>\n<nav data-testname=\"nav title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</nav>\n\n<nav data-testname=\"nav aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</nav>\n<nav data-testname=\"nav aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</nav>\n\n<nav data-testname=\"nav aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</nav>\n<nav data-testname=\"nav aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</nav>\n\n\n<h2>search element</h2>\n<search data-testname=\"search no name\" data-expectedlabel=\"\" class=\"ex\">x</search>\n\n<search data-testname=\"search aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</search>\n<search data-testname=\"search aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</search>\n<search data-testname=\"search title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</search>\n\n<search data-testname=\"search aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</search>\n<search data-testname=\"search aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</search>\n\n<search data-testname=\"search aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</search>\n<search data-testname=\"search aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</search>\n\n\n<h2>section element</h2>\n<section data-testname=\"section no name\" data-expectedlabel=\"\" class=\"ex\">x</section>\n\n<section data-testname=\"section aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</section>\n<section data-testname=\"section aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</section>\n<section data-testname=\"section title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</section>\n\n<section data-testname=\"section aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</section>\n<section data-testname=\"section aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</section>\n\n<section data-testname=\"section aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</section>\n<section data-testname=\"section aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</section>\n\n\n<h2>ul element</h2>\n<ul data-testname=\"ul no name\" data-expectedlabel=\"\" class=\"ex\"><li>x</li></ul>\n\n<ul data-testname=\"ul aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\"><li>x</li></ul>\n<ul data-testname=\"ul aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ul>\n<ul data-testname=\"ul title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\"><li>x</li></ul>\n\n<ul data-testname=\"ul aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ul>\n<ul data-testname=\"ul aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ul>\n\n<ul data-testname=\"ul aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ul>\n<ul data-testname=\"ul aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\"><li>x</li></ul>\n\n\n<!-- element to reference for aria-labelledby tests -->\n<div id=\"labelledby\">labelledby</div>", 1286 1410 "selector": ".ex" 1287 1411 }, 1288 1412 { 1289 1413 "filename": "roles-contextual.html", 1290 1414 "title": "HTML-AAM Contextual-Specific Role Verification Tests",1291 -1 "html": "<p>Tests contextual computedrole mappings defined in <a href=\"https://w3c.github.io/html-aam/\">HTML-AAM</a>, where the returned computed role is expected to change based on the context. Most test names correspond to a unique ID defined in the spec.<p>\n\n<p>These should remain in alphabetical order.</code></p>\n\n\n<!-- el-a -->\n<a href=\"#\" data-testname=\"el-a\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a data-testname=\"el-a-no-href\" class=\"ex-generic\">x</a>\n\n<!-- el-aside -->\n<nav>\n <aside data-testname=\"el-aside-in-section-with-name\" data-expectedrole=\"complementary\" aria-label=\"x\" class=\"ex\">x</aside>\n <aside data-testname=\"el-aside-in-section-without-name\" class=\"ex-generic\">x</aside>\n</nav>\n<aside data-testname=\"el-aside-ancestorbodymain\" data-expectedrole=\"complementary\" class=\"ex\">x</aside>\n\n<!-- el-footer -->\n<nav>\n <footer data-testname=\"el-footer\" aria-label=\"x\" class=\"ex-generic\">x</aside>\n</nav>\n<footer data-testname=\"el-footer-ancestorbody\" data-expectedrole=\"contentinfo\" class=\"ex\">x</footer>\n\n<!-- el-header -->\n<nav>\n <header data-testname=\"el-header\" aria-label=\"x\" class=\"ex-generic\">x</header>\n</nav>\n<header data-testname=\"el-header-ancestorbody\" data-expectedrole=\"banner\" class=\"ex\">x</header>\n\n<!-- el-section -->\n<section data-testname=\"el-section\" aria-label=\"x\" data-expectedrole=\"region\" class=\"ex\">x</section>\n<section data-testname=\"el-section-no-name\" class=\"ex-generic\">x</section>",-1 1415 "html": "<p>Tests contextual computedrole mappings defined in <a href=\"https://w3c.github.io/html-aam/\">HTML-AAM</a>, where the returned computed role is expected to change based on the context. Most test names correspond to a unique ID defined in the spec.<p>\n\n<p>These should remain in alphabetical order.</code></p>\n\n\n<!-- el-a -->\n<a href=\"#\" data-testname=\"el-a\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a data-testname=\"el-a-no-href\" class=\"ex-generic\">x</a>\n\n<!-- el-aside -->\n<aside data-testname=\"el-aside\" data-expectedrole=\"complementary\" class=\"ex\">x</aside>\n<main>\n <aside data-testname=\"el-aside-in-main\" data-expectedrole=\"complementary\" class=\"ex\">x</aside>\n <article>\n <aside data-testname=\"el-aside-in-article-in-main\" class=\"ex-generic\">x</aside>\n <aside data-testname=\"el-aside-in-article-in-main-with-name\" data-expectedrole=\"complementary\" aria-label=\"x\" class=\"ex\">x</aside>\n </article>\n</main>\n<article>\n <aside data-testname=\"el-aside-in-article\" class=\"ex-generic\">x</aside>\n <aside data-testname=\"el-aside-in-article-with-name\" data-expectedrole=\"complementary\" aria-label=\"x\" class=\"ex\">x</aside>\n</article>\n<aside>\n <aside data-testname=\"el-aside-in-aside\" class=\"ex-generic\">x</aside>\n <aside data-testname=\"el-aside-in-aside-with-name\" data-expectedrole=\"complementary\" aria-label=\"x\" class=\"ex\">x</aside>\n</aside>\n<nav>\n <aside data-testname=\"el-aside-in-nav\" class=\"ex-generic\">x</aside>\n <aside data-testname=\"el-aside-in-nav-with-name\" data-expectedrole=\"complementary\" aria-label=\"x\" class=\"ex\">x</aside>\n <aside data-testname=\"el-aside-in-nav-with-role\" data-expectedrole=\"complementary\" class=\"ex\" role=\"complementary\">x</aside>\n</nav>\n<!-- Spec says that the conditional aside mapping happens when nested in a sectioning content element.\n However, this doesn't make sense if the parent <section> isn't a landmark in the first place.\n Let's force the section to always be a landmark for now, but we should probably expand on this test\n case pending discussions in https://github.com/w3c/html-aam/pull/484 -->\n<section aria-label=\"x\">\n <aside data-testname=\"el-aside-in-section\" class=\"ex-generic\">x</aside>\n <aside data-testname=\"el-aside-in-section-with-name\" data-expectedrole=\"complementary\" aria-label=\"x\" class=\"ex\">x</aside>\n</section>\n\n<!-- el-footer -->\n<nav>\n <footer data-testname=\"el-footer\" aria-label=\"x\" class=\"ex-generic\">x</aside>\n</nav>\n<footer data-testname=\"el-footer-ancestorbody\" data-expectedrole=\"contentinfo\" class=\"ex\">x</footer>\n\n<!-- el-header -->\n<nav>\n <header data-testname=\"el-header\" aria-label=\"x\" class=\"ex-generic\">x</header>\n</nav>\n<header data-testname=\"el-header-ancestorbody\" data-expectedrole=\"banner\" class=\"ex\">x</header>\n<main>\n <header data-testname=\"el-header-ancestormain\" data-expectedrole=\"generic\" class=\"ex-generic\">x</header>\n</main>\n\n<!-- el-section -->\n<section data-testname=\"el-section\" aria-label=\"x\" data-expectedrole=\"region\" class=\"ex\">x</section>\n<section data-testname=\"el-section-no-name\" class=\"ex-generic\">x</section>", 1292 1416 "selector": ".ex" 1293 1417 }, 1294 1418 { 1295 1419 "filename": "roles-contextual.html", 1296 1420 "title": "HTML-AAM Contextual-Specific Role Verification Tests",1297 -1 "html": "<p>Tests contextual computedrole mappings defined in <a href=\"https://w3c.github.io/html-aam/\">HTML-AAM</a>, where the returned computed role is expected to change based on the context. Most test names correspond to a unique ID defined in the spec.<p>\n\n<p>These should remain in alphabetical order.</code></p>\n\n\n<!-- el-a -->\n<a href=\"#\" data-testname=\"el-a\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a data-testname=\"el-a-no-href\" class=\"ex-generic\">x</a>\n\n<!-- el-aside -->\n<nav>\n <aside data-testname=\"el-aside-in-section-with-name\" data-expectedrole=\"complementary\" aria-label=\"x\" class=\"ex\">x</aside>\n <aside data-testname=\"el-aside-in-section-without-name\" class=\"ex-generic\">x</aside>\n</nav>\n<aside data-testname=\"el-aside-ancestorbodymain\" data-expectedrole=\"complementary\" class=\"ex\">x</aside>\n\n<!-- el-footer -->\n<nav>\n <footer data-testname=\"el-footer\" aria-label=\"x\" class=\"ex-generic\">x</aside>\n</nav>\n<footer data-testname=\"el-footer-ancestorbody\" data-expectedrole=\"contentinfo\" class=\"ex\">x</footer>\n\n<!-- el-header -->\n<nav>\n <header data-testname=\"el-header\" aria-label=\"x\" class=\"ex-generic\">x</header>\n</nav>\n<header data-testname=\"el-header-ancestorbody\" data-expectedrole=\"banner\" class=\"ex\">x</header>\n\n<!-- el-section -->\n<section data-testname=\"el-section\" aria-label=\"x\" data-expectedrole=\"region\" class=\"ex\">x</section>\n<section data-testname=\"el-section-no-name\" class=\"ex-generic\">x</section>",-1 1421 "html": "<p>Tests contextual computedrole mappings defined in <a href=\"https://w3c.github.io/html-aam/\">HTML-AAM</a>, where the returned computed role is expected to change based on the context. Most test names correspond to a unique ID defined in the spec.<p>\n\n<p>These should remain in alphabetical order.</code></p>\n\n\n<!-- el-a -->\n<a href=\"#\" data-testname=\"el-a\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a data-testname=\"el-a-no-href\" class=\"ex-generic\">x</a>\n\n<!-- el-aside -->\n<aside data-testname=\"el-aside\" data-expectedrole=\"complementary\" class=\"ex\">x</aside>\n<main>\n <aside data-testname=\"el-aside-in-main\" data-expectedrole=\"complementary\" class=\"ex\">x</aside>\n <article>\n <aside data-testname=\"el-aside-in-article-in-main\" class=\"ex-generic\">x</aside>\n <aside data-testname=\"el-aside-in-article-in-main-with-name\" data-expectedrole=\"complementary\" aria-label=\"x\" class=\"ex\">x</aside>\n </article>\n</main>\n<article>\n <aside data-testname=\"el-aside-in-article\" class=\"ex-generic\">x</aside>\n <aside data-testname=\"el-aside-in-article-with-name\" data-expectedrole=\"complementary\" aria-label=\"x\" class=\"ex\">x</aside>\n</article>\n<aside>\n <aside data-testname=\"el-aside-in-aside\" class=\"ex-generic\">x</aside>\n <aside data-testname=\"el-aside-in-aside-with-name\" data-expectedrole=\"complementary\" aria-label=\"x\" class=\"ex\">x</aside>\n</aside>\n<nav>\n <aside data-testname=\"el-aside-in-nav\" class=\"ex-generic\">x</aside>\n <aside data-testname=\"el-aside-in-nav-with-name\" data-expectedrole=\"complementary\" aria-label=\"x\" class=\"ex\">x</aside>\n <aside data-testname=\"el-aside-in-nav-with-role\" data-expectedrole=\"complementary\" class=\"ex\" role=\"complementary\">x</aside>\n</nav>\n<!-- Spec says that the conditional aside mapping happens when nested in a sectioning content element.\n However, this doesn't make sense if the parent <section> isn't a landmark in the first place.\n Let's force the section to always be a landmark for now, but we should probably expand on this test\n case pending discussions in https://github.com/w3c/html-aam/pull/484 -->\n<section aria-label=\"x\">\n <aside data-testname=\"el-aside-in-section\" class=\"ex-generic\">x</aside>\n <aside data-testname=\"el-aside-in-section-with-name\" data-expectedrole=\"complementary\" aria-label=\"x\" class=\"ex\">x</aside>\n</section>\n\n<!-- el-footer -->\n<nav>\n <footer data-testname=\"el-footer\" aria-label=\"x\" class=\"ex-generic\">x</aside>\n</nav>\n<footer data-testname=\"el-footer-ancestorbody\" data-expectedrole=\"contentinfo\" class=\"ex\">x</footer>\n\n<!-- el-header -->\n<nav>\n <header data-testname=\"el-header\" aria-label=\"x\" class=\"ex-generic\">x</header>\n</nav>\n<header data-testname=\"el-header-ancestorbody\" data-expectedrole=\"banner\" class=\"ex\">x</header>\n<main>\n <header data-testname=\"el-header-ancestormain\" data-expectedrole=\"generic\" class=\"ex-generic\">x</header>\n</main>\n\n<!-- el-section -->\n<section data-testname=\"el-section\" aria-label=\"x\" data-expectedrole=\"region\" class=\"ex\">x</section>\n<section data-testname=\"el-section-no-name\" class=\"ex-generic\">x</section>", 1298 1422 "role": "generic", 1299 1423 "selector": ".ex-generic" 1300 1424 }, 1301 1425 { -1 1426 "filename": "roles.tentative.html", -1 1427 "title": "HTML-AAM Role Verification Tests", -1 1428 "html": "<p>Tests the computedrole mappings defined in <a href=\"https://w3c.github.io/html-aam/\">HTML-AAM</a>. Most test names correspond to a unique ID defined in the spec.<p>\n\n<p>These should remain in alphabetical order, and include all HTML tagnames. If a tag is not tested here, include a pointer to the file where it is tested, such as: <code><!-- caption -> ./table-roles.html --></code></p>\n\n<input type=\"checkbox\" switch data-testname=\"el-input-checkbox-switch\" data-expectedrole=\"switch\" class=\"ex\">\n\n<!--\n These thead, tbody, and tfoot role tests are pending spec discussion.\n See https://github.com/w3c/html-aam/issues/474\n-->\n<table>\n <thead data-testname=\"el-thead\" data-expectedrole=\"rowgroup\" class=\"ex\">\n <tr>\n <th>a</th>\n <th>b</th>\n <th>c</th>\n </tr>\n </thead>\n <tbody data-testname=\"el-tbody\" data-expectedrole=\"rowgroup\" class=\"ex\">\n <tr>\n <th>1</th>\n <td>2</td>\n <td>3</td>\n </tr>\n <tr>\n <th>4</th>\n <td>5</td>\n <td>6</td>\n </tr>\n </tbody>\n <tfoot data-testname=\"el-tfoot\" data-expectedrole=\"rowgroup\" class=\"ex\">\n <tr>\n <th>x</th>\n <th>y</th>\n <th>z</th>\n </tr>\n </tfoot>\n</table>", -1 1429 "selector": ".ex" -1 1430 }, -1 1431 { 1302 1432 "filename": "area-role.html", 1303 1433 "title": "HTMLAreaElement Role Verification Tests",1304 -1 "html": "<map name=\"areamap\">\n <area shape=\"rect\" coords=\"0,0,15,15\" href=\"#\" alt=\"x\" data-testname=\"el-area\" data-expectedrole=\"link\" class=\"ex\">\n <area shape=\"rect\" coords=\"15,15,31,31\" alt=\"x\" data-testname=\"el-area-no-href\" data-expectedrole=\"generic\" class=\"ex\">\n</map>\n<img usemap=\"#areamap\" src=\"#\" style=\"width: 32px; height: 32px;\" alt=\"x\">",-1 1434 "html": "<map name=\"areamap\">\n <area shape=\"rect\" coords=\"0,0,15,15\" href=\"#\" alt=\"x\" data-testname=\"el-area\" data-expectedrole=\"link\" class=\"ex\">\n <area shape=\"rect\" coords=\"15,15,31,31\" alt=\"x\" data-testname=\"el-area-no-href\" class=\"ex-generic\">\n</map>\n<img usemap=\"#areamap\" style=\"width: 32px; height: 32px;\" alt=\"x\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">", 1305 1435 "selector": ".ex" 1306 1436 }, 1307 1437 { -1 1438 "filename": "area-role.html", -1 1439 "title": "HTMLAreaElement Role Verification Tests", -1 1440 "html": "<map name=\"areamap\">\n <area shape=\"rect\" coords=\"0,0,15,15\" href=\"#\" alt=\"x\" data-testname=\"el-area\" data-expectedrole=\"link\" class=\"ex\">\n <area shape=\"rect\" coords=\"15,15,31,31\" alt=\"x\" data-testname=\"el-area-no-href\" class=\"ex-generic\">\n</map>\n<img usemap=\"#areamap\" style=\"width: 32px; height: 32px;\" alt=\"x\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">", -1 1441 "role": "generic", -1 1442 "selector": ".ex-generic" -1 1443 }, -1 1444 { 1308 1445 "filename": "optgroup-role.html", 1309 1446 "title": "HTMLOptGroupElement Role Verification Tests", 1310 1447 "html": "<select>\n <optgroup label=\"x\" data-testname=\"el-optgroup\" data-expectedrole=\"group\" class=\"ex\">\n <option>x1</option>\n <option>x2</option>\n </optgroup>\n <optgroup data-testname=\"el-optgroup-no-label\" data-expectedrole=\"not defined in spec?\" class=\"ex-todo\">\n <option>y1</option>\n <option>y2</option>\n </optgroup>\n</select>", 1311 1448 "selector": ".ex" 1312 1449 } 1313 1450 ];1314 -1 window.wpt["svg-aam"] = [];-1 1451 window.wpt["svg-aam"] = [ -1 1452 { -1 1453 "filename": "comp_host_language_label.html", -1 1454 "title": "Name Comp: Host Language Label", -1 1455 "html": "<h1>SVG-AAM: Label Tests</h1>\n\n<p>Tests SVG-specific host language label rules (title element and xlink:title attr) in <a href=\"https://w3c.github.io/svg-aam/#mapping_additional_nd\">SVG-AAM \u00a78.1 Name and Description</a>, but note the open issues in <a href=\"https://github.com/w3c/svg-aam/issues/31\">SVG-AAM #31</a>.\n\n\n<h2>SVG * > title</h2>\n<svg viewbox=\"0 0 300 100\">\n <circle cx=\"26\" cy=\"26\" r=\"25\" data-expectedlabel=\"circle label\" data-testname=\"circle > title\" class=\"ex\"><title>circle label</title></circle>\n <rect x=\"60\" y=\"1\" width=\"50\" height=\"50\" data-expectedlabel=\"rect label\" data-testname=\"rect > title\" class=\"ex\"><title>rect label</title></rect>\n <polygon points=\"100,100 150,25 150,75 200,0\" fill=\"none\" stroke=\"black\" data-expectedlabel=\"polygon label\" data-testname=\"polygon > title\" class=\"ex\"><title>polygon label</title></polygon>\n</svg><br>\n<svg viewbox=\"0 0 200 90\">\n <g fill=\"white\" stroke=\"green\" stroke-width=\"5\" data-expectedlabel=\"group label\" data-testname=\"g > title\" class=\"ex\">\n <title>group label</title>\n <circle cx=\"40\" cy=\"40\" r=\"25\" />\n <circle cx=\"60\" cy=\"60\" r=\"25\" />\n </g>\n</svg>\n<br>\n\n\n<h2>SVG a[xlink:title][href]</h2>\n<svg viewbox=\"0 0 300 100\">\n <a href=\"#\" data-expectedlabel=\"circle link label\" xlink:title=\"circle link label\" data-testname=\"[xlink:title][href] > circle\" class=\"ex\"><circle cx=\"26\" cy=\"26\" r=\"25\"></circle></a>\n <a href=\"#\" data-expectedlabel=\"rect link label\" xlink:title=\"rect link label\" data-testname=\"[xlink:title][href] > rect\" class=\"ex\"><rect x=\"60\" y=\"1\" width=\"50\" height=\"50\"></rect></a>\n <a href=\"#\" data-expectedlabel=\"polygon link label\" xlink:title=\"polygon link label\" data-testname=\"[xlink:title][href] > polygon\" class=\"ex\"><polygon points=\"100,100 150,25 150,75 200,0\" fill=\"none\" stroke=\"black\"></polygon></a>\n</svg><br>\n<svg viewbox=\"0 0 200 90\">\n <a href=\"#\" data-expectedlabel=\"group link label\" xlink:title=\"group link label\" data-testname=\"[xlink:title][href] > g\" class=\"ex\">\n <g fill=\"white\" stroke=\"green\" stroke-width=\"5\">\n <circle cx=\"40\" cy=\"40\" r=\"25\" />\n <circle cx=\"60\" cy=\"60\" r=\"25\" />\n </g>\n </a>\n</svg>\n<br>\n\n<h2>SVG a[xlink:title][xlink:href]:not([href])</h2>\n<svg viewbox=\"0 0 300 100\">\n <a xlink:href=\"#\" data-expectedlabel=\"circle link label\" xlink:title=\"circle link label\" data-testname=\"[xlink:title][xlink:href] > circle\" class=\"ex\"><circle cx=\"26\" cy=\"26\" r=\"25\"></circle></a>\n <a xlink:href=\"#\" data-expectedlabel=\"rect link label\" xlink:title=\"rect link label\" data-testname=\"[xlink:title][xlink:href] > rect\" class=\"ex\"><rect x=\"60\" y=\"1\" width=\"50\" height=\"50\"></rect></a>\n <a xlink:href=\"#\" data-expectedlabel=\"polygon link label\" xlink:title=\"polygon link label\" data-testname=\"[xlink:title][xlink:href] > polygon\" class=\"ex\"><polygon points=\"100,100 150,25 150,75 200,0\" fill=\"none\" stroke=\"black\"></polygon></a>\n</svg><br>\n<svg viewbox=\"0 0 200 90\">\n <a xlink:href=\"#\" data-expectedlabel=\"group link label\" xlink:title=\"group link label\" data-testname=\"[xlink:title][xlink:href] > g\" class=\"ex\">\n <g fill=\"white\" stroke=\"green\" stroke-width=\"5\">\n <circle cx=\"40\" cy=\"40\" r=\"25\" />\n <circle cx=\"60\" cy=\"60\" r=\"25\" />\n </g>\n </a>\n</svg>\n<br>", -1 1456 "selector": ".ex" -1 1457 }, -1 1458 { -1 1459 "filename": "roles.html", -1 1460 "title": "SVG-AAM Role Verification Tests", -1 1461 "html": "<p>Tests the mappings defined in <a href=\"https://w3c.github.io/svg-aam/#mapping_role_table\">SVG-AAM: 6.2 Element Mapping</a>.<p>\n\n<h2>Simple Elements With aria-label to Ensure Tree Inclusion</h2>\n<svg>\n <!-- Some elements skipped: never-rendered elements can return unpredicable/undefined/unspecified values for computedrole. -->\n <a href=\"#\" data-testname=\"el-a[href]\" data-expectedrole=\"link\" aria-label=\"label\" class=\"ex\">x</a>\n <a xlink:href=\"#\" data-testname=\"el-a[xlink:href]\" data-expectedrole=\"link\" aria-label=\"label\" class=\"ex\">x</a>\n <!-- skipped: animate -->\n <!-- skipped: animateMotion -->\n <!-- skipped: animateTransform -->\n <!-- blocked: audio -> https://github.com/w3c/html-aam/issues/511 -->\n <!-- todo: canvas -> follow HTML -->\n <!-- blocked: circle -> https://github.com/w3c/svg-aam/issues/24 -->\n <!-- n/a: clipPath -->\n <!-- n/a: cursor -->\n <!-- n/a: defs -->\n <!-- n/a: desc -->\n <!-- n/a: discard -->\n <!-- blocked: ellipse -> https://github.com/w3c/svg-aam/issues/24 -->\n <!-- n/a: feBlend -->\n <!-- n/a: feColorMatrix -->\n <!-- n/a: feComponentTransfer -->\n <!-- n/a: feComposite -->\n <!-- n/a: feConvolveMatrix -->\n <!-- n/a: feDiffuseLighting -->\n <!-- n/a: feDisplacementMap -->\n <!-- n/a: feDistantLight -->\n <!-- n/a: feDropShadow -->\n <!-- n/a: feFlood -->\n <!-- n/a: feFuncA -->\n <!-- n/a: feFuncB -->\n <!-- n/a: feFuncG -->\n <!-- n/a: feFuncR -->\n <!-- n/a: feGaussianBlur -->\n <!-- n/a: feImage -->\n <!-- n/a: feMerge -->\n <!-- n/a: feMergeNode -->\n <!-- n/a: feMorphology -->\n <!-- n/a: feOffset -->\n <!-- n/a: fePointLight -->\n <!-- n/a: feSpecularLighting -->\n <!-- n/a: feSpotLight -->\n <!-- n/a: feTile -->\n <!-- n/a: feTurbulence -->\n <!-- n/a: filter -->\n <!-- todo: foreignObject (spec says `group` role if rendered and labeled) -->\n <g fill=\"white\" stroke=\"green\" stroke-width=\"2\" data-testname=\"el-g\" data-expectedrole=\"group\" aria-label=\"label\" class=\"ex\">\n <circle cx=\"40\" cy=\"40\" r=\"25\" />\n </g>\n <!-- n/a: hatch -->\n <!-- n/a: hatchPath -->\n <!-- todo: iframe -> follow HTML -->\n <image data-testname=\"el-image\" data-expectedrole=\"image\" aria-label=\"label\" class=\"ex\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\"></image>\n <!-- blocked: line -> https://github.com/w3c/svg-aam/issues/24 -->\n <!-- n/a: linearGradient -->\n <!-- n/a: marker -->\n <!-- n/a: mask -->\n <!-- todo: mesh (spec says `image` role if rendered and labeled) -->\n <!-- n/a: meshPatch -->\n <!-- n/a: meshRow -->\n <!-- n/a: metadata -->\n <!-- n/a: mpath -->\n <!-- blocked: path -> https://github.com/w3c/svg-aam/issues/24 -->\n <!-- n/a: pattern -->\n <!-- blocked: polygon -> https://github.com/w3c/svg-aam/issues/24 -->\n <!-- blocked: polyline -> https://github.com/w3c/svg-aam/issues/24 -->\n <!-- n/a: radialGradient -->\n <!-- blocked: rect -> https://github.com/w3c/svg-aam/issues/24 -->\n <!-- n/a: script -->\n <!-- n/a: set -->\n <!-- n/a: solidColor -->\n <!-- todo: source -> follow HTML -->\n <!-- n/a: stop -->\n <!-- n/a: style -->\n <!-- blocked: svg -> https://github.com/w3c/svg-aam/issues/18 -->\n <!-- n/a: switch -->\n <!-- blocked: symbol -> https://github.com/w3c/svg-aam/issues/24 -->\n <!-- blocked: text -> https://github.com/w3c/svg-aam/issues/33 -->\n <!-- blocked: textPath -> https://w3c.github.io/svg-aam/#textpath-tspan-mappings-issue-->\n <!-- n/a: title -->\n <!-- todo: track -> follow HTML -->\n <!-- blocked: tspan -> https://w3c.github.io/svg-aam/#textpath-tspan-mappings-issue -->\n <!-- blocked: use -> https://github.com/w3c/svg-aam/issues/24 -->\n <!-- todo: video -> follow HTML -->\n <!-- n/a: view -->\n</svg>", -1 1462 "selector": ".ex" -1 1463 }, -1 1464 { -1 1465 "filename": "roles-generic.html", -1 1466 "title": "SVG-AAM Generic Role Verification Tests", -1 1467 "html": "<p>Tests ONLY the default <code>generic</code> mappings defined in <a href=\"https://w3c.github.io/svg-aam/#include_elements\">SVG-AAM: 5.1.2 Including Elements in the Accessibility Tree</a>.</p>\n\n<h2>Simple Elements</h2>\n<!-- Note: adding an inoccuous label, tabindex, or some other accessible marker may cause the computedrole result to change. -->\n<svg>\n <!-- Some elements skipped: never-rendered elements can return unpredicable/undefined/unspecified values for computedrole. -->\n <circle data-testname=\"el-circle\" class=\"ex-generic\"></circle>\n <ellipse data-testname=\"el-ellipse\" class=\"ex-generic\"></ellipse>\n <foreignObject data-testname=\"el-foreignObject\" class=\"ex-generic\"></foreignObject>\n <g data-testname=\"el-g\" class=\"ex-generic\"></g>\n <!-- image -> in ./role-img.tentative.html -->\n <line data-testname=\"el-line\" class=\"ex-generic\"></line>\n <!-- skipped: mesh -->\n <path data-testname=\"el-path\" class=\"ex-generic\"></path>\n <polygon data-testname=\"el-polygon\" class=\"ex-generic\"></polygon>\n <polyline data-testname=\"el-polyline\" class=\"ex-generic\"></polyline>\n <rect data-testname=\"el-rect\" class=\"ex-generic\"></rect>\n <!-- blocked: textPath -> https://w3c.github.io/svg-aam/#textpath-tspan-mappings-issue-->\n <!-- blocked: tspan -> https://w3c.github.io/svg-aam/#textpath-tspan-mappings-issue -->\n <!-- skipped: use -->\n</svg>", -1 1468 "role": "generic", -1 1469 "selector": ".ex-generic" -1 1470 }, -1 1471 { -1 1472 "filename": "role-img.tentative.html", -1 1473 "title": "SVG-AAM Image Role Verification Tests", -1 1474 "html": "<p>Currently tentative due to <a href=\"https://github.com/w3c/svg-aam/issues/32\">SVG-AAM #32: SVG image role should align with HTML on missing versus empty alt</a>.</p>\n\n<!-- [sic] included here b/c the spec says unlabeled, unrendered images are generic, but the spec may be wrong. -->\n<!-- Once https://github.com/w3c/svg-aam/issues/32 is resolved, this test can be moved to another file or have `.tentative` removed. -->\n<image data-testname=\"el-image (empty label due to missing image>title element)\" data-expectedrole=\"image\" data-expectedlabel=\"\" class=\"ex-role-label\"></image>\n\n<!-- Additional tests -->\n<image data-testname=\"el-image (label from w/ aria-label)\" aria-label=\"x\" data-expectedrole=\"image\" data-expectedlabel=\"x\" class=\"ex-role-label\"></image>\n<image data-testname=\"el-image (label from image>title element)\" data-expectedrole=\"image\" data-expectedlabel=\"x\" class=\"ex-role-label\"><title>x</title></image>\n<image data-testname=\"el-image (generic, explicitly empty image>title element)\" class=\"ex-generic\"><title></title></image>", -1 1475 "role": "generic", -1 1476 "selector": ".ex-generic" -1 1477 } -1 1478 ];