OGE logoOGE

Chip

oge-chip is a compact tag, filter or person token; a selectable one is a toggle button, a removable one carries a real remove button. oge-chip-list groups chips behind one tab stop and picks its WAI-ARIA shape from what the chips can do.

The role follows the capability: selectable chips are a listbox (options with aria-selected), chips that can only be removed are a layout grid (so the remove button is a real, reachable control), and static chips are a plain list. A button inside an option would be a nested interactive control, so in a listbox the ✕ is decoration and Delete / Backspace — advertised with aria-keyshortcuts — is the keyboard path.

APG listbox APG grid aria-pressed removable RTL

Chips

A plain chip is static text — no role and nothing focusable. A leading icon takes SVG path data; an avatar renders the image, then the initials, and is always aria-hidden because the label is the name.

icon avatar severity stylingMode size
AngularFeaturedAda LovelacePassedBlocked

Selectable chips

selectable renders a toggle <button aria-pressed>. The selected state is a tint, an accent frame and a check glyph — it never rides on colour alone, and forced colors repaint it as a Highlight fill.

selectable [(selected)] aria-pressed

remote: true · full-time: false

Removable chips

removable adds a separate, real remove button named “Remove {label}” from the messages catalog. The chip moves no data — drop it in (removed).

removable (removed) 24px target
DesignResearchWriting

Chip list — single selection

Selectable chips form an APG listbox with one tab stop: Left / Right (mirrored in RTL), Up / Down, Home and End move; Space or Enter toggles. Disabled chips are skipped. A second press clears a single selection — chips are filters.

selectionMode: single APG listbox roving tabindex
Small
Medium
Large
X-Large

size: m

Chip list — multiple selection (filters)

multiple adds aria-multiselectable; selectionChanged carries the previous and the next keys plus the toggled chip.

selectionMode: multiple aria-multiselectable
Open
Assigned to me
Bug
Docs

active: open · last: —

Removable list (APG grid)

Chips that can only be removed form an APG layout grid: each chip is a row with a label cell and a cell holding a real remove button. Arrows walk the cells, Delete removes and focuses the chip that took its place, Backspace the previous one. A cancelable itemRemoving precedes itemRemoved.

APG grid Delete / Backspace focus after removal
Ada Lovelace
Grace Hopper
Alan Turing
Katherine Johnson

Custom chip template

[ogeChipTemplate] replaces the label only: the list keeps the role, the focus, the check glyph and the remove affordance, so keep the template non-interactive.

[ogeChipTemplate] context
TypeScript128
Rust42
Go37