Skip to content
Mendy UI

Shared

Keyboard and accessibility

Built-in interactions and the responsibilities of custom content.

On this page

Both components include keyboard behavior and accessible labels. Custom cells, editors, and controls still need to preserve their own semantics. Automated accessibility checks run against the documentation examples in light and dark themes; they do not establish that every consuming application is accessible.

Table

InteractionKeyboard behavior
Navigate cellsArrow keys move the active cell.
Extend cell selectionShift with movement extends the selection.
Copy⌘C on macOS or Ctrl+C elsewhere copies selected values, including virtualized rows.
Activate a rowEnter calls onRowActivate, or onRowClick if no activation callback exists.
Select a recordSpace toggles a focused row checkbox.
SortTab to a sortable header and activate its button.
ResizeFocus the resize handle and use Left/Right.
Reorder columnsIn column settings, focus a drag handle, press Space, move with Up/Down, and press Space to drop. Escape cancels.

Give the grid a dataset-specific label. Row-selection checkboxes appear on hover, keyboard focus, or selection, and remain visible on touch devices. Pinning adapts to narrow screens without rewriting preferences.

Links, inputs, buttons, disclosure controls, and native text selections keep their own behavior. A custom row action should be a real button or link with an accessible name. Replacing a header through renderHeader makes its sorting controls and labels your responsibility.

Filters

InteractionKeyboard behavior
Open the filter menuActivate the filter button. The first editor does not open automatically.
Move between fieldsUp/Down navigate the list.
Enter an editorEnter, Space, or the arrow toward the editor.
Return to the listThe return arrow from choices; inputs and calendars retain their own arrow behavior.
Select a choiceEnter or Space. Selecting the current single choice again clears it.
Save text or tokensEnter saves; Shift+Enter inserts a new line.
DismissEscape closes desktop menus. On phones it first returns to the list, then closes.
Leave the menuTab moves through controls and continues in page order.

Desktop hover previews do not take focus. Click or keyboard entry moves focus into an editor. Escape restores focus to the trigger. Applied chips have distinct edit and remove buttons with field-specific accessible labels, even when the visible field label is omitted.

Custom content

Use renderOption for custom choice labels when possible; the built-in editor retains selection and keyboard behavior. A custom renderEditor owns its internal navigation. Honor autoFocus: false during hover previews, leave Escape available, and label inputs.

Supply text alternatives for icons and badges. Do not rely on color alone to communicate a status. A custom table cell can use copy to give clipboard users meaningful text independent of its visual markup.

Motion and themes

Filter menus and editor popups open instantly by default. Applied chip entrance motion respects reduced-motion preferences. Theme variables control contrast; check the resulting colors whenever you override them.

Use the site's appearance and theme controls to inspect the live examples. See styling and theming for integration details.