Bug 190437
Summary: | AX: VoiceOver does not perceive changes to text node content in HTML headings and ARIA headings | ||
---|---|---|---|
Product: | WebKit | Reporter: | alexander.umstead |
Component: | Accessibility | Assignee: | Nobody <webkit-unassigned> |
Status: | NEW | ||
Severity: | Normal | CC: | delahunt, jeffreyatw, webkit-bug-importer |
Priority: | P2 | Keywords: | InRadar |
Version: | Safari 11 | ||
Hardware: | iPhone / iPad | ||
OS: | iOS 12 |
alexander.umstead
Issue:
VoiceOver on iOS does not update its virtual buffer when text in the following elements is changed at the text node level:
• Native HTML headings
• Elements with role="heading"
This is a problem because some web development frameworks / code libraries use substring changes to change heading text.
Steps to Reproduce:
1. Open the associated CodePen, with VoiceOver running: https://codepen.io/mra11yx/pen/ZqQYxO
2. Swipe through headings
3. Change the headings by using the "change all h3s using innertext" button. Swipe through the headings and observe that VoiceOver reads the updated values.
4. Change the headings by using the " Change all H3s using text node value replacement" button. Swipe through the headings and observe that VoiceOver continues to read the old heading values.
Expected Results:
VoiceOver should update its virtual buffer when text nodes in headings are changed, and should read the new value.
Actual Results:
VoiceOver reads the old text value, even though the DOM has changed.
Version/Build:
iOS 11.4.1 and iOS 12
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/45168830>
Jeffrey Carl Faden
This is an issue with any project that uses React, as it updates text in elements by replacing their text nodes' "nodeValue" properties: https://github.com/facebook/react/issues/21212