Re: [csswg-drafts] Impact of `inert` on hit-testing needs to be specified (#6685)

Chrome's current behaviour:
- Makes node "disabled"/"inactive"
- Event target is retargeted using a magic algorithm for "user input events" (this is not well specified)
- elementsFromPoint still returns inert node
- Purely DOM based inert inheritance: node with inert attribute as parent of modal <dialog> makes that <dialog> inert
- (implementation detail): `Node::isInert()` is Chromium is sort of a lie in the modal dialog case: `Node::isInert` will return true for an ancestor of a modal dialog (if document is blocked by a modal dialog), so <body> would technically be inert, but the <dialog> would still be interactable?!

WebKit's implemented behaviour:
- Applies `pointer-events: none;` style behaviour on any inert node
- Overrides it with `pointer-events: auto` on a modal <dialog> unless <dialog> specifically has the inert attribute set.
- Event target/elementsFromPoint works similarly as a `pointer-events: none` node
- CSS based approach: node with inert attribute as parent of modal <dialog> does not make the dialog inert!
- Does not change pointer-events computed style

Firefox's implemented behaviour:
- Identical to WebKit, except modal <dialog> can never be inert, even with the inert attribute set explicitly on the dialog.
- Sets pointer-events resolved style to none on inert nodes (so it does affect computed style!)

Proposal:
- Make nodes with inert attribute act like `pointer-events: none`
- Introduce the concept of "modal element" which encompasses:
  - topmost modal <dialog>
  - current fullscreen element
The modal element wouldn't be affected by any ancestor with the inert attribute, _but_ the inert attribute explicitly set on a modal element can make it inert.
- Redefine "[blocked by a modal dialog](https://html.spec.whatwg.org/multipage/interaction.html#blocked-by-a-modal-dialog)" concept to:
  - Make the top most modal dialog the current modal element
  - Make the document element inert



-- 
GitHub Notification of comment by nt1m
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/6685#issuecomment-928138561 using your GitHub account


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

Received on Monday, 27 September 2021 18:05:50 UTC