Glossary
The terms these docs use for keyrove's parts and behavior, from group, root and item to combo and roving tabindex, each linked to where it is covered.
| Term | Definition |
|---|---|
| Combo | A key a binding answers to: zero or more of mod+, ctrl+, alt+, shift+ and meta+, then a KeyboardEvent.code, such as ctrl+KeyJ. A comma-separated list answers to any of its combos. Matching is exact. See combos. |
| Consumed key | A key keyrove acted on: it called preventDefault() and returned a result, whether or not focus moved. A key another handler already consumed is left alone. See consumed and untouched keys. |
| Consumed no-op | A consumed key with nowhere to go, such as next at the end of a list that does not loop. The result's to is null. See return value. |
| Editable target | A textarea, select or [contenteditable] element, or an input whose type uses the arrows itself, such as text, number or range. It keeps its native keys while the arrows move between the rows around it. See editable targets. |
| Exit and enter | The two moves across a nested root's boundary: enter focuses the group inside the focused item, and exit returns to the item around the nested root. Neither has a default key. See exit and enter. |
| Focus key | A combo that focuses one element from anywhere under the listener, across roots, set with data-keyrove-focus-key or the focusKeys option. The element need not be an item. See focus keys. |
| Grid | A group whose column count, cols, is above 1. Its items fill rows of that many cells in DOM order, and the arrows move by cell and by row. See grid. |
| Group | The items one root governs, together with the settings read off that root or passed as options. A group is a list, or a grid when it has columns. See how it works. |
| Item | An element keyrove can move focus to: one marked data-keyrove-item, or one the items option selects. Elements carrying disabled are never navigable. See how it works. |
| Listener | The element the keydown handler is attached to, the event's currentTarget. It stands in as the root when no marked root is found, and bounds how far focus keys and exit reach. See roots. |
| Looping | Next and prev wrapping from the last item to the first and back, set with data-keyrove-loop or the loop option. Lists only; grids keep their edges. See looping lists. |
| Navigable item | An item a move can land on: one that is neither skipped nor disabled. Entering a group, the ends of a list and page jumps all count navigable items only. See edges and looping. |
| Nested root | A root inside another group. Only its own bindings apply inside it, it keeps its own roving tab stop, and exit and enter move between it and the group around it. See nested roots. |
| Orientation | Which arrows a list's next and prev answer to by default: Up and Down for a vertical list, Left and Right for a horizontal one, following the text direction. See horizontal lists. |
| Page length | How far Page Up and Page Down jump: that many rows in a grid, or items in a list. 10 unless data-keyrove-page-length or pageLength says otherwise. See page length. |
| Root | The element that holds a group's items and carries its settings: the nearest element at or above the event target marked data-keyrove-root, else the listener. See roots. |
| Roving tabindex | One tab stop per group: the item holding it has tabindex="0" and every other item -1, so Tab enters and leaves the group in one press, landing on the item that holds the stop. See roving tabindex. |
| Skipped item | An item marked data-keyrove-skip or matched by the skip option. It keeps its place in the sequence, and its cell in a grid, but no move lands on it. See skipped items. |
| Stride action | A move through the item sequence: next, prev, home, end, pageUp and pageDown, plus nextRow, prevRow, homeRow and endRow in a grid. rove takes one by name. See StrideAction. |
| Typeahead | Focusing an item by typing the start of its label, added with a handler from createTypeahead. It works beside keyRove, not inside it. See typeahead. |