Skip to content

R-01/R-02/R-07/R-10/R-17: plain, reassuring in-app status legibility & a11y copy#47

Open
ChelseaKR wants to merge 1 commit into
mainfrom
roadmap/status-legibility-and-a11y-copy-fixes-r-
Open

R-01/R-02/R-07/R-10/R-17: plain, reassuring in-app status legibility & a11y copy#47
ChelseaKR wants to merge 1 commit into
mainfrom
roadmap/status-legibility-and-a11y-copy-fixes-r-

Conversation

@ChelseaKR

Copy link
Copy Markdown
Owner

Make evidence-status legible and reassuring in the app, and leave no screen a
dead end for a stressed user:

  • EN/ES status copy (R-01, R-17): reword "Awaiting timestamp" -> "Waiting for a
    trusted timestamp" and add a visible reassurance paragraph (associated via
    aria-describedby) explaining the photo is already sealed on-device and that a
    wait, even a long one, does not weaken the evidence; a calm "nothing more to
    do" once everything is timestamped. Toggled by deferred count in renderStatus.
  • No dead-end empty states (R-02): issues_empty_next (wired into #issues-empty)
    and a next-action issue_none_available so every idle state names what to do.
  • ARIA live-region announcements (R-07): keep the existing clear-then-set
    announce(); capture/resolve/export each announce their outcome
    (awaiting->timestamped via msg_resolved).
  • Non-auditory success cue (R-10): signalSuccess() adds navigator.vibrate(35)
    plus a prefers-reduced-motion-guarded .flash-ok pulse on the announcer, on
    capture, resolve, and verified export. The aria-live text stays primary.

Mark these done in-app in the persona execution log and backlog.

Static-shell only: no new dependencies, offline-first preserved. Validated with
make test (196 passed), including the real browser axe scan (EN+ES),
keyboard/structural a11y, and EN/ES i18n key-parity gates; both help-copy
branches observed live in EN and ES.

Co-Authored-By: Claude Fable 5 noreply@anthropic.com


Backfill PR for a completed roadmap item (roadmap/status-legibility-and-a11y-copy-fixes-r-, 1 commit(s) over main). Part of the portfolio roadmap batch.

…& a11y copy

Make evidence-status legible and reassuring in the app, and leave no screen a
dead end for a stressed user:

- EN/ES status copy (R-01, R-17): reword "Awaiting timestamp" -> "Waiting for a
  trusted timestamp" and add a visible reassurance paragraph (associated via
  aria-describedby) explaining the photo is already sealed on-device and that a
  wait, even a long one, does not weaken the evidence; a calm "nothing more to
  do" once everything is timestamped. Toggled by deferred count in renderStatus.
- No dead-end empty states (R-02): issues_empty_next (wired into #issues-empty)
  and a next-action issue_none_available so every idle state names what to do.
- ARIA live-region announcements (R-07): keep the existing clear-then-set
  announce(); capture/resolve/export each announce their outcome
  (awaiting->timestamped via msg_resolved).
- Non-auditory success cue (R-10): signalSuccess() adds navigator.vibrate(35)
  plus a prefers-reduced-motion-guarded .flash-ok pulse on the announcer, on
  capture, resolve, and verified export. The aria-live text stays primary.

Mark these done in-app in the persona execution log and backlog.

Static-shell only: no new dependencies, offline-first preserved. Validated with
`make test` (196 passed), including the real browser axe scan (EN+ES),
keyboard/structural a11y, and EN/ES i18n key-parity gates; both help-copy
branches observed live in EN and ES.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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