Skip to content

[codex] Bucket autosave status announcements#3816

Draft
ashfame wants to merge 1 commit into
trunkfrom
codex/autosave-status-bucketed-aria-label
Draft

[codex] Bucket autosave status announcements#3816
ashfame wants to merge 1 commit into
trunkfrom
codex/autosave-status-bucketed-aria-label

Conversation

@ashfame

@ashfame ashfame commented Jun 21, 2026

Copy link
Copy Markdown
Member

What changed

This is the minimal fix for #3815. The save/autosave indicator keeps the existing role="status" live region, but the accessible aria-label no longer changes for every visual progress percentage. The visible progress ring still updates with exact progress, while the spoken label is bucketed to 0%, 25%, 50%, 75%, and 100%.

The existing Playwright autosave status sampling was updated to assert that progress labels only use those buckets.

Approach

The implementation adds a small getAnnouncedProgressPercent() helper and uses it only for the aria-label. getProgressPercent() is unchanged and continues to drive the visual ring.

Pros

  • Smallest code change.
  • Low behavioral risk because it preserves the current role="status" structure.
  • Reduces screen reader announcement frequency from every percent to at most five progress labels.
  • Does not affect visual progress fidelity.

Cons

  • Still uses a live status region to expose progress.
  • The accessible label is intentionally stale between 25% buckets.
  • Screen reader users cannot query the exact current percentage from the live region unless it happens to be on a bucket.
  • This mitigates the verbosity but does not model the indicator as a semantic progressbar.

Validation

  • npm exec nx -- run playground-website:typecheck
  • npm exec nx -- run playground-website:lint

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant