Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4900d7a90e6ea0edfd43a2bfdf37db22ad682170
      
https://github.com/WebKit/WebKit/commit/4900d7a90e6ea0edfd43a2bfdf37db22ad682170
  Author: Tyler Wilcock <[email protected]>
  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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to