summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/interaction/focus/focusgroup/tentative/forward-navigation/vertical/wraps-in-appropriate-focusgroup.html
blob: fa9c72b0bdf46b107eaff3b32bd78dffafbadc81 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html>
<meta charset="utf-8">
<title>HTML Test: focusgroup - Focus wraps in the appropriate focusgroup.</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com/">
<link rel="help" href="https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/Focusgroup/explainer.md">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/resources/testdriver-actions.js"></script>
<script src="../../resources/focusgroup-utils.js"></script>

<div focusgroup=wrap> <!--Supports vertical wrapping-->
  <div focusgroup="extend horizontal"> <!--Doesn't support vertical wrapping-->
    <span id=item1 tabindex=0>item1</span>
    <div id=item2 tabindex=-1 focusgroup="extend wrap">
      <!--Supports wrapping in both axis, but only extend the
          wrapping behavior of its ancestors in the horizontal axis. -->
      <span id=item3 tabindex=-1>item3</span>
      <span id=item4 tabindex=-1>item4</span>
    </div>
  </div>
</div>

<script>

  promise_test(async t => {
    var item3 = document.getElementById("item3");
    var item4 = document.getElementById("item4");

    await focusAndKeyPress(item4, kArrowDown);
    assert_equals(document.activeElement, item3);
  }, "When the focus is set on the last item of an inner focusgroup that supports wrapping while its parent focusgroup doesn't (in the axis of the arrow key pressed), the focus should move to the first item of the inner focusgroup even if there's another focusgroup supporting wrapping in the same axis as the arrow key pressed in the hierarchy.");

</script>