Bug 279214
Summary: | AX: VoiceOver does not echo deletions in a contenteditable region with programmatic value updates | ||
---|---|---|---|
Product: | WebKit | Reporter: | Sarah Higley <sarahmhigley> |
Component: | Accessibility | Assignee: | Nobody <webkit-unassigned> |
Status: | NEW | ||
Severity: | Normal | CC: | andresg_22, webkit-bug-importer |
Priority: | P2 | Keywords: | InRadar |
Version: | Safari 17 | ||
Hardware: | Mac (Apple Silicon) | ||
OS: | macOS 14 |
Sarah Higley
Most web-based rich text editors use javascript to programmatically manage the text content of the contenteditable region, rather than relying on default browser insertion and deletion. A couple examples include the Facebook compose box, the twitter compose box, and the Lexical rich text editor (https://lexical.dev/).
On Safari, VoiceOver echos content insertion for these, but not deletion. On Chrome, VoiceOver reads both insertion and deletion. This appears to be a common enough experience that in several user studies on an rich text editor using Lexical, multiple VoiceOver users mentioned that they were familiar with the issue from elsewhere.
I created a simplified reproduction of several of the more common ways to handle text deletion with javascript in a contenteditable div:
- https://codepen.io/smhigley/pen/PordJoy?editors=1010
- (or use this link to access only the example UI without the Codepen editors): https://cdpn.io/pen/debug/PordJoy
VoiceOver currently does not echo deleted text for any of the three methods demonstrated in the Codepen when using Safari (tested on 17.6).
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/135360396>