Bug 179943 - AX: Updated aria-label not read by VoiceOver
Summary: AX: Updated aria-label not read by VoiceOver
Status: RESOLVED WORKSFORME
Alias: None
Product: WebKit
Classification: Unclassified
Component: Accessibility (show other bugs)
Version: WebKit Nightly Build
Hardware: iPhone / iPad iOS 11
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2017-11-22 06:10 PST by kelly.tabler
Modified: 2022-12-03 11:36 PST (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description kelly.tabler 2017-11-22 06:10:50 PST
When the aria-label of an item is updated, VoiceOver continues to read the ‘old’ value. An example of this is in the following fiddle:
https://jsfiddle.net/7rwpd0wL/3/
Click the ‘Push me’ button and you’ll see that both the text and aria-label of the div have been updated. However, iOS VoiceOver will continue to read “aria label one”, not “aria label two”.

The real-world scenario I am seeing this as an issue in involves updating a re-used header as different portions of the page are changed. There are ways to make it work, but involve restructuring the page to not re-use elements. Re-using should is valid html/js and should be permitted.
Comment 1 Radar WebKit Bug Importer 2017-11-22 06:11:07 PST
<rdar://problem/35667159>
Comment 2 Derk-Jan Hartman 2022-10-23 04:36:11 PDT
Just a note that this is sadly still a problem (on both macOS and iOS)

Safari 16 with macOS 12.6 VoiceOver still reproduces
Comment 3 Tyler Wilcock 2022-12-02 10:23:18 PST
(In reply to Derk-Jan Hartman from comment #2)
> Just a note that this is sadly still a problem (on both macOS and iOS)
> 
> Safari 16 with macOS 12.6 VoiceOver still reproduces
Could you tell me how you reproduced this? When I click the button in the linked JSFiddle, nothing happens (neither the aria-label nor the div update).
Comment 4 Derk-Jan Hartman 2022-12-03 08:10:44 PST
I recently updated to Safari 16.1 and macOS 13.0.1 and now can no longer reproduce this problem.

The fiddle here seems broken btw, I created a new one here.

https://jsfiddle.net/TheDJ/kvLhytmq/1/