# Keyboard Navigation

The ListBox supports comprehensive keyboard navigation for accessibility and efficiency. The keyboard shortcuts are organized into four categories: navigation and focus, selection, item management, and ToolBar operations.

[Demo Source](https://demos.telerik.com/kendo-angular-ui/demos/listbox/navigation/source.txt)

## Focus and Tab Sequence

The ListBox is a single-tab-stop component. When the optional ToolBar is enabled, it is included in the page tab-sequence. The ToolBar position in the tab order respects its visual position on the screen based on the LTR/RTL configuration.

## Navigation Shortcuts

Use the following keyboard shortcuts to navigate through ListBox items:

| SHORTCUT                          | DESCRIPTION                                                  |
| :-------------------------------- | :----------------------------------------------------------- |
| `Up Arrow`                        | Moves focus to and selects the previous item.                |
| `Down Arrow`                      | Moves focus to and selects the next item.                    |
| `Ctrl / Cmd (MacOS) + Up Arrow`   | Moves focus to the previous item without changing selection. |
| `Ctrl / Cmd (MacOS) + Down Arrow` | Moves focus to the next item without changing selection.     |
| `Home`                            | Moves focus to the first item.                               |
| `End`                             | Moves focus to the last item.                                |

## Selection Shortcuts

Use the following keyboard shortcuts to select items in single or multiple selection mode:

### Single Item Selection

| SHORTCUT                               | DESCRIPTION                                                       |
| :------------------------------------- | :---------------------------------------------------------------- |
| `Space`                                | Selects the current item.                                         |
| `Ctrl + Space` / `Cmd + Space (MacOS)` | Toggles selection of the current item in multiple selection mode. |
| `Ctrl + Click` / `Cmd + Click (MacOS)` | Toggles selection of the clicked item in multiple selection mode. |

### Range Selection

| SHORTCUT                            | DESCRIPTION                                                                 |
| :---------------------------------- | :-------------------------------------------------------------------------- |
| `Shift + Click`                     | Selects all items between the anchor item and the clicked item.             |
| `Shift + Up Arrow`                  | Extends selection from the anchor item to the previous item.                |
| `Shift + Down Arrow`                | Extends selection from the anchor item to the next item.                    |
| `Ctrl / Cmd (MacOS) + Shift + Home` | Selects all items from the anchor item to the first item.                   |
| `Ctrl / Cmd (MacOS) + Shift + End`  | Selects all items from the anchor item to the last item.                    |
| `Ctrl / Cmd (MacOS) + A`            | Selects all items. If all items are already selected, clears the selection. |

### Selection Anchor

The ListBox uses an anchor item as a reference point for range selection operations. The anchor item is set when you:

* Click an item to select it
* Press `Space` to select the focused item
* Press `Ctrl + Space` or `Cmd + Space` (MacOS) to toggle selection
* Use `Ctrl + Click` or `Cmd + Click` (MacOS) to toggle selection

When a range selection operation requires an anchor but none is set, the first item in the list is used as the reference point.

## Item Management Shortcuts

Use the following keyboard shortcuts to manipulate items within the ListBox or transfer them between connected ListBoxes:

### Reordering Items

| SHORTCUT                                  | DESCRIPTION                                  |
| :---------------------------------------- | :------------------------------------------- |
| `Ctrl / Cmd (MacOS) + Shift + Up Arrow`   | Moves the selected items up one position.    |
| `Ctrl / Cmd (MacOS) + Shift + Down Arrow` | Moves the selected items down one position.  |
| `Delete`                                  | Removes the selected items from the ListBox. |

### Transferring Items

| SHORTCUT                                   | DESCRIPTION                                                                     |
| :----------------------------------------- | :------------------------------------------------------------------------------ |
| `Ctrl / Cmd (MacOS) + Right Arrow`         | Transfers the selected items to the connected ListBox.                          |
| `Ctrl / Cmd (MacOS) + Left Arrow`          | Transfers the selected items from the connected ListBox to the current ListBox. |
| `Ctrl / Cmd (MacOS) + Shift + Right Arrow` | Transfers all items to the connected ListBox.                                   |
| `Ctrl / Cmd (MacOS) + Shift + Left Arrow`  | Transfers all items from the connected ListBox to the current ListBox.          |

## ToolBar Shortcuts

When the ToolBar is enabled, use the following keyboard shortcuts to interact with ToolBar buttons:

| SHORTCUT                   | DESCRIPTION                                                                                                      |
| :------------------------- | :--------------------------------------------------------------------------------------------------------------- |
| `F10`                      | Moves focus to the ToolBar. Focuses the last focused button, or the first button if none was previously focused. |
| `Right Arrow / Down Arrow` | Moves focus to the next button in the ToolBar.                                                                   |
| `Left Arrow / Up Arrow`    | Moves focus to the previous button in the ToolBar.                                                               |
| `Enter` / `Space`          | Activates the focused button.                                                                                    |
| `Escape`                   | Returns focus from the ToolBar to the ListBox.                                                                   |

## Suggested Links

* [API Reference of the ListBox](https://www.telerik.com/kendo-angular-ui/components/listbox/api/listboxcomponent)
* [Selection](https://www.telerik.com/kendo-angular-ui/components/listbox/selection)
