fix(TermsGate): aria-hidden backdrop, aria-disabled submit button, ellipsis UX #864

Closed
fullstack-engineer wants to merge 1 commits from fix/issue-854-termsgate-a11y into staging

1 Commits

Author SHA1 Message Date
d8cf933d67 fix(TermsGate): aria-hidden backdrop, aria-disabled submit button, ellipsis UX
Some checks failed
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 11s
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: comprehensive-testing, local-postgres-e2
sop-tier-check / tier-check (pull_request) Successful in 12s
sop-checklist-gate / gate (pull_request) Successful in 13s
CI / Detect changes (pull_request) Successful in 25s
CI / Platform (Go) (pull_request) Successful in 8s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 8s
CI / Python Lint & Test (pull_request) Successful in 9s
CI / Canvas (Next.js) (pull_request) Successful in 6m19s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / all-required (pull_request) Successful in 0s
audit-force-merge / audit (pull_request) Has been skipped
Backdrop is now decorative sibling (aria-hidden=true) so screen readers
land on the dialog landmark directly. The submit button uses
aria-disabled=true instead of disabled so it stays in tab order while
the POST is in flight. The button label switches to "…" (ellipsis) during
submission and stays there until the server confirms acceptance — the
catch block no longer resets submitting=false, which previously caused
the ellipsis to flicker out while the dialog was still visible.

Add three regression tests covering ellipsis display, aria-disabled
presence, and the absence of a disabled attribute during submission.

Refs #854
2026-05-13 15:41:10 +00:00