aria-api

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

commit
87d93f68cf5f7e7e6bcc4282218afd7971d50b1e
parent
20c92440d2841208449904cc7407465873700fd3
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2024-06-21 16:37
wpt: include CSS in tests

Diffstat

M test/wpt.js 96 ++++++++++++++++++++++++++++++------------------------------
M wpt.py 10 ++++++++--

2 files changed, 56 insertions, 50 deletions


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

@@ -1116,55 +1116,55 @@ window.wpt["accname"] = [
 1116  1116 	{
 1117  1117 		"filename": "comp_tooltip.html",
 1118  1118 		"title": "Name Comp: Tooltip",
 1119    -1 		"html": "<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_tooltip\">#comp_tooltip</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<a href=\"#\" title=\"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 title=\"Control + Option\" data-expectedlabel=\"Control + Option\" data-testname=\"kbd with tooltip label\" class=\"ex\">CTRL + OPT</kbd>\n\n<!-- TODO: Move these: https://github.com/web-platform-tests/interop-accessibility/issues/78 -->\n<!-- https://w3c.github.io/html-aam/#summary-element-accessible-name-computation -->\n<details>\n  <summary title=\"title\" data-expectedlabel=\"contents\" data-testname=\"summary with tooltip label and contents\" class=\"ex\">contents</summary>\n  details\n</details>\n\n<!-- TODO: Move these: https://github.com/web-platform-tests/interop-accessibility/issues/78 -->\n<!-- https://w3c.github.io/html-aam/#iframe-element-accessible-name-computation -->\n<iframe title=\"title\" data-expectedlabel=\"title\" data-testname=\"iframe with tooltip label\" width=\"20px\" height=\"20px\" class=\"ex\"></iframe>",
 1120  1120 		"selector": ".ex"
 1121  1121 	},
 1122  1122 	{
 1123  1123 		"filename": "comp_hidden_not_referenced.html",
 1124  1124 		"title": "Name Comp: Hidden Not Referenced",
 1125    -1 		"html": "<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_hidden_not_referenced\">#comp_hidden_not_referenced</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<button\n  class=\"ex\"\n  data-expectedlabel=\"visible to all users\"\n  data-testname=\"button containing a rendered, unreferenced element that is aria-hidden=true, an unreferenced element with the hidden host language attribute, and an unreferenced element that is unconditionally rendered\"\n>\n  <span aria-hidden=\"true\">hidden,</span>\n  <span hidden>hidden from all users,</span>\n  <span>visible to all users</span>\n</button>\n\n<button\n  class=\"ex\"\n  data-expectedlabel=\"hidden but referenced,\"\n  data-testname=\"button labelled by element that is aria-hidden=true\"\n  aria-labelledby=\"button-label-2\"\n>\n  <span aria-hidden=\"true\" id=\"button-label-2\">hidden but referenced,</span>\n  <span hidden>hidden from all users,</span>\n  <span>visible to all users</span>\n</button>\n\n<button\n  class=\"ex\"\n  data-expectedlabel=\"hidden from all users but referenced,\"\n  data-testname=\"button labelled by element with the hidden host language attribute\"\n  aria-labelledby=\"button-label-3\"\n>\n  <span aria-hidden=\"true\">hidden,</span>\n  <span hidden id=\"button-label-3\">hidden from all users but referenced,</span>\n  <span>visible to all users</span>\n</button>\n\n<a\n  class=\"ex\"\n  data-testname=\"link labelled by elements with assorted visibility and a11y tree exposure\"\n  data-expectedlabel=\"visible to all users, hidden but referenced, hidden from all users but referenced\"\n  href=\"#\"\n  aria-labelledby=\"link-label-1a link-label-1b link-label-1c\"\n>\n  <span id=\"link-label-1a\">\n    <span>visible to all users,</span>\n    <span aria-hidden=\"true\">hidden,</span>\n  </span>\n  <span aria-hidden=\"true\" id=\"link-label-1b\">hidden but referenced,</span>\n  <span hidden id=\"link-label-1c\">hidden from all users but referenced</span>\n</a>\n\n<h2\n  class=\"ex\"\n  data-testname=\"heading with name from content, containing element that is visibility:hidden with nested content that is visibility:visible\"\n  data-expectedlabel=\"visible to all users, un-hidden for all users\"\n>\n  visible to all users,\n  <span style=\"visibility: hidden;\">\n    hidden from all users,\n    <span style=\"visibility: visible;\">un-hidden for all users</span>\n  </span>\n</h2>\n\n<!-- TODO: Test cases once https://github.com/w3c/aria/issues/1256 resolved: -->\n<!--       - button labelled by an element that is aria-hidden=true which contains a nested child that is aria-hidden=false -->\n<!--       - button labelled by an element that is aria-hidden=false which belongs to a parent that is aria-hidden=true -->\n<!--       - heading with name from content, containing rendered content that is aria-hidden=true with nested, rendered content that is aria-hidden=false -->\n<!--       - heading with name from content, containing element with the hidden host language attribute with nested content that is aria-hidden=false -->\n\n<!-- TODO: New test case?\n<!--       What is the expectation for a details element when it\u2019s given an -->\n<!--       explicit role that allows name from contents (e.g., `comment`) -->\n<!--       but is also not in the open state, and therefore has contents -->\n<!--       that are both not rendered and excluded from the a11y tree. -->",
   -1  1125 		"html": "<style type=\"text/css\"></style><p>Tests the <a href=\"https://w3c.github.io/accname/#comp_hidden_not_referenced\">#comp_hidden_not_referenced</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<button\n  class=\"ex\"\n  data-expectedlabel=\"visible to all users\"\n  data-testname=\"button containing a rendered, unreferenced element that is aria-hidden=true, an unreferenced element with the hidden host language attribute, and an unreferenced element that is unconditionally rendered\"\n>\n  <span aria-hidden=\"true\">hidden,</span>\n  <span hidden>hidden from all users,</span>\n  <span>visible to all users</span>\n</button>\n\n<button\n  class=\"ex\"\n  data-expectedlabel=\"hidden but referenced,\"\n  data-testname=\"button labelled by element that is aria-hidden=true\"\n  aria-labelledby=\"button-label-2\"\n>\n  <span aria-hidden=\"true\" id=\"button-label-2\">hidden but referenced,</span>\n  <span hidden>hidden from all users,</span>\n  <span>visible to all users</span>\n</button>\n\n<button\n  class=\"ex\"\n  data-expectedlabel=\"hidden from all users but referenced,\"\n  data-testname=\"button labelled by element with the hidden host language attribute\"\n  aria-labelledby=\"button-label-3\"\n>\n  <span aria-hidden=\"true\">hidden,</span>\n  <span hidden id=\"button-label-3\">hidden from all users but referenced,</span>\n  <span>visible to all users</span>\n</button>\n\n<a\n  class=\"ex\"\n  data-testname=\"link labelled by elements with assorted visibility and a11y tree exposure\"\n  data-expectedlabel=\"visible to all users, hidden but referenced, hidden from all users but referenced\"\n  href=\"#\"\n  aria-labelledby=\"link-label-1a link-label-1b link-label-1c\"\n>\n  <span id=\"link-label-1a\">\n    <span>visible to all users,</span>\n    <span aria-hidden=\"true\">hidden,</span>\n  </span>\n  <span aria-hidden=\"true\" id=\"link-label-1b\">hidden but referenced,</span>\n  <span hidden id=\"link-label-1c\">hidden from all users but referenced</span>\n</a>\n\n<h2\n  class=\"ex\"\n  data-testname=\"heading with name from content, containing element that is visibility:hidden with nested content that is visibility:visible\"\n  data-expectedlabel=\"visible to all users, un-hidden for all users\"\n>\n  visible to all users,\n  <span style=\"visibility: hidden;\">\n    hidden from all users,\n    <span style=\"visibility: visible;\">un-hidden for all users</span>\n  </span>\n</h2>\n\n<!-- TODO: Test cases once https://github.com/w3c/aria/issues/1256 resolved: -->\n<!--       - button labelled by an element that is aria-hidden=true which contains a nested child that is aria-hidden=false -->\n<!--       - button labelled by an element that is aria-hidden=false which belongs to a parent that is aria-hidden=true -->\n<!--       - heading with name from content, containing rendered content that is aria-hidden=true with nested, rendered content that is aria-hidden=false -->\n<!--       - heading with name from content, containing element with the hidden host language attribute with nested content that is aria-hidden=false -->\n\n<!-- TODO: New test case?\n<!--       What is the expectation for a details element when it\u2019s given an -->\n<!--       explicit role that allows name from contents (e.g., `comment`) -->\n<!--       but is also not in the open state, and therefore has contents -->\n<!--       that are both not rendered and excluded from the a11y tree. -->",
 1126  1126 		"selector": ".ex"
 1127  1127 	},
 1128  1128 	{
 1129  1129 		"filename": "comp_label.html",
 1130  1130 		"title": "Name Comp: Label",
 1131    -1 		"html": "<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<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>",
 1132  1132 		"selector": ".ex"
 1133  1133 	},
 1134  1134 	{
 1135  1135 		"filename": "comp_name_from_content.html",
 1136  1136 		"title": "Name Comp: Name From Content",
 1137    -1 		"html": "<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_name_from_content\">#comp_name_from_content</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<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>",
 1138  1138 		"selector": ".ex"
 1139  1139 	},
 1140  1140 	{
 1141  1141 		"filename": "comp_labelledby_hidden_nodes.html",
 1142  1142 		"title": "Name Comp: Labelledby & Hidden Nodes",
 1143    -1 		"html": "<p>Tests hidden node name computation as part of the <a href=\"https://w3c.github.io/accname/#comp_labelledby\">#comp_labelledby</a> portion of the AccName <em>Name Computation</em> algorithm.</p>\n\n<!--\n\n  These tests verify browser conformance with the following note as part of accName computation Step 2B:\n\n  \"The result of LabelledBy Recursion in combination with Hidden Not Referenced means\n  that user agents MUST include all nodes in the subtree as part of\n  the accessible name or accessible description, when the node referenced\n  by aria-labelledby or aria-describedby is hidden.\"\n\n-->\n\n<h2>Testing with <code>display:none</code></h2>\n\n    <button aria-labelledby=\"a11\" data-expectedlabel=\"foo bar\" data-testname=\"button with aria-labelledby using display:none hidden span (with nested span)\" class=\"ex\">x</button>\n    <span id=\"a11\" style=\"display: none;\">\n        foo\n        <span id=\"a12\">bar</span>\n    </span>\n\n    <button aria-labelledby=\"a21\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using display:none hidden span (with nested spans, depth 2)\" class=\"ex\">x</button>\n    <span id=\"a21\" style=\"display: none;\">\n        foo\n        <span id=\"a22\">\n            bar\n            <span id=\"a23\">baz</span>\n        </span>\n    </span>\n\n    <button aria-labelledby=\"a31\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without display:none (with nested display:none spans, depth 2)\" class=\"ex\">x</button>\n    <span id=\"a31\">\n        foo\n        <span id=\"a32\" style=\"display: none;\">\n            bar\n            <span id=\"a33\">baz</span>\n        </span>\n    </span>\n\n    <button aria-labelledby=\"a41\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using display:none hidden span (with nested sibling spans)\" class=\"ex\">x</button>\n    <span id=\"a41\" style=\"display: none;\">\n        foo\n        <span id=\"a42\">bar</span>\n        <span id=\"a43\">baz</span>\n    </span>\n\n    <button aria-labelledby=\"a51\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without display:none (with nested display:none sibling spans)\" class=\"ex\">x</button>\n    <span id=\"a51\">\n        foo\n        <span id=\"a52\" style=\"display: none;\">bar</span>\n        <span id=\"a53\" style=\"display: none;\">baz</span>\n    </span>\n\n    <button aria-labelledby=\"a61\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using span with display:none (with nested display:inline sibling spans)\" class=\"ex\">x</button>\n    <span id=\"a61\" style=\"display: none;\">\n        foo\n        <span id=\"a62\" style=\"display: inline;\">bar</span>\n        <span id=\"a63\" style=\"display: inline;\">baz</span>\n    </span>\n\n<h2>Testing with <code>visibility:hidden</code></h2>\n\n    <button aria-labelledby=\"b11\" data-expectedlabel=\"foo bar\" data-testname=\"button with aria-labelledby using visibility:hidden span (with nested span)\" class=\"ex\">x</button>\n    <span id=\"b11\" style=\"visibility: hidden;\">\n        foo\n        <span id=\"b12\">bar</span>\n    </span>\n\n    <button aria-labelledby=\"b21\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using visibility:hidden span (with nested spans, depth 2)\" class=\"ex\">x</button>\n    <span id=\"b21\" style=\"visibility: hidden;\">\n        foo\n        <span id=\"b22\">\n            bar\n            <span id=\"b23\">baz</span>\n        </span>\n    </span>\n\n    <button aria-labelledby=\"b31\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without visibility:hidden (with nested visibility:hidden spans, depth 2)\" class=\"ex\">x</button>\n    <span id=\"b31\">\n        foo\n        <span id=\"b32\" style=\"visibility: hidden;\">\n            bar\n            <span id=\"b33\">baz</span>\n        </span>\n    </span>\n\n    <button aria-labelledby=\"b41\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using visibility:hidden hidden span (with nested sibling spans)\" class=\"ex\">x</button>\n    <span id=\"b41\" style=\"visibility: hidden;\">\n        foo\n        <span id=\"b42\">bar</span>\n        <span id=\"b43\">baz</span>\n    </span>\n\n    <button aria-labelledby=\"b51\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without visibility:hidden (with nested visibility:hidden sibling spans)\" class=\"ex\">x</button>\n    <span id=\"b51\">\n        foo\n        <span id=\"b52\" style=\"visibility: hidden;\">bar</span>\n        <span id=\"b53\" style=\"visibility: hidden;\">baz</span>\n    </span>\n\n    <button aria-labelledby=\"b61\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using span with visibility:hidden (with nested visibility:visible sibling spans)\" class=\"ex\">x</button>\n    <span id=\"b61\" style=\"visibility: hidden;\">\n        foo\n        <span id=\"b62\" style=\"visibility: visible;\">bar</span>\n        <span id=\"b63\" style=\"visibility: visible;\">baz</span>\n    </span>\n\n<h2>Testing with <code>visibility:collapse</code></h2>\n\n    <button aria-labelledby=\"c11\" data-expectedlabel=\"foo bar\" data-testname=\"button with aria-labelledby using visibility:collapse span (with nested span)\" class=\"ex\">x</button>\n    <span id=\"c11\" style=\"visibility: collapse;\">\n        foo\n        <span id=\"c12\">bar</span>\n    </span>\n\n    <button aria-labelledby=\"c21\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using visibility:collapse span (with nested spans, depth 2)\" class=\"ex\">x</button>\n    <span id=\"c21\" style=\"visibility: collapse;\">\n        foo\n        <span id=\"c22\">\n            bar\n            <span id=\"c23\">baz</span>\n        </span>\n    </span>\n\n    <button aria-labelledby=\"c31\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using span without visibility:collapse (with nested visibility:visible spans, depth 2)\" class=\"ex\">x</button>\n    <span id=\"c31\">\n        foo\n        <span id=\"c32\" style=\"visibility: visible;\">\n            bar\n            <span id=\"c33\" style=\"visibility: visible;\">baz</span>\n        </span>\n    </span>\n\n    <button aria-labelledby=\"c41\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using visibility:collapse span (with nested sibling spans)\" class=\"ex\">x</button>\n    <span id=\"c41\" style=\"visibility: collapse;\">\n        foo\n        <span id=\"c42\">bar</span>\n        <span id=\"c43\">baz</span>\n    </span>\n\n    <button aria-labelledby=\"c51\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without visibility:collapse (with nested visibility:collapse sibling spans)\" class=\"ex\">x</button>\n    <span id=\"c51\">\n        foo\n        <span id=\"c52\" style=\"visibility: collapse;\">bar</span>\n        <span id=\"c53\" style=\"visibility: collapse;\">baz</span>\n    </span>\n\n    <button aria-labelledby=\"c61\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using span with visibility:collapse (with nested visible sibling spans)\" class=\"ex\">x</button>\n    <span id=\"c61\" style=\"visibility: collapse;\">\n        foo\n        <span id=\"c62\" style=\"visibility: visible;\">bar</span>\n        <span id=\"c63\" style=\"visibility: visible;\">baz</span>\n    </span>\n\n<h2>Testing with <code>aria-hidden</code></h2>\n\n    <button aria-labelledby=\"d11\" data-expectedlabel=\"foo bar\" data-testname=\"button with aria-labelledby using aria-hidden span (with nested span)\" class=\"ex\">x</button>\n    <span id=\"d11\" aria-hidden=\"true\">\n        foo\n        <span id=\"d12\">bar</span>\n    </span>\n\n    <button aria-labelledby=\"d21\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using aria-hidden span (with nested spans, depth 2)\" class=\"ex\">x</button>\n    <span id=\"d21\" aria-hidden=\"true\">\n        foo\n        <span id=\"d22\">\n            bar\n            <span id=\"d23\">baz</span>\n        </span>\n    </span>\n\n    <button aria-labelledby=\"d31\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without aria-hidden (with nested aria-hidden spans, depth 2)\" class=\"ex\">x</button>\n    <span id=\"d31\">\n        foo\n        <span id=\"d32\" aria-hidden=\"true\">\n            bar\n            <span id=\"d33\">baz</span>\n        </span>\n    </span>\n\n    <button aria-labelledby=\"d41\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using aria-hidden hidden span (with nested sibling spans)\" class=\"ex\">x</button>\n    <span id=\"d41\" aria-hidden=\"true\">\n        foo\n        <span id=\"d42\">bar</span>\n        <span id=\"d43\">baz</span>\n    </span>\n\n<h2>Testing with <code>hidden</code> attribute</h2>\n\n    <button aria-labelledby=\"e11\" data-expectedlabel=\"foo bar\" data-testname=\"button with aria-labelledby using HTML5 hidden span (with nested span)\" class=\"ex\">x</button>\n    <span id=\"e11\" hidden>\n        foo\n        <span id=\"e12\">bar</span>\n    </span>\n\n    <button aria-labelledby=\"e21\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using HTML5 hidden span (with nested spans, depth 2)\" class=\"ex\">x</button>\n    <span id=\"e21\" hidden>\n        foo\n        <span id=\"e22\">\n            bar\n            <span id=\"e23\">baz</span>\n        </span>\n    </span>\n\n    <button aria-labelledby=\"e31\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without HTML5 hidden (with nested HTML5 hidden spans, depth 2)\" class=\"ex\">x</button>\n    <span id=\"e31\">\n        foo\n        <span id=\"e32\" hidden>\n            bar\n            <span id=\"e33\">baz</span>\n        </span>\n    </span>\n\n    <button aria-labelledby=\"e41\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using HTML5 hidden span (with nested hidden sibling spans)\" class=\"ex\">x</button>\n    <span id=\"e41\" hidden>\n        foo\n        <span id=\"e42\">bar</span>\n        <span id=\"e43\">baz</span>\n    </span>\n\n    <button aria-labelledby=\"e51\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without HTML5 hidden (with nested hidden sibling spans)\" class=\"ex\">x</button>\n    <span id=\"e51\">\n        foo\n        <span id=\"e52\" hidden>bar</span>\n        <span id=\"e53\" hidden>baz</span>\n    </span>",
   -1  1143 		"html": "<style type=\"text/css\"></style><p>Tests hidden node name computation as part of the <a href=\"https://w3c.github.io/accname/#comp_labelledby\">#comp_labelledby</a> portion of the AccName <em>Name Computation</em> algorithm.</p>\n\n<!--\n\n  These tests verify browser conformance with the following note as part of accName computation Step 2B:\n\n  \"The result of LabelledBy Recursion in combination with Hidden Not Referenced means\n  that user agents MUST include all nodes in the subtree as part of\n  the accessible name or accessible description, when the node referenced\n  by aria-labelledby or aria-describedby is hidden.\"\n\n-->\n\n<h2>Testing with <code>display:none</code></h2>\n\n    <button aria-labelledby=\"a11\" data-expectedlabel=\"foo bar\" data-testname=\"button with aria-labelledby using display:none hidden span (with nested span)\" class=\"ex\">x</button>\n    <span id=\"a11\" style=\"display: none;\">\n        foo\n        <span id=\"a12\">bar</span>\n    </span>\n\n    <button aria-labelledby=\"a21\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using display:none hidden span (with nested spans, depth 2)\" class=\"ex\">x</button>\n    <span id=\"a21\" style=\"display: none;\">\n        foo\n        <span id=\"a22\">\n            bar\n            <span id=\"a23\">baz</span>\n        </span>\n    </span>\n\n    <button aria-labelledby=\"a31\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without display:none (with nested display:none spans, depth 2)\" class=\"ex\">x</button>\n    <span id=\"a31\">\n        foo\n        <span id=\"a32\" style=\"display: none;\">\n            bar\n            <span id=\"a33\">baz</span>\n        </span>\n    </span>\n\n    <button aria-labelledby=\"a41\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using display:none hidden span (with nested sibling spans)\" class=\"ex\">x</button>\n    <span id=\"a41\" style=\"display: none;\">\n        foo\n        <span id=\"a42\">bar</span>\n        <span id=\"a43\">baz</span>\n    </span>\n\n    <button aria-labelledby=\"a51\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without display:none (with nested display:none sibling spans)\" class=\"ex\">x</button>\n    <span id=\"a51\">\n        foo\n        <span id=\"a52\" style=\"display: none;\">bar</span>\n        <span id=\"a53\" style=\"display: none;\">baz</span>\n    </span>\n\n    <button aria-labelledby=\"a61\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using span with display:none (with nested display:inline sibling spans)\" class=\"ex\">x</button>\n    <span id=\"a61\" style=\"display: none;\">\n        foo\n        <span id=\"a62\" style=\"display: inline;\">bar</span>\n        <span id=\"a63\" style=\"display: inline;\">baz</span>\n    </span>\n\n<h2>Testing with <code>visibility:hidden</code></h2>\n\n    <button aria-labelledby=\"b11\" data-expectedlabel=\"foo bar\" data-testname=\"button with aria-labelledby using visibility:hidden span (with nested span)\" class=\"ex\">x</button>\n    <span id=\"b11\" style=\"visibility: hidden;\">\n        foo\n        <span id=\"b12\">bar</span>\n    </span>\n\n    <button aria-labelledby=\"b21\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using visibility:hidden span (with nested spans, depth 2)\" class=\"ex\">x</button>\n    <span id=\"b21\" style=\"visibility: hidden;\">\n        foo\n        <span id=\"b22\">\n            bar\n            <span id=\"b23\">baz</span>\n        </span>\n    </span>\n\n    <button aria-labelledby=\"b31\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without visibility:hidden (with nested visibility:hidden spans, depth 2)\" class=\"ex\">x</button>\n    <span id=\"b31\">\n        foo\n        <span id=\"b32\" style=\"visibility: hidden;\">\n            bar\n            <span id=\"b33\">baz</span>\n        </span>\n    </span>\n\n    <button aria-labelledby=\"b41\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using visibility:hidden hidden span (with nested sibling spans)\" class=\"ex\">x</button>\n    <span id=\"b41\" style=\"visibility: hidden;\">\n        foo\n        <span id=\"b42\">bar</span>\n        <span id=\"b43\">baz</span>\n    </span>\n\n    <button aria-labelledby=\"b51\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without visibility:hidden (with nested visibility:hidden sibling spans)\" class=\"ex\">x</button>\n    <span id=\"b51\">\n        foo\n        <span id=\"b52\" style=\"visibility: hidden;\">bar</span>\n        <span id=\"b53\" style=\"visibility: hidden;\">baz</span>\n    </span>\n\n    <button aria-labelledby=\"b61\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using span with visibility:hidden (with nested visibility:visible sibling spans)\" class=\"ex\">x</button>\n    <span id=\"b61\" style=\"visibility: hidden;\">\n        foo\n        <span id=\"b62\" style=\"visibility: visible;\">bar</span>\n        <span id=\"b63\" style=\"visibility: visible;\">baz</span>\n    </span>\n\n<h2>Testing with <code>visibility:collapse</code></h2>\n\n    <button aria-labelledby=\"c11\" data-expectedlabel=\"foo bar\" data-testname=\"button with aria-labelledby using visibility:collapse span (with nested span)\" class=\"ex\">x</button>\n    <span id=\"c11\" style=\"visibility: collapse;\">\n        foo\n        <span id=\"c12\">bar</span>\n    </span>\n\n    <button aria-labelledby=\"c21\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using visibility:collapse span (with nested spans, depth 2)\" class=\"ex\">x</button>\n    <span id=\"c21\" style=\"visibility: collapse;\">\n        foo\n        <span id=\"c22\">\n            bar\n            <span id=\"c23\">baz</span>\n        </span>\n    </span>\n\n    <button aria-labelledby=\"c31\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using span without visibility:collapse (with nested visibility:visible spans, depth 2)\" class=\"ex\">x</button>\n    <span id=\"c31\">\n        foo\n        <span id=\"c32\" style=\"visibility: visible;\">\n            bar\n            <span id=\"c33\" style=\"visibility: visible;\">baz</span>\n        </span>\n    </span>\n\n    <button aria-labelledby=\"c41\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using visibility:collapse span (with nested sibling spans)\" class=\"ex\">x</button>\n    <span id=\"c41\" style=\"visibility: collapse;\">\n        foo\n        <span id=\"c42\">bar</span>\n        <span id=\"c43\">baz</span>\n    </span>\n\n    <button aria-labelledby=\"c51\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without visibility:collapse (with nested visibility:collapse sibling spans)\" class=\"ex\">x</button>\n    <span id=\"c51\">\n        foo\n        <span id=\"c52\" style=\"visibility: collapse;\">bar</span>\n        <span id=\"c53\" style=\"visibility: collapse;\">baz</span>\n    </span>\n\n    <button aria-labelledby=\"c61\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using span with visibility:collapse (with nested visible sibling spans)\" class=\"ex\">x</button>\n    <span id=\"c61\" style=\"visibility: collapse;\">\n        foo\n        <span id=\"c62\" style=\"visibility: visible;\">bar</span>\n        <span id=\"c63\" style=\"visibility: visible;\">baz</span>\n    </span>\n\n<h2>Testing with <code>aria-hidden</code></h2>\n\n    <button aria-labelledby=\"d11\" data-expectedlabel=\"foo bar\" data-testname=\"button with aria-labelledby using aria-hidden span (with nested span)\" class=\"ex\">x</button>\n    <span id=\"d11\" aria-hidden=\"true\">\n        foo\n        <span id=\"d12\">bar</span>\n    </span>\n\n    <button aria-labelledby=\"d21\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using aria-hidden span (with nested spans, depth 2)\" class=\"ex\">x</button>\n    <span id=\"d21\" aria-hidden=\"true\">\n        foo\n        <span id=\"d22\">\n            bar\n            <span id=\"d23\">baz</span>\n        </span>\n    </span>\n\n    <button aria-labelledby=\"d31\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without aria-hidden (with nested aria-hidden spans, depth 2)\" class=\"ex\">x</button>\n    <span id=\"d31\">\n        foo\n        <span id=\"d32\" aria-hidden=\"true\">\n            bar\n            <span id=\"d33\">baz</span>\n        </span>\n    </span>\n\n    <button aria-labelledby=\"d41\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using aria-hidden hidden span (with nested sibling spans)\" class=\"ex\">x</button>\n    <span id=\"d41\" aria-hidden=\"true\">\n        foo\n        <span id=\"d42\">bar</span>\n        <span id=\"d43\">baz</span>\n    </span>\n\n<h2>Testing with <code>hidden</code> attribute</h2>\n\n    <button aria-labelledby=\"e11\" data-expectedlabel=\"foo bar\" data-testname=\"button with aria-labelledby using HTML5 hidden span (with nested span)\" class=\"ex\">x</button>\n    <span id=\"e11\" hidden>\n        foo\n        <span id=\"e12\">bar</span>\n    </span>\n\n    <button aria-labelledby=\"e21\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using HTML5 hidden span (with nested spans, depth 2)\" class=\"ex\">x</button>\n    <span id=\"e21\" hidden>\n        foo\n        <span id=\"e22\">\n            bar\n            <span id=\"e23\">baz</span>\n        </span>\n    </span>\n\n    <button aria-labelledby=\"e31\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without HTML5 hidden (with nested HTML5 hidden spans, depth 2)\" class=\"ex\">x</button>\n    <span id=\"e31\">\n        foo\n        <span id=\"e32\" hidden>\n            bar\n            <span id=\"e33\">baz</span>\n        </span>\n    </span>\n\n    <button aria-labelledby=\"e41\" data-expectedlabel=\"foo bar baz\" data-testname=\"button with aria-labelledby using HTML5 hidden span (with nested hidden sibling spans)\" class=\"ex\">x</button>\n    <span id=\"e41\" hidden>\n        foo\n        <span id=\"e42\">bar</span>\n        <span id=\"e43\">baz</span>\n    </span>\n\n    <button aria-labelledby=\"e51\" data-expectedlabel=\"foo\" data-testname=\"button with aria-labelledby using span without HTML5 hidden (with nested hidden sibling spans)\" class=\"ex\">x</button>\n    <span id=\"e51\">\n        foo\n        <span id=\"e52\" hidden>bar</span>\n        <span id=\"e53\" hidden>baz</span>\n    </span>",
 1144  1144 		"selector": ".ex"
 1145  1145 	},
 1146  1146 	{
 1147  1147 		"filename": "comp_labelledby.html",
 1148  1148 		"title": "Name Comp: Labelledby",
 1149    -1 		"html": "<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_labelledby\">#comp_labelledby</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<!--\n\n  Some overlap with other aria-labelledby tests in:\n  - /accname/name/comp_label.html (aria-labelledby / aria-label fallback, etc.)\n  - /accname/name/comp_name_from_content.html\n  - /accname/name/shadowdom/*\n\n-->\n\n<div role=\"group\" aria-labelledby=\"h\" class=\"ex\" data-expectedlabel=\"first heading\" data-testname=\"div group explicitly labelledby heading\">\n  <h2 id=\"h\">first heading</h2>\n  <p>text inside div group</p>\n</div>\n\n<div role=\"group\" aria-label=\"self label\" id=\"g2\" aria-labelledby=\"g2 h2\" class=\"ex\" data-expectedlabel=\"self label + first heading\" data-testname=\"div group explicitly labelledby self and heading\">\n  <h2 id=\"h2\">+ first heading</h2>\n  <p>text inside div group</p>\n</div>\n\n<nav aria-labelledby=\"s1 s2 s3 s4\" class=\"ex\" data-expectedlabel=\"verify spaces between foreach\" data-testname=\"nav with verified spaces appended between each of IDREFS\">\n  <span id=\"s1\">verify</span><span id=\"s2\">spaces</span><span>FAIL IF INCLUDED</span><span id=\"s3\">between</span><span id=\"s4\">foreach</span>\n</nav>\n\n<!--\n\n  BLOCKED on https://github.com/w3c/accname/issues/209\n\n  Once that's resolved, it may be worthwhile to add a new ./comp_labelledby_recursion.html file,\n  so that the implementation diffs rolling in don't penalize this Interop 2024 test.\n\n  All remaining cases of https://w3c.github.io/accname/#comp_labelledby\n  - comp_labelledby_reset\n  - comp_labelledby_foreach\n  - comp_labelledby_set_current\n  - comp_labelledby_recursion\n  - comp_labelledby_append\n  - comp_labelledby_return\n\n-->",
   -1  1149 		"html": "<style type=\"text/css\"></style><p>Tests the <a href=\"https://w3c.github.io/accname/#comp_labelledby\">#comp_labelledby</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<!--\n\n  Some overlap with other aria-labelledby tests in:\n  - /accname/name/comp_label.html (aria-labelledby / aria-label fallback, etc.)\n  - /accname/name/comp_name_from_content.html\n  - /accname/name/shadowdom/*\n\n-->\n\n<div role=\"group\" aria-labelledby=\"h\" class=\"ex\" data-expectedlabel=\"first heading\" data-testname=\"div group explicitly labelledby heading\">\n  <h2 id=\"h\">first heading</h2>\n  <p>text inside div group</p>\n</div>\n\n<div role=\"group\" aria-label=\"self label\" id=\"g2\" aria-labelledby=\"g2 h2\" class=\"ex\" data-expectedlabel=\"self label + first heading\" data-testname=\"div group explicitly labelledby self and heading\">\n  <h2 id=\"h2\">+ first heading</h2>\n  <p>text inside div group</p>\n</div>\n\n<nav aria-labelledby=\"s1 s2 s3 s4\" class=\"ex\" data-expectedlabel=\"verify spaces between foreach\" data-testname=\"nav with verified spaces appended between each of IDREFS\">\n  <span id=\"s1\">verify</span><span id=\"s2\">spaces</span><span>FAIL IF INCLUDED</span><span id=\"s3\">between</span><span id=\"s4\">foreach</span>\n</nav>\n\n<!--\n\n  BLOCKED on https://github.com/w3c/accname/issues/209\n\n  Once that's resolved, it may be worthwhile to add a new ./comp_labelledby_recursion.html file,\n  so that the implementation diffs rolling in don't penalize this Interop 2024 test.\n\n  All remaining cases of https://w3c.github.io/accname/#comp_labelledby\n  - comp_labelledby_reset\n  - comp_labelledby_foreach\n  - comp_labelledby_set_current\n  - comp_labelledby_recursion\n  - comp_labelledby_append\n  - comp_labelledby_return\n\n-->",
 1150  1150 		"selector": ".ex"
 1151  1151 	},
 1152  1152 	{
 1153  1153 		"filename": "comp_text_node.html",
 1154  1154 		"title": "Name Comp: Text Node",
 1155    -1 		"html": "<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_text_node\">#comp_text_node</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<!--\n\n  Note: some overlap with the tests in:\n  - /accname/name/comp_label.html\n  - /accname/name/comp_name_from_content.html\n\n-->\n\n<h1>text/element/text nodes, no space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"buttonlabel\" data-testname=\"span[role=button] with text/element/text nodes, no space\">button<span></span>label</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"headinglabel\" data-testname=\"div[role=heading] with text/element/text nodes, no space\">heading<span></span>label</div>\n<button class=\"ex\" data-expectedlabel=\"buttonlabel\" data-testname=\"button with text/element/text nodes, no space\">button<span></span>label</button>\n<h3 class=\"ex\" data-expectedlabel=\"headinglabel\" data-testname=\"heading with text/element/text nodes, no space\">heading<span></span>label</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"linklabel\" data-testname=\"link with text/element/text nodes, no space\">link<span></span>label</a>\n<br>\n\n<h1>text/comment/text nodes, no space</h1>\n<!-- Note: This set is not currently to spec until https://github.com/w3c/accname/issues/193 is resolved. -->\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"buttonlabel\" data-testname=\"span[role=button] with text/comment/text nodes, no space\">\n  button<!-- with non-text node splitting concatenated text nodes -->label<!-- [sic] no extra spaces around first comment -->\n</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"headinglabel\" data-testname=\"div[role=heading] with text/comment/text nodes, no space\">\n  heading<!-- with non-text node splitting concatenated text nodes -->label<!-- [sic] no extra spaces around first comment -->\n</div>\n<button class=\"ex\" data-expectedlabel=\"buttonlabel\" data-testname=\"button with text/comment/text nodes, no space\">\n  button<!-- with non-text node splitting concatenated text nodes -->label<!-- [sic] no extra spaces around first comment -->\n</button>\n<h3 class=\"ex\" data-expectedlabel=\"headinglabel\" data-testname=\"heading with text/comment/text nodes, no space\">\n  heading<!-- with non-text node splitting concatenated text nodes -->label<!-- [sic] no extra spaces around first comment -->\n</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"linklabel\" data-testname=\"link with text/comment/text nodes, no space\">\n  link<!-- with non-text node splitting concatenated text nodes -->label<!-- [sic] no extra spaces around first comment -->\n</a>\n<br>\n\n<h1>text/comment/text nodes, with space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"span[role=button] with text/comment/text nodes, with space\">\n  button\n  <!-- comment node between text nodes with leading/trailing whitespace -->\n  label\n</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"div[role=heading] with text/comment/text nodes, with space\">\n  heading\n  <!-- comment node between text nodes with leading/trailing whitespace -->\n  label\n</div>\n<button class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"button with text/comment/text nodes, with space\">\n  button\n  <!-- comment node between text nodes with leading/trailing whitespace -->\n  label\n</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"heading with text/comment/text nodes, with space\">\n  heading\n  <!-- comment node between text nodes with leading/trailing whitespace -->\n  label\n</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link label\" data-testname=\"link with text/comment/text nodes, with space\">\n  link\n  <!-- comment node between text nodes with leading/trailing whitespace -->\n  label\n</a>\n<br>\n\n<h1>text node, with tab char</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"span[role=button] with text node, with tab char\">button  label</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"div[role=heading] with text node, with tab char\">heading label</div>\n<button class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"button with text node, with tab char\">button  label</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"heading with text node, with tab char\">heading label</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link label\" data-testname=\"link with text node, with tab char\">link\tlabel</a>\n<br>\n\n<h1>text node, with non-breaking space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button&nbsp;label\" data-testname=\"span[role=button] with text node, with non-breaking space\">button&nbsp;label</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading&nbsp;label\" data-testname=\"div[role=heading] with text node, with non-breaking space\">heading&nbsp;label</div>\n<button class=\"ex\" data-expectedlabel=\"button&nbsp;label\" data-testname=\"button with text node, with non-breaking space\">button&nbsp;label</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading&nbsp;label\" data-testname=\"heading with text node, with non-breaking space\">heading&nbsp;label</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link&nbsp;label\" data-testname=\"link with text node, with non-breaking space\">link&nbsp;label</a>\n<br>\n\n<h1>text node, with extra non-breaking space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button&nbsp;&nbsp;&nbsp;label\" data-testname=\"span[role=button] with text node, with extra non-breaking space\">button&nbsp;&nbsp;&nbsp;label</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading&nbsp;&nbsp;&nbsp;label\" data-testname=\"div[role=heading] with text node, with extra non-breaking space\">heading&nbsp;&nbsp;&nbsp;label</div>\n<button class=\"ex\" data-expectedlabel=\"button&nbsp;&nbsp;&nbsp;label\" data-testname=\"button with text node, with extra non-breaking space\">button&nbsp;&nbsp;&nbsp;label</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading&nbsp;&nbsp;&nbsp;label\" data-testname=\"heading with text node, with extra non-breaking space\">heading&nbsp;&nbsp;&nbsp;label</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link&nbsp;&nbsp;&nbsp;label\" data-testname=\"link with text node, with extra non-breaking space\">link&nbsp;&nbsp;&nbsp;label</a>\n<br>\n\n<h1>text node, with leading/trailing non-breaking space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"&nbsp;button&nbsp;label&nbsp;\" data-testname=\"span[role=button] with text node, with leading/trailing non-breaking space\">&nbsp;button&nbsp;label&nbsp;</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"&nbsp;heading&nbsp;label&nbsp;\" data-testname=\"div[role=heading] with text node, with leading/trailing non-breaking space\">&nbsp;heading&nbsp;label&nbsp;</div>\n<button class=\"ex\" data-expectedlabel=\"&nbsp;button&nbsp;label&nbsp;\" data-testname=\"button with text node, with leading/trailing non-breaking space\">&nbsp;button&nbsp;label&nbsp;</button>\n<h3 class=\"ex\" data-expectedlabel=\"&nbsp;heading&nbsp;label&nbsp;\" data-testname=\"heading with text node, with leading/trailing non-breaking space\">&nbsp;heading&nbsp;label&nbsp;</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"&nbsp;link&nbsp;label&nbsp;\" data-testname=\"link with text node, with leading/trailing non-breaking space\">&nbsp;link&nbsp;label&nbsp;</a>\n<br>\n\n<h1>text node, with mixed space and non-breaking space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button &nbsp; label\" data-testname=\"span[role=button] with text node, with mixed space and non-breaking space\">button   &nbsp;   label</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading &nbsp; label\" data-testname=\"div[role=heading] with text node, with mixed space and non-breaking space\">heading   &nbsp;   label</div>\n<button class=\"ex\" data-expectedlabel=\"button &nbsp; label\" data-testname=\"button with text node, with mixed space and non-breaking space\">button   &nbsp;   label</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading &nbsp; label\" data-testname=\"heading with text node, with mixed space and non-breaking space\">heading   &nbsp;   label</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link &nbsp; label\" data-testname=\"link with text node, with mixed space and non-breaking space\">link   &nbsp;   label</a>\n<br>\n\n<h1>text nodes, with deeply nested space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"span[role=button] with text node, with deeply nested space\">\nbutton<span><span><span><span><span><span><span> </span></span></span></span></span></span></span>label\n</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"div[role=heading] with text node, with deeply nested space\">\nheading<span><span><span><span><span><span><span> </span></span></span></span></span></span></span>label\n</div>\n<button class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"button with text node, with deeply nested space\">\nbutton<span><span><span><span><span><span><span> </span></span></span></span></span></span></span>label\n</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"heading with text node, with deeply nested space\">\nheading<span><span><span><span><span><span><span> </span></span></span></span></span></span></span>label\n</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link label\" data-testname=\"link with text node, with deeply nested space\">\nlink<span><span><span><span><span><span><span> </span></span></span></span></span></span></span>label\n</a>\n<br>\n\n<h1>text nodes, with single line break</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"span[role=button] with text node, with single line break\">button\nlabel</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"div[role=heading] with text node, with single line break\">heading\nlabel</div>\n<button class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"button with text node, with single line break\">button\nlabel</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"heading with text node, with single line break\">heading\nlabel</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link label\" data-testname=\"link with text node, with single line break\">link\nlabel</a>\n<br>",
   -1  1155 		"html": "<style type=\"text/css\"></style><p>Tests the <a href=\"https://w3c.github.io/accname/#comp_text_node\">#comp_text_node</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<!--\n\n  Note: some overlap with the tests in:\n  - /accname/name/comp_label.html\n  - /accname/name/comp_name_from_content.html\n\n-->\n\n<h1>text/element/text nodes, no space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"buttonlabel\" data-testname=\"span[role=button] with text/element/text nodes, no space\">button<span></span>label</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"headinglabel\" data-testname=\"div[role=heading] with text/element/text nodes, no space\">heading<span></span>label</div>\n<button class=\"ex\" data-expectedlabel=\"buttonlabel\" data-testname=\"button with text/element/text nodes, no space\">button<span></span>label</button>\n<h3 class=\"ex\" data-expectedlabel=\"headinglabel\" data-testname=\"heading with text/element/text nodes, no space\">heading<span></span>label</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"linklabel\" data-testname=\"link with text/element/text nodes, no space\">link<span></span>label</a>\n<br>\n\n<h1>text/comment/text nodes, no space</h1>\n<!-- Note: This set is not currently to spec until https://github.com/w3c/accname/issues/193 is resolved. -->\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"buttonlabel\" data-testname=\"span[role=button] with text/comment/text nodes, no space\">\n  button<!-- with non-text node splitting concatenated text nodes -->label<!-- [sic] no extra spaces around first comment -->\n</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"headinglabel\" data-testname=\"div[role=heading] with text/comment/text nodes, no space\">\n  heading<!-- with non-text node splitting concatenated text nodes -->label<!-- [sic] no extra spaces around first comment -->\n</div>\n<button class=\"ex\" data-expectedlabel=\"buttonlabel\" data-testname=\"button with text/comment/text nodes, no space\">\n  button<!-- with non-text node splitting concatenated text nodes -->label<!-- [sic] no extra spaces around first comment -->\n</button>\n<h3 class=\"ex\" data-expectedlabel=\"headinglabel\" data-testname=\"heading with text/comment/text nodes, no space\">\n  heading<!-- with non-text node splitting concatenated text nodes -->label<!-- [sic] no extra spaces around first comment -->\n</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"linklabel\" data-testname=\"link with text/comment/text nodes, no space\">\n  link<!-- with non-text node splitting concatenated text nodes -->label<!-- [sic] no extra spaces around first comment -->\n</a>\n<br>\n\n<h1>text/comment/text nodes, with space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"span[role=button] with text/comment/text nodes, with space\">\n  button\n  <!-- comment node between text nodes with leading/trailing whitespace -->\n  label\n</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"div[role=heading] with text/comment/text nodes, with space\">\n  heading\n  <!-- comment node between text nodes with leading/trailing whitespace -->\n  label\n</div>\n<button class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"button with text/comment/text nodes, with space\">\n  button\n  <!-- comment node between text nodes with leading/trailing whitespace -->\n  label\n</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"heading with text/comment/text nodes, with space\">\n  heading\n  <!-- comment node between text nodes with leading/trailing whitespace -->\n  label\n</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link label\" data-testname=\"link with text/comment/text nodes, with space\">\n  link\n  <!-- comment node between text nodes with leading/trailing whitespace -->\n  label\n</a>\n<br>\n\n<h1>text node, with tab char</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"span[role=button] with text node, with tab char\">button  label</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"div[role=heading] with text node, with tab char\">heading label</div>\n<button class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"button with text node, with tab char\">button  label</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"heading with text node, with tab char\">heading label</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link label\" data-testname=\"link with text node, with tab char\">link\tlabel</a>\n<br>\n\n<h1>text node, with non-breaking space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button&nbsp;label\" data-testname=\"span[role=button] with text node, with non-breaking space\">button&nbsp;label</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading&nbsp;label\" data-testname=\"div[role=heading] with text node, with non-breaking space\">heading&nbsp;label</div>\n<button class=\"ex\" data-expectedlabel=\"button&nbsp;label\" data-testname=\"button with text node, with non-breaking space\">button&nbsp;label</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading&nbsp;label\" data-testname=\"heading with text node, with non-breaking space\">heading&nbsp;label</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link&nbsp;label\" data-testname=\"link with text node, with non-breaking space\">link&nbsp;label</a>\n<br>\n\n<h1>text node, with extra non-breaking space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button&nbsp;&nbsp;&nbsp;label\" data-testname=\"span[role=button] with text node, with extra non-breaking space\">button&nbsp;&nbsp;&nbsp;label</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading&nbsp;&nbsp;&nbsp;label\" data-testname=\"div[role=heading] with text node, with extra non-breaking space\">heading&nbsp;&nbsp;&nbsp;label</div>\n<button class=\"ex\" data-expectedlabel=\"button&nbsp;&nbsp;&nbsp;label\" data-testname=\"button with text node, with extra non-breaking space\">button&nbsp;&nbsp;&nbsp;label</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading&nbsp;&nbsp;&nbsp;label\" data-testname=\"heading with text node, with extra non-breaking space\">heading&nbsp;&nbsp;&nbsp;label</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link&nbsp;&nbsp;&nbsp;label\" data-testname=\"link with text node, with extra non-breaking space\">link&nbsp;&nbsp;&nbsp;label</a>\n<br>\n\n<h1>text node, with leading/trailing non-breaking space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"&nbsp;button&nbsp;label&nbsp;\" data-testname=\"span[role=button] with text node, with leading/trailing non-breaking space\">&nbsp;button&nbsp;label&nbsp;</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"&nbsp;heading&nbsp;label&nbsp;\" data-testname=\"div[role=heading] with text node, with leading/trailing non-breaking space\">&nbsp;heading&nbsp;label&nbsp;</div>\n<button class=\"ex\" data-expectedlabel=\"&nbsp;button&nbsp;label&nbsp;\" data-testname=\"button with text node, with leading/trailing non-breaking space\">&nbsp;button&nbsp;label&nbsp;</button>\n<h3 class=\"ex\" data-expectedlabel=\"&nbsp;heading&nbsp;label&nbsp;\" data-testname=\"heading with text node, with leading/trailing non-breaking space\">&nbsp;heading&nbsp;label&nbsp;</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"&nbsp;link&nbsp;label&nbsp;\" data-testname=\"link with text node, with leading/trailing non-breaking space\">&nbsp;link&nbsp;label&nbsp;</a>\n<br>\n\n<h1>text node, with mixed space and non-breaking space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button &nbsp; label\" data-testname=\"span[role=button] with text node, with mixed space and non-breaking space\">button   &nbsp;   label</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading &nbsp; label\" data-testname=\"div[role=heading] with text node, with mixed space and non-breaking space\">heading   &nbsp;   label</div>\n<button class=\"ex\" data-expectedlabel=\"button &nbsp; label\" data-testname=\"button with text node, with mixed space and non-breaking space\">button   &nbsp;   label</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading &nbsp; label\" data-testname=\"heading with text node, with mixed space and non-breaking space\">heading   &nbsp;   label</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link &nbsp; label\" data-testname=\"link with text node, with mixed space and non-breaking space\">link   &nbsp;   label</a>\n<br>\n\n<h1>text nodes, with deeply nested space</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"span[role=button] with text node, with deeply nested space\">\nbutton<span><span><span><span><span><span><span> </span></span></span></span></span></span></span>label\n</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"div[role=heading] with text node, with deeply nested space\">\nheading<span><span><span><span><span><span><span> </span></span></span></span></span></span></span>label\n</div>\n<button class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"button with text node, with deeply nested space\">\nbutton<span><span><span><span><span><span><span> </span></span></span></span></span></span></span>label\n</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"heading with text node, with deeply nested space\">\nheading<span><span><span><span><span><span><span> </span></span></span></span></span></span></span>label\n</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link label\" data-testname=\"link with text node, with deeply nested space\">\nlink<span><span><span><span><span><span><span> </span></span></span></span></span></span></span>label\n</a>\n<br>\n\n<h1>text nodes, with single line break</h1>\n<span role=\"button\" tabindex=\"0\" class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"span[role=button] with text node, with single line break\">button\nlabel</span>\n<div role=\"heading\" class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"div[role=heading] with text node, with single line break\">heading\nlabel</div>\n<button class=\"ex\" data-expectedlabel=\"button label\" data-testname=\"button with text node, with single line break\">button\nlabel</button>\n<h3 class=\"ex\" data-expectedlabel=\"heading label\" data-testname=\"heading with text node, with single line break\">heading\nlabel</h3>\n<a href=\"#\" class=\"ex\" data-expectedlabel=\"link label\" data-testname=\"link with text node, with single line break\">link\nlabel</a>\n<br>",
 1156  1156 		"selector": ".ex"
 1157  1157 	},
 1158  1158 	{
 1159  1159 		"filename": "comp_embedded_control.html",
 1160  1160 		"title": "Name Comp: Embedded Control",
 1161    -1 		"html": "<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_embedded_control\">#comp_embedded_control</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<!-- Textfield (textbox) -->\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded textfield\" class=\"ex\">\n  Flash the screen\n  <input value=\"3\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded textfield inside checkbox label\" class=\"ex\"> times\n</label>\n<br><br>\n\n<!-- HTML select:not([size]) element renders as menu button (on Mac) or single-row listbox (on Windows/Linux) -->\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded select:not([size])\" class=\"ex\">\n  Flash the screen\n  <select aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded select:not([size]) inside checkbox label\" class=\"ex\">\n    <option value=\"1\">1</option>\n    <option value=\"2\">2</option>\n    <option value=\"3\" selected>3</option>\n    <option value=\"4\">4</option>\n    <option value=\"5\">5</option>\n  </select>\n  times\n</label>\n<br><br>\n\n<!-- HTML select[size] element renders as multi-row listbox -->\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded select[size]\" class=\"ex\">\n  Flash the screen\n  <select size=5 aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded select[size] inside checkbox label\" class=\"ex\">\n    <option value=\"1\">1</option>\n    <option value=\"2\">2</option>\n    <option value=\"3\" selected>3</option>\n    <option value=\"4\">4</option>\n    <option value=\"5\">5</option>\n  </select>\n  times\n</label>\n<br><br>\n\n<!-- ARIA combobox examples (not interactive) -->\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded combobox (input[type=text])\" class=\"ex\">\n  Flash the screen\n  <input role=\"combobox\" value=\"3\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded combobox (input[type=text]) inside checkbox label\" class=\"ex\"> times\n</label>\n<br><br>\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded combobox (span)\" class=\"ex\">\n  Flash the screen\n  <span role=\"combobox\" tabindex=\"0\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded combobox (span) inside checkbox label\" class=\"ex\">3</span> times\n</label>\n<br><br>\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded combobox (div)\" class=\"ex\">\n  Flash the screen\n  <div style=\"display: inline-block;\" role=\"combobox\" tabindex=\"0\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded combobox (div) inside checkbox label\" class=\"ex\">3</div> times\n</label>\n<br><br>\n<!-- Todo: we may want another combobox example using aria-activedescendant? -->\n\n\n<!-- ARIA listbox examples (not interactive) -->\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded listbox>option[aria-selected=true]\" class=\"ex\">\n  Flash the screen\n  <ul role=\"listbox\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded listbox>option[aria-selected=true] inside checkbox label\" class=\"ex\" style=\"padding:0; list-style:none; border: solid 1px gray; width: 15em; display: inline-block;\">\n    <li role=\"option\" tabindex=\"-1\" style=\"padding:0.2em 0.8em; list-style:none;\">1</li>\n    <li role=\"option\" tabindex=\"-1\" style=\"padding:0.2em 0.8em; list-style:none;\">2</li>\n    <li role=\"option\" tabindex=\"0\" aria-selected=\"true\" style=\"padding:0.2em 0.8em; list-style:none; color: white; background-color: #555;\">3</li>\n    <li role=\"option\" tabindex=\"-1\" style=\"padding:0.2em 0.8em; list-style:none;\">4</li>\n    <li role=\"option\" tabindex=\"-1\" style=\"padding:0.2em 0.8em; list-style:none;\">5</li>\n  </ul> times\n</label>\n<br><br>\n\n\n<!-- Ranges: HTML native and ARIA sliders and steppers (valuetext, valuenow, host language specific) -->\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded input[type=range]\" class=\"ex\">\n  Flash the screen\n  <input type =\"range\" min=\"1\" max=\"5\" value=\"3\" step=\"1\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded input[type=range] inside checkbox label\" class=\"ex\"> times\n</label>\n<br><br>\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded input[type=number]\" class=\"ex\">\n  Flash the screen\n  <input type =\"number\" min=\"1\" max=\"5\" value=\"3\" step=\"1\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded input[type=number] inside checkbox label\" class=\"ex\"> times\n</label>\n<br><br>\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded ARIA slider (aria-valuenow)\" class=\"ex\">\n  Flash the screen\n  <span tabindex=\"0\" role=\"slider\" aria-valuemin=\"1\" aria-valuemax=\"5\" aria-valuenow=\"3\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded ARIA slider (aria-valuenow) inside checkbox label\" class=\"ex\">3.0</span> times\n</label>\n<br><br>\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded ARIA slider (aria-valuetext)\" class=\"ex\">\n  Flash the screen\n  <span tabindex=\"0\" role=\"slider\" aria-valuemin=\"1.0\" aria-valuemax=\"5.0\" aria-valuenow=\"3.0\" aria-valuetext=\"3\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded ARIA slider (aria-valuetext) inside checkbox label\" class=\"ex\">3.0</span> times\n</label>\n<br><br>\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded ARIA spinbutton (aria-valuenow)\" class=\"ex\">\n  Flash the screen\n  <span tabindex=\"0\" role=\"spinbutton\" aria-valuemin=\"1\" aria-valuemax=\"5\" aria-valuenow=\"3\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded ARIA spinbutton (aria-valuenow) inside checkbox label\" class=\"ex\">3.0</span> times\n</label>\n<br><br>\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded ARIA spinbutton (aria-valuetext)\" class=\"ex\">\n  Flash the screen\n  <span tabindex=\"0\" role=\"spinbutton\" aria-valuemin=\"1.0\" aria-valuemax=\"5.0\" aria-valuenow=\"3.0\" aria-valuetext=\"3\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded ARIA spinbutton (aria-valuetext) inside checkbox label\" class=\"ex\">3.0</span> times\n</label>\n<br><br>",
   -1  1161 		"html": "<style type=\"text/css\"></style><p>Tests the <a href=\"https://w3c.github.io/accname/#comp_embedded_control\">#comp_embedded_control</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<!-- Textfield (textbox) -->\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded textfield\" class=\"ex\">\n  Flash the screen\n  <input value=\"3\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded textfield inside checkbox label\" class=\"ex\"> times\n</label>\n<br><br>\n\n<!-- HTML select:not([size]) element renders as menu button (on Mac) or single-row listbox (on Windows/Linux) -->\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded select:not([size])\" class=\"ex\">\n  Flash the screen\n  <select aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded select:not([size]) inside checkbox label\" class=\"ex\">\n    <option value=\"1\">1</option>\n    <option value=\"2\">2</option>\n    <option value=\"3\" selected>3</option>\n    <option value=\"4\">4</option>\n    <option value=\"5\">5</option>\n  </select>\n  times\n</label>\n<br><br>\n\n<!-- HTML select[size] element renders as multi-row listbox -->\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded select[size]\" class=\"ex\">\n  Flash the screen\n  <select size=5 aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded select[size] inside checkbox label\" class=\"ex\">\n    <option value=\"1\">1</option>\n    <option value=\"2\">2</option>\n    <option value=\"3\" selected>3</option>\n    <option value=\"4\">4</option>\n    <option value=\"5\">5</option>\n  </select>\n  times\n</label>\n<br><br>\n\n<!-- ARIA combobox examples (not interactive) -->\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded combobox (input[type=text])\" class=\"ex\">\n  Flash the screen\n  <input role=\"combobox\" value=\"3\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded combobox (input[type=text]) inside checkbox label\" class=\"ex\"> times\n</label>\n<br><br>\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded combobox (span)\" class=\"ex\">\n  Flash the screen\n  <span role=\"combobox\" tabindex=\"0\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded combobox (span) inside checkbox label\" class=\"ex\">3</span> times\n</label>\n<br><br>\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded combobox (div)\" class=\"ex\">\n  Flash the screen\n  <div style=\"display: inline-block;\" role=\"combobox\" tabindex=\"0\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded combobox (div) inside checkbox label\" class=\"ex\">3</div> times\n</label>\n<br><br>\n<!-- Todo: we may want another combobox example using aria-activedescendant? -->\n\n\n<!-- ARIA listbox examples (not interactive) -->\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded listbox>option[aria-selected=true]\" class=\"ex\">\n  Flash the screen\n  <ul role=\"listbox\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded listbox>option[aria-selected=true] inside checkbox label\" class=\"ex\" style=\"padding:0; list-style:none; border: solid 1px gray; width: 15em; display: inline-block;\">\n    <li role=\"option\" tabindex=\"-1\" style=\"padding:0.2em 0.8em; list-style:none;\">1</li>\n    <li role=\"option\" tabindex=\"-1\" style=\"padding:0.2em 0.8em; list-style:none;\">2</li>\n    <li role=\"option\" tabindex=\"0\" aria-selected=\"true\" style=\"padding:0.2em 0.8em; list-style:none; color: white; background-color: #555;\">3</li>\n    <li role=\"option\" tabindex=\"-1\" style=\"padding:0.2em 0.8em; list-style:none;\">4</li>\n    <li role=\"option\" tabindex=\"-1\" style=\"padding:0.2em 0.8em; list-style:none;\">5</li>\n  </ul> times\n</label>\n<br><br>\n\n\n<!-- Ranges: HTML native and ARIA sliders and steppers (valuetext, valuenow, host language specific) -->\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded input[type=range]\" class=\"ex\">\n  Flash the screen\n  <input type =\"range\" min=\"1\" max=\"5\" value=\"3\" step=\"1\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded input[type=range] inside checkbox label\" class=\"ex\"> times\n</label>\n<br><br>\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded input[type=number]\" class=\"ex\">\n  Flash the screen\n  <input type =\"number\" min=\"1\" max=\"5\" value=\"3\" step=\"1\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded input[type=number] inside checkbox label\" class=\"ex\"> times\n</label>\n<br><br>\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded ARIA slider (aria-valuenow)\" class=\"ex\">\n  Flash the screen\n  <span tabindex=\"0\" role=\"slider\" aria-valuemin=\"1\" aria-valuemax=\"5\" aria-valuenow=\"3\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded ARIA slider (aria-valuenow) inside checkbox label\" class=\"ex\">3.0</span> times\n</label>\n<br><br>\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded ARIA slider (aria-valuetext)\" class=\"ex\">\n  Flash the screen\n  <span tabindex=\"0\" role=\"slider\" aria-valuemin=\"1.0\" aria-valuemax=\"5.0\" aria-valuenow=\"3.0\" aria-valuetext=\"3\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded ARIA slider (aria-valuetext) inside checkbox label\" class=\"ex\">3.0</span> times\n</label>\n<br><br>\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded ARIA spinbutton (aria-valuenow)\" class=\"ex\">\n  Flash the screen\n  <span tabindex=\"0\" role=\"spinbutton\" aria-valuemin=\"1\" aria-valuemax=\"5\" aria-valuenow=\"3\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded ARIA spinbutton (aria-valuenow) inside checkbox label\" class=\"ex\">3.0</span> times\n</label>\n<br><br>\n<label>\n  <input type=\"checkbox\" data-expectedlabel=\"Flash the screen 3 times\" data-testname=\"checkbox label with embedded ARIA spinbutton (aria-valuetext)\" class=\"ex\">\n  Flash the screen\n  <span tabindex=\"0\" role=\"spinbutton\" aria-valuemin=\"1.0\" aria-valuemax=\"5.0\" aria-valuenow=\"3.0\" aria-valuetext=\"3\" aria-label=\"number of times\" data-expectedlabel=\"number of times\" data-testname=\"label of embedded ARIA spinbutton (aria-valuetext) inside checkbox label\" class=\"ex\">3.0</span> times\n</label>\n<br><br>",
 1162  1162 		"selector": ".ex"
 1163  1163 	},
 1164  1164 	{
 1165  1165 		"filename": "comp_host_language_label.html",
 1166  1166 		"title": "Name Comp: Host Language Label",
 1167    -1 		"html": "<h1>AccName: Host Language Label Tests</h1>\n<p>Tests the <a href=\"https://w3c.github.io/accname/#comp_host_language_label\">#comp_host_language_label</a> portions of the AccName <em>Name Computation</em> algorithm.</p>\n\n<h2>HTML input with value, alt, etc.</h2>\n<input type=\"button\" value=\"button label\" data-expectedlabel=\"button label\" data-testname=\"html: input[type=button]\" class=\"ex\">\n<input type=\"image\" 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=\"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? -->",
 1168  1168 		"selector": ".ex"
 1169  1169 	}
 1170  1170 ];
