modifier-keys.html (1306B)
1 <!DOCTYPE html> 2 <meta charset="utf-8" /> 3 <title>UI Events Test: Modifier keys</title> 4 <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> 5 <link rel="help" href="https://w3c.github.io/uievents/#idl-keyboardevent" /> 6 <meta name="assert" content="This test checks that modifier keys are properly detected in 'keydown' event."> 7 <script src="/resources/testharness.js"></script> 8 <script src="/resources/testharnessreport.js"></script> 9 <script src="/resources/testdriver.js"></script> 10 <script src="/resources/testdriver-vendor.js"></script> 11 <div id="target" tabindex="0">Target</div> 12 <script> 13 const keys = { 14 "Shift": '\uE008', 15 "Control": '\uE009', 16 "Alt": '\uE00A', 17 "Meta": '\uE03D', 18 }; 19 20 target.focus(); 21 for (const [key, code] of Object.entries(keys)) { 22 promise_test(() => { 23 return new Promise(resolve => { 24 target.addEventListener("keydown", resolve); 25 test_driver.send_keys(target, code); 26 }).then((event) => { 27 assert_equals(event.key, key); 28 assert_equals(event.shiftKey, key === "Shift"); 29 assert_equals(event.ctrlKey, key === "Control"); 30 assert_equals(event.altKey, key === "Alt"); 31 assert_equals(event.metaKey, key === "Meta"); 32 }); 33 }, `Check sending ${key} key`); 34 } 35 </script>