Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 77623d99ad9e8fe5f6ca796b33751f938f289756
https://github.com/WebKit/WebKit/commit/77623d99ad9e8fe5f6ca796b33751f938f289756
Author: Tyler Wilcock <[email protected]>
Date: 2026-05-26 (Tue, 26 May 2026)
Changed paths:
A LayoutTests/accessibility/clickable-text-stitching-expected.txt
A LayoutTests/accessibility/clickable-text-stitching.html
M LayoutTests/platform/glib/TestExpectations
M Source/WebCore/accessibility/AXStitchUtilities.cpp
Log Message:
-----------
AX: WebKit should break up stitch groups when encountering a clickable
container
https://bugs.webkit.org/show_bug.cgi?id=315473
rdar://177836509
Reviewed by Dominic Mazzoni.
As a repair for incorrectly authored markup, WebKit will expose the
press action for text contained with an element with a click handler.
VoiceOver uses this to announce "clickable".
For example:
<i>Unrelated text</i> <span onclick="openCart()">Open cart</span> <b>Other
unrelated text</b>
The problem fixed by this commit is that we did not respect this repair
when deciding what text to stitch together. Prior to this commit, the
above markup would stitch "Unrelated text Open Cart Other unrelated text"
into one static text object, and worse, because the first text is the
group representative and thus what is exposed in the AX tree, we
wouldn't expose the press action, meaning a user wouldn't hear
"clickable" and thus may not know they can interact with this text.
Fix this by cutting off the current stitch group when encountering text
contained within a clickable container.
* LayoutTests/accessibility/clickable-text-stitching-expected.txt: Added.
* LayoutTests/accessibility/clickable-text-stitching.html: Added.
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::AXObjectCache):
* Source/WebCore/accessibility/AXStitchUtilities.cpp:
(WebCore::isClickTarget):
(WebCore::isStitchBreakingElement):
(WebCore::stitchActionFor):
Canonical link: https://commits.webkit.org/313932@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications