<!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 = "\uE004";

  async function runTest() {
    await test_driver.send_keys(document.body, tab);
    t.step(() => {
      assert_equals(document.activeElement, document.getElementById("one"));
    });

    await test_driver.send_keys(document.body, tab);
    t.step(() => {
      assert_equals(document.activeElement, document.getElementById("five"));
    });

    t.done();
  }

  window.onload = () => { requestAnimationFrame(runTest); };
}, "Tab order navigation skips hidden subtrees");
</script>
