Беглый взгляд показывает, что «americaserves» (работает) имеет обработчик событий фокусировки / размытия, а «вперед» (не работает) - нет. Я предполагаю, что обработчик фокуса - это то, что отображает подменю.
Однако, как примечание относительно доступности клавиатуры, отображение подменю на фокусе может привести к множеству остановок табуляции. Если я пытаюсь перейти по меню, чтобы перейти к последнему элементу, мне нужно перейти по всем подменю, потому что они появляются автоматически.
Хороший подход заключается в том, чтобы иметь визуальный индикатор наличия подменю и использовать атрибут aria-expanded
в меню и установить его в значение true / false в зависимости от того, развернуто ли меню / свернуто (соответственно). Позвольте пользователю выбрать меню, чтобы открыть его, а не открывать автоматически.
Тем не менее, однажды предупреждаю, что пункты меню верхнего уровня на самом деле выполняют две цели. Вы можете выбрать сам пункт меню и перейти на страницу, или вы можете выбрать пункт меню для отображения подменю. Поскольку при одном и том же взаимодействии не может быть двух вариантов поведения (клавиша enter ), вам потребуются отдельные элементы. Обычно это делается с помощью ссылки меню, которая ведет вас на другую страницу, а затем рядом с ней появляется небольшая кнопка со стрелкой вниз, отображающая подменю.
Вы все еще можете поддерживать зависание с помощью мыши, отображающей меню. А дополнительная кнопка «стрелка вниз» может быть скрыта до тех пор, пока не будет добавлена вкладка, аналогично вашим пропущенным ссылкам.