mirror of
https://github.com/olehomelchenko/astrolabe.git
synced 2026-08-08 02:02:33 +00:00
Record council resolutions for Draft/Published toggle and status dot
This commit is contained in:
@@ -149,7 +149,11 @@ the Draft/Published view) is a **radio group**, never a row of `aria-pressed` to
|
|||||||
- `role="radio"`/`aria-checked`, a **roving tabindex** (only the selected option is a tab
|
- `role="radio"`/`aria-checked`, a **roving tabindex** (only the selected option is a tab
|
||||||
stop), and Arrow/Home/End to move-and-select (APG → Radio Group). One widget so the keyboard
|
stop), and Arrow/Home/End to move-and-select (APG → Radio Group). One widget so the keyboard
|
||||||
model is defined once. _(Tabs were a candidate for Draft/Published; we chose radio group for
|
model is defined once. _(Tabs were a candidate for Draft/Published; we chose radio group for
|
||||||
consistency with the other segmented controls and to avoid tabpanel wiring to Monaco.)_
|
consistency with the other segmented controls and to avoid tabpanel wiring to Monaco. A
|
||||||
|
**toggle switch** was also weighed and rejected: APG defines `role="switch"` as on/off of a
|
||||||
|
**single** setting, but Draft/Published selects between two **named peer views** with no
|
||||||
|
natural "on" side — a radio group is the right semantics. Reserve the switch for genuine
|
||||||
|
on/off settings. Consulted via /council → APG switch / radio-group / tabs.)_
|
||||||
|
|
||||||
**Resolved — selectable lists.** A row the user selects must be a real `<button>` (or a
|
**Resolved — selectable lists.** A row the user selects must be a real `<button>` (or a
|
||||||
proper option), not a click handler on `<li>` (mouse-only, no keyboard, no role). It is
|
proper option), not a click handler on `<li>` (mouse-only, no keyboard, no role). It is
|
||||||
@@ -158,6 +162,18 @@ forbids interactive children in a listbox. Mark the active row with `aria-curren
|
|||||||
**only on that row** (don't emit `aria-current="false"` everywhere). Arrow-key roving
|
**only on that row** (don't emit `aria-current="false"` everywhere). Arrow-key roving
|
||||||
_between_ rows is a later enhancement; button-per-row tab stops are the acceptable baseline.
|
_between_ rows is a later enhancement; button-per-row tab stops are the acceptable baseline.
|
||||||
|
|
||||||
|
**Resolved — snippet-list status indicator.** The library row flags only the _exceptional_
|
||||||
|
state: a single **accent dot** when a snippet has unpublished draft changes; a fully-published
|
||||||
|
snippet shows **no dot** (presence = draft, absence = published). We do **not** give "published"
|
||||||
|
its own glyph — GOV.UK's Tag guidance notes one status suffices when absence is self-evident,
|
||||||
|
and Carbon's status-indicator pattern says not to highlight what isn't significant. Meaning
|
||||||
|
never rests on **hue** (WCAG 1.4.1): it rides on presence/absence **plus** the dot's accessible
|
||||||
|
label, and the colour is the neutral **accent** — not a warning hue, because unpublished work is
|
||||||
|
a normal state, not a problem. The dot sits in the row's secondary metadata line (with the
|
||||||
|
relative date and size), in a fixed-width leading slot so it never shifts adjacent text.
|
||||||
|
_(Consulted via /council → GOV.UK Tag, Carbon status-indicator-pattern, APG. This bullet is the
|
||||||
|
contract; cite it, not the external source.)_
|
||||||
|
|
||||||
**Resolved — one live region per shared message.** When the same error feeds two surfaces
|
**Resolved — one live region per shared message.** When the same error feeds two surfaces
|
||||||
(the §1 "one producer, two subscribers" case — render errors via `PreviewStore`), exactly
|
(the §1 "one producer, two subscribers" case — render errors via `PreviewStore`), exactly
|
||||||
**one** subscriber is the live region (`role="alert"` on the editor, where focus is); the
|
**one** subscriber is the live region (`role="alert"` on the editor, where focus is); the
|
||||||
|
|||||||
Reference in New Issue
Block a user