@@ -1172,160 +1172,160 @@ window.wpt["wai-aria"] = [
 1172  1172 	{
 1173  1173 		"filename": "invalid-roles.html",
 1174  1174 		"title": "Invalid Role Verification Tests",
 1175    -1 		"html": "<p>Tests invalid ARIA roles from <a href=\"https://w3c.github.io/aria/#document-handling_author-errors_roles\">9.1 Roles - handling author errors</a>.</p>\n\n<!-- Tests fallback for <nav> when 1/2/3 invalid roles are supplied -->\n<nav role=\"foo\" data-testname=\"nav with invalid role name foo\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"foo bar\" data-testname=\"nav with two invalid role names\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"foo bar baz\" data-testname=\"nav with three invalid role names\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Tests fallback for <button> when 1/2/3 invalid roles are supplied -->\n<button role=\"foo\" data-testname=\"button with invalid role name foo\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<button role=\"foo bar\" data-testname=\"button with two invalid role names\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<button role=\"foo bar baz\" data-testname=\"button with three invalid role names\" data-expectedrole=\"button\" class=\"ex\">x</button>\n\n<!-- Tests fallback for semantically neutral elements when 1/2/3 invalid roles are supplied -->\n<span role=\"foo\" data-testname=\"span with invalid role name foo\" class=\"ex-generic\">x</span>\n<span role=\"foo bar\" data-testname=\"span with two invalid role names\" class=\"ex-generic\">x</span>\n<span role=\"foo bar baz\" data-testname=\"span with three invalid role names\" class=\"ex-generic\">x</span>\n<div role=\"foo\" data-testname=\"div with invalid role name foo\" class=\"ex-generic\">x</div>\n<div role=\"foo bar\" data-testname=\"div with two invalid role names\" class=\"ex-generic\">x</div>\n<div role=\"foo bar baz\" data-testname=\"div with three invalid role names\"class=\"ex-generic\">x</div>\n\n<!-- Whitespace tests with <nav> (including line breaks, tabs, zero-width space, braille space, non-breaking space, standard space) -->\n<nav role=\" \" data-testname=\"nav with empty character as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#13\" data-testname=\"nav with line break (&#13) character as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#9\" data-testname=\"nav with tab (&#9) as role (should be treated as whitespace)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#8203\" data-testname=\"nav with zero-width space as role (should be treated as whitespace)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#10240\" data-testname=\"nav with braille space (10240) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#x2800\" data-testname=\"nav with braille space (x2800) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&nbsp;\" data-testname=\"nav with non-breaking space (nbsp) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#20\" data-testname=\"nav with standard space (nbsp) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Escaped whitespace tests with <span> (including line breaks, tabs, zero-width space, braille space, non-breaking space, standard space) -->\n<span role=\" \" data-testname=\"span with escaped empty character as role\" class=\"ex-generic\">x</span>\n<span role=\"&#13\" data-testname=\"span with escaped line break (&#13) character as role\" class=\"ex-generic\">x</span>\n<span role=\"&#9\" data-testname=\"span with escaped tab (&#9) as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n<span role=\"&#8203\" data-testname=\"span with escaped zero-width space as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n<span role=\"&#10240\" data-testname=\"span with escaped braille space (10240) as role\" class=\"ex-generic\">x</span>\n<span role=\"&#x2800\" data-testname=\"span with escaped braille space (x2800) as role\" class=\"ex-generic\">x</span>\n<span role=\"&nbsp;\" data-testname=\"span with escaped non-breaking space (nbsp) as role\" class=\"ex-generic\">x</span>\n<span role=\"&#20\" data-testname=\"span with escaped standard space (nbsp) as role\" class=\"ex-generic\">x</span>\n\n<!-- Unescaped whitespace tests with <span> (including line breaks, tabs, zero-width space, braille space, non-breaking space, standard space) -->\n  <span role=\" \" data-testname=\"span with empty character as role\" class=\"ex-generic\">x</span>\n  <span role=\"\n  \" data-testname=\"span with line break (&#13) character as role\" class=\"ex-generic\">x</span>\n  <span role=\"  \" data-testname=\"span with tab (&#9) as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n  <span role=\"\u200d\" data-testname=\"span with zero-width space as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n  <span role=\"\u2800\" data-testname=\"span with braille space (10240) as role\" class=\"ex-generic\">x</span>\n  <span role=\" \" data-testname=\"span with non-breaking space (nbsp) as role\" class=\"ex-generic\">x</span>\n  <span role=\" \" data-testname=\"span with standard space as role\" class=\"ex-generic\">x</span>\n\n<!-- Diacritics with <a> -->\n<a href=\"#\" role=\"&#771\" data-testname=\"link with role set to tilde diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"foo&#771\" data-testname=\"link with role foo that has tilde diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"&#773\" data-testname=\"link with role set to overline diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"foo&#773\" data-testname=\"link with role foo that has overline diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"&#813\" data-testname=\"link with role set to circumflex diacritic below\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"foo&#813\" data-testname=\"link with role foo that has circumflex diacritic below\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"button&#771\" data-testname=\"link with role set to button with tilde diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n\n<!-- Diacritics with <div> -->\n<div role=\"&#771\" data-testname=\"div with role set to tilde diacritic\" class=\"ex-generic\">x</div>\n<div role=\"foo&#771\" data-testname=\"div with role foo that has tilde diacritic\" class=\"ex-generic\">x</div>\n<div role=\"button&#771\" data-testname=\"div with role set to button with tilde diacritic\" class=\"ex-generic\">x</div>\n<div role=\"button\u00b4\" data-testname=\"div with role set to button with unescaped tilde diacritic\" class=\"ex-generic\">x</div>\n\n<!-- Zero-width joiners (e.g., ZWJ like emoji variants use) with <button> -->\n<!-- [sic] role=\"\u200d\" should include an invisible ZWJ], and role=\"link\u200d\" ends with an invisible ZWJ. Use caution when editing. -->\n<button role=\"\u200d\" data-testname=\"button with role set to zero-width joiner\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<button role=\"link\u200d\" data-testname=\"button with role set to foo with zero-width joiner\" data-expectedrole=\"button\" class=\"ex\">x</button>\n\n<!-- Non-western chars with <nav> -->\n<nav role=\"\u0398\" data-testname=\"nav with role set to theta (\u0398)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u0698\" data-testname=\"nav with role set to Persian character (\u0698)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u0698 \u266e\" data-testname=\"nav with multiple non-latin character roles, Persian character (\u0698) and \u266e\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u6f22\u5b57\" data-testname=\"nav with role set to Japanese kanji\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Non-western chars with <span> -->\n<span role=\"\u0398\" data-testname=\"span with role set to theta (\u0398)\" class=\"ex-generic\">x</span>\n<span role=\"\u0698\" data-testname=\"span with role set to Persian character (\u0698)\" class=\"ex-generic\">x</span>\n<span role=\"\u0698 \u266e\" data-testname=\"span with multiple non-latin character roles, Persian character (\u0698) and \u266e\" class=\"ex-generic\">x</span>\n<span role=\"\u6f22\u5b57\" data-testname=\"span with role set to Japanese kanji\" class=\"ex-generic\">x</span>\n\n<!-- RTL strings (Hebrew & Arabic) with <nav> -->\n<nav role=\"\u0633\u0644\u0627\u0645\" data-testname=\"nav with role set to Arabic text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u0633\u0644\u0627\u0645 \u062d\u0628\u064a\u0628\" data-testname=\"nav with multiple role assignments set to Arabic text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u05e9\u05dc\u05d5\u05dd\" data-testname=\"nav with role set to Hebrew text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u05e9\u05dc\u05d5\u05dd \u05d7\u05d1\u05e8\" data-testname=\"nav with multiple role assignments set to Hebrew text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- RTL strings (Hebrew & Arabic) with <div> -->\n<div role=\"\u0633\u0644\u0627\u0645\" data-testname=\"div with role set to Arabic text\" class=\"ex-generic\">x</div>\n<div role=\"\u0633\u0644\u0627\u0645 \u062d\u0628\u064a\u0628\" data-testname=\"div with multiple role assignments set to Arabic text\" class=\"ex-generic\">x</div>\n<div role=\"\u05e9\u05dc\u05d5\u05dd\" data-testname=\"div with role set to Hebrew text\" class=\"ex-generic\">x</div>\n<div role=\"\u05e9\u05dc\u05d5\u05dd \u05d7\u05d1\u05e8\" data-testname=\"div with multiple role assignments set to Hebrew text\" class=\"ex-generic\">x</div>\n\n<!-- Escaped chars, URL-encoded chars with <a> -->\n<a href=\"https://www.apple.com/\" role=\"&amp\" data-testname=\"link with role set to ampersand character\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"https://www.apple.com/\" role=\"&lt\" data-testname=\"link with role set to less than angle bracket character\" data-expectedrole=\"link\" class=\"ex\">x</a>\n\n<!-- Escaped chars, URL-encoded chars with <span> -->\n<span role=\"&amp\" data-testname=\"span with role set to ampersand character\" class=\"ex-generic\">x</span>\n<span role=\"&lt\" data-testname=\"span with role set to less than angle bracket character\" class=\"ex-generic\">x</span>\n<span role=\"&\" data-testname=\"span with role set to unescaped ampersand character\" class=\"ex-generic\">x</span>\n<span role=\"<\" data-testname=\"span with role set to unescaped less than angle bracket character\" class=\"ex-generic\">x</span>\n\n<!-- Backslash closing quote and other malformed roles with characters with <nav> -->\n<nav role=\"region\\\" data-testname=\"nav with role set to region followed by backslash\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\\region\" data-testname=\"nav with role set to backslash followed by region\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"re/gion\" data-testname=\"nav with role set to region with backslash after e character\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Backslash closing quote and other malformed roles with characters with <span> -->\n<span role=\"region\\\" data-testname=\"span with role set to region followed by backslash\" class=\"ex-generic\">x</span>\n<span role=\"\\region\" data-testname=\"span with role set to backslash followed by region\" class=\"ex-generic\">x</span>\n<span role=\"re/gion\" data-testname=\"span with role set to region with forward slash after e character\" class=\"ex-generic\">x</span>",
   -1  1175 		"html": "<style type=\"text/css\"></style><p>Tests invalid ARIA roles from <a href=\"https://w3c.github.io/aria/#document-handling_author-errors_roles\">9.1 Roles - handling author errors</a>.</p>\n\n<!-- Tests fallback for <nav> when 1/2/3 invalid roles are supplied -->\n<nav role=\"foo\" data-testname=\"nav with invalid role name foo\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"foo bar\" data-testname=\"nav with two invalid role names\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"foo bar baz\" data-testname=\"nav with three invalid role names\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Tests fallback for <button> when 1/2/3 invalid roles are supplied -->\n<button role=\"foo\" data-testname=\"button with invalid role name foo\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<button role=\"foo bar\" data-testname=\"button with two invalid role names\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<button role=\"foo bar baz\" data-testname=\"button with three invalid role names\" data-expectedrole=\"button\" class=\"ex\">x</button>\n\n<!-- Tests fallback for semantically neutral elements when 1/2/3 invalid roles are supplied -->\n<span role=\"foo\" data-testname=\"span with invalid role name foo\" class=\"ex-generic\">x</span>\n<span role=\"foo bar\" data-testname=\"span with two invalid role names\" class=\"ex-generic\">x</span>\n<span role=\"foo bar baz\" data-testname=\"span with three invalid role names\" class=\"ex-generic\">x</span>\n<div role=\"foo\" data-testname=\"div with invalid role name foo\" class=\"ex-generic\">x</div>\n<div role=\"foo bar\" data-testname=\"div with two invalid role names\" class=\"ex-generic\">x</div>\n<div role=\"foo bar baz\" data-testname=\"div with three invalid role names\"class=\"ex-generic\">x</div>\n\n<!-- Whitespace tests with <nav> (including line breaks, tabs, zero-width space, braille space, non-breaking space, standard space) -->\n<nav role=\" \" data-testname=\"nav with empty character as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#13\" data-testname=\"nav with line break (&#13) character as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#9\" data-testname=\"nav with tab (&#9) as role (should be treated as whitespace)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#8203\" data-testname=\"nav with zero-width space as role (should be treated as whitespace)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#10240\" data-testname=\"nav with braille space (10240) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#x2800\" data-testname=\"nav with braille space (x2800) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&nbsp;\" data-testname=\"nav with non-breaking space (nbsp) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#20\" data-testname=\"nav with standard space (nbsp) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Escaped whitespace tests with <span> (including line breaks, tabs, zero-width space, braille space, non-breaking space, standard space) -->\n<span role=\" \" data-testname=\"span with escaped empty character as role\" class=\"ex-generic\">x</span>\n<span role=\"&#13\" data-testname=\"span with escaped line break (&#13) character as role\" class=\"ex-generic\">x</span>\n<span role=\"&#9\" data-testname=\"span with escaped tab (&#9) as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n<span role=\"&#8203\" data-testname=\"span with escaped zero-width space as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n<span role=\"&#10240\" data-testname=\"span with escaped braille space (10240) as role\" class=\"ex-generic\">x</span>\n<span role=\"&#x2800\" data-testname=\"span with escaped braille space (x2800) as role\" class=\"ex-generic\">x</span>\n<span role=\"&nbsp;\" data-testname=\"span with escaped non-breaking space (nbsp) as role\" class=\"ex-generic\">x</span>\n<span role=\"&#20\" data-testname=\"span with escaped standard space (nbsp) as role\" class=\"ex-generic\">x</span>\n\n<!-- Unescaped whitespace tests with <span> (including line breaks, tabs, zero-width space, braille space, non-breaking space, standard space) -->\n  <span role=\" \" data-testname=\"span with empty character as role\" class=\"ex-generic\">x</span>\n  <span role=\"\n  \" data-testname=\"span with line break (&#13) character as role\" class=\"ex-generic\">x</span>\n  <span role=\"  \" data-testname=\"span with tab (&#9) as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n  <span role=\"\u200d\" data-testname=\"span with zero-width space as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n  <span role=\"\u2800\" data-testname=\"span with braille space (10240) as role\" class=\"ex-generic\">x</span>\n  <span role=\" \" data-testname=\"span with non-breaking space (nbsp) as role\" class=\"ex-generic\">x</span>\n  <span role=\" \" data-testname=\"span with standard space as role\" class=\"ex-generic\">x</span>\n\n<!-- Diacritics with <a> -->\n<a href=\"#\" role=\"&#771\" data-testname=\"link with role set to tilde diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"foo&#771\" data-testname=\"link with role foo that has tilde diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"&#773\" data-testname=\"link with role set to overline diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"foo&#773\" data-testname=\"link with role foo that has overline diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"&#813\" data-testname=\"link with role set to circumflex diacritic below\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"foo&#813\" data-testname=\"link with role foo that has circumflex diacritic below\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"button&#771\" data-testname=\"link with role set to button with tilde diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n\n<!-- Diacritics with <div> -->\n<div role=\"&#771\" data-testname=\"div with role set to tilde diacritic\" class=\"ex-generic\">x</div>\n<div role=\"foo&#771\" data-testname=\"div with role foo that has tilde diacritic\" class=\"ex-generic\">x</div>\n<div role=\"button&#771\" data-testname=\"div with role set to button with tilde diacritic\" class=\"ex-generic\">x</div>\n<div role=\"button\u00b4\" data-testname=\"div with role set to button with unescaped tilde diacritic\" class=\"ex-generic\">x</div>\n\n<!-- Zero-width joiners (e.g., ZWJ like emoji variants use) with <button> -->\n<!-- [sic] role=\"\u200d\" should include an invisible ZWJ], and role=\"link\u200d\" ends with an invisible ZWJ. Use caution when editing. -->\n<button role=\"\u200d\" data-testname=\"button with role set to zero-width joiner\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<button role=\"link\u200d\" data-testname=\"button with role set to foo with zero-width joiner\" data-expectedrole=\"button\" class=\"ex\">x</button>\n\n<!-- Non-western chars with <nav> -->\n<nav role=\"\u0398\" data-testname=\"nav with role set to theta (\u0398)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u0698\" data-testname=\"nav with role set to Persian character (\u0698)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u0698 \u266e\" data-testname=\"nav with multiple non-latin character roles, Persian character (\u0698) and \u266e\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u6f22\u5b57\" data-testname=\"nav with role set to Japanese kanji\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Non-western chars with <span> -->\n<span role=\"\u0398\" data-testname=\"span with role set to theta (\u0398)\" class=\"ex-generic\">x</span>\n<span role=\"\u0698\" data-testname=\"span with role set to Persian character (\u0698)\" class=\"ex-generic\">x</span>\n<span role=\"\u0698 \u266e\" data-testname=\"span with multiple non-latin character roles, Persian character (\u0698) and \u266e\" class=\"ex-generic\">x</span>\n<span role=\"\u6f22\u5b57\" data-testname=\"span with role set to Japanese kanji\" class=\"ex-generic\">x</span>\n\n<!-- RTL strings (Hebrew & Arabic) with <nav> -->\n<nav role=\"\u0633\u0644\u0627\u0645\" data-testname=\"nav with role set to Arabic text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u0633\u0644\u0627\u0645 \u062d\u0628\u064a\u0628\" data-testname=\"nav with multiple role assignments set to Arabic text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u05e9\u05dc\u05d5\u05dd\" data-testname=\"nav with role set to Hebrew text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u05e9\u05dc\u05d5\u05dd \u05d7\u05d1\u05e8\" data-testname=\"nav with multiple role assignments set to Hebrew text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- RTL strings (Hebrew & Arabic) with <div> -->\n<div role=\"\u0633\u0644\u0627\u0645\" data-testname=\"div with role set to Arabic text\" class=\"ex-generic\">x</div>\n<div role=\"\u0633\u0644\u0627\u0645 \u062d\u0628\u064a\u0628\" data-testname=\"div with multiple role assignments set to Arabic text\" class=\"ex-generic\">x</div>\n<div role=\"\u05e9\u05dc\u05d5\u05dd\" data-testname=\"div with role set to Hebrew text\" class=\"ex-generic\">x</div>\n<div role=\"\u05e9\u05dc\u05d5\u05dd \u05d7\u05d1\u05e8\" data-testname=\"div with multiple role assignments set to Hebrew text\" class=\"ex-generic\">x</div>\n\n<!-- Escaped chars, URL-encoded chars with <a> -->\n<a href=\"https://www.apple.com/\" role=\"&amp\" data-testname=\"link with role set to ampersand character\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"https://www.apple.com/\" role=\"&lt\" data-testname=\"link with role set to less than angle bracket character\" data-expectedrole=\"link\" class=\"ex\">x</a>\n\n<!-- Escaped chars, URL-encoded chars with <span> -->\n<span role=\"&amp\" data-testname=\"span with role set to ampersand character\" class=\"ex-generic\">x</span>\n<span role=\"&lt\" data-testname=\"span with role set to less than angle bracket character\" class=\"ex-generic\">x</span>\n<span role=\"&\" data-testname=\"span with role set to unescaped ampersand character\" class=\"ex-generic\">x</span>\n<span role=\"<\" data-testname=\"span with role set to unescaped less than angle bracket character\" class=\"ex-generic\">x</span>\n\n<!-- Backslash closing quote and other malformed roles with characters with <nav> -->\n<nav role=\"region\\\" data-testname=\"nav with role set to region followed by backslash\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\\region\" data-testname=\"nav with role set to backslash followed by region\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"re/gion\" data-testname=\"nav with role set to region with backslash after e character\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Backslash closing quote and other malformed roles with characters with <span> -->\n<span role=\"region\\\" data-testname=\"span with role set to region followed by backslash\" class=\"ex-generic\">x</span>\n<span role=\"\\region\" data-testname=\"span with role set to backslash followed by region\" class=\"ex-generic\">x</span>\n<span role=\"re/gion\" data-testname=\"span with role set to region with forward slash after e character\" class=\"ex-generic\">x</span>",
 1176  1176 		"selector": ".ex"
 1177  1177 	},
 1178  1178 	{
 1179  1179 		"filename": "invalid-roles.html",
 1180  1180 		"title": "Invalid Role Verification Tests",
 1181    -1 		"html": "<p>Tests invalid ARIA roles from <a href=\"https://w3c.github.io/aria/#document-handling_author-errors_roles\">9.1 Roles - handling author errors</a>.</p>\n\n<!-- Tests fallback for <nav> when 1/2/3 invalid roles are supplied -->\n<nav role=\"foo\" data-testname=\"nav with invalid role name foo\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"foo bar\" data-testname=\"nav with two invalid role names\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"foo bar baz\" data-testname=\"nav with three invalid role names\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Tests fallback for <button> when 1/2/3 invalid roles are supplied -->\n<button role=\"foo\" data-testname=\"button with invalid role name foo\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<button role=\"foo bar\" data-testname=\"button with two invalid role names\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<button role=\"foo bar baz\" data-testname=\"button with three invalid role names\" data-expectedrole=\"button\" class=\"ex\">x</button>\n\n<!-- Tests fallback for semantically neutral elements when 1/2/3 invalid roles are supplied -->\n<span role=\"foo\" data-testname=\"span with invalid role name foo\" class=\"ex-generic\">x</span>\n<span role=\"foo bar\" data-testname=\"span with two invalid role names\" class=\"ex-generic\">x</span>\n<span role=\"foo bar baz\" data-testname=\"span with three invalid role names\" class=\"ex-generic\">x</span>\n<div role=\"foo\" data-testname=\"div with invalid role name foo\" class=\"ex-generic\">x</div>\n<div role=\"foo bar\" data-testname=\"div with two invalid role names\" class=\"ex-generic\">x</div>\n<div role=\"foo bar baz\" data-testname=\"div with three invalid role names\"class=\"ex-generic\">x</div>\n\n<!-- Whitespace tests with <nav> (including line breaks, tabs, zero-width space, braille space, non-breaking space, standard space) -->\n<nav role=\" \" data-testname=\"nav with empty character as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#13\" data-testname=\"nav with line break (&#13) character as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#9\" data-testname=\"nav with tab (&#9) as role (should be treated as whitespace)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#8203\" data-testname=\"nav with zero-width space as role (should be treated as whitespace)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#10240\" data-testname=\"nav with braille space (10240) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#x2800\" data-testname=\"nav with braille space (x2800) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&nbsp;\" data-testname=\"nav with non-breaking space (nbsp) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#20\" data-testname=\"nav with standard space (nbsp) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Escaped whitespace tests with <span> (including line breaks, tabs, zero-width space, braille space, non-breaking space, standard space) -->\n<span role=\" \" data-testname=\"span with escaped empty character as role\" class=\"ex-generic\">x</span>\n<span role=\"&#13\" data-testname=\"span with escaped line break (&#13) character as role\" class=\"ex-generic\">x</span>\n<span role=\"&#9\" data-testname=\"span with escaped tab (&#9) as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n<span role=\"&#8203\" data-testname=\"span with escaped zero-width space as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n<span role=\"&#10240\" data-testname=\"span with escaped braille space (10240) as role\" class=\"ex-generic\">x</span>\n<span role=\"&#x2800\" data-testname=\"span with escaped braille space (x2800) as role\" class=\"ex-generic\">x</span>\n<span role=\"&nbsp;\" data-testname=\"span with escaped non-breaking space (nbsp) as role\" class=\"ex-generic\">x</span>\n<span role=\"&#20\" data-testname=\"span with escaped standard space (nbsp) as role\" class=\"ex-generic\">x</span>\n\n<!-- Unescaped whitespace tests with <span> (including line breaks, tabs, zero-width space, braille space, non-breaking space, standard space) -->\n  <span role=\" \" data-testname=\"span with empty character as role\" class=\"ex-generic\">x</span>\n  <span role=\"\n  \" data-testname=\"span with line break (&#13) character as role\" class=\"ex-generic\">x</span>\n  <span role=\"  \" data-testname=\"span with tab (&#9) as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n  <span role=\"\u200d\" data-testname=\"span with zero-width space as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n  <span role=\"\u2800\" data-testname=\"span with braille space (10240) as role\" class=\"ex-generic\">x</span>\n  <span role=\" \" data-testname=\"span with non-breaking space (nbsp) as role\" class=\"ex-generic\">x</span>\n  <span role=\" \" data-testname=\"span with standard space as role\" class=\"ex-generic\">x</span>\n\n<!-- Diacritics with <a> -->\n<a href=\"#\" role=\"&#771\" data-testname=\"link with role set to tilde diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"foo&#771\" data-testname=\"link with role foo that has tilde diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"&#773\" data-testname=\"link with role set to overline diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"foo&#773\" data-testname=\"link with role foo that has overline diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"&#813\" data-testname=\"link with role set to circumflex diacritic below\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"foo&#813\" data-testname=\"link with role foo that has circumflex diacritic below\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"button&#771\" data-testname=\"link with role set to button with tilde diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n\n<!-- Diacritics with <div> -->\n<div role=\"&#771\" data-testname=\"div with role set to tilde diacritic\" class=\"ex-generic\">x</div>\n<div role=\"foo&#771\" data-testname=\"div with role foo that has tilde diacritic\" class=\"ex-generic\">x</div>\n<div role=\"button&#771\" data-testname=\"div with role set to button with tilde diacritic\" class=\"ex-generic\">x</div>\n<div role=\"button\u00b4\" data-testname=\"div with role set to button with unescaped tilde diacritic\" class=\"ex-generic\">x</div>\n\n<!-- Zero-width joiners (e.g., ZWJ like emoji variants use) with <button> -->\n<!-- [sic] role=\"\u200d\" should include an invisible ZWJ], and role=\"link\u200d\" ends with an invisible ZWJ. Use caution when editing. -->\n<button role=\"\u200d\" data-testname=\"button with role set to zero-width joiner\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<button role=\"link\u200d\" data-testname=\"button with role set to foo with zero-width joiner\" data-expectedrole=\"button\" class=\"ex\">x</button>\n\n<!-- Non-western chars with <nav> -->\n<nav role=\"\u0398\" data-testname=\"nav with role set to theta (\u0398)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u0698\" data-testname=\"nav with role set to Persian character (\u0698)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u0698 \u266e\" data-testname=\"nav with multiple non-latin character roles, Persian character (\u0698) and \u266e\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u6f22\u5b57\" data-testname=\"nav with role set to Japanese kanji\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Non-western chars with <span> -->\n<span role=\"\u0398\" data-testname=\"span with role set to theta (\u0398)\" class=\"ex-generic\">x</span>\n<span role=\"\u0698\" data-testname=\"span with role set to Persian character (\u0698)\" class=\"ex-generic\">x</span>\n<span role=\"\u0698 \u266e\" data-testname=\"span with multiple non-latin character roles, Persian character (\u0698) and \u266e\" class=\"ex-generic\">x</span>\n<span role=\"\u6f22\u5b57\" data-testname=\"span with role set to Japanese kanji\" class=\"ex-generic\">x</span>\n\n<!-- RTL strings (Hebrew & Arabic) with <nav> -->\n<nav role=\"\u0633\u0644\u0627\u0645\" data-testname=\"nav with role set to Arabic text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u0633\u0644\u0627\u0645 \u062d\u0628\u064a\u0628\" data-testname=\"nav with multiple role assignments set to Arabic text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u05e9\u05dc\u05d5\u05dd\" data-testname=\"nav with role set to Hebrew text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u05e9\u05dc\u05d5\u05dd \u05d7\u05d1\u05e8\" data-testname=\"nav with multiple role assignments set to Hebrew text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- RTL strings (Hebrew & Arabic) with <div> -->\n<div role=\"\u0633\u0644\u0627\u0645\" data-testname=\"div with role set to Arabic text\" class=\"ex-generic\">x</div>\n<div role=\"\u0633\u0644\u0627\u0645 \u062d\u0628\u064a\u0628\" data-testname=\"div with multiple role assignments set to Arabic text\" class=\"ex-generic\">x</div>\n<div role=\"\u05e9\u05dc\u05d5\u05dd\" data-testname=\"div with role set to Hebrew text\" class=\"ex-generic\">x</div>\n<div role=\"\u05e9\u05dc\u05d5\u05dd \u05d7\u05d1\u05e8\" data-testname=\"div with multiple role assignments set to Hebrew text\" class=\"ex-generic\">x</div>\n\n<!-- Escaped chars, URL-encoded chars with <a> -->\n<a href=\"https://www.apple.com/\" role=\"&amp\" data-testname=\"link with role set to ampersand character\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"https://www.apple.com/\" role=\"&lt\" data-testname=\"link with role set to less than angle bracket character\" data-expectedrole=\"link\" class=\"ex\">x</a>\n\n<!-- Escaped chars, URL-encoded chars with <span> -->\n<span role=\"&amp\" data-testname=\"span with role set to ampersand character\" class=\"ex-generic\">x</span>\n<span role=\"&lt\" data-testname=\"span with role set to less than angle bracket character\" class=\"ex-generic\">x</span>\n<span role=\"&\" data-testname=\"span with role set to unescaped ampersand character\" class=\"ex-generic\">x</span>\n<span role=\"<\" data-testname=\"span with role set to unescaped less than angle bracket character\" class=\"ex-generic\">x</span>\n\n<!-- Backslash closing quote and other malformed roles with characters with <nav> -->\n<nav role=\"region\\\" data-testname=\"nav with role set to region followed by backslash\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\\region\" data-testname=\"nav with role set to backslash followed by region\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"re/gion\" data-testname=\"nav with role set to region with backslash after e character\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Backslash closing quote and other malformed roles with characters with <span> -->\n<span role=\"region\\\" data-testname=\"span with role set to region followed by backslash\" class=\"ex-generic\">x</span>\n<span role=\"\\region\" data-testname=\"span with role set to backslash followed by region\" class=\"ex-generic\">x</span>\n<span role=\"re/gion\" data-testname=\"span with role set to region with forward slash after e character\" class=\"ex-generic\">x</span>",
   -1  1181 		"html": "<style type=\"text/css\"></style><p>Tests invalid ARIA roles from <a href=\"https://w3c.github.io/aria/#document-handling_author-errors_roles\">9.1 Roles - handling author errors</a>.</p>\n\n<!-- Tests fallback for <nav> when 1/2/3 invalid roles are supplied -->\n<nav role=\"foo\" data-testname=\"nav with invalid role name foo\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"foo bar\" data-testname=\"nav with two invalid role names\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"foo bar baz\" data-testname=\"nav with three invalid role names\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Tests fallback for <button> when 1/2/3 invalid roles are supplied -->\n<button role=\"foo\" data-testname=\"button with invalid role name foo\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<button role=\"foo bar\" data-testname=\"button with two invalid role names\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<button role=\"foo bar baz\" data-testname=\"button with three invalid role names\" data-expectedrole=\"button\" class=\"ex\">x</button>\n\n<!-- Tests fallback for semantically neutral elements when 1/2/3 invalid roles are supplied -->\n<span role=\"foo\" data-testname=\"span with invalid role name foo\" class=\"ex-generic\">x</span>\n<span role=\"foo bar\" data-testname=\"span with two invalid role names\" class=\"ex-generic\">x</span>\n<span role=\"foo bar baz\" data-testname=\"span with three invalid role names\" class=\"ex-generic\">x</span>\n<div role=\"foo\" data-testname=\"div with invalid role name foo\" class=\"ex-generic\">x</div>\n<div role=\"foo bar\" data-testname=\"div with two invalid role names\" class=\"ex-generic\">x</div>\n<div role=\"foo bar baz\" data-testname=\"div with three invalid role names\"class=\"ex-generic\">x</div>\n\n<!-- Whitespace tests with <nav> (including line breaks, tabs, zero-width space, braille space, non-breaking space, standard space) -->\n<nav role=\" \" data-testname=\"nav with empty character as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#13\" data-testname=\"nav with line break (&#13) character as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#9\" data-testname=\"nav with tab (&#9) as role (should be treated as whitespace)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#8203\" data-testname=\"nav with zero-width space as role (should be treated as whitespace)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#10240\" data-testname=\"nav with braille space (10240) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#x2800\" data-testname=\"nav with braille space (x2800) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&nbsp;\" data-testname=\"nav with non-breaking space (nbsp) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"&#20\" data-testname=\"nav with standard space (nbsp) as role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Escaped whitespace tests with <span> (including line breaks, tabs, zero-width space, braille space, non-breaking space, standard space) -->\n<span role=\" \" data-testname=\"span with escaped empty character as role\" class=\"ex-generic\">x</span>\n<span role=\"&#13\" data-testname=\"span with escaped line break (&#13) character as role\" class=\"ex-generic\">x</span>\n<span role=\"&#9\" data-testname=\"span with escaped tab (&#9) as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n<span role=\"&#8203\" data-testname=\"span with escaped zero-width space as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n<span role=\"&#10240\" data-testname=\"span with escaped braille space (10240) as role\" class=\"ex-generic\">x</span>\n<span role=\"&#x2800\" data-testname=\"span with escaped braille space (x2800) as role\" class=\"ex-generic\">x</span>\n<span role=\"&nbsp;\" data-testname=\"span with escaped non-breaking space (nbsp) as role\" class=\"ex-generic\">x</span>\n<span role=\"&#20\" data-testname=\"span with escaped standard space (nbsp) as role\" class=\"ex-generic\">x</span>\n\n<!-- Unescaped whitespace tests with <span> (including line breaks, tabs, zero-width space, braille space, non-breaking space, standard space) -->\n  <span role=\" \" data-testname=\"span with empty character as role\" class=\"ex-generic\">x</span>\n  <span role=\"\n  \" data-testname=\"span with line break (&#13) character as role\" class=\"ex-generic\">x</span>\n  <span role=\"  \" data-testname=\"span with tab (&#9) as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n  <span role=\"\u200d\" data-testname=\"span with zero-width space as role (should be treated as whitespace)\" class=\"ex-generic\">x</span>\n  <span role=\"\u2800\" data-testname=\"span with braille space (10240) as role\" class=\"ex-generic\">x</span>\n  <span role=\" \" data-testname=\"span with non-breaking space (nbsp) as role\" class=\"ex-generic\">x</span>\n  <span role=\" \" data-testname=\"span with standard space as role\" class=\"ex-generic\">x</span>\n\n<!-- Diacritics with <a> -->\n<a href=\"#\" role=\"&#771\" data-testname=\"link with role set to tilde diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"foo&#771\" data-testname=\"link with role foo that has tilde diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"&#773\" data-testname=\"link with role set to overline diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"foo&#773\" data-testname=\"link with role foo that has overline diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"&#813\" data-testname=\"link with role set to circumflex diacritic below\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"foo&#813\" data-testname=\"link with role foo that has circumflex diacritic below\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"#\" role=\"button&#771\" data-testname=\"link with role set to button with tilde diacritic\" data-expectedrole=\"link\" class=\"ex\">x</a>\n\n<!-- Diacritics with <div> -->\n<div role=\"&#771\" data-testname=\"div with role set to tilde diacritic\" class=\"ex-generic\">x</div>\n<div role=\"foo&#771\" data-testname=\"div with role foo that has tilde diacritic\" class=\"ex-generic\">x</div>\n<div role=\"button&#771\" data-testname=\"div with role set to button with tilde diacritic\" class=\"ex-generic\">x</div>\n<div role=\"button\u00b4\" data-testname=\"div with role set to button with unescaped tilde diacritic\" class=\"ex-generic\">x</div>\n\n<!-- Zero-width joiners (e.g., ZWJ like emoji variants use) with <button> -->\n<!-- [sic] role=\"\u200d\" should include an invisible ZWJ], and role=\"link\u200d\" ends with an invisible ZWJ. Use caution when editing. -->\n<button role=\"\u200d\" data-testname=\"button with role set to zero-width joiner\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<button role=\"link\u200d\" data-testname=\"button with role set to foo with zero-width joiner\" data-expectedrole=\"button\" class=\"ex\">x</button>\n\n<!-- Non-western chars with <nav> -->\n<nav role=\"\u0398\" data-testname=\"nav with role set to theta (\u0398)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u0698\" data-testname=\"nav with role set to Persian character (\u0698)\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u0698 \u266e\" data-testname=\"nav with multiple non-latin character roles, Persian character (\u0698) and \u266e\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u6f22\u5b57\" data-testname=\"nav with role set to Japanese kanji\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Non-western chars with <span> -->\n<span role=\"\u0398\" data-testname=\"span with role set to theta (\u0398)\" class=\"ex-generic\">x</span>\n<span role=\"\u0698\" data-testname=\"span with role set to Persian character (\u0698)\" class=\"ex-generic\">x</span>\n<span role=\"\u0698 \u266e\" data-testname=\"span with multiple non-latin character roles, Persian character (\u0698) and \u266e\" class=\"ex-generic\">x</span>\n<span role=\"\u6f22\u5b57\" data-testname=\"span with role set to Japanese kanji\" class=\"ex-generic\">x</span>\n\n<!-- RTL strings (Hebrew & Arabic) with <nav> -->\n<nav role=\"\u0633\u0644\u0627\u0645\" data-testname=\"nav with role set to Arabic text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u0633\u0644\u0627\u0645 \u062d\u0628\u064a\u0628\" data-testname=\"nav with multiple role assignments set to Arabic text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u05e9\u05dc\u05d5\u05dd\" data-testname=\"nav with role set to Hebrew text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\u05e9\u05dc\u05d5\u05dd \u05d7\u05d1\u05e8\" data-testname=\"nav with multiple role assignments set to Hebrew text\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- RTL strings (Hebrew & Arabic) with <div> -->\n<div role=\"\u0633\u0644\u0627\u0645\" data-testname=\"div with role set to Arabic text\" class=\"ex-generic\">x</div>\n<div role=\"\u0633\u0644\u0627\u0645 \u062d\u0628\u064a\u0628\" data-testname=\"div with multiple role assignments set to Arabic text\" class=\"ex-generic\">x</div>\n<div role=\"\u05e9\u05dc\u05d5\u05dd\" data-testname=\"div with role set to Hebrew text\" class=\"ex-generic\">x</div>\n<div role=\"\u05e9\u05dc\u05d5\u05dd \u05d7\u05d1\u05e8\" data-testname=\"div with multiple role assignments set to Hebrew text\" class=\"ex-generic\">x</div>\n\n<!-- Escaped chars, URL-encoded chars with <a> -->\n<a href=\"https://www.apple.com/\" role=\"&amp\" data-testname=\"link with role set to ampersand character\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a href=\"https://www.apple.com/\" role=\"&lt\" data-testname=\"link with role set to less than angle bracket character\" data-expectedrole=\"link\" class=\"ex\">x</a>\n\n<!-- Escaped chars, URL-encoded chars with <span> -->\n<span role=\"&amp\" data-testname=\"span with role set to ampersand character\" class=\"ex-generic\">x</span>\n<span role=\"&lt\" data-testname=\"span with role set to less than angle bracket character\" class=\"ex-generic\">x</span>\n<span role=\"&\" data-testname=\"span with role set to unescaped ampersand character\" class=\"ex-generic\">x</span>\n<span role=\"<\" data-testname=\"span with role set to unescaped less than angle bracket character\" class=\"ex-generic\">x</span>\n\n<!-- Backslash closing quote and other malformed roles with characters with <nav> -->\n<nav role=\"region\\\" data-testname=\"nav with role set to region followed by backslash\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"\\region\" data-testname=\"nav with role set to backslash followed by region\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<nav role=\"re/gion\" data-testname=\"nav with role set to region with backslash after e character\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- Backslash closing quote and other malformed roles with characters with <span> -->\n<span role=\"region\\\" data-testname=\"span with role set to region followed by backslash\" class=\"ex-generic\">x</span>\n<span role=\"\\region\" data-testname=\"span with role set to backslash followed by region\" class=\"ex-generic\">x</span>\n<span role=\"re/gion\" data-testname=\"span with role set to region with forward slash after e character\" class=\"ex-generic\">x</span>",
 1182  1182 		"role": "generic",
 1183  1183 		"selector": ".ex-generic"
 1184  1184 	},
 1185  1185 	{
 1186  1186 		"filename": "list-roles.html",
 1187  1187 		"title": "List-related Role Verification Tests",
 1188    -1 		"html": "<p>Tests <a href=\"https://w3c.github.io/aria/#list\">list</a> and related roles.</p>\n\n<div role=\"list\" data-testname=\"first simple list\" data-expectedrole=\"list\" class=\"ex\">\n  <div role=\"listitem\" data-testname=\"first simple listitem\" data-expectedrole=\"listitem\" class=\"ex\">x</div>\n  <div role=\"listitem\" data-testname=\"last simple listitem\" data-expectedrole=\"listitem\" class=\"ex\">x</div>\n</div>\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>\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>",
 1189  1189 		"selector": ".ex"
 1190  1190 	},
 1191  1191 	{
 1192  1192 		"filename": "list-roles.html",
 1193  1193 		"title": "List-related Role Verification Tests",
 1194    -1 		"html": "<p>Tests <a href=\"https://w3c.github.io/aria/#list\">list</a> and related roles.</p>\n\n<div role=\"list\" data-testname=\"first simple list\" data-expectedrole=\"list\" class=\"ex\">\n  <div role=\"listitem\" data-testname=\"first simple listitem\" data-expectedrole=\"listitem\" class=\"ex\">x</div>\n  <div role=\"listitem\" data-testname=\"last simple listitem\" data-expectedrole=\"listitem\" class=\"ex\">x</div>\n</div>\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  1194 		"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  1195 		"role": "generic",
 1196  1196 		"selector": ".ex-generic"
 1197  1197 	},
 1198  1198 	{
 1199  1199 		"filename": "synonym-roles.html",
 1200  1200 		"title": "Region Role Verification Tests",
 1201    -1 		"html": "<p>Tests synonym roles image/img and none/presentation via <a href=\"https://w3c.github.io/core-aam/#roleMappingComputedRole\">Core-AAM Computed Role</a>.</p>\n\n<!-- spec resolution https://github.com/w3c/core-aam/issues/166 -->\n\n<div role=\"none\" id=\"none\" data-testname=\"none role == computedrole none\" class=\"ex-generic\">x</div><!-- preferred -->\n<div role=\"presentation\" id=\"presentation\" data-testname=\"synonym presentation role == computedrole none\" class=\"ex-generic\">x</div><!-- synonym -->\n\n<div role=\"image\" id=\"image\" data-expectedrole=\"image\" data-testname=\"image role == computedrole image\" class=\"ex\">x</div><!-- preferred -->\n<div role=\"img\" id=\"img\" data-expectedrole=\"image\" data-testname=\"synonym img role == computedrole image\" class=\"ex\">x</div><!-- synonym -->\n\n<!-- `directory` synonym deprecated in ARIA 1.2; these examples should all return computedrole `list` -->\n<ul role=\"list\" id=\"list2\" data-expectedrole=\"list\" data-testname=\"list role == computedrole list\" class=\"ex\"><li>x</li></ul>\n<ul role=\"directory\" id=\"directory\" data-expectedrole=\"list\" data-testname=\"directory role == computedrole list\" class=\"ex\"><li>x</li></ul>\n<div role=\"directory\" id=\"div\" data-expectedrole=\"list\" data-testname=\"div w/directory role == computedrole list\" class=\"ex\"><div role=\"listitem\">x</div></div>",
   -1  1201 		"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>",
 1202  1202 		"selector": ".ex"
 1203  1203 	},
 1204  1204 	{
 1205  1205 		"filename": "synonym-roles.html",
 1206  1206 		"title": "Region Role Verification Tests",
 1207    -1 		"html": "<p>Tests synonym roles image/img and none/presentation via <a href=\"https://w3c.github.io/core-aam/#roleMappingComputedRole\">Core-AAM Computed Role</a>.</p>\n\n<!-- spec resolution https://github.com/w3c/core-aam/issues/166 -->\n\n<div role=\"none\" id=\"none\" data-testname=\"none role == computedrole none\" class=\"ex-generic\">x</div><!-- preferred -->\n<div role=\"presentation\" id=\"presentation\" data-testname=\"synonym presentation role == computedrole none\" class=\"ex-generic\">x</div><!-- synonym -->\n\n<div role=\"image\" id=\"image\" data-expectedrole=\"image\" data-testname=\"image role == computedrole image\" class=\"ex\">x</div><!-- preferred -->\n<div role=\"img\" id=\"img\" data-expectedrole=\"image\" data-testname=\"synonym img role == computedrole image\" class=\"ex\">x</div><!-- synonym -->\n\n<!-- `directory` synonym deprecated in ARIA 1.2; these examples should all return computedrole `list` -->\n<ul role=\"list\" id=\"list2\" data-expectedrole=\"list\" data-testname=\"list role == computedrole list\" class=\"ex\"><li>x</li></ul>\n<ul role=\"directory\" id=\"directory\" data-expectedrole=\"list\" data-testname=\"directory role == computedrole list\" class=\"ex\"><li>x</li></ul>\n<div role=\"directory\" id=\"div\" data-expectedrole=\"list\" data-testname=\"div w/directory role == computedrole list\" class=\"ex\"><div role=\"listitem\">x</div></div>",
   -1  1207 		"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>",
 1208  1208 		"role": "generic",
 1209  1209 		"selector": ".ex-generic"
 1210  1210 	},
 1211  1211 	{
 1212  1212 		"filename": "tab-roles.html",
 1213  1213 		"title": "Tab-related Role Verification Tests",
 1214    -1 		"html": "<p>Tests <a href=\"https://w3c.github.io/aria/#tab\">tab</a> and related roles.</p>\n\n<!--<div> tab with tablist/tab/tabpanel semantics-->\n<div role=\"tablist\" data-testname=\"div role is tablist\" data-expectedrole=\"tablist\" class=\"ex\">\n    <div role=\"tab\" data-testname=\"role is tab (in div tablist)\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel (with sibling div tablist)\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n\n<!--<div> tabs with tablist/tab/tabpanel semantics, selection, no focus management-->\n<div role=\"tablist\" data-testname=\"div role is tablist (with selection)\" data-expectedrole=\"tablist\" class=\"ex\">\n    <div role=\"tab\" aria-selected=\"true\" data-testname=\"role is tab and tab is selected\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n    <div role=\"tab\" aria-selected=\"false\" data-testname=\"role is tab and tab is not selected\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel (faux selected)\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel (faux unselected)\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n\n<!--<div> tabs with tablist/tab/tabpanel semantics, selection, roving tabindex-->\n<div role=\"tablist\" data-testname=\"div role is tablist (with selection, roving tabindex)\" data-expectedrole=\"tablist\" class=\"ex\">\n    <div role=\"tab\" aria-selected=\"true\" tabindex = \"0\" data-testname=\"role is tab, tab is selected and in tab order\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n    <div role=\"tab\" aria-selected=\"false\" tabindex = \"-1\" data-testname=\"role is tab and tab is not selected, not tabbable\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n    <div role=\"tab\" aria-selected=\"false\" tabindex = \"-1\" data-testname=\"role is tab and tab is not selected, not tabbable (duplicate)\" data-expectedrole=\"tab\" class=\"ex\">z</div>\n</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel with selection, roving tabindex\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel with selection, roving tabindex (duplicate)\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel with selection, roving tabindex (duplicate 2)\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n\n<!--<div> tabs with tablist/tab/tabpanel semantics and non-empty tabpanel-->\n<div role=\"tablist\" data-testname=\"div role is tablist (with non-empty tabpanel)\" data-expectedrole=\"tablist\" class=\"ex\">\n    <div role=\"tab\" aria-selected=\"true\" data-testname=\"role is tab and tab is selected (with non-empty tabpanel content)\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n    <div role=\"tab\" aria-selected=\"false\" data-testname=\"role is tab and tab is not selected (with non-empty tabpanel content)\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel with selection, non-empty content\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab one's stuff</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel with selection, non-empty content (duplicate)\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab two's stuff</div>\n\n<!--<div> tabs with tablist/tab/tabpanel semantics, non-empty tabpanel and aria-controls-->\n<div role=\"tablist\" data-testname=\"div role is tablist (with non-empty tabpanel and aria-controls)\" data-expectedrole=\"tablist\" class=\"ex\">\n    <div role=\"tab\" aria-controls = \"tabpanel1\" aria-selected=\"true\" data-testname=\"role is tab, tab is selected (with aria-controls)\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n    <div role=\"tab\" aria-controls = \"tabpanel2\" aria-selected=\"false\" data-testname=\"role is tab, tab is not selected (with aria-controls)\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n</div>\n<div role=\"tabpanel\" id=\"tabpanel1\" data-testname=\"role is tabpanel with aria-controls and non-empty content\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab one's stuff</div>\n<div role=\"tabpanel\" id=\"tabpanel2\" data-testname=\"role is tabpanel with aria-controls and non-empty content (duplicate)\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab one's stuff</div>\n\n<!--<div> tablist with child <button> that has explicit role=\"tab\"-->\n<div role=\"tablist\" data-testname=\"div role for button parent container is tablist\" data-expectedrole=\"tablist\" class=\"ex\">\n    <button role=\"tab\" data-testname=\"button role is tab (in div tablist)\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n</div>\n\n<!--<ul> tablist with child <divs> that have explicit role=\"tab\"-->\n<ul role=\"tablist\" data-testname=\"ul role is tablist\" data-expectedrole=\"tablist\" class=\"ex\">\n    <li>\n        <div role=\"tab\" aria-selected=\"true\" tabindex = \"0\" data-testname=\"role is tab (within li), tab is selected and in tab order\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n    </li>\n    <li>\n        <div role=\"tab\" aria-selected=\"false\" tabindex = \"-1\" data-testname=\"role is tab (within li), tab is not selected and in tab order\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n    </li>\n</ul>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel as sibling to ul\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab one's stuff</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel as sibling to ul (duplicate)\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab two's stuff</div>\n\n<!--<ul> tablist with child <divs> that have explicit role=\"tab\", role=\"none\" on li elements-->\n    <ul role=\"tablist\" data-testname=\"ul role is tablist (child li have role none)\" data-expectedrole=\"tablist\" class=\"ex\">\n        <li role=\"none\">\n            <div role=\"tab\" aria-selected=\"true\" tabindex = \"0\" data-testname=\"role is tab (within li with role none), tab is selected and in tab order\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n        </li>\n        <li role=\"none\">\n            <div role=\"tab\" aria-selected=\"false\" tabindex = \"-1\" data-testname=\"role is tab (within li with role none), tab is not selected and in tab order\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n        </li>\n    </ul>\n    <div role=\"tabpanel\" data-testname=\"role is tabpanel as sibling to ul with child role none li elements\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab one's stuff</div>\n    <div role=\"tabpanel\" data-testname=\"role is tabpanel as sibling to ul with child role none li elements (duplicate)\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab two's stuff</div>\n\n<!--\n  CORE-AAM requires that, for elements with roles not contained in the\n  required context, user agents must ignore the role token and return the\n  computed role as if the ignored role token had not been included.\n  See https://w3c.github.io/core-aam/#roleMappingComputedRole\n-->\n<button role=\"tab\" data-testname=\"orphan button with tab role\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<span role=\"tab\" data-testname=\"orphan span with tab role\" class=\"ex-generic\">x</span>",
   -1  1214 		"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>",
 1215  1215 		"selector": ".ex"
 1216  1216 	},
 1217  1217 	{
 1218  1218 		"filename": "tab-roles.html",
 1219  1219 		"title": "Tab-related Role Verification Tests",
 1220    -1 		"html": "<p>Tests <a href=\"https://w3c.github.io/aria/#tab\">tab</a> and related roles.</p>\n\n<!--<div> tab with tablist/tab/tabpanel semantics-->\n<div role=\"tablist\" data-testname=\"div role is tablist\" data-expectedrole=\"tablist\" class=\"ex\">\n    <div role=\"tab\" data-testname=\"role is tab (in div tablist)\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel (with sibling div tablist)\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n\n<!--<div> tabs with tablist/tab/tabpanel semantics, selection, no focus management-->\n<div role=\"tablist\" data-testname=\"div role is tablist (with selection)\" data-expectedrole=\"tablist\" class=\"ex\">\n    <div role=\"tab\" aria-selected=\"true\" data-testname=\"role is tab and tab is selected\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n    <div role=\"tab\" aria-selected=\"false\" data-testname=\"role is tab and tab is not selected\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel (faux selected)\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel (faux unselected)\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n\n<!--<div> tabs with tablist/tab/tabpanel semantics, selection, roving tabindex-->\n<div role=\"tablist\" data-testname=\"div role is tablist (with selection, roving tabindex)\" data-expectedrole=\"tablist\" class=\"ex\">\n    <div role=\"tab\" aria-selected=\"true\" tabindex = \"0\" data-testname=\"role is tab, tab is selected and in tab order\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n    <div role=\"tab\" aria-selected=\"false\" tabindex = \"-1\" data-testname=\"role is tab and tab is not selected, not tabbable\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n    <div role=\"tab\" aria-selected=\"false\" tabindex = \"-1\" data-testname=\"role is tab and tab is not selected, not tabbable (duplicate)\" data-expectedrole=\"tab\" class=\"ex\">z</div>\n</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel with selection, roving tabindex\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel with selection, roving tabindex (duplicate)\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel with selection, roving tabindex (duplicate 2)\" data-expectedrole=\"tabpanel\" class=\"ex\"></div>\n\n<!--<div> tabs with tablist/tab/tabpanel semantics and non-empty tabpanel-->\n<div role=\"tablist\" data-testname=\"div role is tablist (with non-empty tabpanel)\" data-expectedrole=\"tablist\" class=\"ex\">\n    <div role=\"tab\" aria-selected=\"true\" data-testname=\"role is tab and tab is selected (with non-empty tabpanel content)\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n    <div role=\"tab\" aria-selected=\"false\" data-testname=\"role is tab and tab is not selected (with non-empty tabpanel content)\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel with selection, non-empty content\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab one's stuff</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel with selection, non-empty content (duplicate)\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab two's stuff</div>\n\n<!--<div> tabs with tablist/tab/tabpanel semantics, non-empty tabpanel and aria-controls-->\n<div role=\"tablist\" data-testname=\"div role is tablist (with non-empty tabpanel and aria-controls)\" data-expectedrole=\"tablist\" class=\"ex\">\n    <div role=\"tab\" aria-controls = \"tabpanel1\" aria-selected=\"true\" data-testname=\"role is tab, tab is selected (with aria-controls)\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n    <div role=\"tab\" aria-controls = \"tabpanel2\" aria-selected=\"false\" data-testname=\"role is tab, tab is not selected (with aria-controls)\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n</div>\n<div role=\"tabpanel\" id=\"tabpanel1\" data-testname=\"role is tabpanel with aria-controls and non-empty content\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab one's stuff</div>\n<div role=\"tabpanel\" id=\"tabpanel2\" data-testname=\"role is tabpanel with aria-controls and non-empty content (duplicate)\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab one's stuff</div>\n\n<!--<div> tablist with child <button> that has explicit role=\"tab\"-->\n<div role=\"tablist\" data-testname=\"div role for button parent container is tablist\" data-expectedrole=\"tablist\" class=\"ex\">\n    <button role=\"tab\" data-testname=\"button role is tab (in div tablist)\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n</div>\n\n<!--<ul> tablist with child <divs> that have explicit role=\"tab\"-->\n<ul role=\"tablist\" data-testname=\"ul role is tablist\" data-expectedrole=\"tablist\" class=\"ex\">\n    <li>\n        <div role=\"tab\" aria-selected=\"true\" tabindex = \"0\" data-testname=\"role is tab (within li), tab is selected and in tab order\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n    </li>\n    <li>\n        <div role=\"tab\" aria-selected=\"false\" tabindex = \"-1\" data-testname=\"role is tab (within li), tab is not selected and in tab order\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n    </li>\n</ul>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel as sibling to ul\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab one's stuff</div>\n<div role=\"tabpanel\" data-testname=\"role is tabpanel as sibling to ul (duplicate)\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab two's stuff</div>\n\n<!--<ul> tablist with child <divs> that have explicit role=\"tab\", role=\"none\" on li elements-->\n    <ul role=\"tablist\" data-testname=\"ul role is tablist (child li have role none)\" data-expectedrole=\"tablist\" class=\"ex\">\n        <li role=\"none\">\n            <div role=\"tab\" aria-selected=\"true\" tabindex = \"0\" data-testname=\"role is tab (within li with role none), tab is selected and in tab order\" data-expectedrole=\"tab\" class=\"ex\">x</div>\n        </li>\n        <li role=\"none\">\n            <div role=\"tab\" aria-selected=\"false\" tabindex = \"-1\" data-testname=\"role is tab (within li with role none), tab is not selected and in tab order\" data-expectedrole=\"tab\" class=\"ex\">y</div>\n        </li>\n    </ul>\n    <div role=\"tabpanel\" data-testname=\"role is tabpanel as sibling to ul with child role none li elements\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab one's stuff</div>\n    <div role=\"tabpanel\" data-testname=\"role is tabpanel as sibling to ul with child role none li elements (duplicate)\" data-expectedrole=\"tabpanel\" class=\"ex\">Tab two's stuff</div>\n\n<!--\n  CORE-AAM requires that, for elements with roles not contained in the\n  required context, user agents must ignore the role token and return the\n  computed role as if the ignored role token had not been included.\n  See https://w3c.github.io/core-aam/#roleMappingComputedRole\n-->\n<button role=\"tab\" data-testname=\"orphan button with tab role\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<span role=\"tab\" data-testname=\"orphan span with tab role\" class=\"ex-generic\">x</span>",
   -1  1220 		"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  1221 		"role": "generic",
 1222  1222 		"selector": ".ex-generic"
 1223  1223 	},
 1224  1224 	{
 1225  1225 		"filename": "table-roles.html",
 1226  1226 		"title": "Table Role Verification Tests",
 1227    -1 		"html": "<p>Tests <a href=\"https://w3c.github.io/aria/#table\">table</a> and related roles.</p>\n\n<!-- HTML <table> Elements Testing  -->\n\n    <!-- <caption> -> wpt/html-aam/table-roles.html -->\n\n    <!-- <table> -> wpt/html-aam/table-roles.html -->\n    <!-- <tbody> -> wpt/html-aam/table-roles.html -->\n\n    <!-- <td> -> wpt/html-aam/table-roles.html -->\n\n    <!-- <tfoot> -> wpt/html-aam/table-roles.html -->\n\n    <!-- <th> -> wpt/html-aam/table-roles.html -->\n    <!-- <thead> -> wpt/html-aam/table-roles.html -->\n\n    <!-- <tr> -> wpt/html-aam/table-roles.html -->\n\n\n<!-- ARIA Grid Elements Testing  -->\n\n        <!-- Grid roles tested in ./grid-roles.html -->\n\n\n<!-- ARIA Table Roles Testing  -->\n\n    <!-- caption -->\n    <div role=\"table\">\n        <div role=\"caption\" data-testname=\"div role is caption (in div with table role)\" data-expectedrole=\"caption\" class=\"ex\">x</div>\n    </div>\n\n    <p role=\"caption\" data-testname=\"orphan p role is caption\" data-expectedrole=\"caption\" class=\"ex\">x</p>\n\n    <!-- cell -->\n    <div role=\"table\">\n        <div role=\"rowgroup\">\n            <div role=\"row\">\n              <span role=\"columnheader\">x</span>\n              <span role=\"columnheader\">x</span>\n            </div>\n        </div>\n        <div role=\"rowgroup\">\n            <div role=\"row\">\n                <span role=\"cell\" data-testname=\"span role is cell (in div with row role, in div with rowgroup role, in div with table role)\" data-expectedrole=\"cell\" class=\"ex\">x</span>\n                <span role=\"cell\">x</span>\n            </div>\n        </div>\n    </div>\n\n    <span role=\"cell\" data-testname=\"orphan span role is cell\" data-expectedrole=\"cell\" class=\"ex\">x</span>\n\n    <!-- columnheader -->\n    <div role=\"table\">\n        <div role=\"rowgroup\">\n            <div role=\"row\">\n                <span role=\"columnheader\" data-testname=\"span role is columnheader (in div with row role, in div with rowgroup role, in div with table role)\" data-expectedrole=\"columnheader\" class=\"ex\">x</span>\n                <span role=\"columnheader\">x</span>\n                <span role=\"columnheader\">x</span>\n            </div>\n        </div>\n        <div role=\"rowgroup\">\n            <div role=\"row\">\n                <span role=\"rowheader\">x</span>\n                <span role=\"cell\">x</span>\n                <span role=\"cell\">x</span>\n            </div>\n        </div>\n    </div>\n\n    <!-- columnheader, orphaned -> ./grid-roles.html -->\n\n    <!-- row -->\n    <div role=\"table\">\n        <div role=\"rowgroup\">\n            <div role=\"row\" data-testname=\"div role is row (in div with rowgroup role, in div with table role)\" data-expectedrole=\"row\" class=\"ex\">\n                <span role=\"columnheader\">x</span>\n            </div>\n        </div>\n        <div role=\"rowgroup\">\n            <div role=\"row\">\n                <span role=\"cell\">x</span>\n            </div>\n        </div>\n    </div>\n\n    <!-- row, orphaned -> ./grid-roles.html -->\n\n    <!-- rowgroup -->\n    <div role=\"table\">\n        <div role=\"rowgroup\" data-testname=\"div role is rowgroup (in div with table role)\" data-expectedrole=\"rowgroup\" class=\"ex\">\n            <div role=\"row\">\n                <span role=\"columnheader\">x</span>\n                <span role=\"columnheader\">x</span>\n            </div>\n        </div>\n        <div role=\"rowgroup\">\n            <div role=\"row\">\n                <span role=\"cell\">x</span>\n                <span role=\"cell\">x</span>\n            </div>\n        </div>\n    </div>\n\n    <!-- rowgroup, orphaned -> ./grid-roles.html -->\n\n    <!-- rowheader -->\n    <div role=\"table\">\n        <div role=\"rowgroup\">\n            <div role=\"row\">\n                <span role=\"columnheader\">x</span>\n                <span role=\"columnheader\">x</span>\n                <span role=\"columnheader\">x</span>\n            </div>\n        </div>\n        <div role=\"rowgroup\">\n            <div role=\"row\">\n                <span role=\"rowheader\" data-testname=\"role is rowheader (in div with row role, in div with rowgroup role, in div with table role)\" data-expectedrole=\"rowheader\" class=\"ex\">x</span>\n                <span role=\"cell\">x</span>\n                <span role=\"cell\">x</span>\n                <span role=\"cell\">x</span>\n            </div>\n        </div>\n      </div>\n\n    <!-- rowheader, orphaned -> ./grid-roles.html -->\n\n    <!-- table -->\n    <div role=\"table\" data-testname=\"div role is table\" data-expectedrole=\"table\" class=\"ex\">\n        <div role=\"row\">\n            <span role=\"columnheader\">x</span>\n            <span role=\"columnheader\">x</span>\n        </div>\n        <div role=\"row\">\n            <span role=\"cell\">x</span>\n            <span role=\"cell\">x</span>\n        </div>\n    </div>",
   -1  1227 		"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>",
 1228  1228 		"selector": ".ex"
 1229  1229 	},
 1230  1230 	{
 1231  1231 		"filename": "region-roles.html",
 1232  1232 		"title": "Region Role Verification Tests",
 1233    -1 		"html": "<p>Tests <a href=\"https://w3c.github.io/aria/#region\">region</a> and related roles, as well as the \"name from author\" rule in <a href=\"https://w3c.github.io/aria/#document-handling_author-errors_roles\">9.1 Roles - handling author errors</a>.</p>\n\n<!-- no label -->\n<nav role=\"region\" data-testname=\"region without label\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- w/ label -->\n<nav role=\"region\" data-testname=\"region with label\" data-expectedrole=\"region\" aria-label=\"x\" class=\"ex\">x</nav>",
   -1  1233 		"html": "<style type=\"text/css\"></style><p>Tests <a href=\"https://w3c.github.io/aria/#region\">region</a> and related roles, as well as the \"name from author\" rule in <a href=\"https://w3c.github.io/aria/#document-handling_author-errors_roles\">9.1 Roles - handling author errors</a>.</p>\n\n<!-- no label -->\n<nav role=\"region\" data-testname=\"region without label\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- w/ label -->\n<nav role=\"region\" data-testname=\"region with label\" data-expectedrole=\"region\" aria-label=\"x\" class=\"ex\">x</nav>",
 1234  1234 		"selector": ".ex"
 1235  1235 	},
 1236  1236 	{
 1237  1237 		"filename": "button-roles.html",
 1238  1238 		"title": "Button-related Role Verification Tests",
 1239    -1 		"html": "<p>Tests <a href=\"https://w3c.github.io/aria/#button\">button</a> and related roles.</p>\n\n<div role=\"button\" aria-haspopup=\"false\" data-testname=\"button aria-haspopup false\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-haspopup=\"true\" data-testname=\"button aria-haspopup true\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-haspopup=\"menu\" data-testname=\"button aria-haspopup menu\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-haspopup=\"dialog\" data-testname=\"button aria-haspopup dialog\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-haspopup=\"listbox\" data-testname=\"button aria-haspopup listbox\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-haspopup=\"tree\" data-testname=\"button aria-haspopup tree\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-haspopup=\"grid\" data-testname=\"button aria-haspopup grid\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-pressed=\"true\" data-testname=\"button aria-pressed true\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-pressed=\"false\" data-testname=\"button aria-pressed false\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-pressed=\"\" data-testname=\"button aria-pressed undefined\" data-expectedrole=\"button\" class=\"ex\"></div>",
   -1  1239 		"html": "<style type=\"text/css\"></style><p>Tests <a href=\"https://w3c.github.io/aria/#button\">button</a> and related roles.</p>\n\n<div role=\"button\" aria-haspopup=\"false\" data-testname=\"button aria-haspopup false\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-haspopup=\"true\" data-testname=\"button aria-haspopup true\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-haspopup=\"menu\" data-testname=\"button aria-haspopup menu\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-haspopup=\"dialog\" data-testname=\"button aria-haspopup dialog\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-haspopup=\"listbox\" data-testname=\"button aria-haspopup listbox\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-haspopup=\"tree\" data-testname=\"button aria-haspopup tree\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-haspopup=\"grid\" data-testname=\"button aria-haspopup grid\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-pressed=\"true\" data-testname=\"button aria-pressed true\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-pressed=\"false\" data-testname=\"button aria-pressed false\" data-expectedrole=\"button\" class=\"ex\"></div>\n<div role=\"button\" aria-pressed=\"\" data-testname=\"button aria-pressed undefined\" data-expectedrole=\"button\" class=\"ex\"></div>",
 1240  1240 		"selector": ".ex"
 1241  1241 	},
 1242  1242 	{
 1243  1243 		"filename": "tree-roles.html",
 1244  1244 		"title": "Tree related Role Verification Tests",
 1245    -1 		"html": "<p>Tests <a href=\"https://w3c.github.io/aria/#tree\">tree</a> and related roles.</p>\n\n<ul role=\"tree\" data-testname=\"role is tree\" data-expectedrole=\"tree\" class=\"ex\">\n  <li role=\"treeitem\" data-testname=\"role is treeitem (in tree)\" data-expectedrole=\"treeitem\" class=\"ex\">\n    x\n    <ul role=\"group\" data-testname=\"role is group (in treeitem)\" data-expectedrole=\"group\" class=\"ex\">\n      <li role=\"treeitem\" data-testname=\"role is treeitem (in group, in treeitem)\" data-expectedrole=\"treeitem\" class=\"ex\">x</li>\n      <li role=\"treeitem\">x</li>\n    </ul>\n  </li>\n  <li role=\"treeitem\">x</li>\n</ul>\n\n<table role=\"treegrid\" data-testname=\"role is treegrid\" data-expectedrole=\"treegrid\" class=\"ex\">\n  <tbody>\n    <tr role=\"row\" aria-expanded=\"true\" aria-level=\"1\" aria-posinset=\"1\" aria-setsize=\"2\" data-testname=\"role is row (in treegrid)\" data-expectedrole=\"row\" class=\"ex expander\">\n      <td role=\"gridcell\" data-testname=\"role is gridcell (in row, in treegrid)\" data-expectedrole=\"gridcell\" class=\"ex\">x</td>\n      <td role=\"gridcell\">x</td>\n      <td role=\"gridcell\">x</td>\n    </tr>\n    <tr role=\"row\" aria-level=\"2\" aria-posinset=\"1\" aria-setsize=\"2\">\n      <td role=\"gridcell\">x</td>\n      <td role=\"gridcell\">x</td>\n      <td role=\"gridcell\">x</td>\n    </tr>\n    <tr aria-expanded=\"false\" aria-level=\"2\" aria-posinset=\"2\" aria-setsize=\"2\" role=\"row\" class=\"expander\">\n      <td role=\"gridcell\">x</td>\n      <td role=\"gridcell\">x</td>\n      <td role=\"gridcell\">x</td>\n    </tr>\n    <tr role=\"row\" aria-level=\"3\" aria-posinset=\"1\" aria-setsize=\"1\" class=\"hidden\">\n      <td role=\"gridcell\">x</td>\n      <td role=\"gridcell\">x</td>\n      <td role=\"gridcell\">x</td>\n    </tr>\n    <tr role=\"row\" aria-expanded=\"false\" aria-level=\"1\" aria-posinset=\"2\" aria-setsize=\"2\" class=\"expander\">\n      <td role=\"gridcell\">x</td>\n      <td role=\"gridcell\">x</td>\n      <td role=\"gridcell\">x</td>\n    </tr>\n    <tr role=\"row\" aria-level=\"2\" aria-posinset=\"1\" aria-setsize=\"2\" class=\"hidden\">\n      <td role=\"gridcell\">x</td>\n      <td role=\"gridcell\">x</td>\n      <td role=\"gridcell\">x</td>\n    </tr>\n    <tr role=\"row\" aria-level=\"2\" aria-posinset=\"1\" aria-setsize=\"2\" class=\"hidden\">\n      <td role=\"gridcell\">x</td>\n      <td role=\"gridcell\">x</td>\n      <td role=\"gridcell\">x</td>\n    </tr>\n  </tbody>\n</table>\n\n<!--\n  CORE-AAM requires that, for elements with roles not contained in the\n  required context, user agents must ignore the role token and return the\n  computed role as if the ignored role token had not been included.\n  See https://w3c.github.io/core-aam/#roleMappingComputedRole\n-->\n<nav role=\"treeitem\" data-testname=\"orphaned treeitem outside the context of tree\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n<button role=\"treeitem\" data-testname=\"orphaned button with treeitem role outside tree context\" data-expectedrole=\"button\" class=\"ex\">x</button>",
   -1  1245 		"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>",
 1246  1246 		"selector": ".ex"
 1247  1247 	},
 1248  1248 	{
 1249  1249 		"filename": "form-roles.html",
 1250  1250 		"title": "Form Role Verification Tests",
 1251    -1 		"html": "<p>Verifies <a href=\"https://w3c.github.io/aria/#document-handling_author-errors_roles\">9.1 Roles - handling author errors</a> and the <a href=\"https://w3c.github.io/aria/#form\">form</a> role.</p>\n\n\n<!-- no label -->\n<nav role=\"form\" data-testname=\"form without label\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- w/ label -->\n<nav role=\"form\" data-testname=\"form with label\" data-expectedrole=\"form\" aria-label=\"x\" class=\"ex\">x</nav>",
   -1  1251 		"html": "<style type=\"text/css\"></style><p>Verifies <a href=\"https://w3c.github.io/aria/#document-handling_author-errors_roles\">9.1 Roles - handling author errors</a> and the <a href=\"https://w3c.github.io/aria/#form\">form</a> role.</p>\n\n\n<!-- no label -->\n<nav role=\"form\" data-testname=\"form without label\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n\n<!-- w/ label -->\n<nav role=\"form\" data-testname=\"form with label\" data-expectedrole=\"form\" aria-label=\"x\" class=\"ex\">x</nav>",
 1252  1252 		"selector": ".ex"
 1253  1253 	},
 1254  1254 	{
 1255  1255 		"filename": "generic-roles.html",
 1256  1256 		"title": "Generic Role Verification Tests",
 1257    -1 		"html": "<p>Tests <a href=\"https://w3c.github.io/aria/#generic\">generic</a>.</p>\n\n<p role=\"generic\" data-testname=\"generic role on p element is generic\" class=\"ex-generic\">x</p>",
   -1  1257 		"html": "<style type=\"text/css\"></style><p>Tests <a href=\"https://w3c.github.io/aria/#generic\">generic</a>.</p>\n\n<p role=\"generic\" data-testname=\"generic role on p element is generic\" class=\"ex-generic\">x</p>",
 1258  1258 		"role": "generic",
 1259  1259 		"selector": ".ex-generic"
 1260  1260 	},
 1261  1261 	{
 1262  1262 		"filename": "contextual-roles.html",
 1263  1263 		"title": "Contextual Role Verification Tests",
 1264    -1 		"html": "<p>Verifies Required Accessibility Parent Roles from <a href=\"https://w3c.github.io/aria/#scope\">5.2.7 Required Accessibility Parent Role</a></p>\n    <p>Also verifies Allowed Accessibility Child Roles from <a href=\"https://w3c.github.io/aria/#mustContain\">5.2.6 Allowed Accessibility Child Roles</a></p>\n\n<!-- Notes for \"required context\" testing:\n\n    - See Computed Role for more details on role computation when an element lacks required context:\n    https://w3c.github.io/core-aam/#roleMappingComputedRole\n\n    - See ARIA spec for full listing of \"Required Accessibility Parent Role\" for each element:\n    https://w3c.github.io/aria/#scope\n\n    Identified roles with \"Required Context\" excluding abstract roles (e.g., child -> parent):\n\n    - caption -> {figure, grid, table, treegrid}\n    - cell -> row\n    - columnheader -> row\n    - gridcell -> row\n    - listitem -> {list, directory} *Note: directory role is deprecated as of ARIA 1.2\n    - menuitem -> {group, menu, menubar}\n    - menuitemcheckbox -> {group, menu, menubar}\n    - menuitemradio -> {group, menu, menubar}\n    - option -> {group, listbox}\n    - row -> {grid, rowgroup, table, treegrid}\n    - rowgroup -> {grid, table, treegrid}\n    - rowheader -> row\n    - tab -> tablist\n    - treeitem -> {group, tree}\n\n    -->\n\n<!-- Required Context Roles Testing  -->\n\n    <!-- caption -> ./table-roles.html -->\n\n    <!-- cell -> ./table-roles.html -->\n\n    <!-- columnheader -> ./grid-roles.html, ./table-roles.html -->\n\n    <!-- gridcell -> ./grid-roles.html -->\n\n    <!-- listitem -> ./list-roles.html -->\n\n    <!-- menuitem, menuitemcheckbox, menuitemradio -> ./menu-roles.html -->\n\n    <!-- option -> ./listbox-roles.html -->\n\n    <!-- row -> ./grid-roles.html, ./table-roles.html  -->\n\n    <!-- rowgroup -> ./grid-roles.html, ./table-roles.html -->\n\n    <!-- rowheader -> ./grid-roles.html, ./table-roles.html -->\n\n    <!-- tab -> ./tab-roles.html -->\n\n    <!-- treeitem -> ./tree-roles.html -->\n\n<!-- Misc Contextual Role Testing  -->\n\n    <!-- Testing contentinfo role computation when scoped to <main> or not:\n    1. If <footer> is a descendant of <main>, it should become 'generic'\n    2. If <footer> is scoped to <body>, it should be 'contentinfo' as expected\n\n    see: https://w3c.github.io/html-aam/#el-footer-ancestorbody -->\n    <main>\n        <footer data-testname=\"footer element scoped to main element is generic\" class=\"ex-generic\">x</footer>\n    </main>\n\n    <footer data-testname=\"footer scoped to body element is contentinfo\" data-expectedrole=\"contentinfo\" class=\"ex\">x</footer>\n    <div role=\"contentinfo\" data-testname=\"contentinfo region scoped to body element is contentinfo\" data-expectedrole=\"contentinfo\" class=\"ex\">x</div>",
   -1  1264 		"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>",
 1265  1265 		"selector": ".ex"
 1266  1266 	},
 1267  1267 	{
 1268  1268 		"filename": "contextual-roles.html",
 1269  1269 		"title": "Contextual Role Verification Tests",
 1270    -1 		"html": "<p>Verifies Required Accessibility Parent Roles from <a href=\"https://w3c.github.io/aria/#scope\">5.2.7 Required Accessibility Parent Role</a></p>\n    <p>Also verifies Allowed Accessibility Child Roles from <a href=\"https://w3c.github.io/aria/#mustContain\">5.2.6 Allowed Accessibility Child Roles</a></p>\n\n<!-- Notes for \"required context\" testing:\n\n    - See Computed Role for more details on role computation when an element lacks required context:\n    https://w3c.github.io/core-aam/#roleMappingComputedRole\n\n    - See ARIA spec for full listing of \"Required Accessibility Parent Role\" for each element:\n    https://w3c.github.io/aria/#scope\n\n    Identified roles with \"Required Context\" excluding abstract roles (e.g., child -> parent):\n\n    - caption -> {figure, grid, table, treegrid}\n    - cell -> row\n    - columnheader -> row\n    - gridcell -> row\n    - listitem -> {list, directory} *Note: directory role is deprecated as of ARIA 1.2\n    - menuitem -> {group, menu, menubar}\n    - menuitemcheckbox -> {group, menu, menubar}\n    - menuitemradio -> {group, menu, menubar}\n    - option -> {group, listbox}\n    - row -> {grid, rowgroup, table, treegrid}\n    - rowgroup -> {grid, table, treegrid}\n    - rowheader -> row\n    - tab -> tablist\n    - treeitem -> {group, tree}\n\n    -->\n\n<!-- Required Context Roles Testing  -->\n\n    <!-- caption -> ./table-roles.html -->\n\n    <!-- cell -> ./table-roles.html -->\n\n    <!-- columnheader -> ./grid-roles.html, ./table-roles.html -->\n\n    <!-- gridcell -> ./grid-roles.html -->\n\n    <!-- listitem -> ./list-roles.html -->\n\n    <!-- menuitem, menuitemcheckbox, menuitemradio -> ./menu-roles.html -->\n\n    <!-- option -> ./listbox-roles.html -->\n\n    <!-- row -> ./grid-roles.html, ./table-roles.html  -->\n\n    <!-- rowgroup -> ./grid-roles.html, ./table-roles.html -->\n\n    <!-- rowheader -> ./grid-roles.html, ./table-roles.html -->\n\n    <!-- tab -> ./tab-roles.html -->\n\n    <!-- treeitem -> ./tree-roles.html -->\n\n<!-- Misc Contextual Role Testing  -->\n\n    <!-- Testing contentinfo role computation when scoped to <main> or not:\n    1. If <footer> is a descendant of <main>, it should become 'generic'\n    2. If <footer> is scoped to <body>, it should be 'contentinfo' as expected\n\n    see: https://w3c.github.io/html-aam/#el-footer-ancestorbody -->\n    <main>\n        <footer data-testname=\"footer element scoped to main element is generic\" class=\"ex-generic\">x</footer>\n    </main>\n\n    <footer data-testname=\"footer scoped to body element is contentinfo\" data-expectedrole=\"contentinfo\" class=\"ex\">x</footer>\n    <div role=\"contentinfo\" data-testname=\"contentinfo region scoped to body element is contentinfo\" data-expectedrole=\"contentinfo\" class=\"ex\">x</div>",
   -1  1270 		"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  1271 		"role": "generic",
 1272  1272 		"selector": ".ex-generic"
 1273  1273 	},
 1274  1274 	{
 1275  1275 		"filename": "listbox-roles.html",
 1276  1276 		"title": "Listbox-related Role Verification Tests",
 1277    -1 		"html": "<p>Tests <a href=\"https://w3c.github.io/aria/#listbox\">listbox</a> and related roles.</p>\n\n<div role=\"listbox\" data-testname=\"div role is listbox\" data-expectedrole=\"listbox\" class=\"ex\">\n    <div role=\"option\" data-testname=\"role is option (in div listbox)\" data-expectedrole=\"option\" class=\"ex\">x</div>\n    <div role=\"group\" data-testname=\"role is group (in div listbox)\" data-expectedrole=\"group\" class=\"ex\">\n        <span role=\"option\" data-testname=\"role is option (in group, in div listbox)\" data-expectedrole=\"option\" class=\"ex\">x</span>\n        <span role=\"option\">x</span>\n    </div>\n    <div role=\"option\">x</div>\n</div>\n\n<ul role=\"listbox\" data-testname=\"ul role is listbox\" data-expectedrole=\"listbox\" class=\"ex\">\n    <li role=\"option\" data-testname=\"li role is option (in ul listbox)\" data-expectedrole=\"option\" class=\"ex\">\n        x\n    </li>\n    <li role=\"option\">\n        x\n    </li>\n</ul>\n\n<!--\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  1277 		"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>",
 1278  1278 		"selector": ".ex"
 1279  1279 	},
 1280  1280 	{
 1281  1281 		"filename": "grid-roles.html",
 1282  1282 		"title": "Grid Role Verification Tests",
 1283    -1 		"html": "<p>Tests <a href=\"https://w3c.github.io/aria/#grid\">grid</a> and related roles.</p>\n\n  <!-- ARIA table roles tested in ./table-roles.html -->\n\n  <div role=\"grid\" data-testname=\"role is grid\" data-expectedrole=\"grid\" class=\"ex\">\n    <div role=\"row\" data-testname=\"role is row (in grid)\" data-expectedrole=\"row\" class=\"ex\">\n      <span role=\"columnheader\" data-testname=\"role is columnheader (in row, in grid)\" data-expectedrole=\"columnheader\" class=\"ex\">x</span>\n      <span role=\"columnheader\">x</span>\n    </div>\n    <div role=\"row\">\n      <span role=\"rowheader\" data-testname=\"role is rowheader (in row, in grid)\" data-expectedrole=\"rowheader\" class=\"ex\">x</span>\n      <span role=\"gridcell\" data-testname=\"role is gridcell (in row, in grid)\" data-expectedrole=\"gridcell\" class=\"ex\">x</span>\n    </div>\n  </div>\n\n  <div role=\"grid\">\n    <div role=\"rowgroup\" data-testname=\"role is rowgroup (in grid)\" data-expectedrole=\"rowgroup\" class=\"ex\">\n      <div role=\"row\" data-testname=\"role is row (in rowgroup, in grid)\" data-expectedrole=\"row\" class=\"ex\">\n        <span role=\"columnheader\" data-testname=\"role is columnheader (in row, in rowgroup, in grid)\" data-expectedrole=\"columnheader\" class=\"ex\">x</span>\n        <span role=\"columnheader\">x</span>\n        <span role=\"columnheader\">x</span>\n      </div>\n    </div>\n    <div role=\"rowgroup\">\n      <div role=\"row\">\n        <span role=\"rowheader\" data-testname=\"role is rowheader (in row, in rowgroup, in grid)\" data-expectedrole=\"rowheader\" class=\"ex\">x</span>\n        <span role=\"gridcell\" data-testname=\"role is gridcell (in row, in rowgroup, in grid)\" data-expectedrole=\"gridcell\" class=\"ex\">x</span>\n        <span role=\"gridcell\">x</span>\n      </div>\n    </div>\n  </div>\n\n  <!--\n    CORE-AAM requires that, for elements with roles not contained in the\n    required context, user agents must ignore the role token and return the\n    computed role as if the ignored role token had not been included.\n    See https://w3c.github.io/core-aam/#roleMappingComputedRole\n  -->\n  <span role=\"row\" data-testname=\"orphaned row outside the context of table\" class=\"ex-generic\">x</span>\n  <span role=\"rowgroup\" data-testname=\"orphaned rowgroup outside the context of row\" class=\"ex-generic\">x</span>\n  <div role=\"gridcell\" data-testname=\"orphaned div with gridcell role outside the context of row\" class=\"ex-generic\">x</div>\n  <button role=\"gridcell\" data-testname=\"orphaned button with gridcell role outside the context of row\" data-expectedrole=\"button\" class=\"ex\">x</button>\n  <div role=\"rowheader\" data-testname=\"orphaned rowheader outside the context of row\" class=\"ex-generic\">x</div>\n  <div role=\"columnheader\" data-testname=\"orphaned columnheader outside the context of row\" class=\"ex-generic\">x</div>",
   -1  1283 		"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>",
 1284  1284 		"selector": ".ex"
 1285  1285 	},
 1286  1286 	{
 1287  1287 		"filename": "grid-roles.html",
 1288  1288 		"title": "Grid Role Verification Tests",
 1289    -1 		"html": "<p>Tests <a href=\"https://w3c.github.io/aria/#grid\">grid</a> and related roles.</p>\n\n  <!-- ARIA table roles tested in ./table-roles.html -->\n\n  <div role=\"grid\" data-testname=\"role is grid\" data-expectedrole=\"grid\" class=\"ex\">\n    <div role=\"row\" data-testname=\"role is row (in grid)\" data-expectedrole=\"row\" class=\"ex\">\n      <span role=\"columnheader\" data-testname=\"role is columnheader (in row, in grid)\" data-expectedrole=\"columnheader\" class=\"ex\">x</span>\n      <span role=\"columnheader\">x</span>\n    </div>\n    <div role=\"row\">\n      <span role=\"rowheader\" data-testname=\"role is rowheader (in row, in grid)\" data-expectedrole=\"rowheader\" class=\"ex\">x</span>\n      <span role=\"gridcell\" data-testname=\"role is gridcell (in row, in grid)\" data-expectedrole=\"gridcell\" class=\"ex\">x</span>\n    </div>\n  </div>\n\n  <div role=\"grid\">\n    <div role=\"rowgroup\" data-testname=\"role is rowgroup (in grid)\" data-expectedrole=\"rowgroup\" class=\"ex\">\n      <div role=\"row\" data-testname=\"role is row (in rowgroup, in grid)\" data-expectedrole=\"row\" class=\"ex\">\n        <span role=\"columnheader\" data-testname=\"role is columnheader (in row, in rowgroup, in grid)\" data-expectedrole=\"columnheader\" class=\"ex\">x</span>\n        <span role=\"columnheader\">x</span>\n        <span role=\"columnheader\">x</span>\n      </div>\n    </div>\n    <div role=\"rowgroup\">\n      <div role=\"row\">\n        <span role=\"rowheader\" data-testname=\"role is rowheader (in row, in rowgroup, in grid)\" data-expectedrole=\"rowheader\" class=\"ex\">x</span>\n        <span role=\"gridcell\" data-testname=\"role is gridcell (in row, in rowgroup, in grid)\" data-expectedrole=\"gridcell\" class=\"ex\">x</span>\n        <span role=\"gridcell\">x</span>\n      </div>\n    </div>\n  </div>\n\n  <!--\n    CORE-AAM requires that, for elements with roles not contained in the\n    required context, user agents must ignore the role token and return the\n    computed role as if the ignored role token had not been included.\n    See https://w3c.github.io/core-aam/#roleMappingComputedRole\n  -->\n  <span role=\"row\" data-testname=\"orphaned row outside the context of table\" class=\"ex-generic\">x</span>\n  <span role=\"rowgroup\" data-testname=\"orphaned rowgroup outside the context of row\" class=\"ex-generic\">x</span>\n  <div role=\"gridcell\" data-testname=\"orphaned div with gridcell role outside the context of row\" class=\"ex-generic\">x</div>\n  <button role=\"gridcell\" data-testname=\"orphaned button with gridcell role outside the context of row\" data-expectedrole=\"button\" class=\"ex\">x</button>\n  <div role=\"rowheader\" data-testname=\"orphaned rowheader outside the context of row\" class=\"ex-generic\">x</div>\n  <div role=\"columnheader\" data-testname=\"orphaned columnheader outside the context of row\" class=\"ex-generic\">x</div>",
   -1  1289 		"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  1290 		"role": "generic",
 1291  1291 		"selector": ".ex-generic"
 1292  1292 	},
 1293  1293 	{
 1294  1294 		"filename": "menu-roles.html",
 1295  1295 		"title": "Menu-related Role Verification Tests",
 1296    -1 		"html": "<p>Tests <a href=\"https://w3c.github.io/aria/#menu\">menu</a> and related roles.</p>\n\n<div role=\"menu\" data-testname=\"role is menu\" data-expectedrole=\"menu\" class=\"ex\">\n    <div role=\"menuitem\" data-testname=\"role is menuitem (in menu)\" data-expectedrole=\"menuitem\" class=\"ex\">x</div>\n    <div role=\"menuitem\">x</div>\n    <div role=\"menuitem\">x</div>\n    <div role=\"group\" data-testname=\"role is group (in menu)\" data-expectedrole=\"group\" class=\"ex\">\n        <div role=\"menuitem\" data-testname=\"role is menuitem (in group, in menu)\" data-expectedrole=\"menuitem\" class=\"ex\">x</div>\n        <div role=\"menuitem\">x</div>\n    </div>\n    <div role=\"group\">\n        <div role=\"menuitemradio\" aria-checked=\"true\" data-testname=\"role is menuitemradio (in group, in menu)\" data-expectedrole=\"menuitemradio\" class=\"ex\">x</div>\n        <div role=\"menuitemradio\">x</div>\n    </div>\n    <div role=\"group\">\n        <div role=\"menuitemcheckbox\" aria-checked=\"true\" data-testname=\"role is menuitemcheckbox (in group, in menu)\" data-expectedrole=\"menuitemcheckbox\" class=\"ex\">x</div>\n        <div role=\"menuitemcheckbox\">x</div>\n    </div>\n</div>\n\n<div role=\"menubar\" data-testname=\"role is menubar\" data-expectedrole=\"menubar\" class=\"ex\">\n    <div role=\"menuitem\" data-testname=\"role is menuitem (in menubar)\" data-expectedrole=\"menuitem\" class=\"ex\">x</div>\n    <div role=\"menuitem\">x</div>\n    <div role=\"menuitem\">x</div>\n    <div role=\"group\" data-testname=\"role is group (in menubar)\" data-expectedrole=\"group\" class=\"ex\">\n        <div role=\"menuitem\" data-testname=\"role is menuitem (in group, in menubar)\" data-expectedrole=\"menuitem\" class=\"ex\">x</div>\n        <div role=\"menuitem\">x</div>\n    </div>\n    <div role=\"group\">\n        <div role=\"menuitemradio\" aria-checked=\"true\" data-testname=\"role is menuitemradio (in group, in menubar)\" data-expectedrole=\"menuitemradio\" class=\"ex\">x</div>\n        <div role=\"menuitemradio\">x</div>\n    </div>\n    <div role=\"group\">\n        <div role=\"menuitemcheckbox\" aria-checked=\"true\" data-testname=\"role is menuitemcheckbox (in group, in menubar)\" data-expectedrole=\"menuitemcheckbox\" class=\"ex\">x</div>\n        <div role=\"menuitemcheckbox\">x</div>\n    </div>\n</div>\n\n<!--\n  CORE-AAM requires that, for elements with roles not contained in the\n  required context, user agents must ignore the role token and return the\n  computed role as if the ignored role token had not been included.\n  See https://w3c.github.io/core-aam/#roleMappingComputedRole\n-->\n<nav role=\"menuitem\" data-testname=\"orphaned menuitem outside the context of menu/menubar\" data-expectedrole=\"navigation\"\n     class=\"ex\">x\n</nav>\n<nav role=\"menuitemradio\" data-testname=\"orphaned menuitemradio outside the context of menu/menubar\" data-expectedrole=\"navigation\"\n     class=\"ex\">x\n</nav>\n<nav role=\"menuitemcheckbox\" data-testname=\"orphaned menuitemcheckbox outside the context of menu/menubar\" data-expectedrole=\"navigation\"\n     class=\"ex\">x\n</nav>\n\n<button role=\"menuitem\" data-testname=\"orphan button with menuitem role\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<div role=\"menuitem\" data-testname=\"orphan div with menuitem role\" class=\"ex-generic\">x</div>\n\n<button role=\"menuitemcheckbox\" data-testname=\"orphan button with menuitemcheckbox role\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<div role=\"menuitemcheckbox\" data-testname=\"orphan div with menuitemcheckbox role\" class=\"ex-generic\">x</div>\n\n<button role=\"menuitemradio\" data-testname=\"orphan button with menuitemradio role\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<div role=\"menuitemradio\" data-testname=\"orphan div with menuitemradio role\" class=\"ex-generic\">x</div>",
   -1  1296 		"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>",
 1297  1297 		"selector": ".ex"
 1298  1298 	},
 1299  1299 	{
 1300  1300 		"filename": "menu-roles.html",
 1301  1301 		"title": "Menu-related Role Verification Tests",
 1302    -1 		"html": "<p>Tests <a href=\"https://w3c.github.io/aria/#menu\">menu</a> and related roles.</p>\n\n<div role=\"menu\" data-testname=\"role is menu\" data-expectedrole=\"menu\" class=\"ex\">\n    <div role=\"menuitem\" data-testname=\"role is menuitem (in menu)\" data-expectedrole=\"menuitem\" class=\"ex\">x</div>\n    <div role=\"menuitem\">x</div>\n    <div role=\"menuitem\">x</div>\n    <div role=\"group\" data-testname=\"role is group (in menu)\" data-expectedrole=\"group\" class=\"ex\">\n        <div role=\"menuitem\" data-testname=\"role is menuitem (in group, in menu)\" data-expectedrole=\"menuitem\" class=\"ex\">x</div>\n        <div role=\"menuitem\">x</div>\n    </div>\n    <div role=\"group\">\n        <div role=\"menuitemradio\" aria-checked=\"true\" data-testname=\"role is menuitemradio (in group, in menu)\" data-expectedrole=\"menuitemradio\" class=\"ex\">x</div>\n        <div role=\"menuitemradio\">x</div>\n    </div>\n    <div role=\"group\">\n        <div role=\"menuitemcheckbox\" aria-checked=\"true\" data-testname=\"role is menuitemcheckbox (in group, in menu)\" data-expectedrole=\"menuitemcheckbox\" class=\"ex\">x</div>\n        <div role=\"menuitemcheckbox\">x</div>\n    </div>\n</div>\n\n<div role=\"menubar\" data-testname=\"role is menubar\" data-expectedrole=\"menubar\" class=\"ex\">\n    <div role=\"menuitem\" data-testname=\"role is menuitem (in menubar)\" data-expectedrole=\"menuitem\" class=\"ex\">x</div>\n    <div role=\"menuitem\">x</div>\n    <div role=\"menuitem\">x</div>\n    <div role=\"group\" data-testname=\"role is group (in menubar)\" data-expectedrole=\"group\" class=\"ex\">\n        <div role=\"menuitem\" data-testname=\"role is menuitem (in group, in menubar)\" data-expectedrole=\"menuitem\" class=\"ex\">x</div>\n        <div role=\"menuitem\">x</div>\n    </div>\n    <div role=\"group\">\n        <div role=\"menuitemradio\" aria-checked=\"true\" data-testname=\"role is menuitemradio (in group, in menubar)\" data-expectedrole=\"menuitemradio\" class=\"ex\">x</div>\n        <div role=\"menuitemradio\">x</div>\n    </div>\n    <div role=\"group\">\n        <div role=\"menuitemcheckbox\" aria-checked=\"true\" data-testname=\"role is menuitemcheckbox (in group, in menubar)\" data-expectedrole=\"menuitemcheckbox\" class=\"ex\">x</div>\n        <div role=\"menuitemcheckbox\">x</div>\n    </div>\n</div>\n\n<!--\n  CORE-AAM requires that, for elements with roles not contained in the\n  required context, user agents must ignore the role token and return the\n  computed role as if the ignored role token had not been included.\n  See https://w3c.github.io/core-aam/#roleMappingComputedRole\n-->\n<nav role=\"menuitem\" data-testname=\"orphaned menuitem outside the context of menu/menubar\" data-expectedrole=\"navigation\"\n     class=\"ex\">x\n</nav>\n<nav role=\"menuitemradio\" data-testname=\"orphaned menuitemradio outside the context of menu/menubar\" data-expectedrole=\"navigation\"\n     class=\"ex\">x\n</nav>\n<nav role=\"menuitemcheckbox\" data-testname=\"orphaned menuitemcheckbox outside the context of menu/menubar\" data-expectedrole=\"navigation\"\n     class=\"ex\">x\n</nav>\n\n<button role=\"menuitem\" data-testname=\"orphan button with menuitem role\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<div role=\"menuitem\" data-testname=\"orphan div with menuitem role\" class=\"ex-generic\">x</div>\n\n<button role=\"menuitemcheckbox\" data-testname=\"orphan button with menuitemcheckbox role\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<div role=\"menuitemcheckbox\" data-testname=\"orphan div with menuitemcheckbox role\" class=\"ex-generic\">x</div>\n\n<button role=\"menuitemradio\" data-testname=\"orphan button with menuitemradio role\" data-expectedrole=\"button\" class=\"ex\">x</button>\n<div role=\"menuitemradio\" data-testname=\"orphan div with menuitemradio role\" class=\"ex-generic\">x</div>",
   -1  1302 		"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  1303 		"role": "generic",
 1304  1304 		"selector": ".ex-generic"
 1305  1305 	},
 1306  1306 	{
 1307  1307 		"filename": "role_none_conflict_resolution.html",
 1308  1308 		"title": "Role None Conflict Resolution Verification Tests",
 1309    -1 		"html": "<p>Verifies <a href=\"https://w3c.github.io/aria/#conflict_resolution_presentation_none\"></a>conflict resolution</a> requirements for the ARIA <a href=\"https://w3c.github.io/aria/#none\">none</a> and <a href=\"https://w3c.github.io/aria/#presentation\">presentation</a> roles.</p>\n\n<!-- none with label(global) on header -->\n<h1 role=\"none\" data-testname=\"heading role none with global attr aria-label\" data-expectedrole=\"heading\" aria-label=\"x\" class=\"ex\">x</h1>\n\n<!-- none with label(global) on paragraph -->\n<p role=\"none\" data-testname=\"p role none with global attr aria-label (prohibited role)\" data-expectedrole=\"paragraph\" aria-label=\"x\" class=\"ex\">x</p>\n<p role=\"none\" data-testname=\"p role none without global attr aria-label (prohibited role)\" class=\"ex-generic\">x</p>\n\n<!-- none with focusable header -->\n<h1 role=\"none\" data-testname=\"focusable heading role none with tabindex=0\" data-expectedrole=\"heading\" tabindex=\"0\" class=\"ex\">x</h1>\n<h1 role=\"none\" data-testname=\"focusable heading role none with tabindex=-1\" data-expectedrole=\"heading\" tabindex=\"-1\" class=\"ex\">x</h1>\n<h1 role=\"none\" data-testname=\"non-focusable heading role none\" class=\"ex-generic\">x</h1>\n\n<!-- none with non-global-->\n<h1 role=\"none\" data-testname=\"none with non-global\" class=\"ex-generic\" aria-level=\"2\"> Sample Content </h1>",
   -1  1309 		"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>",
 1310  1310 		"selector": ".ex"
 1311  1311 	},
 1312  1312 	{
 1313  1313 		"filename": "role_none_conflict_resolution.html",
 1314  1314 		"title": "Role None Conflict Resolution Verification Tests",
 1315    -1 		"html": "<p>Verifies <a href=\"https://w3c.github.io/aria/#conflict_resolution_presentation_none\"></a>conflict resolution</a> requirements for the ARIA <a href=\"https://w3c.github.io/aria/#none\">none</a> and <a href=\"https://w3c.github.io/aria/#presentation\">presentation</a> roles.</p>\n\n<!-- none with label(global) on header -->\n<h1 role=\"none\" data-testname=\"heading role none with global attr aria-label\" data-expectedrole=\"heading\" aria-label=\"x\" class=\"ex\">x</h1>\n\n<!-- none with label(global) on paragraph -->\n<p role=\"none\" data-testname=\"p role none with global attr aria-label (prohibited role)\" data-expectedrole=\"paragraph\" aria-label=\"x\" class=\"ex\">x</p>\n<p role=\"none\" data-testname=\"p role none without global attr aria-label (prohibited role)\" class=\"ex-generic\">x</p>\n\n<!-- none with focusable header -->\n<h1 role=\"none\" data-testname=\"focusable heading role none with tabindex=0\" data-expectedrole=\"heading\" tabindex=\"0\" class=\"ex\">x</h1>\n<h1 role=\"none\" data-testname=\"focusable heading role none with tabindex=-1\" data-expectedrole=\"heading\" tabindex=\"-1\" class=\"ex\">x</h1>\n<h1 role=\"none\" data-testname=\"non-focusable heading role none\" class=\"ex-generic\">x</h1>\n\n<!-- none with non-global-->\n<h1 role=\"none\" data-testname=\"none with non-global\" class=\"ex-generic\" aria-level=\"2\"> Sample Content </h1>",
   -1  1315 		"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>",
 1316  1316 		"role": "generic",
 1317  1317 		"selector": ".ex-generic"
 1318  1318 	},
 1319  1319 	{
 1320  1320 		"filename": "abstract-roles.html",
 1321  1321 		"title": "Abstract Role Verification Tests",
 1322    -1 		"html": "<p>Tests <a href=\"https://w3c.github.io/aria/#abstract_roles\">Abstract Roles</a> and related <a href=\"https://w3c.github.io/aria/#document-handling_author-errors_roles\">9.1 Roles - handling author errors</a></p>\n\n  <nav role=\"command\" data-testname=\"command role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"composite\" data-testname=\"composite role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"input\" data-testname=\"input role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"landmark\" data-testname=\"landmark role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"range\" data-testname=\"range role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"roletype\" data-testname=\"roletype role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"section\" data-testname=\"section role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"sectionhead\" data-testname=\"sectionhead role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"select\" data-testname=\"select role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"structure\" data-testname=\"structure role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"widget\" data-testname=\"widget role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"window\" data-testname=\"window role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>",
   -1  1322 		"html": "<style type=\"text/css\"></style><p>Tests <a href=\"https://w3c.github.io/aria/#abstract_roles\">Abstract Roles</a> and related <a href=\"https://w3c.github.io/aria/#document-handling_author-errors_roles\">9.1 Roles - handling author errors</a></p>\n\n  <nav role=\"command\" data-testname=\"command role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"composite\" data-testname=\"composite role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"input\" data-testname=\"input role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"landmark\" data-testname=\"landmark role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"range\" data-testname=\"range role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"roletype\" data-testname=\"roletype role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"section\" data-testname=\"section role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"sectionhead\" data-testname=\"sectionhead role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"select\" data-testname=\"select role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"structure\" data-testname=\"structure role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"widget\" data-testname=\"widget role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>\n  <nav role=\"window\" data-testname=\"window role\" data-expectedrole=\"navigation\" class=\"ex\">x</nav>",
 1323  1323 		"selector": ".ex"
 1324  1324 	},
 1325  1325 	{
 1326  1326 		"filename": "fallback-roles.html",
 1327  1327 		"title": "Fallback Role Verification Tests",
 1328    -1 		"html": "<p>Tests <a href=\"https://w3c.github.io/aria/#host_general_role\">8.1 Role Attribute</a> role token list selection and <a href=\"https://w3c.github.io/aria/#document-handling_author-errors_roles\">9.1 Roles - handling author errors</a>.</p>\n\n  <!-- known el and two known ARIA 1.0 roles -->\n  <nav role=\"region group\" data-testname=\"fallback role w/ region with no label\" data-expectedrole=\"group\" class=\"ex\">x</nav>\n  <nav role=\"region group\" data-testname=\"fallback role w/ region with label\" aria-label=\"x\" data-expectedrole=\"region\" class=\"ex\">x</nav>\n\n  <!-- known el and known ARIA 1.1 with 1.0 role backup -->\n  <div role=\"switch checkbox\" aria-checked=\"true\" data-testname=\"aria 1.1 switch role w/ fallback to aria 1.0 checkbox role\" aria-label=\"x\" data-expectedrole=\"switch\" class=\"ex\">x</div>\n\n  <!-- known el and invalid role token with valid backup -->\n  <div role=\"foo button\" data-testname=\"div[role=button] ignoring invalid foo role token\" aria-label=\"x\" data-expectedrole=\"button\" class=\"ex\">x</div>\n\n  <!-- unknown el and invalid role token with valid backup -->\n  <unknown role=\"foo button\" data-testname=\"unknown[role=button] ignoring invalid foo role token\" aria-label=\"x\" data-expectedrole=\"button\" class=\"ex\">x</unknown>\n\n  <!-- known el and invalid role(s) -->\n  <button role=\"foo\" data-testname=\"button ignoring single invalid role token\" aria-label=\"x\" data-expectedrole=\"button\" class=\"ex\">x</unknown>\n  <button role=\"foo bar\" data-testname=\"button ignoring multiple invalid role tokens\" aria-label=\"x\" data-expectedrole=\"button\" class=\"ex\">x</unknown>\n\n  <!-- known el with invalid punctuation -->\n  <div role=\"invalid, punctuation, tests, link, button\" data-testname=\"div[role=button] ignoring invalid foo role token including punctuation-contaminated known link role\" aria-label=\"x\" data-expectedrole=\"button\" class=\"ex\">x</div>\n\n\n\n  <!-- extra line breaks here to account for rendering of unicode diacritic etc char glitch tests -->\n\n\n\n  <div role=\"l\u0337\u0357\u030c\u0303\u035d\u0350\u0314\u031a\u0344\u0316\u033b\u0317\u0324\u033a\u031f\u0331\u035a\u0354\u0347\u034d\u0347\u032b\u0328\u0322\u032b\u031c\u0354\u0317\u031f\u0318\u032b\u031f\u0330\u0321\u033c\u0318i\u0335\u035d\u0342\u0358\u030d\u0350\u0314\u030d\u034c\u0310\u0307\u030f\u030e\u0328\u0332\u0321\u032f\u0320\u032e\u0348\u0356\u0325\u032e\u0332\u0353\u0326\u0317\u0317\u0331\u031e\u034d\u0317\u032a\u0359\u0347\u035an\u0336\u0300\u0342\u0343\u030b\u030a\u031c\u0332\u032b\u0347\u032e\u0349\u032c\u035c\u034e\u034e\u0355\u031d\u0331\u0354\u0319\u0328\u0331\u0326\u0327\u0330\u0326\u0320\u0330\u0322\u0323\u031dk\u0337\u0300\u0352\u0306\u0351\u0312\u0305\u0315\u0351\u0313\u0312\u0342\u033d\u0344\u033d\u0309\u0358\u0340\u035d\u0318\u0333\u0355\u0330\u034e\u032e\u0327\u0320\u0327\u0318\u032a\u0327\u0328\u0347\u0355\u0325\u032d\u035c\u033c\u033c\u031c\u0324\u032b\u0328\u0325\u0328\u033c\u0324\u0330\u0326\u0356\u032a \u0337\u0350\u0342\u0301\u035b\u0303\u0341\u030a\u0308\u034c\u0315\u0304\u0343\u031a\u030c\u0302\u035d\u0308\u0307\u0340\u030c\u0344\u0301\u0300\u0344\u030d\u0344\u0307\u0304\u030a\u0360\u0314\u0352\u033e\u033e\u0307\u0301\u0352\u033d\u0342\u033e\u032e\u0326\u0345\u0318\u0353\u032b\u031c\u0355\u0356\u0330\u035c\u0319\u0318\u0345\u0353\u0321\u033c\u034e\u0333\u0339\u0347\u032e\u035cg\u0338\u034b\u0351\u035d\u0311\u0315\u0343\u035b\u0313\u0309\u0314\u0309\u0351\u0307\u0301\u0344\u0309\u0303\u0301\u0311\u030d\u035d\u031b\u0302\u0315\u0312\u0350\u031a\u035b\u0357\u0311\u030f\u0343\u031a\u033e\u034c\u0308\u0305\u0301\u0307\u033a\u0328\u0326\u0323\u0327\u0347\u0348\u0359\u0347\u0327\u0327\u034e\u0355\u0320\u031e\u0333\u0339\u0345\u0327\u0323r\u0336\u030b\u033e\u0340\u0358\u0360\u0301\u0341\u0312\u0340\u0340\u0351\u0358\u030e\u0340\u030c\u031b\u0308\u0300\u030d\u0360\u0302\u030f\u030a\u030e\u0350\u0358\u0352\u0357\u0357\u0340\u0324\u0332\u0318\u032e\u031f\u032d\u0332o\u0334\u030f\u030a\u034b\u0350\u0310\u0346\u0358\u0308\u033f\u0312\u030a\u0304\u0351\u0344\u0314\u034b\u0314\u0303\u0350\u0343\u0313\u0360\u035b\u0358\u0301\u034a\u0309\u0351\u030a\u0314\u0346\u031e\u031d\u0320\u0319\u0327\u032c\u0321\u0322\u0317\u034d\u034d\u0349\u0321\u033a\u0354\u0359\u0322\u032b\u031d\u0330\u032e\u031c\u0329\u035c\u0319\u0345\u0333\u0349\u033b\u033b\u033c\u034du\u0334\u0307\u0308\u0360\u0352\u0331\u032f\u031e\u031e\u031e\u033a\u033c\u0333\u0333\u035a\u031ep\u0336\u035d\u0302\u0310\u030c\u030f\u034c\u0344\u035d\u0357\u033e\u035d\u034c\u033f\u0313\u0358\u0352\u030b\u0306\u0346\u031a\u033e\u035b\u031b\u0310\u0344\u0343\u034b\u0300\u0349\u032e\u0319\u032f\u032e\u0331\u0349\u0316\u035a\u0349\u0329\u0331\u033a\u0329\u0326\u033a\u0348\u032b\u034d\u0354\u0332\u0323\u0317\u031f\u031c \u0336\u030d\u0344\u0357\u0350\u0300\u030a\u030f\u035b\u0303\u0344\u034b\u035d\u0305\u0354\u035a\u0329\u032c\u0348  button\" data-testname=\"div[role=button] ignoring invalid unicode diacritics etc on link and group role tokens\" aria-label=\"x\" data-expectedrole=\"button\" class=\"ex\">x</div>\n\n\n  <!-- known el and known role with whitespace edge cases -->\n  <div role=\" button\" data-testname=\"div[role=button] ignoring tab char\" aria-label=\"x\" data-expectedrole=\"button\" class=\"ex\">x</div>\n  <div role=\"\nbutton\" data-testname=\"div[role=button] ignoring line break\" aria-label=\"x\" data-expectedrole=\"button\" class=\"ex\">x</div>\n  <div role=\"\u2800 button\" data-testname=\"div[role=button] ignoring braille whitespace char\" aria-label=\"x\" data-expectedrole=\"button\" class=\"ex\">x</div>",
   -1  1328 		"html": "<style type=\"text/css\"></style><p>Tests <a href=\"https://w3c.github.io/aria/#host_general_role\">8.1 Role Attribute</a> role token list selection and <a href=\"https://w3c.github.io/aria/#document-handling_author-errors_roles\">9.1 Roles - handling author errors</a>.</p>\n\n  <!-- known el and two known ARIA 1.0 roles -->\n  <nav role=\"region group\" data-testname=\"fallback role w/ region with no label\" data-expectedrole=\"group\" class=\"ex\">x</nav>\n  <nav role=\"region group\" data-testname=\"fallback role w/ region with label\" aria-label=\"x\" data-expectedrole=\"region\" class=\"ex\">x</nav>\n\n  <!-- known el and known ARIA 1.1 with 1.0 role backup -->\n  <div role=\"switch checkbox\" aria-checked=\"true\" data-testname=\"aria 1.1 switch role w/ fallback to aria 1.0 checkbox role\" aria-label=\"x\" data-expectedrole=\"switch\" class=\"ex\">x</div>\n\n  <!-- known el and invalid role token with valid backup -->\n  <div role=\"foo button\" data-testname=\"div[role=button] ignoring invalid foo role token\" aria-label=\"x\" data-expectedrole=\"button\" class=\"ex\">x</div>\n\n  <!-- unknown el and invalid role token with valid backup -->\n  <unknown role=\"foo button\" data-testname=\"unknown[role=button] ignoring invalid foo role token\" aria-label=\"x\" data-expectedrole=\"button\" class=\"ex\">x</unknown>\n\n  <!-- known el and invalid role(s) -->\n  <button role=\"foo\" data-testname=\"button ignoring single invalid role token\" aria-label=\"x\" data-expectedrole=\"button\" class=\"ex\">x</unknown>\n  <button role=\"foo bar\" data-testname=\"button ignoring multiple invalid role tokens\" aria-label=\"x\" data-expectedrole=\"button\" class=\"ex\">x</unknown>\n\n  <!-- known el with invalid punctuation -->\n  <div role=\"invalid, punctuation, tests, link, button\" data-testname=\"div[role=button] ignoring invalid foo role token including punctuation-contaminated known link role\" aria-label=\"x\" data-expectedrole=\"button\" class=\"ex\">x</div>\n\n\n\n  <!-- extra line breaks here to account for rendering of unicode diacritic etc char glitch tests -->\n\n\n\n  <div role=\"l\u0337\u0357\u030c\u0303\u035d\u0350\u0314\u031a\u0344\u0316\u033b\u0317\u0324\u033a\u031f\u0331\u035a\u0354\u0347\u034d\u0347\u032b\u0328\u0322\u032b\u031c\u0354\u0317\u031f\u0318\u032b\u031f\u0330\u0321\u033c\u0318i\u0335\u035d\u0342\u0358\u030d\u0350\u0314\u030d\u034c\u0310\u0307\u030f\u030e\u0328\u0332\u0321\u032f\u0320\u032e\u0348\u0356\u0325\u032e\u0332\u0353\u0326\u0317\u0317\u0331\u031e\u034d\u0317\u032a\u0359\u0347\u035an\u0336\u0300\u0342\u0343\u030b\u030a\u031c\u0332\u032b\u0347\u032e\u0349\u032c\u035c\u034e\u034e\u0355\u031d\u0331\u0354\u0319\u0328\u0331\u0326\u0327\u0330\u0326\u0320\u0330\u0322\u0323\u031dk\u0337\u0300\u0352\u0306\u0351\u0312\u0305\u0315\u0351\u0313\u0312\u0342\u033d\u0344\u033d\u0309\u0358\u0340\u035d\u0318\u0333\u0355\u0330\u034e\u032e\u0327\u0320\u0327\u0318\u032a\u0327\u0328\u0347\u0355\u0325\u032d\u035c\u033c\u033c\u031c\u0324\u032b\u0328\u0325\u0328\u033c\u0324\u0330\u0326\u0356\u032a \u0337\u0350\u0342\u0301\u035b\u0303\u0341\u030a\u0308\u034c\u0315\u0304\u0343\u031a\u030c\u0302\u035d\u0308\u0307\u0340\u030c\u0344\u0301\u0300\u0344\u030d\u0344\u0307\u0304\u030a\u0360\u0314\u0352\u033e\u033e\u0307\u0301\u0352\u033d\u0342\u033e\u032e\u0326\u0345\u0318\u0353\u032b\u031c\u0355\u0356\u0330\u035c\u0319\u0318\u0345\u0353\u0321\u033c\u034e\u0333\u0339\u0347\u032e\u035cg\u0338\u034b\u0351\u035d\u0311\u0315\u0343\u035b\u0313\u0309\u0314\u0309\u0351\u0307\u0301\u0344\u0309\u0303\u0301\u0311\u030d\u035d\u031b\u0302\u0315\u0312\u0350\u031a\u035b\u0357\u0311\u030f\u0343\u031a\u033e\u034c\u0308\u0305\u0301\u0307\u033a\u0328\u0326\u0323\u0327\u0347\u0348\u0359\u0347\u0327\u0327\u034e\u0355\u0320\u031e\u0333\u0339\u0345\u0327\u0323r\u0336\u030b\u033e\u0340\u0358\u0360\u0301\u0341\u0312\u0340\u0340\u0351\u0358\u030e\u0340\u030c\u031b\u0308\u0300\u030d\u0360\u0302\u030f\u030a\u030e\u0350\u0358\u0352\u0357\u0357\u0340\u0324\u0332\u0318\u032e\u031f\u032d\u0332o\u0334\u030f\u030a\u034b\u0350\u0310\u0346\u0358\u0308\u033f\u0312\u030a\u0304\u0351\u0344\u0314\u034b\u0314\u0303\u0350\u0343\u0313\u0360\u035b\u0358\u0301\u034a\u0309\u0351\u030a\u0314\u0346\u031e\u031d\u0320\u0319\u0327\u032c\u0321\u0322\u0317\u034d\u034d\u0349\u0321\u033a\u0354\u0359\u0322\u032b\u031d\u0330\u032e\u031c\u0329\u035c\u0319\u0345\u0333\u0349\u033b\u033b\u033c\u034du\u0334\u0307\u0308\u0360\u0352\u0331\u032f\u031e\u031e\u031e\u033a\u033c\u0333\u0333\u035a\u031ep\u0336\u035d\u0302\u0310\u030c\u030f\u034c\u0344\u035d\u0357\u033e\u035d\u034c\u033f\u0313\u0358\u0352\u030b\u0306\u0346\u031a\u033e\u035b\u031b\u0310\u0344\u0343\u034b\u0300\u0349\u032e\u0319\u032f\u032e\u0331\u0349\u0316\u035a\u0349\u0329\u0331\u033a\u0329\u0326\u033a\u0348\u032b\u034d\u0354\u0332\u0323\u0317\u031f\u031c \u0336\u030d\u0344\u0357\u0350\u0300\u030a\u030f\u035b\u0303\u0344\u034b\u035d\u0305\u0354\u035a\u0329\u032c\u0348  button\" data-testname=\"div[role=button] ignoring invalid unicode diacritics etc on link and group role tokens\" aria-label=\"x\" data-expectedrole=\"button\" class=\"ex\">x</div>\n\n\n  <!-- known el and known role with whitespace edge cases -->\n  <div role=\" button\" data-testname=\"div[role=button] ignoring tab char\" aria-label=\"x\" data-expectedrole=\"button\" class=\"ex\">x</div>\n  <div role=\"\nbutton\" data-testname=\"div[role=button] ignoring line break\" aria-label=\"x\" data-expectedrole=\"button\" class=\"ex\">x</div>\n  <div role=\"\u2800 button\" data-testname=\"div[role=button] ignoring braille whitespace char\" aria-label=\"x\" data-expectedrole=\"button\" class=\"ex\">x</div>",
 1329  1329 		"selector": ".ex"
 1330  1330 	}
 1331  1331 ];
