<!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://github.com/WICG/display-locking">
<link rel="match" href="activated-removes-size-containment-ref.html">
<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-matchable;
}
</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>
