-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
LibWeb: Ignore name-required landmark roles which lack accessible names
This change implements the role-checking requirement from the ARIA spec at https://w3c.github.io/aria/#document-handling_author-errors_roles that the"form" and "region" roles are required to have accessible names, and that if they do not have accessible names as required, UAs must treat them as if they’d not be specified at all.
- Loading branch information
1 parent
a963eec
commit 2106692
Showing
7 changed files
with
152 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
17 changes: 17 additions & 0 deletions
17
Tests/LibWeb/Text/expected/wpt-import/wai-aria/role/fallback-roles.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
Harness status: OK | ||
|
||
Found 12 tests | ||
|
||
12 Pass | ||
Pass fallback role w/ region with no label | ||
Pass fallback role w/ region with label | ||
Pass aria 1.1 switch role w/ fallback to aria 1.0 checkbox role | ||
Pass div[role=button] ignoring invalid foo role token | ||
Pass unknown[role=button] ignoring invalid foo role token | ||
Pass button ignoring single invalid role token | ||
Pass button ignoring multiple invalid role tokens | ||
Pass div[role=button] ignoring invalid foo role token including punctuation-contaminated known link role | ||
Pass div[role=button] ignoring invalid unicode diacritics etc on link and group role tokens | ||
Pass div[role=button] ignoring tab char | ||
Pass div[role=button] ignoring line break | ||
Pass div[role=button] ignoring braille whitespace char |
7 changes: 7 additions & 0 deletions
7
Tests/LibWeb/Text/expected/wpt-import/wai-aria/role/form-roles.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
Harness status: OK | ||
|
||
Found 2 tests | ||
|
||
2 Pass | ||
Pass form without label | ||
Pass form with label |
7 changes: 7 additions & 0 deletions
7
Tests/LibWeb/Text/expected/wpt-import/wai-aria/role/region-roles.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
Harness status: OK | ||
|
||
Found 2 tests | ||
|
||
2 Pass | ||
Pass region without label | ||
Pass region with label |
57 changes: 57 additions & 0 deletions
57
Tests/LibWeb/Text/input/wpt-import/wai-aria/role/fallback-roles.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
<!doctype html> | ||
<html> | ||
<head> | ||
<title>Fallback Role Verification Tests</title> | ||
<script src="../../resources/testharness.js"></script> | ||
<script src="../../resources/testharnessreport.js"></script> | ||
<script src="../../resources/testdriver.js"></script> | ||
<script src="../../resources/testdriver-vendor.js"></script> | ||
<script src="../../resources/testdriver-actions.js"></script> | ||
<script src="../../wai-aria/scripts/aria-utils.js"></script> | ||
</head> | ||
<body> | ||
|
||
<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> | ||
|
||
<!-- known el and two known ARIA 1.0 roles --> | ||
<nav role="region group" data-testname="fallback role w/ region with no label" data-expectedrole="group" class="ex">x</nav> | ||
<nav role="region group" data-testname="fallback role w/ region with label" aria-label="x" data-expectedrole="region" class="ex">x</nav> | ||
|
||
<!-- known el and known ARIA 1.1 with 1.0 role backup --> | ||
<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> | ||
|
||
<!-- known el and invalid role token with valid backup --> | ||
<div role="foo button" data-testname="div[role=button] ignoring invalid foo role token" aria-label="x" data-expectedrole="button" class="ex">x</div> | ||
|
||
<!-- unknown el and invalid role token with valid backup --> | ||
<unknown role="foo button" data-testname="unknown[role=button] ignoring invalid foo role token" aria-label="x" data-expectedrole="button" class="ex">x</unknown> | ||
|
||
<!-- known el and invalid role(s) --> | ||
<button role="foo" data-testname="button ignoring single invalid role token" aria-label="x" data-expectedrole="button" class="ex">x</unknown> | ||
<button role="foo bar" data-testname="button ignoring multiple invalid role tokens" aria-label="x" data-expectedrole="button" class="ex">x</unknown> | ||
|
||
<!-- known el with invalid punctuation --> | ||
<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> | ||
|
||
|
||
|
||
<!-- extra line breaks here to account for rendering of unicode diacritic etc char glitch tests --> | ||
|
||
|
||
|
||
<div role="l̷̨̢̡̖̻̗̤̺̟̱͚͔͇͍͇̫̫̜͔̗̟̘̫̟̰̼̘͗̌̃͐̔̈́̚͝į̵̡̲̯̠̮͈͖̥̮̲͓̦̗̗̱̞͍̗̪͙͇͚͂̍͐̔̍͌̐̇̏̎͘͝ǹ̶̨̧̢̜̲̫͇̮͉̬͎͎͕̝̱͔̙̱̦̰̦̠̰̣̝͂̓̋̊͜ķ̷̧̧̨̨̨̘̳͕̰͎̮̠̘̪͇͕̥̭̼̼̜̤̫̥̼̤̰̦͖̪̀͒̆͑̒̅͑̓̒͂̽̈́̽̉̀̕͘͜͝ ̷̡̮̦̘͓̫̜͕͖̰̙̘͓̼͎̳̹͇̮͐͂́͛̃́̊̈͌̄̓̌̂̈̇̀̌̈́́̀̈́̍̈́̇̄̊̔͒̾̾̇́͒̽͂̾̕̚͜͜͝͠ͅͅg̸̨̧̧̧̧̛̺̦̣͇͈͙͇͎͕̠̞̳̹̣͋͑̑̓͛̓̉̔̉͑̇́̈́̉̃́̑̍̂̒͐͛͗̑̏̓̾͌̈̅́̇̕̕̚̚͝͝ͅr̶̛̤̲̘̮̟̭̲̋̾̀́́̒̀̀͑̎̀̌̈̀̍̂̏̊̎͐͒͗͗̀͘͘͘͠͠ȍ̴̧̡̢̡̢̞̝̠̙̬̗͍͍͉̺͔͙̫̝̰̮̜̩̙̳͉̻̻̼͍̊͋͐̐͆̈̿̒̊̄͑̈́̔͋̔̃͐̓̓͛́͊̉͑̊̔͆͘͘͜͠ͅu̴̱̯̞̞̞̺̼̳̳͚̞̇̈͒͠p̶̛͉̮̙̯̮̱͉̖͚͉̩̱̺̩̦̺͈̫͍͔̲̣̗̟̜̂̐̌̏͌̈́͗̾͌̿̓͒̋̆͆̾͛̐̈́̓͋̀͘̚͝͝͝ ̶͔͚̩̬͈̍̈́͗͐̀̊̏͛̃̈́͋̅͝ 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> | ||
|
||
|
||
<!-- known el and known role with whitespace edge cases --> | ||
<div role=" button" data-testname="div[role=button] ignoring tab char" aria-label="x" data-expectedrole="button" class="ex">x</div> | ||
<div role=" | ||
button" data-testname="div[role=button] ignoring line break" aria-label="x" data-expectedrole="button" class="ex">x</div> | ||
<div role="⠀ button" data-testname="div[role=button] ignoring braille whitespace char" aria-label="x" data-expectedrole="button" class="ex">x</div> | ||
|
||
|
||
<script> | ||
AriaUtils.verifyRolesBySelector(".ex"); | ||
</script> | ||
|
||
</body> | ||
</html> |
28 changes: 28 additions & 0 deletions
28
Tests/LibWeb/Text/input/wpt-import/wai-aria/role/form-roles.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
<!doctype html> | ||
<html> | ||
<head> | ||
<title>Form Role Verification Tests</title> | ||
<script src="../../resources/testharness.js"></script> | ||
<script src="../../resources/testharnessreport.js"></script> | ||
<script src="../../resources/testdriver.js"></script> | ||
<script src="../../resources/testdriver-vendor.js"></script> | ||
<script src="../../resources/testdriver-actions.js"></script> | ||
<script src="../../wai-aria/scripts/aria-utils.js"></script> | ||
</head> | ||
<body> | ||
|
||
<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> | ||
|
||
|
||
<!-- no label --> | ||
<nav role="form" data-testname="form without label" data-expectedrole="navigation" class="ex">x</nav> | ||
|
||
<!-- w/ label --> | ||
<nav role="form" data-testname="form with label" data-expectedrole="form" aria-label="x" class="ex">x</nav> | ||
|
||
<script> | ||
AriaUtils.verifyRolesBySelector(".ex"); | ||
</script> | ||
|
||
</body> | ||
</html> |
27 changes: 27 additions & 0 deletions
27
Tests/LibWeb/Text/input/wpt-import/wai-aria/role/region-roles.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
<!doctype html> | ||
<html> | ||
<head> | ||
<title>Region Role Verification Tests</title> | ||
<script src="../../resources/testharness.js"></script> | ||
<script src="../../resources/testharnessreport.js"></script> | ||
<script src="../../resources/testdriver.js"></script> | ||
<script src="../../resources/testdriver-vendor.js"></script> | ||
<script src="../../resources/testdriver-actions.js"></script> | ||
<script src="../../wai-aria/scripts/aria-utils.js"></script> | ||
</head> | ||
<body> | ||
|
||
<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> | ||
|
||
<!-- no label --> | ||
<nav role="region" data-testname="region without label" data-expectedrole="navigation" class="ex">x</nav> | ||
|
||
<!-- w/ label --> | ||
<nav role="region" data-testname="region with label" data-expectedrole="region" aria-label="x" class="ex">x</nav> | ||
|
||
<script> | ||
AriaUtils.verifyRolesBySelector(".ex"); | ||
</script> | ||
|
||
</body> | ||
</html> |