[pointerevents] Clarify `mousedown` event target if the preceding `pointerdown` event listener removes the target (#492)

masayuki-nakano has just created a new issue for https://github.com/w3c/pointerevents:

== Clarify `mousedown` event target if the preceding `pointerdown` event listener removes the target ==
https://github.com/web-platform-tests/interop/issues/380#issuecomment-1787398235

Spinning out from the above issue.

Currently, only Chrome dispatches a `mousedown` event to parent element when a `pointerdown` event listener removed the event target.

**I** think that Chrome's behavior may lead odd behavior because user tried to click under the pointer, not its parent (or ancestor). However, the `mousedown` may cause running event listeners of them. This must be trouble if the element is not visually in the parent or ancestor element.

On the other hand, Safari dispatches a `mousedown` event on the removed child element, but I think that this is not required.

In my understanding, `mousedown` event should not be fired if the preceding `pointerdown` event removed the target. And I think this can be applied to other sets of a pointer event and a fallback mouse event.

I also found one odd thing of Chrome's behavior.
https://jsfiddle.net/d_toybox/m18jpnae/
```js
e.addEventListener("pointerdown", event => {
  event.target.remove();
});
addEventListener("click", () => alert("clicked"));
```
https://jsfiddle.net/d_toybox/m18jpnae/1/
```js
e.addEventListener("mousedown", event => {
  event.target.remove();
});
addEventListener("click", () => alert("clicked"));
```
In the first case, Chrome dispatches `mousedown` on the parent, and then, `mouseup` on the parent too. Therefore, `click` event should be fired from UI Events point of view. However, Chrome does not dispatch it. I guess Chrome fixes the candidate of the `click` event at dispatching `pointerdown` and the removal of the event target causes stopping dispatching it.

@mustaqahmed, @smaug----, @garykac

Please view or discuss this issue at https://github.com/w3c/pointerevents/issues/492 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Thursday, 2 November 2023 03:20:52 UTC