Bug 233320

Summary: Update shadow DOM and dialog element focusing to latest spec
Product: WebKit Reporter: Domenic Denicola <d>
Component: DOMAssignee: Tim Nguyen (:ntim) <ntim>
Severity: Normal CC: ashvayka, cdumez, d, jouni, ntim, rniwa, webkit-bug-importer, wenson_hsieh
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 233777    
Bug Blocks: 148695, 84635    

Description Domenic Denicola 2021-11-18 10:17:54 PST
The spec was previously not shadow DOM aware. In https://github.com/whatwg/html/pull/7285 we made it behave the same as delegatesFocus: they both "delegate focus" to either autofocus="" if it's specified on a (non-shadow-including) descendant, or the first focusable element among their shadow-including descendants if not.

Tests: https://github.com/web-platform-tests/wpt/pull/31523
Comment 1 Radar WebKit Bug Importer 2021-11-25 10:18:18 PST
Comment 2 Domenic Denicola 2022-01-31 08:15:55 PST
After https://github.com/whatwg/html/pull/7361 and https://github.com/web-platform-tests/wpt/pull/31724 I believe this algorithm is now in good shape and implementable.
Comment 3 Jouni Koivuviita 2022-03-07 05:35:26 PST
I’m not entirely sure this is 100% related or worthy a new bug report, but there’s an issue in Safari Tech Preview 141, when the dialog and the content of the dialog are in different DOM "scopes" (light DOM vs shadow DOM).

The content is not focusable at all using the Tab key, and the dialog is not closed when clicking a button inside a <form method="dialog">.

Here’s a test case I created for the four different cases: https://jsbin.com/finugon/

- Dialog and content in light DOM (works)
- Dialog in light DOM, content in shadow DOM (broken)
- Dialog and content in shadow DOM (works)
- Dialog in shadow DOM, content in light DOM (slotted) (broken)
Comment 4 Tim Nguyen (:ntim) 2022-07-28 15:33:14 PDT
Pull request: https://github.com/WebKit/WebKit/pull/2828
Comment 5 EWS 2022-07-29 13:01:30 PDT
Committed 252959@main (696e8c1c47e2): <https://commits.webkit.org/252959@main>

Reviewed commits have been landed. Closing PR #2828 and removing active labels.