Resizable — Accessibility
Keyboard
| Key | Action |
|---|---|
Tab | Move focus to the next resize handle. |
ArrowLeft / ArrowRight | Adjust horizontal panel sizes in small increments. |
ArrowUp / ArrowDown | Adjust vertical panel sizes in small increments. |
Shift + Arrow | Adjust panel sizes in larger increments. |
Home | Collapse the panel to its minimum size. |
End | Expand the panel to its maximum size. |
Enter | Confirm the current panel size (collapses on double-press if collapsible). |
All arrow-key interactions respect minSize and maxSize constraints, so users
cannot accidentally resize a panel past its bounds.
ARIA
- Each
ResizableHandlerenders withrole="separator", indicating a divider between two regions. aria-orientationis set to"horizontal"or"vertical"matching thedirectionprop onResizablePanelGroup.aria-valuenowreflects the current size of the panel before the handle as a percentage (0--100).aria-valueminandaria-valuemaxmap to the panel'sminSizeandmaxSize.data-panel-group-directionon the group container provides programmatic access to the layout direction.
Focus management
- Handles receive a visible focus ring (2px primary outline) when focused via keyboard.
- When
withHandleis used, the grip icon also receives an inner highlight to reinforce focus. - Focus order follows DOM order (left-to-right or top-to-bottom), matching the visual layout.
Reduced motion
- When
prefers-reduced-motionis active, the smooth panel-resize transition is disabled and sizes snap immediately. - Collapse/expand animations are also suppressed.
Minimum size constraints
- Always set
minSizeon panels to prevent content from being crushed to zero. This ensures keyboard users cannot inadvertently hide content. - Screen readers announce the current panel percentage via
aria-valuenow, so users always know how much space each panel occupies.
Native (React Native)
- Renders as a static flex layout -- no drag interaction.
- Panels use
flex-1for equal distribution.
Best practices
- Set
minSizeto prevent panels from being collapsed to zero. - Provide meaningful content labels inside panels for screen reader users.
- Consider persisting panel sizes with
autoSaveIdso returning users keep their layout preference. - When using multiple handles, ensure each panel has enough minimum space to remain readable.