Bug 196349 - AX: ARIA live regions stop notifying of changes after having a certain number of child elements
Summary: AX: ARIA live regions stop notifying of changes after having a certain number...
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Accessibility (show other bugs)
Version: Safari 12
Hardware: Mac macOS 10.14
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2019-03-28 06:13 PDT by Martin Pilkington
Modified: 2019-03-28 06:33 PDT (History)
1 user (show)

See Also:


Attachments
HTML page to reliable reproduce ARIA live region bug with VoiceOver (1.50 KB, text/html)
2019-03-28 06:13 PDT, Martin Pilkington
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Pilkington 2019-03-28 06:13:19 PDT
Created attachment 366168 [details]
HTML page to reliable reproduce ARIA live region bug with VoiceOver

Summary:
I have been attempting to use ARIA live regions to try and notify users of accessibility tools of changes to a list (acting as a chat message thread). Unfortunately, it seems that the notification of changes stops after the region contains a certain number of child elements. In the case of a <ul> element, notifications stop after I add 16 <li> elements. If I change to a <div> element with <p> child elements it stops notifying after there are 24 <p> elements. I have been unable to find any information in any specs or documentation around ARIA that specifies any upper limit.

I have tested this in both Safari 12.1 (14607.1.40.1.4) and the latest Safari Tech Preview (Release 78, WebKit 14608.1.9.1). I have also discovered the same issue in Chrome (73.0.3683.86). This make me think this is most likely either a WebKit bug or a VoiceOver bug (I'll also be filing a bug with Apple in case it is the latter). This is all on macOS 10.14.4

Reproducing:
I have attached a small HTML page that allows you to test both the above cases:

1. Open the arialivebug.html file in a WebKit-based browser on macOS
2. Enable VoiceOver (usually Command-F5)
3. Click the Start button below the List Test heading (you can change the value but 20 is a good number to show the bug)
4. Listen to VoiceOver notify the user of changes
5. After the List Test has finished, click the Start button for the Paragraph Test
6. Listen to VoiceOver notify the user of changes

Expected Result:
VoiceOver notifies the user of all changes to the live regions

Actual Result:
VoiceOver stops notifying the user of changes after 16 child elements in the list and 24 child elements in the div

Workaround:
From my testing it seems you can work around this by creating a new live region once the previous one is "full". Of course this has the downside of making the HTML less semantic (which can harm accessibility in other ways), but does ensure users will always be notified.
Comment 1 Radar WebKit Bug Importer 2019-03-28 06:33:12 PDT
<rdar://problem/49377535>