Range Grid
A grid with 2-D rectangular cell selection — the spreadsheet model. An anchor and a focus cell define a selected rectangle: Shift+Arrow extends it, a plain Arrow collapses it, and Ctrl/Cmd+A selects all. Cells expose `aria-selected` and 1-based `aria-rowindex`/`aria-colindex`; the grid exposes the full row and column counts.
- Axe
- Name
- Roving
- Focus
Preview
A1
B1
C1
A2
B2
C2
A3
B3
C3
Installation
npx shadcn@latest add https://ui.publictheta.com/r/range-grid.jsonConformance
Verified against the @publictheta/ui-spec range-grid specification on both the React and vanilla reference implementations, across Chromium, Firefox, and WebKit.
- Axe — No WCAG 2 A/AA axe-core violations
- Name — The widget container exposes an accessible name
- Roving — Exactly one tab stop; Arrow keys move within the widget
- Focus — A visible focus indicator appears on keyboard focus (WCAG 2.4.7)
See the full conformance matrix across all components.