Feature: #92704 - Improve keyboard navigation for module menus

See forge#92704

Description

The module menu implements the keyboard navigation suggested by the ARIA Best Practices 1.1 for roles menubar and menu. The first level menu has a menubar role, the second level submenus have a menu role. The buttons have the menuitem role. Both the menubar and the menu are oriented vertically for assistive technology matching the visual representation which affects the keyboard navigation.

Space/Enter shows the module unless the item has a submenu. Space/Enter and Right Arrow open a submenu and move focus to the first item.

Up/Down Arrow and Home/End navigate within the current level of the menu. Ctrl + Home/End navigate within the first level of the menu (extension of the ARIA pattern).

Left/Right Arrow moves to the parent items predecessor/successor when on a submodule item. The submenu will not be closed (deviation from the ARIA pattern).

Escape moves to the parent item of a submodule item. The submenu will not be closed (deviation from the ARIA pattern).

Tab and Shift + Tab move to the next item outside of the module menu.

The help menu implements the keyboard navigation suggested by the ARIA Best Practices 1.1 for the role menu. This is the same as the module menu but limited to a single level.

Impact

The main module menu and the help menu are now usable with keyboard alone. This includes users that access the backend with a screen reader or other assistive technology.