@@ -1333,7 +1333,7 @@ window.wpt["graphics-aria"] = [
 1333  1333 	{
 1334  1334 		"filename": "graphics-roles.html",
 1335  1335 		"title": "",
 1336    -1 		"html": "<p>Tests the concrete roles defined in the <a href=\"https://www.w3.org/TR/graphics-aria-1.0/#role_definitions\">ARIA Graphics Module</a> role definitions.</p>\n\n<div role=\"graphics-document\" data-expectedrole=\"graphics-document\" class=\"ex\">x</div>\n<div role=\"graphics-object\" data-expectedrole=\"graphics-object\" class=\"ex\">x</div>\n<div role=\"graphics-symbol\" data-expectedrole=\"graphics-symbol\" class=\"ex\">x</div>",
   -1  1336 		"html": "<style type=\"text/css\"></style><p>Tests the concrete roles defined in the <a href=\"https://www.w3.org/TR/graphics-aria-1.0/#role_definitions\">ARIA Graphics Module</a> role definitions.</p>\n\n<div role=\"graphics-document\" data-expectedrole=\"graphics-document\" class=\"ex\">x</div>\n<div role=\"graphics-object\" data-expectedrole=\"graphics-object\" class=\"ex\">x</div>\n<div role=\"graphics-symbol\" data-expectedrole=\"graphics-symbol\" class=\"ex\">x</div>",
 1337  1337 		"selector": ".ex"
 1338  1338 	}
 1339  1339 ];
