focus-nested-slots.html (1769B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <link rel="author" title="Joey Arhar" href="mailto:jarhar@chromium.org"> 4 <link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1209217"> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 <script src="/resources/testdriver.js"></script> 8 <script src="/resources/testdriver-vendor.js"></script> 9 <script src="/resources/testdriver-actions.js"></script> 10 <script src="resources/shadow-dom.js"></script> 11 <script src="resources/focus-utils.js"></script> 12 13 <div id=div1 tabindex=0>one</div> 14 <span> 15 <template shadowrootmode=open> 16 <slot name=myslot></slot> 17 </template> 18 <slot slot=myslot> 19 <div id=div2 tabindex=0>two</div> 20 <div id=div3 tabindex=0>three</div> 21 <div id=div4 tabindex=0>four</div> 22 </slot> 23 </span> 24 <div id=div5 tabindex=0>five</div> 25 26 <script> 27 28 promise_test(async () => { 29 div1.focus(); 30 assert_equals(document.activeElement, div1); 31 32 await navigateFocusForward(); 33 assert_equals(document.activeElement, div2); 34 await navigateFocusForward(); 35 assert_equals(document.activeElement, div3); 36 await navigateFocusForward(); 37 assert_equals(document.activeElement, div4); 38 await navigateFocusForward(); 39 assert_equals(document.activeElement, div5); 40 await navigateFocusBackward(); 41 assert_equals(document.activeElement, div4); 42 await navigateFocusBackward(); 43 assert_equals(document.activeElement, div3); 44 await navigateFocusBackward(); 45 assert_equals(document.activeElement, div2); 46 await navigateFocusBackward(); 47 assert_equals(document.activeElement, div1); 48 }, `Verifies that focus order goes in flat tree order with buttons inside nested slots which have a mixture of assigned and unassigned states.`); 49 50 </script>