Управление с клавиатуры

КлавишаДействие
Enter или ПробелНа триггере: открывает меню на первом пункте. На пункте: выбирает его или открывает подменю.
Стрелка внизНа триггере: открывает меню на первом пункте. В меню: переходит к следующему пункту.
Стрелка вверхНа триггере: открывает меню на последнем пункте. В меню: переходит к предыдущему пункту.
Home и EndПереходит к первому или последнему пункту.
Стрелка вправоОткрывает подменю и переходит к его первому пункту (в тексте справа налево — стрелка влево).
Стрелка влевоЗакрывает подменю и возвращается к родительскому пункту (в тексте справа налево — стрелка вправо).
EscЗакрывает меню и возвращает фокус на триггер.
БуквыПереходит к следующему пункту, подпись которого начинается с набранного текста.

Примечания по доступности

  • Триггер получает aria-haspopup, aria-expanded и aria-controls; меню и его пункты получают ARIA-роли от Angular Aria.
  • Подсвеченный пункт залит сплошным цветом с контрастом текста не ниже 4,5:1 и одновременно служит индикатором фокуса. В режиме принудительных цветов он получает системный контур выделения.
  • Отмечаемые пункты сообщают своё состояние через aria-checked.
  • Выбор пункта закрывает меню и возвращает фокус на триггер. Меню закрывается и тогда, когда фокус уходит за пределы триггера и меню.
  • Высота пунктов — не меньше 28 пикселей, это больше минимального размера области нажатия по WCAG 2.2.