Вы используете aria-expanded
для элемента, который «расширяет» другой элемент, такой как всплывающее меню или аккордеон.
Он не подходит для отображения того, находится ли что-то в фокусе/зависает, он предназначен для вещей, которые «активируются» (поэтому button
— это обычный вариант использования, ссылка <a>
иногда приемлема, если вы используете ее в качестве запасного варианта для неактивных действий). JavaScript).
В приведенном вами примере неясно, выставляете ли вы подменю при наведении или фокусе, и поэтому вы хотите использовать aria-expanded
.
Если нет, не используйте aria-expanded
.
Если да, я бы порекомендовал изменить меню так, чтобы при нажатии оно оставляло меню открытым (как и должно быть в любом случае для сенсорных устройств), в котором точка aria-expanded
уместна при нажатии.
В приведенном выше примере средство чтения с экрана объявляет текущее состояние фокуса как collapsed
, когда вы впервые сталкиваетесь с ним, поэтому ожидаемое поведение состоит в том, чтобы нажать пробел или ввести, и оно изменит статус на aria-expanded="true"
и объявит expanded
, давая пользователю знать, что они раскрыли некоторые дополнительная информация (которая должна быть следующей позицией табуляции после активации).
Вы по-прежнему можете открыть меню для пользователей, использующих мышь при наведении.
Я надеюсь, что в этом есть смысл.
person
Graham Ritchie
schedule
06.12.2019