fieldset-event-propagation.tentative.html (2339B)
1 <!DOCTYPE html> 2 <link rel=author href="mailto:jarhar@chromium.org"> 3 <link rel=help href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#concept-fe-disabled"> 4 <link rel=help href="https://github.com/whatwg/html/issues/5886#issuecomment-1460425364"> 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 11 <div id=target1parent> 12 <fieldset disabled id=target1fieldset> 13 <div id=target1child>hello world</div> 14 </fieldset> 15 </div> 16 17 <div id=target2parent> 18 <fieldset disabled id=target2fieldset>hello world</fieldset> 19 </div> 20 21 <script> 22 const clickers = { 23 "native click": target => test_driver.click(target), 24 "click()": target => target.click(), 25 }; 26 27 for (const [clickerName, clicker] of Object.entries(clickers)) { 28 promise_test(async () => { 29 let target1parentClicked = false; 30 let target1childClicked = false; 31 let target1fieldsetClicked = false; 32 target1parent.onclick = () => target1parentClicked = true; 33 target1child.onclick = () => target1childClicked = true; 34 target1fieldset.onclick = () => target1fieldsetClicked = true; 35 36 await clicker(target1child); 37 38 assert_true(target1parentClicked, 'The parent of the fieldset should receive a click event.'); 39 assert_true(target1childClicked, 'The child of the fieldset should receive a click event.'); 40 assert_true(target1fieldsetClicked, 'The fieldset element should receive a click event.'); 41 }, `Disabled fieldset elements should not prevent click event propagation from ${clickerName}`); 42 43 promise_test(async () => { 44 let target2parentClicked = false; 45 let target2fieldsetClicked = false; 46 target2parent.onclick = () => target2parentClicked = true; 47 target2fieldset.onclick = () => target2fieldsetClicked = true; 48 49 await clicker(target2fieldset); 50 51 assert_true(target2parentClicked, 'The parent of the fieldset should receive a click event.'); 52 assert_true(target2fieldsetClicked, 'The fieldset element should receive a click event.'); 53 }, `Disabled fieldset elements should not block click events from ${clickerName}.`); 54 } 55 </script>