Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0610e2cb8e9f73ee6bdbf5266019181c39578d81
https://github.com/WebKit/WebKit/commit/0610e2cb8e9f73ee6bdbf5266019181c39578d81
Author: Tyler Wilcock <[email protected]>
Date: 2026-09-18 (Fri, 18 Sep 2026)
Changed paths:
A LayoutTests/accessibility/ios-simulator/popup-button-traits-expected.txt
A LayoutTests/accessibility/ios-simulator/popup-button-traits.html
M Source/WebCore/accessibility/AXCoreObject.h
M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm
M Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp
M Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h
M Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl
M Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.h
M Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm
Log Message:
-----------
AX: [iOS] VoiceOver doesn't identify date, time and color inputs as pop-up
buttons
https://bugs.webkit.org/show_bug.cgi?id=324455
rdar://187696500
Reviewed by Dominic Mazzoni and Chris Fleizach.
On iOS the pop-up button trait says that a control presents a picker of its own.
Assistive technologies use it to describe the control WebKit was assigning it in
two ways that did not match that meaning.
AccessibilityRole::DateTime (input type=date, time, month, week and
datetime-local) and AccessibilityRole::ColorWell (input type=color) fell
through to
the default case and carried no control trait at all, so there was no role for
VoiceOver to speak, even though iOS renders these as buttons that present a
picker.
274057@main replaced the iOS-only mapping of date and time fields to PopUpButton
with the cross-platform DateTime role and did not carry the trait over.
Pop-up buttons that report an expanded state -- popover and command invokers --
were given the trait even though they disclose a popover rather than present a
picker, and were left to be corrected further down the stack. WebKit is the
layer
that can tell those apart from a select, so make the distinction here.
Platform-side
trait rewriting is then no longer required.
* LayoutTests/accessibility/ios-simulator/popup-button-traits-expected.txt:
Added.
* LayoutTests/accessibility/ios-simulator/popup-button-traits.html: Added.
* Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityTraits]):
* Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
(WTR::AccessibilityUIElement::hasButtonTrait):
(WTR::AccessibilityUIElement::hasPopupButtonTrait):
* Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
* Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
* Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.h:
* Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElementIOS::hasPopupButtonTrait):
(WTR::AccessibilityUIElementIOS::hasButtonTrait):
Canonical link: https://commits.webkit.org/321384@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications