Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c413d63ffc923ece86a0e4df8967f8cb9065ced5
https://github.com/WebKit/WebKit/commit/c413d63ffc923ece86a0e4df8967f8cb9065ced5
Author: Charlie Wolfe <[email protected]>
Date: 2026-10-08 (Thu, 08 Oct 2026)
Changed paths:
M
LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-focus-2_test1-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-focus-2_test2-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-focus-2_test3-expected.txt
M
LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/semantics/popovers/popover-focus-inside-slot-expected.txt
M Source/WebCore/dom/Element.cpp
M Source/WebCore/page/FocusController.cpp
Log Message:
-----------
Tabbing to an invoker should focus its popover itself if the popover is
focusable
rdar://188267440
https://bugs.webkit.org/show_bug.cgi?id=325129
Reviewed by Ryosuke Niwa.
Before this change, an open popover with an invoker always passed focus on to
its contents. The
popover was never keyboard-focusable itself, even with tabindex set. With this
change, the popover
acts as the root of its own focus navigation scope. It can take focus itself,
and its contents come
next in sequential navigation.
Popovers that are direct children of the document element, a shadow root or a
shadow host no longer
get invoker-based focus scoping.
https://html.spec.whatwg.org/multipage/interaction.html#associated-focus-navigation-owner
*
LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-focus-2_test1-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-focus-2_test2-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-focus-2_test3-expected.txt:
*
LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/semantics/popovers/popover-focus-inside-slot-expected.txt:
* Source/WebCore/dom/Element.cpp:
(WebCore::Element::isKeyboardFocusable const):
* Source/WebCore/page/FocusController.cpp:
(WebCore::invokerForOpenPopoverIgnoringCycles):
(WebCore::invokerChainReachesPopover):
(WebCore::invokerForOpenPopover):
(WebCore::openPopoverForInvoker):
(WebCore::FocusNavigationScope::firstNodeInScope const):
(WebCore::FocusNavigationScope::lastNodeInScope const):
(WebCore::FocusNavigationScope::scopeOwnedByScopeOwner):
(WebCore::isFocusableElementOrScopeOwner):
(WebCore::isNonFocusableScopeOwner):
(WebCore::FocusController::findFocusableElementAcrossFocusScope):
(WebCore::FocusController::nextFocusableElementWithinScope):
(WebCore::FocusController::previousFocusableElementWithinScope):
Canonical link: https://commits.webkit.org/323172@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications