Runs: Chrome 158.0.8110.0 (wpt@850b36a56, 2026-10-18) | Firefox 160.0a1 (wpt@b58866519, 2026-10-18) | Safari 254 preview (wpt@850b36a56, 2026-10-18) | Ladybird 1.0-1706f (wpt@850b36a56, 2026-10-18) | Servo Servo 0.7 (wpt@df642c414, 2026-10-17) | Blitz fb8d6c15e (wpt@cd1d8aa5b, 2026-10-17)
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 1/1 | 1/1 | 1/1 | 0/1 | 0/1 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| mouse pointerevent attributes | PASS | PASS | PASS | NOTRUN | NOTRUN | — |
/pointerevents/pointerevent_disabled_form_control.html
<!doctype html> <html> <head> <title>Pointer Events properties tests</title> <meta name="viewport" content="width=device-width"> <meta name="variant" content="?mouse"> <meta name="variant" content="?touch"> <meta name="variant" content="?pen"> <link rel="stylesheet" type="text/css" href="pointerevent_styles.css"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/resources/testdriver.js"></script> <script src="/resources/testdriver-actions.js"></script> <script src="/resources/testdriver-vendor.js"></script> <!-- Additional helper script for common checks across event types --> <script type="text/javascript" src="pointerevent_support.js"></script> <script> var inputSource = location.search.substring(1); var detected_pointertypes = {}; var detected_eventTypes = {}; var eventList = ['pointerout', 'pointerover', 'pointerenter', 'pointermove', 'pointerdown', 'gotpointercapture', 'pointerup', 'lostpointercapture', 'pointerleave']; function resetTestState() { detected_eventTypes = {}; } function run() { var test_pointerEvent = setup_pointerevent_test("pointerevent attributes", [inputSource]); var target = document.getElementById("target0"); var actions_promise; eventList.forEach(function(eventName) { on_event(target, eventName, function (event) { detected_eventTypes[event.type] = true; detected_pointertypes[event.pointerType] = true; if (event.type === "pointerdown") { target.setPointerCapture(event.pointerId); } if (Object.keys(detected_eventTypes).length == eventList.length) { // Make sure the test finishes after all the input actions are completed. actions_promise.then( () => { test_pointerEvent.done(); }); } }); }); on_event(target, "click", function (event) { test_pointerEvent.step(function () { assert_unreached("click should not fire on disabled element"); }); }); // Inject inputs. switch (inputSource) { case "touch": actions_promise = pointerDragInTarget(inputSource, target, 'right'); break; case "mouse": case "pen": actions_promise = clickInTarget(inputSource, target).then(function() { return new test_driver.Actions() .addPointer(inputSource + "Pointer1", inputSource) .pointerMove(0, 0, {origin: target}) .pointerMove(0, 0) .send(); }); break; } } </script> <style> #target0 { background: purple; border: 1px solid orange; touch-action: none; width: 200px; height: 100px; } </style> </head> <body onload="run()"> <h1> Pointer Event: pointerevents fire to disabled form controls</h1> <h2 id="pointerTypeDescription"></h2> <h4> Test Description: Pointerevents are dispatched to disabled form controls. </h4> <div id="instructions"> Use the mouse or pen to press on the purple button. Or with touch, tap on the purple box. </div> <button id="target0" disabled>Disabled button</button> <div id="complete-notice"> <p>Test complete: Scroll to Summary to view Pass/Fail Results.</p> <p>The following pointer types were detected: <span id="pointertype-log"></span>.</p> <p>Refresh the page to run the tests again with a different pointer type.</p> </div> <div id="log"></div> </body> </html>