AddThisFeature

Accessible Multi-Select

Let people pick many items and always know exactly what they have picked.

involved Forms & Input

What it adds

A multi-select whose selection state is visible, removable, and announced — chips, counts, select-all, and a keyboard model that works.

What your agent is told to do

5
  1. 1

    Render each selection as a removable chip with an accessible label naming the item, not a bare X.

  2. 2

    Define one keyboard model and stick to it: arrows move through options, Space or Enter toggles, Backspace on an empty input removes the last chip, Escape closes the list without discarding selections.

  3. 3

    Announce the selection count on every change through a polite live region, and announce removals by name.

  4. 4

    If the app already has a typeahead or suggestion component, extend it rather than building a second one. This feature is about selection state, not about searching.

  5. 5

    Do NOT let bulk removal happen without recourse. Select-all and clear-all must state how many items they affect and be undoable.

Edge cases it handles

7
  • Selected items that fall outside the current search results must stay selected and stay visible.
  • The same item must never be selectable twice, including via paste or programmatic set.
  • Select-all must mean all matching the current filter, and must say so — not all options in existence.
  • A large selection must collapse to a count with a way to expand, so the chip pile does not swallow the page.
  • Removing a chip must move focus to a predictable neighbour, never to the body.
  • Chips must wrap and remain tappable at 320px, with touch targets large enough to hit.
  • A maximum selection limit must be announced before it is hit, not enforced by a silent no-op.

Definition of done

8
  • Every selection is visible as a labelled, removable chip.
  • The whole control is operable by keyboard alone, with a documented key map.
  • Selection count and individual removals are announced to screen readers.
  • Selected items survive searching and filtering the option list.
  • Duplicate selections are impossible.
  • Select-all and clear-all state their scope and can be undone.
  • The feature matches the existing design system.
  • No existing functionality is broken.

Related features

How it works

  1. 1

    Copy the link

    Grab the Markdown instruction URL for this feature.

  2. 2

    Give it to your AI

    Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.

  3. 3

    It inspects, then implements

    Your agent reads your existing app first, then adds the feature to fit it.

Works with your stack

These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.

Need it tighter than that? Customize the feature and tell it exactly what you're running.