@@ -1374,65 +1374,65 @@ window.wpt["html-aam"] = [
 1374  1374 	{
 1375  1375 		"filename": "roles.html",
 1376  1376 		"title": "HTML-AAM Role Verification Tests",
 1377    -1 		"html": "<p>Tests the computedrole mappings defined in <a href=\"https://w3c.github.io/html-aam/\">HTML-AAM</a>. Most test names correspond to a unique ID defined in the spec.<p>\n\n<p>These should remain in alphabetical order, and include all HTML tagnames. If a tag is not tested here, include a pointer to the file where it is tested, such as: <code>&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  1377 		"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) -->",
 1378  1378 		"selector": ".ex"
 1379  1379 	},
 1380  1380 	{
 1381  1381 		"filename": "roles.html",
 1382  1382 		"title": "HTML-AAM Role Verification Tests",
 1383    -1 		"html": "<p>Tests the computedrole mappings defined in <a href=\"https://w3c.github.io/html-aam/\">HTML-AAM</a>. Most test names correspond to a unique ID defined in the spec.<p>\n\n<p>These should remain in alphabetical order, and include all HTML tagnames. If a tag is not tested here, include a pointer to the file where it is tested, such as: <code>&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  1383 		"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) -->",
 1384  1384 		"role": "generic",
 1385  1385 		"selector": ".ex-generic"
 1386  1386 	},
 1387  1387 	{
 1388  1388 		"filename": "roles-generic.html",
 1389  1389 		"title": "HTML-AAM Generic Role Verification Tests",
 1390    -1 		"html": "<p>Tests ONLY the <code>generic</code> mappings defined in <a href=\"https://w3c.github.io/html-aam/\">HTML-AAM</a>. Most test names correspond to a unique ID defined in the spec.<p>\n\n<p>These should remain in alphabetical order by tagname.</p>\n\n<!-- a -> ./roles-contextual.html -->\n<!-- aside -> ./roles-contextual.html -->\n<b data-testname=\"el-b\" class=\"ex-generic\">x</b>\n<bdi data-testname=\"el-bdi\" class=\"ex-generic\">x</bdi>\n<bdo data-testname=\"el-bdo\" class=\"ex-generic\">x</bdo>\n<data value=\"1\" data-testname=\"el-data\" class=\"ex-generic\">x</data>\n<div open data-testname=\"el-div\" class=\"ex-generic\">x</div>\n<!-- footer -> ./roles-contextual.html -->\n<!-- header -> ./roles-contextual.html -->\n<i data-testname=\"el-i\" class=\"ex-generic\">x</i>\n<li data-testname=\"el-li-orphaned\" class=\"ex-generic\">x</li><!-- todo: should orphaned roles be tested in a new ./roles-orphaned.html file? -->\n<pre data-testname=\"el-pre\" class=\"ex-generic\">x</pre>\n<q data-testname=\"el-q\" class=\"ex-generic\">x</q>\n<samp data-testname=\"el-samp\" class=\"ex-generic\">x</samp>\n<!-- section -> ./roles-contextual.html -->\n<small data-testname=\"el-small\" class=\"ex-generic\">x</small>\n<span data-testname=\"el-span\" class=\"ex-generic\">x</span>\n<u data-testname=\"el-u\" class=\"ex-generic\">x</u>",
   -1  1390 		"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>",
 1391  1391 		"role": "generic",
 1392  1392 		"selector": ".ex-generic"
 1393  1393 	},
 1394  1394 	{
 1395  1395 		"filename": "table-roles.html",
 1396  1396 		"title": "HTML-AAM Role Verification Tests",
 1397    -1 		"html": "<p>Tests the computedrole mappings for the table-related roles defined in <a href=\"https://w3c.github.io/html-aam/\">HTML-AAM</a>. Most test names correspond to unique ID defined in the spec.<p>\n\n<!-- ARIA table roles tested in wpt/wai-aria/role/table-roles.html -->\n\n<table data-testname=\"el-table\" data-expectedrole=\"table\" class=\"ex\">\n  <caption data-testname=\"el-caption\" data-expectedrole=\"caption\" class=\"ex\">caption</caption>\n  <thead>\n    <tr data-testname=\"el-tr-thead\" data-expectedrole=\"row\" class=\"ex\">\n      <th data-testname=\"el-th\" data-expectedrole=\"columnheader\" class=\"ex\">a</th>\n      <th>b</th>\n      <th>c</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr data-testname=\"el-tr-tbody\" data-expectedrole=\"row\" class=\"ex\">\n      <th data-testname=\"el-th-in-row\" data-expectedrole=\"rowheader\" class=\"ex\">1</th>\n      <td data-testname=\"el-td\" data-expectedrole=\"cell\" class=\"ex\">2</td>\n      <td>3</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>5</td>\n      <td>6</td>\n    </tr>\n  </tbody>\n  <tfoot>\n    <tr>\n      <th>x</th>\n      <th>y</th>\n      <th>z</th>\n    </tr>\n  </tfoot>\n</table>",
   -1  1397 		"html": "<style type=\"text/css\"></style><p>Tests the computedrole mappings for the table-related roles defined in <a href=\"https://w3c.github.io/html-aam/\">HTML-AAM</a>. Most test names correspond to unique ID defined in the spec.<p>\n\n<!-- ARIA table roles tested in wpt/wai-aria/role/table-roles.html -->\n\n<table data-testname=\"el-table\" data-expectedrole=\"table\" class=\"ex\">\n  <caption data-testname=\"el-caption\" data-expectedrole=\"caption\" class=\"ex\">caption</caption>\n  <thead>\n    <tr data-testname=\"el-tr-thead\" data-expectedrole=\"row\" class=\"ex\">\n      <th data-testname=\"el-th\" data-expectedrole=\"columnheader\" class=\"ex\">a</th>\n      <th>b</th>\n      <th>c</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr data-testname=\"el-tr-tbody\" data-expectedrole=\"row\" class=\"ex\">\n      <th data-testname=\"el-th-in-row\" data-expectedrole=\"rowheader\" class=\"ex\">1</th>\n      <td data-testname=\"el-td\" data-expectedrole=\"cell\" class=\"ex\">2</td>\n      <td>3</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>5</td>\n      <td>6</td>\n    </tr>\n  </tbody>\n  <tfoot>\n    <tr>\n      <th>x</th>\n      <th>y</th>\n      <th>z</th>\n    </tr>\n  </tfoot>\n</table>",
 1398  1398 		"selector": ".ex"
 1399  1399 	},
 1400  1400 	{
 1401  1401 		"filename": "names.html",
 1402  1402 		"title": "HTML-AAM Element Accessible Name From Author Tests",
 1403    -1 		"html": "<p>Tests the accName for elements defined in <a href=\"https://w3c.github.io/html-aam/#accessible-name-and-description-computation\">HTML-AAM: Accessible Name Computations By HTML Element</a>.\n  These tests are meant to show whether an element returns a name per the naming mechanism used. See <a href=\"https://wpt.fyi/results/accname\">wpt: accname</a> for expanded accName testing.</p>\n\n\n<!--\nThe following elements are those which can be named by authors. They do not receive their name from elements for which they are an accessibility ancestor.\n\nThere are other elements which can be named by author, but have additional ways in which they can be named. These elements will be tested separately.\n-->\n\n\n<h2>address element</h2>\n<address data-testname=\"address no name\" data-expectedlabel=\"\" class=\"ex\">x</address>\n\n<address data-testname=\"address aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</address>\n<address data-testname=\"address aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</address>\n<address data-testname=\"address title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</address>\n\n<address data-testname=\"address aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</address>\n<address data-testname=\"address aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</address>\n\n<address data-testname=\"address aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</address>\n<address data-testname=\"address aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</address>\n\n\n\n<h2>aside element</h2>\n<aside data-testname=\"aside no name\" data-expectedlabel=\"\" class=\"ex\">x</aside>\n\n<aside data-testname=\"aside aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</aside>\n<aside data-testname=\"aside aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</aside>\n<aside data-testname=\"aside title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</aside>\n\n<aside data-testname=\"aside aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</aside>\n<aside data-testname=\"aside aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</aside>\n\n<aside data-testname=\"aside aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</aside>\n<aside data-testname=\"aside aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</aside>\n\n\n<h2>blockquote element</h2>\n<blockquote data-testname=\"blockquote no name\" data-expectedlabel=\"\" class=\"ex\">x</blockquote>\n\n<blockquote data-testname=\"blockquote aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</blockquote>\n<blockquote data-testname=\"blockquote aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</blockquote>\n<blockquote data-testname=\"blockquote title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</blockquote>\n\n<blockquote data-testname=\"blockquote aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</blockquote>\n<blockquote data-testname=\"blockquote aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</blockquote>\n\n<blockquote data-testname=\"blockquote aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</blockquote>\n<blockquote data-testname=\"blockquote aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</blockquote>\n\n\n\n<h2>details element</h2>\n<details data-testname=\"details no name\" data-expectedlabel=\"\" class=\"ex\"><summary>x</summary></details>\n\n<details data-testname=\"details aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\"><summary>x</summary></details>\n<details data-testname=\"details aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\"><summary>x</summary></details>\n<details data-testname=\"details title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\"><summary>x</summary></details>\n\n<details data-testname=\"details aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><summary>x</summary></details>\n<details data-testname=\"details aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\"><summary>x</summary></details>\n\n<details data-testname=\"details aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><summary>x</summary></details>\n<details data-testname=\"details aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\"><summary>x</summary></details>\n\n\n<h2>figure element</h2>\n<figure data-testname=\"figure no name\" data-expectedlabel=\"\" class=\"ex\">x</figure>\n\n<figure data-testname=\"figure aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</figure>\n<figure data-testname=\"figure aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</figure>\n<figure data-testname=\"figure title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</figure>\n\n<figure data-testname=\"figure aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</figure>\n<figure data-testname=\"figure aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</figure>\n\n<figure data-testname=\"figure aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</figure>\n<figure data-testname=\"figure aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</figure>\n\n\n<h2>footer element</h2>\n<footer data-testname=\"footer no name\" data-expectedlabel=\"\" class=\"ex\">x</footer>\n\n<footer data-testname=\"footer aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</footer>\n<footer data-testname=\"footer aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</footer>\n<footer data-testname=\"footer title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</footer>\n\n<footer data-testname=\"footer aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</footer>\n<footer data-testname=\"footer aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</footer>\n\n<footer data-testname=\"footer aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</footer>\n<footer data-testname=\"footer aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</footer>\n\n\n<h2>form element</h2>\n<form data-testname=\"form no name\" data-expectedlabel=\"\" class=\"ex\">x</form>\n\n<form data-testname=\"form aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</form>\n<form data-testname=\"form aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</form>\n<form data-testname=\"form title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</form>\n\n<form data-testname=\"form aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</form>\n<form data-testname=\"form aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</form>\n\n<form data-testname=\"form aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</form>\n<form data-testname=\"form aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</form>\n\n\n<h2>hgroup element</h2>\n<hgroup data-testname=\"hgroup no name\" data-expectedlabel=\"\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n\n<hgroup data-testname=\"hgroup aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n<hgroup data-testname=\"hgroup aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n<hgroup data-testname=\"hgroup title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n\n<hgroup data-testname=\"hgroup aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n<hgroup data-testname=\"hgroup aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n\n<hgroup data-testname=\"hgroup aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n<hgroup data-testname=\"hgroup aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n\n\n<h2>hr element</h2>\n<hr data-testname=\"hr no name\" data-expectedlabel=\"\" class=\"ex\">\n\n<hr data-testname=\"hr aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">\n<hr data-testname=\"hr aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">\n<hr data-testname=\"hr title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">\n\n<hr data-testname=\"hr aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">\n<hr data-testname=\"hr aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">\n\n<hr data-testname=\"hr aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">\n<hr data-testname=\"hr aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">\n\n\n<h2>ol element</h2>\n<ol data-testname=\"ol no name\" data-expectedlabel=\"\" class=\"ex\"><li>x</li></ol>\n\n<ol data-testname=\"ol aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\"><li>x</li></ol>\n<ol data-testname=\"ol aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ol>\n<ol data-testname=\"ol title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\"><li>x</li></ol>\n\n<ol data-testname=\"ol aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ol>\n<ol data-testname=\"ol aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ol>\n\n<ol data-testname=\"ol aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ol>\n<ol data-testname=\"ol aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\"><li>x</li></ol>\n\n\n<h2>main element</h2>\n<main data-testname=\"main no name\" data-expectedlabel=\"\" class=\"ex\">x</main>\n\n<main data-testname=\"main aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</main>\n<main data-testname=\"main aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</main>\n<main data-testname=\"main title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</main>\n\n<main data-testname=\"main aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</main>\n<main data-testname=\"main aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</main>\n\n<main data-testname=\"main aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</main>\n<main data-testname=\"main aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</main>\n\n\n<h2>menu element</h2>\n<menu data-testname=\"menu no name\" data-expectedlabel=\"\" class=\"ex\"><li>x</li></menu>\n\n<menu data-testname=\"menu aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\"><li>x</li></menu>\n<menu data-testname=\"menu aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></menu>\n<menu data-testname=\"menu title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\"><li>x</li></menu>\n\n<menu data-testname=\"menu aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></menu>\n<menu data-testname=\"menu aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></menu>\n\n<menu data-testname=\"menu aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></menu>\n<menu data-testname=\"menu aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\"><li>x</li></menu>\n\n\n<h2>nav element</h2>\n<nav data-testname=\"nav no name\" data-expectedlabel=\"\" class=\"ex\">x</nav>\n\n<nav data-testname=\"nav aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</nav>\n<nav data-testname=\"nav aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</nav>\n<nav data-testname=\"nav title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</nav>\n\n<nav data-testname=\"nav aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</nav>\n<nav data-testname=\"nav aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</nav>\n\n<nav data-testname=\"nav aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</nav>\n<nav data-testname=\"nav aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</nav>\n\n\n<h2>search element</h2>\n<search data-testname=\"search no name\" data-expectedlabel=\"\" class=\"ex\">x</search>\n\n<search data-testname=\"search aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</search>\n<search data-testname=\"search aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</search>\n<search data-testname=\"search title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</search>\n\n<search data-testname=\"search aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</search>\n<search data-testname=\"search aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</search>\n\n<search data-testname=\"search aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</search>\n<search data-testname=\"search aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</search>\n\n\n<h2>section element</h2>\n<section data-testname=\"section no name\" data-expectedlabel=\"\" class=\"ex\">x</section>\n\n<section data-testname=\"section aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</section>\n<section data-testname=\"section aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</section>\n<section data-testname=\"section title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</section>\n\n<section data-testname=\"section aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</section>\n<section data-testname=\"section aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</section>\n\n<section data-testname=\"section aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</section>\n<section data-testname=\"section aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</section>\n\n\n<h2>ul element</h2>\n<ul data-testname=\"ul no name\" data-expectedlabel=\"\" class=\"ex\"><li>x</li></ul>\n\n<ul data-testname=\"ul aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\"><li>x</li></ul>\n<ul data-testname=\"ul aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ul>\n<ul data-testname=\"ul title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\"><li>x</li></ul>\n\n<ul data-testname=\"ul aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ul>\n<ul data-testname=\"ul aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ul>\n\n<ul data-testname=\"ul aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ul>\n<ul data-testname=\"ul aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\"><li>x</li></ul>\n\n\n<!-- element to reference for aria-labelledby tests -->\n<div id=\"labelledby\">labelledby</div>",
   -1  1403 		"html": "<style type=\"text/css\"></style><p>Tests the accName for elements defined in <a href=\"https://w3c.github.io/html-aam/#accessible-name-and-description-computation\">HTML-AAM: Accessible Name Computations By HTML Element</a>.\n  These tests are meant to show whether an element returns a name per the naming mechanism used. See <a href=\"https://wpt.fyi/results/accname\">wpt: accname</a> for expanded accName testing.</p>\n\n\n<!--\nThe following elements are those which can be named by authors. They do not receive their name from elements for which they are an accessibility ancestor.\n\nThere are other elements which can be named by author, but have additional ways in which they can be named. These elements will be tested separately.\n-->\n\n\n<h2>address element</h2>\n<address data-testname=\"address no name\" data-expectedlabel=\"\" class=\"ex\">x</address>\n\n<address data-testname=\"address aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</address>\n<address data-testname=\"address aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</address>\n<address data-testname=\"address title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</address>\n\n<address data-testname=\"address aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</address>\n<address data-testname=\"address aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</address>\n\n<address data-testname=\"address aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</address>\n<address data-testname=\"address aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</address>\n\n\n\n<h2>aside element</h2>\n<aside data-testname=\"aside no name\" data-expectedlabel=\"\" class=\"ex\">x</aside>\n\n<aside data-testname=\"aside aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</aside>\n<aside data-testname=\"aside aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</aside>\n<aside data-testname=\"aside title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</aside>\n\n<aside data-testname=\"aside aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</aside>\n<aside data-testname=\"aside aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</aside>\n\n<aside data-testname=\"aside aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</aside>\n<aside data-testname=\"aside aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</aside>\n\n\n<h2>blockquote element</h2>\n<blockquote data-testname=\"blockquote no name\" data-expectedlabel=\"\" class=\"ex\">x</blockquote>\n\n<blockquote data-testname=\"blockquote aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</blockquote>\n<blockquote data-testname=\"blockquote aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</blockquote>\n<blockquote data-testname=\"blockquote title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</blockquote>\n\n<blockquote data-testname=\"blockquote aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</blockquote>\n<blockquote data-testname=\"blockquote aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</blockquote>\n\n<blockquote data-testname=\"blockquote aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</blockquote>\n<blockquote data-testname=\"blockquote aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</blockquote>\n\n\n\n<h2>details element</h2>\n<details data-testname=\"details no name\" data-expectedlabel=\"\" class=\"ex\"><summary>x</summary></details>\n\n<details data-testname=\"details aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\"><summary>x</summary></details>\n<details data-testname=\"details aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\"><summary>x</summary></details>\n<details data-testname=\"details title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\"><summary>x</summary></details>\n\n<details data-testname=\"details aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><summary>x</summary></details>\n<details data-testname=\"details aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\"><summary>x</summary></details>\n\n<details data-testname=\"details aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><summary>x</summary></details>\n<details data-testname=\"details aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\"><summary>x</summary></details>\n\n\n<h2>figure element</h2>\n<figure data-testname=\"figure no name\" data-expectedlabel=\"\" class=\"ex\">x</figure>\n\n<figure data-testname=\"figure aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</figure>\n<figure data-testname=\"figure aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</figure>\n<figure data-testname=\"figure title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</figure>\n\n<figure data-testname=\"figure aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</figure>\n<figure data-testname=\"figure aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</figure>\n\n<figure data-testname=\"figure aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</figure>\n<figure data-testname=\"figure aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</figure>\n\n\n<h2>footer element</h2>\n<footer data-testname=\"footer no name\" data-expectedlabel=\"\" class=\"ex\">x</footer>\n\n<footer data-testname=\"footer aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</footer>\n<footer data-testname=\"footer aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</footer>\n<footer data-testname=\"footer title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</footer>\n\n<footer data-testname=\"footer aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</footer>\n<footer data-testname=\"footer aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</footer>\n\n<footer data-testname=\"footer aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</footer>\n<footer data-testname=\"footer aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</footer>\n\n\n<h2>form element</h2>\n<form data-testname=\"form no name\" data-expectedlabel=\"\" class=\"ex\">x</form>\n\n<form data-testname=\"form aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</form>\n<form data-testname=\"form aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</form>\n<form data-testname=\"form title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</form>\n\n<form data-testname=\"form aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</form>\n<form data-testname=\"form aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</form>\n\n<form data-testname=\"form aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</form>\n<form data-testname=\"form aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</form>\n\n\n<h2>hgroup element</h2>\n<hgroup data-testname=\"hgroup no name\" data-expectedlabel=\"\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n\n<hgroup data-testname=\"hgroup aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n<hgroup data-testname=\"hgroup aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n<hgroup data-testname=\"hgroup title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n\n<hgroup data-testname=\"hgroup aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n<hgroup data-testname=\"hgroup aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n\n<hgroup data-testname=\"hgroup aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n<hgroup data-testname=\"hgroup aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\"><h3>x</h3><p>y</p></hgroup>\n\n\n<h2>hr element</h2>\n<hr data-testname=\"hr no name\" data-expectedlabel=\"\" class=\"ex\">\n\n<hr data-testname=\"hr aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">\n<hr data-testname=\"hr aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">\n<hr data-testname=\"hr title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">\n\n<hr data-testname=\"hr aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">\n<hr data-testname=\"hr aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">\n\n<hr data-testname=\"hr aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">\n<hr data-testname=\"hr aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">\n\n\n<h2>ol element</h2>\n<ol data-testname=\"ol no name\" data-expectedlabel=\"\" class=\"ex\"><li>x</li></ol>\n\n<ol data-testname=\"ol aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\"><li>x</li></ol>\n<ol data-testname=\"ol aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ol>\n<ol data-testname=\"ol title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\"><li>x</li></ol>\n\n<ol data-testname=\"ol aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ol>\n<ol data-testname=\"ol aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ol>\n\n<ol data-testname=\"ol aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ol>\n<ol data-testname=\"ol aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\"><li>x</li></ol>\n\n\n<h2>main element</h2>\n<main data-testname=\"main no name\" data-expectedlabel=\"\" class=\"ex\">x</main>\n\n<main data-testname=\"main aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</main>\n<main data-testname=\"main aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</main>\n<main data-testname=\"main title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</main>\n\n<main data-testname=\"main aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</main>\n<main data-testname=\"main aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</main>\n\n<main data-testname=\"main aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</main>\n<main data-testname=\"main aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</main>\n\n\n<h2>menu element</h2>\n<menu data-testname=\"menu no name\" data-expectedlabel=\"\" class=\"ex\"><li>x</li></menu>\n\n<menu data-testname=\"menu aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\"><li>x</li></menu>\n<menu data-testname=\"menu aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></menu>\n<menu data-testname=\"menu title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\"><li>x</li></menu>\n\n<menu data-testname=\"menu aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></menu>\n<menu data-testname=\"menu aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></menu>\n\n<menu data-testname=\"menu aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></menu>\n<menu data-testname=\"menu aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\"><li>x</li></menu>\n\n\n<h2>nav element</h2>\n<nav data-testname=\"nav no name\" data-expectedlabel=\"\" class=\"ex\">x</nav>\n\n<nav data-testname=\"nav aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</nav>\n<nav data-testname=\"nav aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</nav>\n<nav data-testname=\"nav title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</nav>\n\n<nav data-testname=\"nav aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</nav>\n<nav data-testname=\"nav aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</nav>\n\n<nav data-testname=\"nav aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</nav>\n<nav data-testname=\"nav aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</nav>\n\n\n<h2>search element</h2>\n<search data-testname=\"search no name\" data-expectedlabel=\"\" class=\"ex\">x</search>\n\n<search data-testname=\"search aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</search>\n<search data-testname=\"search aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</search>\n<search data-testname=\"search title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</search>\n\n<search data-testname=\"search aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</search>\n<search data-testname=\"search aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</search>\n\n<search data-testname=\"search aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</search>\n<search data-testname=\"search aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</search>\n\n\n<h2>section element</h2>\n<section data-testname=\"section no name\" data-expectedlabel=\"\" class=\"ex\">x</section>\n\n<section data-testname=\"section aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\">x</section>\n<section data-testname=\"section aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\">x</section>\n<section data-testname=\"section title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\">x</section>\n\n<section data-testname=\"section aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</section>\n<section data-testname=\"section aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\">x</section>\n\n<section data-testname=\"section aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\">x</section>\n<section data-testname=\"section aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\">x</section>\n\n\n<h2>ul element</h2>\n<ul data-testname=\"ul no name\" data-expectedlabel=\"\" class=\"ex\"><li>x</li></ul>\n\n<ul data-testname=\"ul aria-label\" aria-label=\"label\" data-expectedlabel=\"label\" class=\"ex\"><li>x</li></ul>\n<ul data-testname=\"ul aria-labelledby\" aria-labelledby=\"labelledby\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ul>\n<ul data-testname=\"ul title\" title=\"title\" data-expectedlabel=\"title\" class=\"ex\"><li>x</li></ul>\n\n<ul data-testname=\"ul aria-labelledby vs aria-label vs title\" aria-labelledby=\"labelledby\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ul>\n<ul data-testname=\"ul aria-labelledby vs aria-label\" aria-labelledby=\"labelledby\" aria-label=\"label\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ul>\n\n<ul data-testname=\"ul aria-labelledby vs title\" aria-labelledby=\"labelledby\" title=\"title\" data-expectedlabel=\"labelledby\" class=\"ex\"><li>x</li></ul>\n<ul data-testname=\"ul aria-label vs title\" aria-label=\"label\" title=\"title\" data-expectedlabel=\"label\" class=\"ex\"><li>x</li></ul>\n\n\n<!-- element to reference for aria-labelledby tests -->\n<div id=\"labelledby\">labelledby</div>",
 1404  1404 		"selector": ".ex"
 1405  1405 	},
 1406  1406 	{
 1407  1407 		"filename": "roles-contextual.html",
 1408  1408 		"title": "HTML-AAM Contextual-Specific Role Verification Tests",
 1409    -1 		"html": "<p>Tests contextual computedrole mappings defined in <a href=\"https://w3c.github.io/html-aam/\">HTML-AAM</a>, where the returned computed role is expected to change based on the context. Most test names correspond to a unique ID defined in the spec.<p>\n\n<p>These should remain in alphabetical order.</code></p>\n\n\n<!-- el-a -->\n<a href=\"#\" data-testname=\"el-a\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a data-testname=\"el-a-no-href\" class=\"ex-generic\">x</a>\n\n<!-- el-aside -->\n<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  1409 		"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>",
 1410  1410 		"selector": ".ex"
 1411  1411 	},
 1412  1412 	{
 1413  1413 		"filename": "roles-contextual.html",
 1414  1414 		"title": "HTML-AAM Contextual-Specific Role Verification Tests",
 1415    -1 		"html": "<p>Tests contextual computedrole mappings defined in <a href=\"https://w3c.github.io/html-aam/\">HTML-AAM</a>, where the returned computed role is expected to change based on the context. Most test names correspond to a unique ID defined in the spec.<p>\n\n<p>These should remain in alphabetical order.</code></p>\n\n\n<!-- el-a -->\n<a href=\"#\" data-testname=\"el-a\" data-expectedrole=\"link\" class=\"ex\">x</a>\n<a data-testname=\"el-a-no-href\" class=\"ex-generic\">x</a>\n\n<!-- el-aside -->\n<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  1415 		"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>",
 1416  1416 		"role": "generic",
 1417  1417 		"selector": ".ex-generic"
 1418  1418 	},
 1419  1419 	{
 1420  1420 		"filename": "area-role.html",
 1421  1421 		"title": "HTMLAreaElement Role Verification Tests",
 1422    -1 		"html": "<map name=\"areamap\">\n  <area shape=\"rect\" coords=\"0,0,15,15\" href=\"#\" alt=\"x\" data-testname=\"el-area\" data-expectedrole=\"link\" class=\"ex\">\n  <area shape=\"rect\" coords=\"15,15,31,31\" alt=\"x\" data-testname=\"el-area-no-href\" class=\"ex-generic\">\n</map>\n<img usemap=\"#areamap\" style=\"width: 32px; height: 32px;\" alt=\"x\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">",
   -1  1422 		"html": "<style type=\"text/css\"></style><map name=\"areamap\">\n  <area shape=\"rect\" coords=\"0,0,15,15\" href=\"#\" alt=\"x\" data-testname=\"el-area\" data-expectedrole=\"link\" class=\"ex\">\n  <area shape=\"rect\" coords=\"15,15,31,31\" alt=\"x\" data-testname=\"el-area-no-href\" class=\"ex-generic\">\n</map>\n<img usemap=\"#areamap\" style=\"width: 32px; height: 32px;\" alt=\"x\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">",
 1423  1423 		"selector": ".ex"
 1424  1424 	},
 1425  1425 	{
 1426  1426 		"filename": "area-role.html",
 1427  1427 		"title": "HTMLAreaElement Role Verification Tests",
 1428    -1 		"html": "<map name=\"areamap\">\n  <area shape=\"rect\" coords=\"0,0,15,15\" href=\"#\" alt=\"x\" data-testname=\"el-area\" data-expectedrole=\"link\" class=\"ex\">\n  <area shape=\"rect\" coords=\"15,15,31,31\" alt=\"x\" data-testname=\"el-area-no-href\" class=\"ex-generic\">\n</map>\n<img usemap=\"#areamap\" style=\"width: 32px; height: 32px;\" alt=\"x\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">",
   -1  1428 		"html": "<style type=\"text/css\"></style><map name=\"areamap\">\n  <area shape=\"rect\" coords=\"0,0,15,15\" href=\"#\" alt=\"x\" data-testname=\"el-area\" data-expectedrole=\"link\" class=\"ex\">\n  <area shape=\"rect\" coords=\"15,15,31,31\" alt=\"x\" data-testname=\"el-area-no-href\" class=\"ex-generic\">\n</map>\n<img usemap=\"#areamap\" style=\"width: 32px; height: 32px;\" alt=\"x\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\">",
 1429  1429 		"role": "generic",
 1430  1430 		"selector": ".ex-generic"
 1431  1431 	},
 1432  1432 	{
 1433  1433 		"filename": "optgroup-role.html",
 1434  1434 		"title": "HTMLOptGroupElement Role Verification Tests",
 1435    -1 		"html": "<select>\n  <optgroup label=\"x\" data-testname=\"el-optgroup\" data-expectedrole=\"group\" class=\"ex\">\n    <option>x1</option>\n    <option>x2</option>\n  </optgroup>\n  <optgroup data-testname=\"el-optgroup-no-label\" data-expectedrole=\"not defined in spec?\" class=\"ex-todo\">\n    <option>y1</option>\n    <option>y2</option>\n  </optgroup>\n</select>",
   -1  1435 		"html": "<style type=\"text/css\"></style><select>\n  <optgroup label=\"x\" data-testname=\"el-optgroup\" data-expectedrole=\"group\" class=\"ex\">\n    <option>x1</option>\n    <option>x2</option>\n  </optgroup>\n  <optgroup data-testname=\"el-optgroup-no-label\" data-expectedrole=\"not defined in spec?\" class=\"ex-todo\">\n    <option>y1</option>\n    <option>y2</option>\n  </optgroup>\n</select>",
 1436  1436 		"selector": ".ex"
 1437  1437 	}
 1438  1438 ];
