Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!DOCTYPE html>
<title>Focusability of form-associated custom elements</title>
<link rel="author" title="Michael[tm] Smith" href="mailto:mike@w3.org">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<x-foo></x-foo>
<x-bar tabindex=0></x-bar>
<x-baz tabindex=0 disabled></x-baz>
<script>
test(() => {
customElements.define(
'x-foo',
class Foo extends HTMLElement {
static formAssociated = true;
}
);
const foo = document.querySelector('x-foo');
foo.focus();
assert_false(document.activeElement === foo,
"FACE without tabindex is not focusable.");
customElements.define(
'x-bar',
class bar extends HTMLElement {
static formAssociated = true;
}
);
const bar = document.querySelector('x-bar');
bar.focus();
assert_true(document.activeElement === bar,
"FACE with tabindex is focusable.");
customElements.define(
'x-baz',
class baz extends HTMLElement {
static formAssociated = true;
}
);
const baz = document.querySelector('x-baz');
baz.focus();
assert_false(document.activeElement === baz,
"Disabled FACE with tabindex is not focusable.");
});
</script>
</html>