summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/custom-elements/form-associated/focusability.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/custom-elements/form-associated/focusability.html')
-rw-r--r--testing/web-platform/tests/custom-elements/form-associated/focusability.html43
1 files changed, 43 insertions, 0 deletions
diff --git a/testing/web-platform/tests/custom-elements/form-associated/focusability.html b/testing/web-platform/tests/custom-elements/form-associated/focusability.html
new file mode 100644
index 0000000000..cc12b7d51b
--- /dev/null
+++ b/testing/web-platform/tests/custom-elements/form-associated/focusability.html
@@ -0,0 +1,43 @@
+<!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>