Commit 301f88e
feat(client): announce every InfoBar kind to a screen reader (UI/UX v3 P6c) (#94)
Before this change the update banner was the only one of the three
top-of-screen messages with an AccessKit node. The offline bar had none —
it was in the tree hash, so it forced a rebuild that added nothing — and
the server error, the surface that reports "your shell could not be
launched" and "your config failed to load", occurred zero times in
accessibility.rs. A screen-reader user was never told.
One builder driven by `InfoBarKind` replaces the update-only one:
- `build_info_bar_nodes` emits one `Role::Alert` per queued bar in stack
order, labelled with the same text the bar draws so the two cannot
drift. An error is `Live::Assertive`; the offline and update bars are
`Live::Polite` — the offline bar reports a condition, not an event.
- Node ids are keyed by slot (`info_bar_node_id`), not by queue position,
so the id of "the error bar" does not move when the bar above it is
dismissed. The match is exhaustive, so a fourth slot cannot be added
without a node (G-a11y). `NodeIdKind::UpdateBanner` and NodeId(10)
are retired in favour of `NodeIdKind::InfoBar { slot }` at 28..=30.
- Bars past the drawn cap are announced in full: `+{count} more` is a
constraint of a two-bar stack, not of a screen reader.
The tree hash already covered slot + message from P6b; this adds the
gates it was missing — a bar appearing, being reworded or being removed
changes it, and the offline bar's elapsed seconds do not (G-hash).
Completes the phase's one new string: `infobar-more-count` in all 8
locales (G-i18n), drawn on the bottom bar via `StackLayout::more_label`
so the cap and the way the cap is reported cannot disagree. The
`VecDeque` flattening the vertex builder open-coded moves to
`infobar::contiguous`, now that the AccessKit path needs it too.
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Happy <yesreply@happy.engineering>1 parent 5e44080 commit 301f88e
13 files changed
Lines changed: 420 additions & 68 deletions
File tree
- docs/plans
- nexterm-client-gpu
- src
- renderer
- overlay
- nexterm-i18n/locales
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
713 | 713 | | |
714 | 714 | | |
715 | 715 | | |
716 | | - | |
717 | | - | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
718 | 721 | | |
719 | 722 | | |
720 | 723 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
0 commit comments