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
<rdar://problem/85753180>
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.
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)
Pull request: https://github.com/WebKit/WebKit/pull/2828
Committed 252959@main (696e8c1c47e2): <https://commits.webkit.org/252959@main> Reviewed commits have been landed. Closing PR #2828 and removing active labels.