# UX second pass — batched council review A running parking lot of small UX / interaction decisions deferred for a **batched [`/council`](../.claude/skills/council/SKILL.md) review**, rather than gating each one the moment it surfaces. Append quirks here as they come up; resolve them together in one pass, record the resolution into the contract (`docs/architecture/09`+`10` and the relevant `docs/spec/`), then delete the row. ## Open ### Chart Builder — encoding type control: cycle vs. explicit pick - **Where:** `src/app/components/ChartBuilderModal.tsx` → `ChannelPill` (the `pillType` chip). - **What:** a mapped channel's field type is shown as a **cycling chip** — activating it steps N → O → Q → T within the set valid for the column/channel. It is compact and matches the approved field-first pill design, but a _cycling_ button gives a screen-reader / keyboard user no way to jump straight to a type; they step through the cycle. The pre-2B control was an explicit `N | O | Q | T` segmented radio (direct pick, APG radio pattern). - **Decision to make:** keep the cycle, restore the explicit segmented control, or a hybrid (chip for a quick mouse cycle + an accessible radio/menu for direct selection). - **Lens:** WAI-ARIA APG (radio vs. toggle button), IBM Carbon, the project's keyboard-first accessibility bar. ### Chart Builder — empty Colour/Size "or constant" affordance - **Where:** `ChannelPill` / `ChannelSlot` — the constant-value entry on Colour/Size (2A). - **What:** an empty Colour/Size slot offers a small underlined "or constant" text button to switch the channel from a field binding to a fixed `{ value }`. Confirm the copy, emphasis, and discoverability read well alongside the field-assign affordance. - **Lens:** Carbon / GOV.UK content + control emphasis.