Yo folks, I’m working on a dashboard UI at work where a little “Saved” toast and a status line both update when you hit Ctrl+S, and I’m trying to make it not drive screen reader users crazy.
Right now NVDA sometimes announces the same thing twice (toast + status), but if I turn one off or mark it aria-hidden I’m worried I’ll hide the only reliable cue in some AT/browser combo; what’s your rule of thumb for choosing between aria-live regions, focus management, and deduping messages so it’s consistent across AT without spamming?
1 Like
I’d keep one live region and make the toast visual only. Two separate bits both saying “Saved” is how you get the double-announcement nonsense in NVDA.
I’ve had better luck with a single role="status" on the status line, then leaving the toast aria-hidden="true". For the live region, don’t keep dumping the exact same string into it — I’ve seen AT ignore repeats or announce them weirdly. A tiny change in the SR-only text, like “Saved. Update 12.”, usually behaves better than trying to juggle focus for a save confirmation.
Focus management feels heavy for this. Save feedback is not a modal, so I wouldn’t move focus unless something actually failed.
1 Like