@@ -1440,19 +1440,19 @@ window.wpt["svg-aam"] = [
 1440  1440 	{
 1441  1441 		"filename": "comp_host_language_label.html",
 1442  1442 		"title": "Name Comp: Host Language Label",
 1443    -1 		"html": "<h1>SVG-AAM: Label Tests</h1>\n\n<p>Tests SVG-specific host language label rules (title element and xlink:title attr) in <a href=\"https://w3c.github.io/svg-aam/#mapping_additional_nd\">SVG-AAM \u00a78.1 Name and Description</a>, but note the open issues in <a href=\"https://github.com/w3c/svg-aam/issues/31\">SVG-AAM #31</a>.\n\n\n<h2>SVG * > title</h2>\n<svg viewbox=\"0 0 300 100\">\n  <circle cx=\"26\" cy=\"26\" r=\"25\" data-expectedlabel=\"circle label\" data-testname=\"circle > title\" class=\"ex\"><title>circle label</title></circle>\n  <rect x=\"60\" y=\"1\" width=\"50\" height=\"50\" data-expectedlabel=\"rect label\" data-testname=\"rect > title\" class=\"ex\"><title>rect label</title></rect>\n  <polygon points=\"100,100 150,25 150,75 200,0\" fill=\"none\" stroke=\"black\" data-expectedlabel=\"polygon label\" data-testname=\"polygon > title\" class=\"ex\"><title>polygon label</title></polygon>\n</svg><br>\n<svg viewbox=\"0 0 200 90\">\n  <g fill=\"white\" stroke=\"green\" stroke-width=\"5\" data-expectedlabel=\"group label\" data-testname=\"g > title\" class=\"ex\">\n    <title>group label</title>\n    <circle cx=\"40\" cy=\"40\" r=\"25\" />\n    <circle cx=\"60\" cy=\"60\" r=\"25\" />\n  </g>\n</svg>\n<br>\n\n\n<h2>SVG a[xlink:title][href]</h2>\n<svg viewbox=\"0 0 300 100\">\n  <a href=\"#\" data-expectedlabel=\"circle link label\" xlink:title=\"circle link label\" data-testname=\"[xlink:title][href] > circle\" class=\"ex\"><circle cx=\"26\" cy=\"26\" r=\"25\"></circle></a>\n  <a href=\"#\" data-expectedlabel=\"rect link label\" xlink:title=\"rect link label\" data-testname=\"[xlink:title][href] > rect\" class=\"ex\"><rect x=\"60\" y=\"1\" width=\"50\" height=\"50\"></rect></a>\n  <a href=\"#\" data-expectedlabel=\"polygon link label\" xlink:title=\"polygon link label\" data-testname=\"[xlink:title][href] > polygon\" class=\"ex\"><polygon points=\"100,100 150,25 150,75 200,0\" fill=\"none\" stroke=\"black\"></polygon></a>\n</svg><br>\n<svg viewbox=\"0 0 200 90\">\n  <a href=\"#\" data-expectedlabel=\"group link label\" xlink:title=\"group link label\" data-testname=\"[xlink:title][href] > g\" class=\"ex\">\n  <g fill=\"white\" stroke=\"green\" stroke-width=\"5\">\n    <circle cx=\"40\" cy=\"40\" r=\"25\" />\n    <circle cx=\"60\" cy=\"60\" r=\"25\" />\n  </g>\n  </a>\n</svg>\n<br>\n\n<h2>SVG a[xlink:title][xlink:href]:not([href])</h2>\n<svg viewbox=\"0 0 300 100\">\n  <a xlink:href=\"#\" data-expectedlabel=\"circle link label\" xlink:title=\"circle link label\" data-testname=\"[xlink:title][xlink:href] > circle\" class=\"ex\"><circle cx=\"26\" cy=\"26\" r=\"25\"></circle></a>\n  <a xlink:href=\"#\" data-expectedlabel=\"rect link label\" xlink:title=\"rect link label\" data-testname=\"[xlink:title][xlink:href] > rect\" class=\"ex\"><rect x=\"60\" y=\"1\" width=\"50\" height=\"50\"></rect></a>\n  <a xlink:href=\"#\" data-expectedlabel=\"polygon link label\" xlink:title=\"polygon link label\" data-testname=\"[xlink:title][xlink:href] > polygon\" class=\"ex\"><polygon points=\"100,100 150,25 150,75 200,0\" fill=\"none\" stroke=\"black\"></polygon></a>\n</svg><br>\n<svg viewbox=\"0 0 200 90\">\n  <a xlink:href=\"#\" data-expectedlabel=\"group link label\" xlink:title=\"group link label\" data-testname=\"[xlink:title][xlink:href] > g\" class=\"ex\">\n  <g fill=\"white\" stroke=\"green\" stroke-width=\"5\">\n    <circle cx=\"40\" cy=\"40\" r=\"25\" />\n    <circle cx=\"60\" cy=\"60\" r=\"25\" />\n  </g>\n  </a>\n</svg>\n<br>",
   -1  1443 		"html": "<style type=\"text/css\"></style><h1>SVG-AAM: Label Tests</h1>\n\n<p>Tests SVG-specific host language label rules (title element and xlink:title attr) in <a href=\"https://w3c.github.io/svg-aam/#mapping_additional_nd\">SVG-AAM \u00a78.1 Name and Description</a>, but note the open issues in <a href=\"https://github.com/w3c/svg-aam/issues/31\">SVG-AAM #31</a>.\n\n\n<h2>SVG * > title</h2>\n<svg viewbox=\"0 0 300 100\">\n  <circle cx=\"26\" cy=\"26\" r=\"25\" data-expectedlabel=\"circle label\" data-testname=\"circle > title\" class=\"ex\"><title>circle label</title></circle>\n  <rect x=\"60\" y=\"1\" width=\"50\" height=\"50\" data-expectedlabel=\"rect label\" data-testname=\"rect > title\" class=\"ex\"><title>rect label</title></rect>\n  <polygon points=\"100,100 150,25 150,75 200,0\" fill=\"none\" stroke=\"black\" data-expectedlabel=\"polygon label\" data-testname=\"polygon > title\" class=\"ex\"><title>polygon label</title></polygon>\n</svg><br>\n<svg viewbox=\"0 0 200 90\">\n  <g fill=\"white\" stroke=\"green\" stroke-width=\"5\" data-expectedlabel=\"group label\" data-testname=\"g > title\" class=\"ex\">\n    <title>group label</title>\n    <circle cx=\"40\" cy=\"40\" r=\"25\" />\n    <circle cx=\"60\" cy=\"60\" r=\"25\" />\n  </g>\n</svg>\n<br>\n\n\n<h2>SVG a[xlink:title][href]</h2>\n<svg viewbox=\"0 0 300 100\">\n  <a href=\"#\" data-expectedlabel=\"circle link label\" xlink:title=\"circle link label\" data-testname=\"[xlink:title][href] > circle\" class=\"ex\"><circle cx=\"26\" cy=\"26\" r=\"25\"></circle></a>\n  <a href=\"#\" data-expectedlabel=\"rect link label\" xlink:title=\"rect link label\" data-testname=\"[xlink:title][href] > rect\" class=\"ex\"><rect x=\"60\" y=\"1\" width=\"50\" height=\"50\"></rect></a>\n  <a href=\"#\" data-expectedlabel=\"polygon link label\" xlink:title=\"polygon link label\" data-testname=\"[xlink:title][href] > polygon\" class=\"ex\"><polygon points=\"100,100 150,25 150,75 200,0\" fill=\"none\" stroke=\"black\"></polygon></a>\n</svg><br>\n<svg viewbox=\"0 0 200 90\">\n  <a href=\"#\" data-expectedlabel=\"group link label\" xlink:title=\"group link label\" data-testname=\"[xlink:title][href] > g\" class=\"ex\">\n  <g fill=\"white\" stroke=\"green\" stroke-width=\"5\">\n    <circle cx=\"40\" cy=\"40\" r=\"25\" />\n    <circle cx=\"60\" cy=\"60\" r=\"25\" />\n  </g>\n  </a>\n</svg>\n<br>\n\n<h2>SVG a[xlink:title][xlink:href]:not([href])</h2>\n<svg viewbox=\"0 0 300 100\">\n  <a xlink:href=\"#\" data-expectedlabel=\"circle link label\" xlink:title=\"circle link label\" data-testname=\"[xlink:title][xlink:href] > circle\" class=\"ex\"><circle cx=\"26\" cy=\"26\" r=\"25\"></circle></a>\n  <a xlink:href=\"#\" data-expectedlabel=\"rect link label\" xlink:title=\"rect link label\" data-testname=\"[xlink:title][xlink:href] > rect\" class=\"ex\"><rect x=\"60\" y=\"1\" width=\"50\" height=\"50\"></rect></a>\n  <a xlink:href=\"#\" data-expectedlabel=\"polygon link label\" xlink:title=\"polygon link label\" data-testname=\"[xlink:title][xlink:href] > polygon\" class=\"ex\"><polygon points=\"100,100 150,25 150,75 200,0\" fill=\"none\" stroke=\"black\"></polygon></a>\n</svg><br>\n<svg viewbox=\"0 0 200 90\">\n  <a xlink:href=\"#\" data-expectedlabel=\"group link label\" xlink:title=\"group link label\" data-testname=\"[xlink:title][xlink:href] > g\" class=\"ex\">\n  <g fill=\"white\" stroke=\"green\" stroke-width=\"5\">\n    <circle cx=\"40\" cy=\"40\" r=\"25\" />\n    <circle cx=\"60\" cy=\"60\" r=\"25\" />\n  </g>\n  </a>\n</svg>\n<br>",
 1444  1444 		"selector": ".ex"
 1445  1445 	},
 1446  1446 	{
 1447  1447 		"filename": "roles.html",
 1448  1448 		"title": "SVG-AAM Role Verification Tests",
 1449    -1 		"html": "<p>Tests the mappings defined in <a href=\"https://w3c.github.io/svg-aam/#mapping_role_table\">SVG-AAM: 6.2 Element Mapping</a>.<p>\n\n<h2>Simple Elements With aria-label to Ensure Tree Inclusion</h2>\n<svg>\n  <!-- Some elements skipped: never-rendered elements can return unpredicable/undefined/unspecified values for computedrole. -->\n  <a href=\"#\" data-testname=\"el-a[href]\" data-expectedrole=\"link\" aria-label=\"label\" class=\"ex\">x</a>\n  <a xlink:href=\"#\" data-testname=\"el-a[xlink:href]\" data-expectedrole=\"link\" aria-label=\"label\" class=\"ex\">x</a>\n  <!-- skipped: animate -->\n  <!-- skipped: animateMotion -->\n  <!-- skipped: animateTransform -->\n  <!-- blocked: audio -> https://github.com/w3c/html-aam/issues/511 -->\n  <!-- todo: canvas -> follow HTML -->\n  <!-- blocked: circle -> https://github.com/w3c/svg-aam/issues/24 -->\n  <!-- n/a: clipPath -->\n  <!-- n/a: cursor -->\n  <!-- n/a: defs -->\n  <!-- n/a: desc -->\n  <!-- n/a: discard -->\n  <!-- blocked: ellipse -> https://github.com/w3c/svg-aam/issues/24 -->\n  <!-- n/a: feBlend -->\n  <!-- n/a: feColorMatrix -->\n  <!-- n/a: feComponentTransfer -->\n  <!-- n/a: feComposite -->\n  <!-- n/a: feConvolveMatrix -->\n  <!-- n/a: feDiffuseLighting -->\n  <!-- n/a: feDisplacementMap -->\n  <!-- n/a: feDistantLight -->\n  <!-- n/a: feDropShadow -->\n  <!-- n/a: feFlood -->\n  <!-- n/a: feFuncA -->\n  <!-- n/a: feFuncB -->\n  <!-- n/a: feFuncG -->\n  <!-- n/a: feFuncR -->\n  <!-- n/a: feGaussianBlur -->\n  <!-- n/a: feImage -->\n  <!-- n/a: feMerge -->\n  <!-- n/a: feMergeNode -->\n  <!-- n/a: feMorphology -->\n  <!-- n/a: feOffset -->\n  <!-- n/a: fePointLight -->\n  <!-- n/a: feSpecularLighting -->\n  <!-- n/a: feSpotLight -->\n  <!-- n/a: feTile -->\n  <!-- n/a: feTurbulence -->\n  <!-- n/a: filter -->\n  <!-- todo: foreignObject (spec says `group` role if rendered and labeled) -->\n  <g fill=\"white\" stroke=\"green\" stroke-width=\"2\" data-testname=\"el-g\" data-expectedrole=\"group\" aria-label=\"label\" class=\"ex\">\n    <circle cx=\"40\" cy=\"40\" r=\"25\" />\n  </g>\n  <!-- n/a: hatch -->\n  <!-- n/a: hatchPath -->\n  <!-- todo: iframe -> follow HTML -->\n  <image data-testname=\"el-image\" data-expectedrole=\"image\" aria-label=\"label\" class=\"ex\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\"></image>\n  <!-- blocked: line -> https://github.com/w3c/svg-aam/issues/24 -->\n  <!-- n/a: linearGradient -->\n  <!-- n/a: marker -->\n  <!-- n/a: mask -->\n  <!-- todo: mesh (spec says `image` role if rendered and labeled) -->\n  <!-- n/a: meshPatch -->\n  <!-- n/a: meshRow -->\n  <!-- n/a: metadata -->\n  <!-- n/a: mpath -->\n  <!-- blocked: path -> https://github.com/w3c/svg-aam/issues/24 -->\n  <!-- n/a: pattern -->\n  <!-- blocked: polygon -> https://github.com/w3c/svg-aam/issues/24 -->\n  <!-- blocked: polyline -> https://github.com/w3c/svg-aam/issues/24 -->\n  <!-- n/a: radialGradient -->\n  <!-- blocked: rect -> https://github.com/w3c/svg-aam/issues/24 -->\n  <!-- n/a: script -->\n  <!-- n/a: set -->\n  <!-- n/a: solidColor -->\n  <!-- todo: source -> follow HTML -->\n  <!-- n/a: stop -->\n  <!-- n/a: style -->\n  <!-- blocked: svg -> https://github.com/w3c/svg-aam/issues/18 -->\n  <!-- n/a: switch -->\n  <!-- blocked: symbol -> https://github.com/w3c/svg-aam/issues/24 -->\n  <!-- blocked: text -> https://github.com/w3c/svg-aam/issues/33 -->\n  <!-- blocked: textPath -> https://w3c.github.io/svg-aam/#textpath-tspan-mappings-issue-->\n  <!-- n/a: title -->\n  <!-- todo: track -> follow HTML -->\n  <!-- blocked: tspan -> https://w3c.github.io/svg-aam/#textpath-tspan-mappings-issue -->\n  <!-- blocked: use -> https://github.com/w3c/svg-aam/issues/24 -->\n  <!-- todo: video -> follow HTML -->\n  <!-- n/a: view -->\n</svg>",
   -1  1449 		"html": "<style type=\"text/css\"></style><p>Tests the mappings defined in <a href=\"https://w3c.github.io/svg-aam/#mapping_role_table\">SVG-AAM: 6.2 Element Mapping</a>.<p>\n\n<h2>Simple Elements With aria-label to Ensure Tree Inclusion</h2>\n<svg>\n  <!-- Some elements skipped: never-rendered elements can return unpredicable/undefined/unspecified values for computedrole. -->\n  <a href=\"#\" data-testname=\"el-a[href]\" data-expectedrole=\"link\" aria-label=\"label\" class=\"ex\">x</a>\n  <a xlink:href=\"#\" data-testname=\"el-a[xlink:href]\" data-expectedrole=\"link\" aria-label=\"label\" class=\"ex\">x</a>\n  <!-- skipped: animate -->\n  <!-- skipped: animateMotion -->\n  <!-- skipped: animateTransform -->\n  <!-- blocked: audio -> https://github.com/w3c/html-aam/issues/511 -->\n  <!-- todo: canvas -> follow HTML -->\n  <!-- blocked: circle -> https://github.com/w3c/svg-aam/issues/24 -->\n  <!-- n/a: clipPath -->\n  <!-- n/a: cursor -->\n  <!-- n/a: defs -->\n  <!-- n/a: desc -->\n  <!-- n/a: discard -->\n  <!-- blocked: ellipse -> https://github.com/w3c/svg-aam/issues/24 -->\n  <!-- n/a: feBlend -->\n  <!-- n/a: feColorMatrix -->\n  <!-- n/a: feComponentTransfer -->\n  <!-- n/a: feComposite -->\n  <!-- n/a: feConvolveMatrix -->\n  <!-- n/a: feDiffuseLighting -->\n  <!-- n/a: feDisplacementMap -->\n  <!-- n/a: feDistantLight -->\n  <!-- n/a: feDropShadow -->\n  <!-- n/a: feFlood -->\n  <!-- n/a: feFuncA -->\n  <!-- n/a: feFuncB -->\n  <!-- n/a: feFuncG -->\n  <!-- n/a: feFuncR -->\n  <!-- n/a: feGaussianBlur -->\n  <!-- n/a: feImage -->\n  <!-- n/a: feMerge -->\n  <!-- n/a: feMergeNode -->\n  <!-- n/a: feMorphology -->\n  <!-- n/a: feOffset -->\n  <!-- n/a: fePointLight -->\n  <!-- n/a: feSpecularLighting -->\n  <!-- n/a: feSpotLight -->\n  <!-- n/a: feTile -->\n  <!-- n/a: feTurbulence -->\n  <!-- n/a: filter -->\n  <!-- todo: foreignObject (spec says `group` role if rendered and labeled) -->\n  <g fill=\"white\" stroke=\"green\" stroke-width=\"2\" data-testname=\"el-g\" data-expectedrole=\"group\" aria-label=\"label\" class=\"ex\">\n    <circle cx=\"40\" cy=\"40\" r=\"25\" />\n  </g>\n  <!-- n/a: hatch -->\n  <!-- n/a: hatchPath -->\n  <!-- todo: iframe -> follow HTML -->\n  <image data-testname=\"el-image\" data-expectedrole=\"image\" aria-label=\"label\" class=\"ex\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\"></image>\n  <!-- blocked: line -> https://github.com/w3c/svg-aam/issues/24 -->\n  <!-- n/a: linearGradient -->\n  <!-- n/a: marker -->\n  <!-- n/a: mask -->\n  <!-- todo: mesh (spec says `image` role if rendered and labeled) -->\n  <!-- n/a: meshPatch -->\n  <!-- n/a: meshRow -->\n  <!-- n/a: metadata -->\n  <!-- n/a: mpath -->\n  <!-- blocked: path -> https://github.com/w3c/svg-aam/issues/24 -->\n  <!-- n/a: pattern -->\n  <!-- blocked: polygon -> https://github.com/w3c/svg-aam/issues/24 -->\n  <!-- blocked: polyline -> https://github.com/w3c/svg-aam/issues/24 -->\n  <!-- n/a: radialGradient -->\n  <!-- blocked: rect -> https://github.com/w3c/svg-aam/issues/24 -->\n  <!-- n/a: script -->\n  <!-- n/a: set -->\n  <!-- n/a: solidColor -->\n  <!-- todo: source -> follow HTML -->\n  <!-- n/a: stop -->\n  <!-- n/a: style -->\n  <!-- blocked: svg -> https://github.com/w3c/svg-aam/issues/18 -->\n  <!-- n/a: switch -->\n  <!-- blocked: symbol -> https://github.com/w3c/svg-aam/issues/24 -->\n  <!-- blocked: text -> https://github.com/w3c/svg-aam/issues/33 -->\n  <!-- blocked: textPath -> https://w3c.github.io/svg-aam/#textpath-tspan-mappings-issue-->\n  <!-- n/a: title -->\n  <!-- todo: track -> follow HTML -->\n  <!-- blocked: tspan -> https://w3c.github.io/svg-aam/#textpath-tspan-mappings-issue -->\n  <!-- blocked: use -> https://github.com/w3c/svg-aam/issues/24 -->\n  <!-- todo: video -> follow HTML -->\n  <!-- n/a: view -->\n</svg>",
 1450  1450 		"selector": ".ex"
 1451  1451 	},
 1452  1452 	{
 1453  1453 		"filename": "roles-generic.html",
 1454  1454 		"title": "SVG-AAM Generic Role Verification Tests",
 1455    -1 		"html": "<p>Tests ONLY the default <code>generic</code> mappings defined in <a href=\"https://w3c.github.io/svg-aam/#include_elements\">SVG-AAM: 5.1.2 Including Elements in the Accessibility Tree</a>.</p>\n\n<h2>Simple Elements</h2>\n<!-- Note: adding an inoccuous label, tabindex, or some other accessible marker may cause the computedrole result to change. -->\n<svg>\n  <!-- Some elements skipped: never-rendered elements can return unpredicable/undefined/unspecified values for computedrole. -->\n  <circle data-testname=\"el-circle\" class=\"ex-generic\"></circle>\n  <ellipse data-testname=\"el-ellipse\" class=\"ex-generic\"></ellipse>\n  <foreignObject data-testname=\"el-foreignObject\" class=\"ex-generic\"></foreignObject>\n  <g data-testname=\"el-g\" class=\"ex-generic\"></g>\n  <!-- image -> in ./role-img.tentative.html -->\n  <line data-testname=\"el-line\" class=\"ex-generic\"></line>\n  <!-- skipped: mesh -->\n  <path data-testname=\"el-path\" class=\"ex-generic\"></path>\n  <polygon data-testname=\"el-polygon\" class=\"ex-generic\"></polygon>\n  <polyline data-testname=\"el-polyline\" class=\"ex-generic\"></polyline>\n  <rect data-testname=\"el-rect\" class=\"ex-generic\"></rect>\n  <!-- blocked: textPath -> https://w3c.github.io/svg-aam/#textpath-tspan-mappings-issue-->\n  <!-- blocked: tspan -> https://w3c.github.io/svg-aam/#textpath-tspan-mappings-issue -->\n  <!-- skipped: use -->\n</svg>",
   -1  1455 		"html": "<style type=\"text/css\"></style><p>Tests ONLY the default <code>generic</code> mappings defined in <a href=\"https://w3c.github.io/svg-aam/#include_elements\">SVG-AAM: 5.1.2 Including Elements in the Accessibility Tree</a>.</p>\n\n<h2>Simple Elements</h2>\n<!-- Note: adding an inoccuous label, tabindex, or some other accessible marker may cause the computedrole result to change. -->\n<svg>\n  <!-- Some elements skipped: never-rendered elements can return unpredicable/undefined/unspecified values for computedrole. -->\n  <circle data-testname=\"el-circle\" class=\"ex-generic\"></circle>\n  <ellipse data-testname=\"el-ellipse\" class=\"ex-generic\"></ellipse>\n  <foreignObject data-testname=\"el-foreignObject\" class=\"ex-generic\"></foreignObject>\n  <g data-testname=\"el-g\" class=\"ex-generic\"></g>\n  <!-- image -> in ./role-img.tentative.html -->\n  <line data-testname=\"el-line\" class=\"ex-generic\"></line>\n  <!-- skipped: mesh -->\n  <path data-testname=\"el-path\" class=\"ex-generic\"></path>\n  <polygon data-testname=\"el-polygon\" class=\"ex-generic\"></polygon>\n  <polyline data-testname=\"el-polyline\" class=\"ex-generic\"></polyline>\n  <rect data-testname=\"el-rect\" class=\"ex-generic\"></rect>\n  <!-- blocked: textPath -> https://w3c.github.io/svg-aam/#textpath-tspan-mappings-issue-->\n  <!-- blocked: tspan -> https://w3c.github.io/svg-aam/#textpath-tspan-mappings-issue -->\n  <!-- skipped: use -->\n</svg>",
 1456  1456 		"role": "generic",
 1457  1457 		"selector": ".ex-generic"
 1458  1458 	}

diff --git a/wpt.py b/wpt.py

@@ -11,6 +11,12 @@ def fenced(before, after, s):
   11    11 	return s[start:end]
   12    12 
   13    13 
   -1    14 def get_css(html):
   -1    15 	start = '<style type="text/css">'
   -1    16 	end = '</style>'
   -1    17 	return start + fenced(start, end, html) + end
   -1    18 
   -1    19 
   14    20 def get_value(word, s):
   15    21 	start = s.find(word)
   16    22 	if start == -1:
@@ -58,14 +64,14 @@ def extract_tests(path):
   58    64 						tests.append({
   59    65 							'filename': filename,
   60    66 							'title': fenced('<title>', '</title>', raw),
   61    -1 							'html': fenced('<body>', '<script>', raw).strip(),
   -1    67 							'html': get_css(raw) + fenced('<body>', '<script>', raw).strip(),
   62    68 							'selector': '.ex',
   63    69 						})
   64    70 					if 'class="ex-generic"' in raw:
   65    71 						tests.append({
   66    72 							'filename': filename,
   67    73 							'title': fenced('<title>', '</title>', raw),
   68    -1 							'html': fenced('<body>', '<script>', raw).strip(),
   -1    74 							'html': get_css(raw) + fenced('<body>', '<script>', raw).strip(),
   69    75 							'role': 'generic',
   70    76 							'selector': '.ex-generic',
   71    77 						})