aria-api

access ARIA information from JavaScript
git clone https://git.ce9e.org/aria-api.git

commit
f2f4e53766f6c257ea5c5d576cb4ce3b063904e7
parent
90aff05a50a6221c35af0612b6c007e59821c4a5
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2024-11-01 12:20
update wpt

Diffstat

M test/wpt.js 69 +++++++++++++++----------------------------------------------

1 files changed, 17 insertions, 52 deletions


diff --git a/test/wpt.js b/test/wpt.js

@@ -1116,7 +1116,7 @@ window.wpt["accname"] = [
 1116  1116 	{
 1117  1117 		"filename": "comp_tooltip.html",
 1118  1118 		"title": "Name Comp: Tooltip",
 1119    -1 		"html": "<style type=\"text/css\"></style><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>",
   -1  1119 		"html": "<style type=\"text/css\"></style><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 test disabled: see resolution at https://github.com/web-platform-tests/interop-accessibility/issues/131 -->\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 	{
@@ -1128,13 +1128,13 @@ window.wpt["accname"] = [
 1128  1128 	{
 1129  1129 		"filename": "comp_label.html",
 1130  1130 		"title": "Name Comp: Label",
 1131    -1 		"html": "<style type=\"text/css\"></style><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&nbsp;\" data-expectedlabel=\"label&nbsp;\" data-testname=\"nav with trailing nbsp char aria-label is valid (nbsp is preserved in name)\" class=\"ex\">x</nav>\n<button aria-label=\"&nbsp;label\" data-expectedlabel=\"&nbsp;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>",
   -1  1131 		"html": "<style type=\"text/css\"></style><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<!-- associationlist and related removed pending: https://github.com/w3c/aria/issues/1662 -->\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<!-- listitemkey and listitemvalue pending: https://github.com/w3c/aria/issues/1662 -->\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<dl aria-label=\"label\" data-expectedlabel=\"label\" data-testname=\"label valid on dl element\" class=\"ex\">\n  <!-- dt/dd pending listitemkey and listitemvalue roles: https://github.com/w3c/aria/issues/1662 -->\n  <!-- Currently these map to `term` and `definition` for which name is prohibited. -->\n  <!-- Using aria-label here would be an authoring error, however whether there is a user agent requirement to ignore the author provided role is still pending https://github.com/w3c/accname/issues/240 -->\n  <!-- See \"Priorities of Constituencies\" https://www.w3.org/TR/design-principles/#priority-of-constituencies -->\n  <dt>x</dt>\n  <dd>x</dd>\n</dl>\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<!-- 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&nbsp;\" data-expectedlabel=\"label&nbsp;\" data-testname=\"nav with trailing nbsp char aria-label is valid (nbsp is preserved in name)\" class=\"ex\">x</nav>\n<button aria-label=\"&nbsp;label\" data-expectedlabel=\"&nbsp;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": "<style type=\"text/css\">\n\n     /*\n\n      Since the AccName spec is in flux about whitespace joiners, and the implementations don't match,\n      normalize the whitespace (with extra leading/trailing) space.\n\n      No point in having the same in-flux spec change cause failures the remaining unrelated tests.\n\n      See more here:\n      https://github.com/w3c/accname/issues/205\n      https://github.com/w3c/accname/projects/1#card-42288231\n\n    */\n\n    .simple-before::before {\n      content: \" before \"; /* [sic] leading and trailing space */\n      margin:0 0.1em;\n    }\n    .simple-after::after {\n      content: \" after \"; /* [sic] leading and trailing space */\n      margin:0 0.1em;\n    }\n    .no-space::before, .no-space::after {\n      content: \"nospace\"; /* [sic] Unlike the others, NO extra leading/trailing space here. */\n    }\n    .simple-before:dir(rtl)::before {\n      content: \" \u0645\u0646 \u0642\u0628\u0644 \"; /* [sic] leading and trailing space */\n    }\n    .simple-after:dir(rtl)::after {\n      content: \" \u0628\u0639\u062f \"; /* [sic] leading and trailing space */\n    }\n    .fallback-before::before {\n      content: \" before \"; /* [sic] leading and trailing space */\n      content: \" before \" / \" alt-before \"; /* Override the previous line for engines that support the Alternative Text syntax. */\n    }\n    .fallback-after::after {\n      content: \" after \"; /* [sic] leading and trailing space */\n      content: \" after \" / \" alt-after \"; /* Override the previous line for engines that support the Alternative Text syntax. */\n    }\n    .fallback-before-empty::before {\n      content: \"before\"  / \"\";\n    }\n    .fallback-before-image-empty::before {\n      content: \"before \" url(/images/blue.png) / \"\";\n    }\n    .fallback-before-mixed::before {\n      content: \" before \"; /* [sic] leading and trailing space */\n      content: \" before \" / \" start \" attr(data-alt-text-before) \" end \"; /* Override the previous line for engines that support the Alternative Text syntax. */\n    }\n    .fallback-after-mixed::after {\n      content: \" after \"; /* [sic] leading and trailing space */\n      content: \" after \" / \" start \" attr(data-alt-text-after) \" end \"; /* Override the previous line for engines that support the Alternative Text syntax. */\n    }\n    .block > span {\n      display: block;\n      margin: 0 0.1em;\n    }\n    .iblock > span {\n      display: inline-block;\n      margin: 0 0.1em;\n    }\n\n  </style><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  1137 		"html": "<style type=\"text/css\">\n\n     /*\n\n      Since the AccName spec is in flux about whitespace joiners, and the implementations don't match,\n      normalize the whitespace (with extra leading/trailing) space.\n\n      No point in having the same in-flux spec change cause failures the remaining unrelated tests.\n\n      See more here:\n      https://github.com/w3c/accname/issues/205\n      https://github.com/w3c/accname/projects/1#card-42288231\n\n    */\n\n    .simple-before::before {\n      content: \" before \"; /* [sic] leading and trailing space */\n      margin:0 0.1em;\n    }\n    .simple-after::after {\n      content: \" after \"; /* [sic] leading and trailing space */\n      margin:0 0.1em;\n    }\n    .no-space::before, .no-space::after {\n      content: \"nospace\"; /* [sic] Unlike the others, NO extra leading/trailing space here. */\n    }\n    .simple-before:dir(rtl)::before {\n      content: \" \u0645\u0646 \u0642\u0628\u0644 \"; /* [sic] leading and trailing space */\n    }\n    .simple-after:dir(rtl)::after {\n      content: \" \u0628\u0639\u062f \"; /* [sic] leading and trailing space */\n    }\n    .fallback-before::before {\n      content: \" before \"; /* [sic] leading and trailing space */\n      content: \" before \" / \" alt-before \"; /* Override the previous line for engines that support the Alternative Text syntax. */\n    }\n    .fallback-after::after {\n      content: \" after \"; /* [sic] leading and trailing space */\n      content: \" after \" / \" alt-after \"; /* Override the previous line for engines that support the Alternative Text syntax. */\n    }\n    .fallback-before-empty::before {\n      content: \"before\"  / \"\";\n    }\n    .fallback-before-image-empty::before {\n      content: \"before \" url(/images/blue.png) / \"\";\n    }\n    .fallback-before-mixed::before {\n      content: \" before \"; /* [sic] leading and trailing space */\n      content: \" before \" / \" start \" attr(data-alt-text-before) \" end \"; /* Override the previous line for engines that support the Alternative Text syntax. */\n    }\n    .fallback-after-mixed::after {\n      content: \" after \"; /* [sic] leading and trailing space */\n      content: \" after \" / \" start \" attr(data-alt-text-after) \" end \"; /* Override the previous line for engines that support the Alternative Text syntax. */\n    }\n    .block > span {\n      display: block;\n      margin: 0 0.1em;\n    }\n    .iblock > span {\n      display: inline-block;\n      margin: 0 0.1em;\n    }\n\n  </style><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>\n\n<h1 data-expectedlabel=\"Call us\" data-testname=\"heading name from content with text-transform:none\" class=\"ex\" style=\"text-transform:none;\">Call us</h1>\n<h1 data-expectedlabel=\"CALL US\" data-testname=\"heading name from content with text-transform:uppercase\" class=\"ex\" style=\"text-transform:uppercase;\">Call us</h1>\n<h1 data-expectedlabel=\"Call Us\" data-testname=\"heading name from content with text-transform:capitalize\" class=\"ex\" style=\"text-transform:capitalize;\">Call us</h1>\n<h1 data-expectedlabel=\"call us\" data-testname=\"heading name from content with text-transform:lowercase\" class=\"ex\" style=\"text-transform:lowercase;\">Call us</h1>",
 1138  1138 		"selector": ".ex"
 1139  1139 	},
 1140  1140 	{
@@ -1164,7 +1164,7 @@ window.wpt["accname"] = [
 1164  1164 	{
 1165  1165 		"filename": "comp_host_language_label.html",
 1166  1166 		"title": "Name Comp: Host Language Label",
 1167    -1 		"html": "<style type=\"text/css\"></style><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? -->",
   -1  1167 		"html": "<style type=\"text/css\"></style><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=\"cbv\">checkbox label with non-empty value</label><input id=\"cbv\" type=\"checkbox\" data-expectedlabel=\"checkbox label with non-empty value\" data-testname=\"html: label[for] input[type=checkbox][value='test']\" class=\"ex\" value=\"test\"><br>\n<label for=\"cbc\">checkbox label checked</label><input id=\"cbc\" type=\"checkbox\" data-expectedlabel=\"checkbox label checked\" data-testname=\"html: label[for] input[type=checkbox][checked]\" class=\"ex\" checked><br>\n<label for=\"cbcv\">checkbox label checked with non-empty value</label><input id=\"cbcv\" type=\"checkbox\" data-expectedlabel=\"checkbox label checked with non-empty value\" data-testname=\"html: label[for] input[type=checkbox][checked][value='test']\" class=\"ex\" value=\"test\" checked><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=\"cov\">color label with non-empty value</label><input id=\"cov\" type=\"color\" data-expectedlabel=\"color label with non-empty value\" data-testname=\"html: label[for] input[type=color][value='#999999']\" class=\"ex\" value=\"#999999\"><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=\"dav\">date label with non-empty value</label><input id=\"dav\" type=\"date\" data-expectedlabel=\"date label with non-empty value\" data-testname=\"html: label[for] input[type=date][value='2025-01-01']\" class=\"ex\" value=\"2025-01-01\"><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=\"dtlv\">datetime-local label with non-empty value</label><input id=\"dtlv\" type=\"date\" data-expectedlabel=\"datetime-local label with non-empty value\" data-testname=\"html: label[for] input[type=datetime-local][value='2025-01-01T00:01']\" class=\"ex\" value=\"2025-01-01T00:01\"><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<label for=\"emv\">email label with non-empty value</label><input id=\"emv\" type=\"email\" data-expectedlabel=\"email label with non-empty value\" data-testname=\"html: label[for] input[type=email][value='test@test.com']\" class=\"ex\" value=\"test@test.com\"><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=\"mov\">month label with non-empty value</label><input id=\"mov\" type=\"month\" data-expectedlabel=\"month label with non-empty value\" data-testname=\"html: label[for] input[type=month][value='2025-01']\" class=\"ex\" value=\"2025-01\"><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=\"nv\">number label with non-empty value</label><input id=\"nv\" type=\"number\" data-expectedlabel=\"number label with non-empty value\" data-testname=\"html: label[for] input[type=number][value=2025]\" class=\"ex\" value=\"2025\"><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=\"pwv\">password label with non-empty value</label><input id=\"pwv\" type=\"password\" data-expectedlabel=\"password label with non-empty value\" data-testname=\"html: label[for] input[type=password][value='test']\" class=\"ex\" value=\"test\"><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=\"rav\">radio label with non-empty value</label><input id=\"rav\" type=\"radio\" data-expectedlabel=\"radio label with non-empty value\" data-testname=\"html: label[for] input[type=radio][value='test']\" class=\"ex\" value=\"test\"><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<label for=\"rngv\">range label with non-empty value</label><input id=\"rngv\" type=\"range\" data-expectedlabel=\"range label with non-empty value\" data-testname=\"html: label[for] input[type=range][min=0][max=10][value=5]\" class=\"ex\" min=\"0\" max=\"10\" value=\"5\"><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<label for=\"searchv\">search label with non-empty value</label><input id=\"searchv\" type=\"search\" data-expectedlabel=\"search label with non-empty value\" data-testname=\"html: label[for] input[type=search][value='test']\" class=\"ex\" value=\"test\"><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=\"telv\">tel label with non-empty value</label><input id=\"telv\" type=\"tel\" data-expectedlabel=\"tel label with non-empty value\" data-testname=\"html: label[for] input[type=tel][value='123-45-678']\" class=\"ex\" value=\"123-45-678\"><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=\"tv\">textfield label with non-empty value</label><input id=\"tv\" type=\"text\" data-expectedlabel=\"textfield label with non-empty value\" data-testname=\"html: label[for] input[type=text][value='test']\" class=\"ex\" value=\"test\"><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=\"timev\">time label with non-empty value</label><input id=\"timev\" type=\"time\" data-expectedlabel=\"time label with non-empty value\" data-testname=\"html: label[for] input[type=time][value='00:01']\" class=\"ex\" value=\"00:01\"><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=\"urlv\">url label with non-empty value</label><input id=\"urlv\" type=\"url\" data-expectedlabel=\"url label with non-empty value\" data-testname=\"html: label[for] input[type=url][value='https://www.w3.org']\" class=\"ex\" value=\"https://www.w3.org\"><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<label for=\"weekv\">week label with non-empty value</label><input id=\"weekv\" type=\"week\" data-expectedlabel=\"week label with non-empty value\" data-testname=\"html: label[for] input[type=week][value='2025-W01']\" class=\"ex\" value=\"2025-W01\"><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=\"checkbox\" data-expectedlabel=\"checkbox label with non-empty value\" data-testname=\"html: label input[type=checkbox][value='test'] encapsulation\" class=\"ex\" value=\"test\">checkbox label with non-empty value</label><br>\n<label><input type=\"checkbox\" data-expectedlabel=\"checkbox label checked\" data-testname=\"html: label input[type=checkbox][checked] encapsulation\" class=\"ex\" checked>checkbox label checked</label><br>\n<label><input type=\"checkbox\" data-expectedlabel=\"checkbox label checked with non-empty value\" data-testname=\"html: label input[type=checkbox][value='test'][checked] encapsulation\" class=\"ex\" value=\"test\" checked>checkbox label checked with non-empty value</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=\"color\" data-expectedlabel=\"color label with non-empty value\" data-testname=\"html: label input[type=color][value='#999999'] encapsulation\" class=\"ex\" value=\"#999999\">color label with non-empty value</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=\"date\" data-expectedlabel=\"date label with non-empty value\" data-testname=\"html: label input[type=date][value='2025-01-01'] encapsulation\" class=\"ex\" value=\"2025-01-01\">date label with non-empty value</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=\"datetime-local\" data-expectedlabel=\"datetime-local label with non-empty value\" data-testname=\"html: label input[type=datetime-local][value='2025-01-01T00:01'] encapsulation\" class=\"ex\" value=\"2025-01-01T00:01\">datetime-local label with non-empty value</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<label><input type=\"email\" data-expectedlabel=\"email label with non-empty value\" data-testname=\"html: label input[type=email][value='test@test.com'] encapsulation\" class=\"ex\" value=\"test@test.com\">email label with non-empty value</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=\"month\" data-expectedlabel=\"month label with non-empty value\" data-testname=\"html: label input[type=month][value='2025-01'] encapsulation\" class=\"ex\" value=\"2025-01\">month label with non-empty value</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=\"number\" data-expectedlabel=\"number label with non-empty value\" data-testname=\"html: label input[type=number][value=1] encapsulation\" class=\"ex\" value=\"1\">number label with non-empty value</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=\"password\" data-expectedlabel=\"password label with non-empty value\" data-testname=\"html: label input[type=password][value='test'] encapsulation\" class=\"ex\" value=\"test\">password label with non-empty value</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=\"radio\" data-expectedlabel=\"radio label with non-empty value\" data-testname=\"html: label input[type=radio][value='test'] encapsulation\" class=\"ex\" value=\"test\">radio label with non-empty value</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<label><input type=\"range\" data-expectedlabel=\"range label with non-empty value\" data-testname=\"html: label input[type=range][value='5'][min='0'][max='10'] encapsulation\" class=\"ex\" min=\"0\" max=\"10\" value=\"5\">range label with non-empty value</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<label><input type=\"search\" data-expectedlabel=\"search label with non-empty value\" data-testname=\"html: label input[type=search][value='test'] encapsulation\" class=\"ex\" value=\"test\">search label with non-empty value</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=\"tel\" data-expectedlabel=\"tel label with non-empty value\" data-testname=\"html: label input[type=tel][value='123-45-678'] encapsulation\" class=\"ex\" value=\"123-45-678\">tel label with non-empty value</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=\"text\" data-expectedlabel=\"textfield label with non-empty value\" data-testname=\"html: label[for] input[type=text][value='test'] encapsulation\" class=\"ex\" value=\"test\">textfield label with non-empty value</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=\"time\" data-expectedlabel=\"time label with non-empty value\" data-testname=\"html: label input[type=time][value='00:01'] encapsulation\" class=\"ex\" value=\"00:01\">time label with non-empty value</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=\"url\" data-expectedlabel=\"url label with non-empty value\" data-testname=\"html: label input[type=url][value='https://www.w3.org'] encapsulation\" class=\"ex\" value=\"https://www.w3.org\">url label with non-empty value</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<label><input type=\"week\" data-expectedlabel=\"week label with non-empty value\" data-testname=\"html: label input[type=week][value='2025-W01'] encapsulation\" class=\"ex\" value=\"2025-W01\">week label with non-empty value</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? -->",
 1168  1168 		"selector": ".ex"
 1169  1169 	}
 1170  1170 ];
@@ -1185,17 +1185,10 @@ window.wpt["wai-aria"] = [
 1185  1185 	{
 1186  1186 		"filename": "list-roles.html",
 1187  1187 		"title": "List-related Role Verification Tests",
 1188    -1 		"html": "<style type=\"text/css\"></style><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  1188 		"html": "<style type=\"text/css\"></style><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>",
 1189  1189 		"selector": ".ex"
 1190  1190 	},
 1191  1191 	{
 1192    -1 		"filename": "list-roles.html",
 1193    -1 		"title": "List-related Role Verification Tests",
 1194    -1 		"html": "<style type=\"text/css\"></style><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>",
 1195    -1 		"role": "generic",
 1196    -1 		"selector": ".ex-generic"
 1197    -1 	},
 1198    -1 	{
 1199  1192 		"filename": "synonym-roles.html",
 1200  1193 		"title": "Region Role Verification Tests",
 1201  1194 		"html": "<style type=\"text/css\"></style><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>",
@@ -1211,20 +1204,13 @@ window.wpt["wai-aria"] = [
 1211  1204 	{
 1212  1205 		"filename": "tab-roles.html",
 1213  1206 		"title": "Tab-related Role Verification Tests",
 1214    -1 		"html": "<style type=\"text/css\"></style><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  1207 		"html": "<style type=\"text/css\"></style><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>",
 1215  1208 		"selector": ".ex"
 1216  1209 	},
 1217  1210 	{
 1218    -1 		"filename": "tab-roles.html",
 1219    -1 		"title": "Tab-related Role Verification Tests",
 1220    -1 		"html": "<style type=\"text/css\"></style><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>",
 1221    -1 		"role": "generic",
 1222    -1 		"selector": ".ex-generic"
 1223    -1 	},
 1224    -1 	{
 1225  1211 		"filename": "table-roles.html",
 1226  1212 		"title": "Table Role Verification Tests",
 1227    -1 		"html": "<style type=\"text/css\"></style><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>",
   -1  1213 		"html": "<style type=\"text/css\"></style><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    <!-- 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    <!-- 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    <!-- 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    <!-- 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>",
 1228  1214 		"selector": ".ex"
 1229  1215 	},
 1230  1216 	{
@@ -1242,7 +1228,7 @@ window.wpt["wai-aria"] = [
 1242  1228 	{
 1243  1229 		"filename": "tree-roles.html",
 1244  1230 		"title": "Tree related Role Verification Tests",
 1245    -1 		"html": "<style type=\"text/css\"></style><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  1231 		"html": "<style type=\"text/css\"></style><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>",
 1246  1232 		"selector": ".ex"
 1247  1233 	},
 1248  1234 	{
@@ -1261,49 +1247,28 @@ window.wpt["wai-aria"] = [
 1261  1247 	{
 1262  1248 		"filename": "contextual-roles.html",
 1263  1249 		"title": "Contextual Role Verification Tests",
 1264    -1 		"html": "<style type=\"text/css\"></style><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  1250 		"html": "<style type=\"text/css\"></style><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>footer -> ./roles-contextual.tentative.html -->\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>",
 1265  1251 		"selector": ".ex"
 1266  1252 	},
 1267  1253 	{
 1268    -1 		"filename": "contextual-roles.html",
 1269    -1 		"title": "Contextual Role Verification Tests",
 1270    -1 		"html": "<style type=\"text/css\"></style><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>",
 1271    -1 		"role": "generic",
 1272    -1 		"selector": ".ex-generic"
 1273    -1 	},
 1274    -1 	{
 1275  1254 		"filename": "listbox-roles.html",
 1276  1255 		"title": "Listbox-related Role Verification Tests",
 1277    -1 		"html": "<style type=\"text/css\"></style><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>",
   -1  1256 		"html": "<style type=\"text/css\"></style><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>",
 1278  1257 		"selector": ".ex"
 1279  1258 	},
 1280  1259 	{
 1281  1260 		"filename": "grid-roles.html",
 1282  1261 		"title": "Grid Role Verification Tests",
 1283    -1 		"html": "<style type=\"text/css\"></style><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  1262 		"html": "<style type=\"text/css\"></style><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>",
 1284  1263 		"selector": ".ex"
 1285  1264 	},
 1286  1265 	{
 1287    -1 		"filename": "grid-roles.html",
 1288    -1 		"title": "Grid Role Verification Tests",
 1289    -1 		"html": "<style type=\"text/css\"></style><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>",
 1290    -1 		"role": "generic",
 1291    -1 		"selector": ".ex-generic"
 1292    -1 	},
 1293    -1 	{
 1294  1266 		"filename": "menu-roles.html",
 1295  1267 		"title": "Menu-related Role Verification Tests",
 1296    -1 		"html": "<style type=\"text/css\"></style><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  1268 		"html": "<style type=\"text/css\"></style><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>",
 1297  1269 		"selector": ".ex"
 1298  1270 	},
 1299  1271 	{
 1300    -1 		"filename": "menu-roles.html",
 1301    -1 		"title": "Menu-related Role Verification Tests",
 1302    -1 		"html": "<style type=\"text/css\"></style><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>",
 1303    -1 		"role": "generic",
 1304    -1 		"selector": ".ex-generic"
 1305    -1 	},
 1306    -1 	{
 1307  1272 		"filename": "role_none_conflict_resolution.html",
 1308  1273 		"title": "Role None Conflict Resolution Verification Tests",
 1309  1274 		"html": "<style type=\"text/css\"></style><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>",
@@ -1374,20 +1339,20 @@ window.wpt["html-aam"] = [
 1374  1339 	{
 1375  1340 		"filename": "roles.html",
 1376  1341 		"title": "HTML-AAM Role Verification Tests",
 1377    -1 		"html": "<style type=\"text/css\"></style><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>&lt;!-- caption -&gt; ./table-roles.html --&gt;</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  1342 		"html": "<style type=\"text/css\"></style><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>&lt;!-- caption -&gt; ./table-roles.html --&gt;</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  <!-- dt/dd pending listitemkey and listitemvalue roles: https://github.com/w3c/aria/issues/1662 -->\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<!-- dir -> ./dir-role.tentative.html -->\n<!-- div -> ./roles-generic.html -->\n<!-- todo: dl -->\n\n<!-- el-dt -->\n<dl>\n  <!-- dt/dd pending listitemkey and listitemvalue roles: https://github.com/w3c/aria/issues/1662 -->\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) -->",
 1378  1343 		"selector": ".ex"
 1379  1344 	},
 1380  1345 	{
 1381  1346 		"filename": "roles.html",
 1382  1347 		"title": "HTML-AAM Role Verification Tests",
 1383    -1 		"html": "<style type=\"text/css\"></style><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>&lt;!-- caption -&gt; ./table-roles.html --&gt;</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  1348 		"html": "<style type=\"text/css\"></style><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>&lt;!-- caption -&gt; ./table-roles.html --&gt;</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  <!-- dt/dd pending listitemkey and listitemvalue roles: https://github.com/w3c/aria/issues/1662 -->\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<!-- dir -> ./dir-role.tentative.html -->\n<!-- div -> ./roles-generic.html -->\n<!-- todo: dl -->\n\n<!-- el-dt -->\n<dl>\n  <!-- dt/dd pending listitemkey and listitemvalue roles: https://github.com/w3c/aria/issues/1662 -->\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) -->",
 1384  1349 		"role": "generic",
 1385  1350 		"selector": ".ex-generic"
 1386  1351 	},
 1387  1352 	{
 1388  1353 		"filename": "roles-generic.html",
 1389  1354 		"title": "HTML-AAM Generic Role Verification Tests",
 1390    -1 		"html": "<style type=\"text/css\"></style><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>",
   -1  1355 		"html": "<style type=\"text/css\"></style><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<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>",
 1391  1356 		"role": "generic",
 1392  1357 		"selector": ".ex-generic"
 1393  1358 	},
@@ -1406,13 +1371,13 @@ window.wpt["html-aam"] = [
 1406  1371 	{
 1407  1372 		"filename": "roles-contextual.html",
 1408  1373 		"title": "HTML-AAM Contextual-Specific Role Verification Tests",
 1409    -1 		"html": "<style type=\"text/css\"></style><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>",
   -1  1374 		"html": "<style type=\"text/css\"></style><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>footer -> ./roles-contextual.tentative.html -->\n<footer data-testname=\"el-footer-ancestorbody\" data-expectedrole=\"contentinfo\" class=\"ex\">x</footer>\n<!-- main>footer -> ./roles-contextual.tentative.html -->\n\n<!-- el-header -->\n<!-- nav>header -> ./roles-contextual.tentative.html -->\n<header data-testname=\"el-header-ancestorbody\" data-expectedrole=\"banner\" class=\"ex\">x</header>\n<!-- main>header -> ./roles-contextual.tentative.html -->\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>",
 1410  1375 		"selector": ".ex"
 1411  1376 	},
 1412  1377 	{
 1413  1378 		"filename": "roles-contextual.html",
 1414  1379 		"title": "HTML-AAM Contextual-Specific Role Verification Tests",
 1415    -1 		"html": "<style type=\"text/css\"></style><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>",
   -1  1380 		"html": "<style type=\"text/css\"></style><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>footer -> ./roles-contextual.tentative.html -->\n<footer data-testname=\"el-footer-ancestorbody\" data-expectedrole=\"contentinfo\" class=\"ex\">x</footer>\n<!-- main>footer -> ./roles-contextual.tentative.html -->\n\n<!-- el-header -->\n<!-- nav>header -> ./roles-contextual.tentative.html -->\n<header data-testname=\"el-header-ancestorbody\" data-expectedrole=\"banner\" class=\"ex\">x</header>\n<!-- main>header -> ./roles-contextual.tentative.html -->\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>",
 1416  1381 		"role": "generic",
 1417  1382 		"selector": ".ex-generic"
 1418  1383 	},