Menu

A trigger and the MenuList of commands it opens. It isn't modal: no focus trap, no scroll lock, nothing laid over the page, so the pointer passes over it and the page stays usable around it.

Keyboard

WhereKeyDoes
The triggerEnter / SpaceOpens the menu (a click), focusing the checked row or the first enabled one
The triggerArrowDown / ArrowUpOpens the menu, focusing the checked row or the first enabled one
The listEscapeCloses the menu and gives focus back to the trigger
The listEnter / SpaceChooses the focused row, closes the menu and gives focus back to the trigger
The listLeft / RightonStep(-1) / onStep(1), when set
The listTabFocus leaves - the menu closes and focus stays where it went

The arrow keys, Home, End and type-ahead inside the list are MenuList's.