Skip to content

Commit

Permalink
HTML: test accesskey for legend
Browse files Browse the repository at this point in the history
  • Loading branch information
zcorpan authored Sep 7, 2018
1 parent d9e0776 commit de95584
Show file tree
Hide file tree
Showing 9 changed files with 155 additions and 0 deletions.
36 changes: 36 additions & 0 deletions html/semantics/interactive-elements/commands/common/accesskey.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
setup({explicit_done: true, explicit_timeout: true});

const NOTRUN = 3;
let status = NOTRUN;
function notrun() {
return status === NOTRUN;
}
add_completion_callback(tests => {
status = tests[0].status;
});

function pass() {
// Wait a couple of frames in case fail() is also called.
requestAnimationFrame(() => {
requestAnimationFrame(() => {
if (notrun()) {
test(() => {});
done();
}
});
});
}

function fail(msg) {
if (notrun()) {
test(() => { assert_unreached(msg); });
done();
}
}

document.addEventListener('DOMContentLoaded', () => {
const accessKeyElement = document.querySelector('[accesskey]');
if (accessKeyElement.accessKeyLabel) {
document.querySelector('kbd').textContent = accessKeyElement.accessKeyLabel;
}
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<!doctype html>
<title>First input after the legend</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=../common/accesskey.js></script>
<p>Press the access key combination for "a". <kbd></kbd></p>
<fieldset>
<legend accesskey=a>legend</legend>
<input onfocus="pass()">
</fieldset>
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!doctype html>
<title>First input before the legend</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=../common/accesskey.js></script>
<p>Press the access key combination for "a". <kbd></kbd></p>
<fieldset>
<input onfocus="pass()">
<legend accesskey=a>legend
<input onfocus="fail('input in legend was focused')">
</legend>
<input onfocus="fail('input after legend was focused')">
</fieldset>
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!doctype html>
<title>First input inside the legend</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=../common/accesskey.js></script>
<p>Press the access key combination for "a". <kbd></kbd></p>
<fieldset>
<legend accesskey=a>legend
<input onfocus="pass()">
</legend>
<input onfocus="fail('input after legend was focused')">
</fieldset>
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<!doctype html>
<title>Focusable legend</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=../common/accesskey.js></script>
<p>Press the access key combination for "a". <kbd></kbd></p>
<fieldset>
<legend tabindex=0 onclick="fail('unexpected click event on legend')"
onfocus="fail('legend was focused')" accesskey=a>
legend
<input onfocus="pass()">
</legend>
<input onfocus="fail('input after legend was focused')">
</fieldset>
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<!doctype html>
<title>Focusable legend sibling</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=../common/accesskey.js></script>
<p>Press the access key combination for "a". <kbd></kbd></p>
<fieldset>
<legend accesskey=a>first legend</legend>
<legend tabindex=0 onfocus="fail('sibling legend was focused')">second legend</legend>
</fieldset>
<script>
onkeyup = e => {
if (e.keyCode === 65) {
pass();
}
}
</script>
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<!doctype html>
<title>Input outside fieldset</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=../common/accesskey.js></script>
<p>Press the access key combination for "a". <kbd></kbd></p>
<fieldset>
<legend accesskey=a>legend</legend>
</fieldset>
<input onfocus="fail('input outside fieldset was focused')">
<script>
onkeyup = e => {
if (e.keyCode === 65) {
pass();
}
}
</script>
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!doctype html>
<title>Label sibling</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=../common/accesskey.js></script>
<p>Press the access key combination for "a". <kbd></kbd></p>
<input id=x onfocus="fail('input associated with the label was focused')">
<fieldset>
<legend accesskey=a>legend</legend>
<label for=x onclick="fail('label received a click event')">label</label>
</fieldset>
<script>
onkeyup = e => {
if (e.keyCode === 65) {
pass();
}
}
</script>
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!doctype html>
<title>No fieldset parent</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=../common/accesskey.js></script>
<p>Press the access key combination for "a". <kbd></kbd></p>
<legend accesskey=a>
legend
<input onfocus="fail('input in legend was focused')">
</legend>
<input onfocus="fail('input after legend was focused')">
<script>
onkeyup = e => {
if (e.keyCode === 65) {
pass();
}
}
</script>

0 comments on commit de95584

Please sign in to comment.