Prerequisites
Describe the bug
The playground environment uses a region with role="status" and an aria-label to report the current state of autosaving to screen readers. That's great, in principle.
However, the region is updated every percentage, which means when you're making active changes, it is essentially constantly updating the autosave state. In a role="status" container, every change is announced, and with a change occurring for every percentage, this means there is almost always a change being sent to screen readers.
Having the visual ring updated progressively is useful, but having the aria-label updated on every change is excessively verbose to the point of being annoying because of the frequency that this runs at.
I'd suggest either omitting role="status" and only emitting announcements via an aria-live region at specific points, such as when an autosave completes, or only updating the aria-label value at less frequent intervals, e.g. every 25%. This may require some tuning to figure out what the most reasonable frequency of announcement is, but it's certainly not every percentage.
So that a screen reader user can discover the actual current state of auto-saving, the visual ring should have a name that contains it's actual state. This would allow a user to navigate to the container and discover the autosave progress.
Expected behavior
Announcements that the user has no control over should be infrequent.
Actual behavior
Announcement of the autosaving happen constantly.
Steps to reproduce
- Load Playground.
- Enable a screen reader (tested with NVDA/Firefox)
- Perform site edits that trigger autosaving.
- Observe that every percentage of autosaving is announced audibly to the screen reader.
Isolating the problem
Prerequisites
Describe the bug
The playground environment uses a region with
role="status"and anaria-labelto report the current state of autosaving to screen readers. That's great, in principle.However, the region is updated every percentage, which means when you're making active changes, it is essentially constantly updating the autosave state. In a
role="status"container, every change is announced, and with a change occurring for every percentage, this means there is almost always a change being sent to screen readers.Having the visual ring updated progressively is useful, but having the
aria-labelupdated on every change is excessively verbose to the point of being annoying because of the frequency that this runs at.I'd suggest either omitting
role="status"and only emitting announcements via anaria-liveregion at specific points, such as when an autosave completes, or only updating thearia-labelvalue at less frequent intervals, e.g. every 25%. This may require some tuning to figure out what the most reasonable frequency of announcement is, but it's certainly not every percentage.So that a screen reader user can discover the actual current state of auto-saving, the visual ring should have a name that contains it's actual state. This would allow a user to navigate to the container and discover the autosave progress.
Expected behavior
Announcements that the user has no control over should be infrequent.
Actual behavior
Announcement of the autosaving happen constantly.
Steps to reproduce
Isolating the problem