RESOLVED FIXED213874
[GLIB] accessibility/keyevents-posted-for-increment-actions.html is timing out since added in r263823
https://bugs.webkit.org/show_bug.cgi?id=213874
Summary [GLIB] accessibility/keyevents-posted-for-increment-actions.html is timing ou...
Diego Pino
Reported 2020-07-02 00:15:20 PDT
The following a11y tests are timing out since added: accessibility/keyevents-for-increment-actions-with-node-removal.html [ Timeout ] accessibility/keyevents-posted-for-increment-actions.html [ Timeout ] Likely the expected event in the test 'keydown' is not happening, thus a timeout. Marking tests as skip for now.
Attachments
Radar WebKit Bug Importer
Comment 1 2020-07-02 00:15:31 PDT
chris fleizach
Comment 2 2020-07-02 00:19:55 PDT
(In reply to Diego Pino from comment #0) > The following a11y tests are timing out since added: > > accessibility/keyevents-for-increment-actions-with-node-removal.html [ > Timeout ] > accessibility/keyevents-posted-for-increment-actions.html [ Timeout ] > > Likely the expected event in the test 'keydown' is not happening, thus a > timeout. Marking tests as skip for now. possible that inc/dec are not implemented on GTK right now. seems ok to skip
Diego Pino
Comment 3 2026-08-18 02:22:35 PDT
GLIB ports implementation of `increment` and `decrement` differ from the Mac/iOS ports. GLIB ports use `setCurrentValue` to directly change the value of the underlying backing object to a new value: ```cpp void AccessibilityUIElementAtspi::increment() { if (!m_element->interfaces().contains(WebCore::AccessibilityObjectAtspi::Interface::Value)) return; m_element->updateBackingStore(); m_element->setCurrentValue(intValue() + m_element->minimumIncrement()); } ``` Whereas the iOS/macOs rely on axBackingObject's increment/decrement: ``` (void)accessibilityIncrement { if (![self _prepareAccessibilityCall]) return; protect(self.axBackingObject)->increment(); } ``` axBackingObject is a WebCore::AXCoreObject (interface). The implementation of `increment` is provided by `AccessibilityNodeObject::increment()`. That implementation is more complex than the implementation provided by GLIB ports (which directly updates the value of the backing object). The `increment`/`decrement` implementation in AccessibilityNodeObject ends up calling `AccessibilityNodeObject::setNodeValue`, which in the case of a slider emits a keyboard event. The test hangs in GLIB ports because in their current implemention this keyboard event is never emitted. It should be possible to reuse AccessibilityNodeObject's increment/decrement implementation from GLIB ports, simply by creating a bridge in AccessibilityObjectAtspi.h, similarly to other functions such as `minimumIncrement`, `maximumValue` etc.
Diego Pino
Comment 4 2026-08-18 02:23:50 PDT
EWS
Comment 5 2026-08-18 22:12:40 PDT
Committed 319432@main (8ea696080a81): <https://commits.webkit.org/319432@main> Reviewed commits have been landed. Closing PR #71841 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.