v150 · HTML · Accessibility · 2D Navigation

Grid Navigation

focusgroup="listbox wrap nomemory" gives each picker one tab stop and current Chrome 150 listbox semantics. The visual grid adds a small row/column keyboard helper because native 2D grid focusgroup behavior is not part of the current Chrome 150 contract.

Checking focusgroup support…

color picker

Tab to enter the grid, then use arrow keys ← → ↑ ↓ to navigate, Enter/Space to select

focusgroup="listbox wrap nomemory"  — current focusgroup behavior token, with JS row/column movement for this visual grid
Tab to enter to move Enter to pick
Click or navigate to a color

emoji picker

Same current attribute — a 6-column visual listbox, fully keyboard navigable

Pick an emoji above

code

<!-- Current Chrome 150 focusgroup syntax uses behavior tokens first. -->
<div
  class="color-grid"
  focusgroup="listbox wrap nomemory"
  role="listbox"
  aria-label="Color picker"
>
  <button class="swatch" role="option" aria-label="Red" style="background:var(--accent-rose)"></button>
  <button class="swatch" role="option" aria-label="Orange" style="background:var(--accent-amber)"></button>
  <!-- ... more swatches ... -->
</div>

<!-- 2D row/column movement is still a visual-grid helper here.
     Current focusgroup covers the single-tab-stop listbox behavior. -->

see also

implementation reference

Need the exact API surface, compatibility boundaries, errors, lifecycle, and source links? Read the matching gendn reference ↗