[webkit-changes] [WebKit/WebKit] 4900d7: AX: Flakey failures in wpt.fyi Interop 2024 access...
Tyler Wilcock
noreply at github.com
Fri Aug 23 08:43:59 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 4900d7a90e6ea0edfd43a2bfdf37db22ad682170
https://github.com/WebKit/WebKit/commit/4900d7a90e6ea0edfd43a2bfdf37db22ad682170
Author: Tyler Wilcock <tyler_w at apple.com>
Date: 2024-08-23 (Fri, 23 Aug 2024)
Changed paths:
M LayoutTests/imported/w3c/web-platform-tests/resources/testdriver-vendor.js
M Source/WebCore/accessibility/AccessibilityObject.cpp
M Source/WebCore/testing/Internals.cpp
M Source/WebCore/testing/Internals.h
M Source/WebCore/testing/Internals.idl
M Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp
Log Message:
-----------
AX: Flakey failures in wpt.fyi Interop 2024 accessibility tests
https://bugs.webkit.org/show_bug.cgi?id=278540
rdar://134527513
Reviewed by Chris Fleizach.
We suspect these flakey failures happen if WebDriver queries WebCore before the render tree has been built for the first
time, meaning we aren't going to create accessibility objects correctly, resulting in an empty string result for computed
role and computed label.
We actually worked around this problem in the implementation of test_driver_internal.{get_computed_label, get_computed_role}
by using a mechanism to asynchronously wait for the render tree to be laid out via `Internals::readyToRetrieveComputedRoleOrLabel`.
However, no such mechanism was put in place for the actual WebDriver implementation of getComputedRole and getComputedLabel,
so it is probably suffering from the same problem.
With this patch, `Internals::readyToRetrieveComputedRoleOrLabel` is removed, and instead we just force layout to ensure
renderers are attached to elements before querying these properties. We also now force layout in the WebDriver methods
for this functionality in WebAutomationSessionProxy.cpp, which should solve the flakiness.
* LayoutTests/imported/w3c/web-platform-tests/resources/testdriver-vendor.js:
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::computedLabel):
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::getComputedLabel const):
(WebCore::Internals::getComputedRole const):
(WebCore::Internals::readyToRetrieveComputedRoleOrLabel const): Deleted.
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
* Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::WebAutomationSessionProxy::getAccessibilityObjectForNode):
(WebKit::WebAutomationSessionProxy::getComputedRole):
(WebKit::WebAutomationSessionProxy::getComputedLabel):
Canonical link: https://commits.webkit.org/282659@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list