WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
317597
AX: VoiceOver does not re-resolve aria-labelledby when referenced element's accessible name is provided by aria-label
https://bugs.webkit.org/show_bug.cgi?id=317597
Summary
AX: VoiceOver does not re-resolve aria-labelledby when referenced element's ...
Sarah
Reported
2026-06-22 11:13:29 PDT
Created
attachment 480179
[details]
Simple test case Summary: VoiceOver reads stale aria-labelledby value when referenced element's name comes from aria-label Description: When an element uses aria-labelledby to reference another element, and the referenced element's accessible name is provided via aria-label, VoiceOver caches the initial resolved value and does not update it on subsequent navigations. The same pattern works correctly when the referenced element derives its name from text content. Steps to reproduce: 1. Open the attached test case in Safari 2. Enable VoiceOver (Cmd+F5) 3. Navigate to "Section B" using VO+Right Arrow — note the count value announced 4. Navigate past the "Focusable element" link below Section B 5. Wait a few seconds for the counter to increment 6. Navigate back up to "Section B" using VO+Left Arrow 7. Repeat steps 4-6 for "Section A" to compare Actual results: Section A (referenced element uses textContent) announces the current count on every navigation. Section B (referenced element uses aria-label) announces the value from page load and never updates. Expected results: Both sections should announce the current count value. The Accessible Name and Description Computation spec (AccName 1.2) defines aria-labelledby resolution as a recursive computation of the referenced element's accessible name, which includes aria-label. The spec does not distinguish between name sources. Build date and hardware: macOS 26.5.1, Safari 26.5 Test case: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>aria-labelledby resolution test</title> </head> <body> <h1>aria-labelledby resolution test</h1> <p>Two sections update a counter every second. Navigate away and back with VoiceOver.</p> <h2>Section A — textContent on referenced element</h2> <section aria-labelledby="text-ref"> <p id="text-ref">Count: 0</p> </section> <p><a href="#">Focusable element</a></p> <h2>Section B — aria-label on referenced element</h2> <section aria-labelledby="aria-ref"> <p id="aria-ref" role="img" aria-label="Count: 0">Visual content</p> </section> <p><a href="#">Focusable element</a></p> <script> let count = 0; setInterval(() => { count++; document.getElementById('text-ref').textContent = 'Count: ' + count; document.getElementById('aria-ref').setAttribute('aria-label', 'Count: ' + count); }, 1000); </script> </body> </html>
Attachments
Simple test case
(903 bytes, text/html)
2026-06-22 11:13 PDT
,
Sarah
no flags
Details
View All
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2026-06-22 11:13:36 PDT
<
rdar://problem/180319221
>
Tyler Wilcock
Comment 2
2026-06-30 17:23:16 PDT
Pull request:
https://github.com/WebKit/WebKit/pull/68382
EWS
Comment 3
2026-07-01 13:31:52 PDT
Committed
316316@main
(66ebec86604f): <
https://commits.webkit.org/316316@main
> Reviewed commits have been landed. Closing PR #68382 and removing active labels.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug