Skip to content

Autosave progress announcements emitted constantly for screen readers #3815

Description

@joedolson

Prerequisites

  • I have carried out troubleshooting steps and I believe I have found a bug.
  • I have searched for similar bugs in both open and closed issues and cannot find a duplicate.

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

  1. Load Playground.
  2. Enable a screen reader (tested with NVDA/Firefox)
  3. Perform site edits that trigger autosaving.
  4. Observe that every percentage of autosaving is announced audibly to the screen reader.

Isolating the problem

  • I have deactivated other plugins and confirmed this bug occurs when only this plugin is active.
  • This bug happens with a default WordPress theme active.
  • I can reproduce this bug consistently using the steps above.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions