| <!doctype HTML> |
| <meta charset="utf8"> |
| <title>Content Visibility: tab order navigation ignores hidden subtrees</title> |
| <link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org"> |
| <link rel="help" href="https://drafts.csswg.org/css-contain/#content-visibility"> |
| <meta name="assert" content="tab order navigation ignores hidden subtrees."> |
| |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/resources/testdriver.js"></script> |
| <script src="/resources/testdriver-actions.js"></script> |
| <script src="/resources/testdriver-vendor.js"></script> |
| |
| <style> |
| .hidden { |
| content-visibility: hidden; |
| } |
| </style> |
| |
| <input id=one type=text></input> |
| <div class=hidden> |
| <input id=two type=text></input> |
| <input id=three type=text></input> |
| <input id=four type=text></input> |
| </div> |
| <input id=five type=text></input> |
| |
| <script> |
| async_test((t) => { |
| const tab = "\t"; |
| async function step1() { |
| await test_driver.send_keys(document.body, tab); |
| t.step(() => { |
| assert_equals(document.activeElement, document.getElementById("one")); |
| }); |
| requestAnimationFrame(step2); |
| } |
| |
| async function step2() { |
| await test_driver.send_keys(document.body, tab); |
| t.step(() => { |
| assert_equals(document.activeElement, document.getElementById("five")); |
| }); |
| t.done(); |
| } |
| |
| window.onload = () => { requestAnimationFrame(step1); }; |
| }, "Tab order navigation skips hidden subtrees"); |
| </script> |