moves-across-table-sections.html (3131B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>HTML Test: focusgroup - Table with one or less row per section (head, 2 bodies and foot).</title> 4 <link rel="author" title="Microsoft" href="http://www.microsoft.com/"> 5 <link rel="help" href="https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/Focusgroup/explainer.md"> 6 <script src="/resources/testharness.js"></script> 7 <script src="/resources/testharnessreport.js"></script> 8 <script src="/resources/testdriver.js"></script> 9 <script src="/resources/testdriver-vendor.js"></script> 10 <script src="/resources/testdriver-actions.js"></script> 11 <script src="../resources/focusgroup-utils.js"></script> 12 13 <table focusgroup="grid wrap"> 14 <thead> 15 <tr> 16 <td id=r1c1 tabindex=0>r1c1</td> 17 </tr> 18 <tr> 19 <td id=r2c1 tabindex=0>r2c1</td> 20 </tr> 21 </thead> 22 <tbody> 23 <tr> 24 <td id=r3c1 tabindex=0>r3c1</td> 25 </tr> 26 <tr> 27 <td id=r4c1 tabindex=0>r4c1</td> 28 </tr> 29 </tbody> 30 <tbody></tbody> 31 <tfoot> 32 <tr> 33 <td id=r5c1 tabindex=0>r5c1</td> 34 </tr> 35 <tr> 36 <td id=r6c1 tabindex=0>r6c1</td> 37 </tr> 38 </foot> 39 </table> 40 41 <script> 42 43 promise_test(async t => { 44 var r1c1 = document.getElementById("r1c1"); 45 var r1c2 = document.getElementById("r2c1"); 46 var r3c2 = document.getElementById("r3c1"); 47 var r4c2 = document.getElementById("r4c1"); 48 var r5c2 = document.getElementById("r5c1"); 49 var r6c2 = document.getElementById("r6c1"); 50 51 await focusAndKeyPress(r1c1, kArrowDown); 52 assert_equals(document.activeElement, r2c1); 53 54 await focusAndKeyPress(r2c1, kArrowDown); 55 assert_equals(document.activeElement, r3c1); 56 57 await focusAndKeyPress(r3c1, kArrowDown); 58 assert_equals(document.activeElement, r4c1); 59 60 await focusAndKeyPress(r4c1, kArrowDown); 61 assert_equals(document.activeElement, r5c1); 62 63 await focusAndKeyPress(r5c1, kArrowDown); 64 assert_equals(document.activeElement, r6c1); 65 66 await focusAndKeyPress(r6c1, kArrowDown); 67 assert_equals(document.activeElement, r1c1); 68 }, "A down arrow press should move the focus to the next row even when that row is in another section."); 69 70 promise_test(async t => { 71 var r1c1 = document.getElementById("r1c1"); 72 var r1c2 = document.getElementById("r2c1"); 73 var r3c2 = document.getElementById("r3c1"); 74 var r4c2 = document.getElementById("r4c1"); 75 var r5c2 = document.getElementById("r5c1"); 76 var r6c2 = document.getElementById("r6c1"); 77 78 await focusAndKeyPress(r6c1, kArrowUp); 79 assert_equals(document.activeElement, r5c1); 80 81 await focusAndKeyPress(r5c1, kArrowUp); 82 assert_equals(document.activeElement, r4c1); 83 84 await focusAndKeyPress(r4c1, kArrowUp); 85 assert_equals(document.activeElement, r3c1); 86 87 await focusAndKeyPress(r3c1, kArrowUp); 88 assert_equals(document.activeElement, r2c1); 89 90 await focusAndKeyPress(r2c1, kArrowUp); 91 assert_equals(document.activeElement, r1c1); 92 93 await focusAndKeyPress(r1c1, kArrowUp); 94 assert_equals(document.activeElement, r6c1); 95 }, "An up arrow press should move the focus to the previous row even when that row is in another section."); 96 97 </script>