Skip to content

fix(a11y): restore toast status messages without reverting develop - #534

Merged
seonghobae merged 41 commits into
developfrom
cursor/bc-32654aa2-7152-454a-8c11-40118568da92-ed97
Aug 16, 2026
Merged

fix(a11y): restore toast status messages without reverting develop#534
seonghobae merged 41 commits into
developfrom
cursor/bc-32654aa2-7152-454a-8c11-40118568da92-ed97

Conversation

@cursor

@cursor cursor Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Buyer impact

After a failed share link or a cloud save error, the toast is now both announced to assistive technology and visible on screen. Synchronization feedback uses the same explicit advisory status semantics. GitHub Pages, both Docker images, and the SaaS allowlist ship toast-state.css with the documents that load it, so the message does not stay transparent after deploy.

If a share link fails, request a fresh URL from the project owner. The toast tells you the link was expired or withdrawn without moving keyboard focus.

Why this PR exists

PR #491 head 794ecbd (ci: re-kick required checks to bypass flake 5) deleted the toast contract and reverted already-landed fail-closed orchestrator and #467 MS Project XML hardening. This branch restores the protected develop tree, then replays only the toast/sync-status slice.

Do not merge #491 at 794ecbd. Close it as superseded after this lands.

Contract

  • #toast and #sync-status expose role="status", aria-live="polite", and aria-atomic="true" and are not synthetic keyboard stops.
  • Cloud/SaaS toasts that add .visible are painted by shipped toast-state.css (opacity: 1).
  • tests/unit/toast-accessibility.test.mjs locks markup, CSS, and every production serve path.
  • tests/e2e/toast-accessibility.spec.js drives the real share-error path and requires visible opacity >= 0.99 without focus capture.

WAI-ARIA 1.2 and WCAG 2.2 SC 4.1.3 references are in docs/doctoring/toast-status-accessibility.md.

Out of scope

No orchestrator, XML import, authentication, workflow, or dependency changes versus develop.

Open in Web View Automation 

seonghobae and others added 30 commits August 14, 2026 13:49
Add role="status" and aria-atomic="true" to the toast element to ensure
screen readers announce the entire dynamic message when it appears.
Add role="status" and aria-atomic="true" to the toast element to ensure
screen readers announce the entire dynamic message when it appears.
seonghobae and others added 11 commits August 16, 2026 19:17
The previous empty CI re-kick deleted the fail-closed orchestrator
client, the #467 MS Project XML scanner, and their tests. Restore the
protected-develop tree so the toast accessibility slice can land
without those reversions.

Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
Restore the #491 toast contract onto current develop: explicit
status/polite/atomic semantics, shipped .toast.visible CSS, and
unit plus browser regressions. Serve toast-state.css on the SaaS
allowlist, both Docker images, and GitHub Pages so cloud share-error
toasts stay visible after deploy.

Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
@seonghobae
seonghobae marked this pull request as ready for review August 16, 2026 16:59
@seonghobae
seonghobae self-requested a review as a code owner August 16, 2026 16:59
@cursor

cursor Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor Author

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the unchanged current head against protected develop. The toast/sync status semantics, cloud .visible rendering, SaaS/static serve-path inclusion, focused unit/browser regressions, and repository-native CI/security results are coherent with the bounded accessibility repair. Approval is for this exact head only; pending organization-required evidence must still complete successfully before integration.

@seonghobae
seonghobae merged commit 44e7903 into develop Aug 16, 2026
40 of 42 checks passed
@seonghobae
seonghobae deleted the cursor/bc-32654aa2-7152-454a-8c11-40118568da92-ed97 branch August 16, 2026 21:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants