LibWeb: Assign “dir”, “dd”, “dt” default ARIA roles per-spec

Also, import http://wpt.live/html-aam/dir-role.tentative.html (which
provides test/regression coverage for the “dir” change).
This commit is contained in:
sideshowbarker 2024-12-08 15:54:31 +09:00 committed by Tim Flynn
parent ccbc436e85
commit 50e7e9f58d
Notes: github-actions[bot] 2024-12-12 13:14:45 +00:00
3 changed files with 43 additions and 0 deletions

View file

@ -740,6 +740,15 @@ Optional<ARIA::Role> HTMLElement::default_role() const
// https://www.w3.org/TR/html-aria/#el-code
if (local_name() == TagNames::code)
return ARIA::Role::code;
// https://w3c.github.io/html-aam/#el-dd
if (local_name() == TagNames::dd)
return ARIA::Role::definition;
// https://wpt.fyi/results/html-aam/dir-role.tentative.html
if (local_name() == TagNames::dir)
return ARIA::Role::list;
// https://w3c.github.io/html-aam/#el-dt
if (local_name() == TagNames::dt)
return ARIA::Role::term;
// https://www.w3.org/TR/html-aria/#el-dfn
if (local_name() == TagNames::dfn)
return ARIA::Role::term;

View file

@ -0,0 +1,6 @@
Harness status: OK
Found 1 tests
1 Pass
Pass el-dir

View file

@ -0,0 +1,28 @@
<!doctype html>
<html>
<head>
<title>HTML-AAM dir Element Role Verification Test</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>Tentative test for the expected role mappings of the obsolete <code>dir</code> element.
The computedrole mappings are defined in <a href="https://w3c.github.io/html-aam/">HTML-AAM</a>.<p>
<p>Merge the outcome of this test into roles.html in the appropriate alphabetical order, when it is no longer considered tentative:</p>
<dir data-testname="el-dir" data-expectedrole="list" class="ex"><li>x</li><li>x</li></dir>
<script>
AriaUtils.verifyRolesBySelector(".ex");
</script>
</body>
</html>