Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d24a85185308d8cda1f94ae4300cd9bb2ba894e2
https://github.com/WebKit/WebKit/commit/d24a85185308d8cda1f94ae4300cd9bb2ba894e2
Author: Tyler Wilcock <[email protected]>
Date: 2026-10-01 (Thu, 01 Oct 2026)
Changed paths:
M LayoutTests/accessibility/aria-selected-menu-items.html
M LayoutTests/accessibility/custom-elements/menuitem-expected.txt
M LayoutTests/accessibility/custom-elements/menuitem-shadow-expected.txt
M LayoutTests/accessibility/custom-elements/menuitem-shadow.html
M LayoutTests/accessibility/custom-elements/menuitem.html
M
LayoutTests/accessibility/display-contents/descendant-menu-item-expected.txt
M LayoutTests/accessibility/display-contents/descendant-menu-item.html
M
LayoutTests/accessibility/element-reflection-ariaactivedescendant-expected.txt
M LayoutTests/accessibility/element-reflection-ariaactivedescendant.html
M LayoutTests/accessibility/isolated-tree/aria-selected-menu-items.html
M
LayoutTests/accessibility/isolated-tree/custom-elements/menuitem-expected.txt
M
LayoutTests/accessibility/isolated-tree/custom-elements/menuitem-shadow-expected.txt
M
LayoutTests/accessibility/isolated-tree/custom-elements/menuitem-shadow.html
M LayoutTests/accessibility/isolated-tree/custom-elements/menuitem.html
M
LayoutTests/accessibility/isolated-tree/display-contents/descendant-menu-item-expected.txt
M
LayoutTests/accessibility/isolated-tree/display-contents/descendant-menu-item.html
M
LayoutTests/accessibility/isolated-tree/element-reflection-ariaactivedescendant-expected.txt
M
LayoutTests/accessibility/isolated-tree/element-reflection-ariaactivedescendant.html
A
LayoutTests/accessibility/isolated-tree/mac/focused-aria-menu-item-is-not-selected-expected.txt
A
LayoutTests/accessibility/isolated-tree/mac/focused-aria-menu-item-is-not-selected.html
A
LayoutTests/accessibility/mac/focused-aria-menu-item-is-not-selected-expected.txt
A LayoutTests/accessibility/mac/focused-aria-menu-item-is-not-selected.html
M
LayoutTests/platform/glib/accessibility/aria-selected-menu-items-expected.txt
M
LayoutTests/platform/mac/accessibility/aria-selected-menu-items-expected.txt
M
LayoutTests/platform/mac/accessibility/isolated-tree/aria-selected-menu-items-expected.txt
M Source/WebCore/accessibility/AXCoreObject.cpp
M Source/WebCore/accessibility/AccessibilityObject.cpp
Log Message:
-----------
AX: VoiceOver announces every focused ARIA menu item as "selected"
https://bugs.webkit.org/show_bug.cgi?id=325896
rdar://188185386
Reviewed by Dominic Mazzoni and Chris Fleizach.
AccessibilityObject::isSelected() treats a focused menu item, or the active
descendant of its menu, as
selected, and AXCoreObject::selectedChildren() reports that item as its menu or
menubar's selected child.
182638@main added this for ATK, which announces the highlighted menu item with
a selected state change,
and enabled it on every platform.
VoiceOver announces the selected state of web menu items (e.g. the selected
option of a base-appearance
select), so it announced every focused ARIA menu item as "selected", and
checked ones as "selected,
ticked". iOS exposes isSelected() as the selected trait too. But ARIA menu
items have no selected state,
and Chromium doesn't report focused menu items as selected either.
Fix this by keeping this behavior to ATSPI. Elsewhere, a menu item is only
selected if it has
aria-selected="true", and a menu's selected children are its selected items,
which is what a pop-up
button's menu already reported. A base-appearance select is unaffected.
Tests that checked aria-activedescendant support through a menubar's selected
children now focus the
menubar and check that its active descendant becomes the focused element, which
works on every platform.
The custom-elements menuitem tests and
display-contents/descendant-menu-item.html now only expect the
active menu item to be selected on ATSPI, and aria-selected-menu-items.html's
macOS expectations no longer
report focused or active menu items as selected.
* LayoutTests/accessibility/aria-selected-menu-items.html:
* LayoutTests/accessibility/custom-elements/menuitem-expected.txt:
* LayoutTests/accessibility/custom-elements/menuitem-shadow-expected.txt:
* LayoutTests/accessibility/custom-elements/menuitem-shadow.html:
* LayoutTests/accessibility/custom-elements/menuitem.html:
* LayoutTests/accessibility/display-contents/descendant-menu-item-expected.txt:
* LayoutTests/accessibility/display-contents/descendant-menu-item.html:
*
LayoutTests/accessibility/element-reflection-ariaactivedescendant-expected.txt:
* LayoutTests/accessibility/element-reflection-ariaactivedescendant.html:
* LayoutTests/accessibility/isolated-tree/aria-selected-menu-items.html:
* LayoutTests/accessibility/isolated-tree/custom-elements/menuitem-expected.txt:
*
LayoutTests/accessibility/isolated-tree/custom-elements/menuitem-shadow-expected.txt:
* LayoutTests/accessibility/isolated-tree/custom-elements/menuitem-shadow.html:
* LayoutTests/accessibility/isolated-tree/custom-elements/menuitem.html:
*
LayoutTests/accessibility/isolated-tree/display-contents/descendant-menu-item-expected.txt:
*
LayoutTests/accessibility/isolated-tree/display-contents/descendant-menu-item.html:
*
LayoutTests/accessibility/isolated-tree/element-reflection-ariaactivedescendant-expected.txt:
*
LayoutTests/accessibility/isolated-tree/element-reflection-ariaactivedescendant.html:
*
LayoutTests/accessibility/isolated-tree/mac/focused-aria-menu-item-is-not-selected-expected.txt:
Added.
*
LayoutTests/accessibility/isolated-tree/mac/focused-aria-menu-item-is-not-selected.html:
Added.
*
LayoutTests/accessibility/mac/focused-aria-menu-item-is-not-selected-expected.txt:
Added.
* LayoutTests/accessibility/mac/focused-aria-menu-item-is-not-selected.html:
Added.
* LayoutTests/platform/glib/accessibility/aria-selected-menu-items-expected.txt:
* LayoutTests/platform/mac/accessibility/aria-selected-menu-items-expected.txt:
*
LayoutTests/platform/mac/accessibility/isolated-tree/aria-selected-menu-items-expected.txt:
* Source/WebCore/accessibility/AXCoreObject.cpp:
(WebCore::AXCoreObject::canHaveSelectedChildren const):
(WebCore::AXCoreObject::selectedChildren):
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isSelected const):
Canonical link: https://commits.webkit.org/322397@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications