Skip to content

fix(website): AnnouncementToast mobile presentation and a11y - #877

Merged
blove merged 1 commit into
mainfrom
blove/toast-polish
Aug 30, 2026
Merged

fix(website): AnnouncementToast mobile presentation and a11y#877
blove merged 1 commit into
mainfrom
blove/toast-polish

Conversation

@blove

@blove blove commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Summary

The last two toast items from the polish-arc deferred list:

  • Mobile width (findings §6): below 480px the 360px right-hugging card covered 327px of a 375px screen. It now presents as a centered bottom sheet — even 16px side/bottom margins, tighter padding. Desktop unchanged.
  • A11y: the root was role="alert" + aria-live wrapped around interactive content (the CTA button and email form) — an alert/live region must not hold interactive controls. It's now a non-modal role="dialog" labelled by the title, which never steals focus on entry. Escape dismisses once focus is inside (and persists the dismissal). The close button gains a hover state, a :focus-visible ring, and a 44px touch target via ::after (findings §7) without visual growth. The "sent" success message is role="status" so the step swap is still announced to screen readers.

Verification

Browser-measured at 375: toast rect left: 16 / right: 359 (even margins), close hit target 46×50, Escape fires dismiss() and sets the localStorage key, role/aria-labelledby present. nx test website green, lint 0 errors, production build green (exit codes verified).

🤖 Generated with Claude Code

@blove
blove enabled auto-merge (squash) August 30, 2026 20:09
@vercel

vercel Bot commented Aug 30, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
threadplane Ready Ready Preview Aug 30, 2026 8:23pm

Request Review

@github-actions github-actions Bot 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.

Automated approval: this PR received an intelligent (AI) code review. See the review comments on this PR.

@github-actions

github-actions Bot commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Claude finished @blove's task in 0s —— View job


I'll analyze this and get back to you.

The remaining two toast items from the polish-arc deferred list:

- Mobile width (findings §6): below 480px the 360px right-hugging card
  covered 327px of a 375px screen; it now presents as a centered bottom
  sheet with even 16px margins and tighter padding.
- A11y: the root was role=alert + aria-live on interactive content (CTA
  button and email form) — now a non-modal role=dialog labelled by the
  title, which never steals focus on entry. Escape dismisses once focus
  is inside. The close button gets a hover state, a focus-visible ring,
  and a 44px hit target via ::after (findings §7). The 'sent' success
  message is role=status so the step swap is still announced.

Verified in-browser at 375: 16px margins, close hit 46x50, Escape
dismisses and persists the dismissal. nx test green, lint 0 errors,
production build green.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@blove
blove force-pushed the blove/toast-polish branch from d1d7e82 to f602307 Compare August 30, 2026 20:14
@github-actions

github-actions Bot commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Claude finished @blove's task in 0s —— View job


I'll analyze this and get back to you.

@blove
blove merged commit 70da3f4 into main Aug 30, 2026
27 checks passed
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.

1 participant