Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7c8b7f56aad8b9367cddda0dbe89d7f8f1fe9c83
https://github.com/WebKit/WebKit/commit/7c8b7f56aad8b9367cddda0dbe89d7f8f1fe9c83
Author: Anne van Kesteren <[email protected]>
Date: 2026-10-13 (Tue, 13 Oct 2026)
Changed paths:
A LayoutTests/accessibility/ios-simulator/select-base-list-box-expected.txt
A LayoutTests/accessibility/ios-simulator/select-base-list-box.html
M
LayoutTests/accessibility/isolated-tree/mac/base-select-multiple-dropdown-role-without-native-dropdown.html
M
LayoutTests/accessibility/mac/base-select-multiple-dropdown-role-without-native-dropdown.html
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AccessibilityListBoxOption.cpp
M Source/WebCore/accessibility/AccessibilityMenuList.cpp
M Source/WebCore/accessibility/AccessibilityNodeObject.cpp
M Source/WebCore/accessibility/AccessibilityObject.cpp
M Source/WebCore/accessibility/AccessibilityRenderObject.cpp
Log Message:
-----------
AX: a base appearance list box is exposed as a dropdown box on iOS
https://bugs.webkit.org/show_bug.cgi?id=327404
rdar://189913832
Reviewed by Tyler Wilcock.
The accessibility code used HTMLSelectElement::usesMenuList() to tell whether a
select is a dropdown
box, for instance to give it an AccessibilityMenuList, to ignore the content of
a native dropdown
box, and to support the expanded state. On iOS usesMenuList() is always true,
so a base appearance
list box was exposed as a collapsed pop-up button whose options were ignored.
On Mac it is false for
a base appearance multi-select dropdown box when
HTMLEnhancedSelectMultipleDropdownBoxEnabled is
off, and on other platforms it is false for every multi-select, so that
dropdown box did not expose
its expanded state.
Use isDropdownBox() instead, together with usesBaseAppearancePicker() where a
native dropdown box is
meant, as determineAccessibilityRole() already does. The options of that
multi-select dropdown box
now get the same objects as those of other base appearance pickers.
AccessibilityMenuList::isCollapsed() no longer checks usesMenuList(), a
leftover from when it
checked for a RenderMenuList, so that it agrees with isExpanded().
AccessibilityNodeObject::
visibleChildren() now uses preferredSize() rather than repeating its default,
and
AccessibilityListBoxOption no longer calls get() on m_node to cast it.
base-select-multiple-dropdown-role-without-native-dropdown.html did not turn off
HTMLEnhancedSelectMultipleDropdownBoxEnabled, which is on by default for
testing, so it now does.
Test: accessibility/ios-simulator/select-base-list-box.html
Canonical link: https://commits.webkit.org/323682@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications