diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/embedded-content/the-canvas-element/canvas-descendants-focusability-003.tentative.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/embedded-content/the-canvas-element/canvas-descendants-focusability-003.tentative.html | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-canvas-element/canvas-descendants-focusability-003.tentative.html b/testing/web-platform/tests/html/semantics/embedded-content/the-canvas-element/canvas-descendants-focusability-003.tentative.html new file mode 100644 index 0000000000..cd42d1e6b7 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/the-canvas-element/canvas-descendants-focusability-003.tentative.html @@ -0,0 +1,48 @@ +<!DOCTYPE html> +<meta charset="utf-8" /> +<title>Canvas descendants focusability</title> +<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/canvas.html#being-used-as-relevant-canvas-fallback-content"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/interaction.html#focusable-area"> +<link rel="help" href="https://github.com/whatwg/html/issues/7534"> +<meta name="assert" content="Checks that elements being used as relevant canvas + fallback content can't be focusable if they are not rendered because of an + explicit 'display: none' style, but can if they are not rendered because of + a 'display: contents' style."> +<div id="log"></div> +<canvas> + <button hidden data-focusable="false"></button> + <section hidden tabindex="-1" data-focusable="false"> + <div tabindex="-1" data-focusable="false"></div> + <span tabindex="-1" data-focusable="false"></span> + <a href="#" data-focusable="false"></a> + </section> + <button style="display: contents" data-focusable="true"></button> + <section style="display: contents" tabindex="-1" data-focusable="true"> + <div style="display: contents" tabindex="-1" data-focusable="true"></div> + <span style="display: contents" tabindex="-1" data-focusable="true"></span> + <a style="display: contents" href="#" data-focusable="true"></a> + </section> +</canvas> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +setup(() => { + const canvas = document.querySelector("canvas"); + assert_greater_than(canvas.getClientRects().length, 0, "Canvas is rendered"); +}); +for (let element of document.querySelectorAll("[data-focusable]")) { + let title = element.cloneNode(false).outerHTML.toLowerCase(); + title = title.slice(0, title.lastIndexOf("<")); + test(function() { + assert_equals(element.getClientRects().length, 0, "Not rendered"); + assert_true(document.activeElement !== element, "Not initially focused"); + element.focus(); + if (JSON.parse(element.dataset.focusable)) { + assert_true(document.activeElement === element, "Should be focused"); + } else { + assert_true(document.activeElement !== element, "Shouldn't be focused"); + } + }, title); +} +</script> |