Расширяется ли aria только для взаимодействия с кликом или его можно использовать и для фокуса?

Могу ли я использовать «aria-expanded» для элемента ссылки (якоря) с его фокусом или состоянием наведения? Таким образом, когда пользователь наводит курсор или фокусируется с помощью клавиатуры на ссылке, aria-expanded должен стать истинным, а когда наведение или фокус убраны, он должен стать ложным.

Из того, что я прочитал, я не смог найти явного ответа, кроме этой ссылки, в которой говорится, что ее следует использовать только при щелчке, а не при фокусе.


person whyAto8    schedule 06.12.2019    source источник


Ответы (3)


Вы используете aria-expanded для элемента, который «расширяет» другой элемент, такой как всплывающее меню или аккордеон.

Он не подходит для отображения того, находится ли что-то в фокусе/зависает, он предназначен для вещей, которые «активируются» (поэтому button — это обычный вариант использования, ссылка <a> иногда приемлема, если вы используете ее в качестве запасного варианта для неактивных действий). JavaScript).

В приведенном вами примере неясно, выставляете ли вы подменю при наведении или фокусе, и поэтому вы хотите использовать aria-expanded.

Если нет, не используйте aria-expanded.

Если да, я бы порекомендовал изменить меню так, чтобы при нажатии оно оставляло меню открытым (как и должно быть в любом случае для сенсорных устройств), в котором точка aria-expanded уместна при нажатии.

В приведенном выше примере средство чтения с экрана объявляет текущее состояние фокуса как collapsed, когда вы впервые сталкиваетесь с ним, поэтому ожидаемое поведение состоит в том, чтобы нажать пробел или ввести, и оно изменит статус на aria-expanded="true" и объявит expanded, давая пользователю знать, что они раскрыли некоторые дополнительная информация (которая должна быть следующей позицией табуляции после активации).

Вы по-прежнему можете открыть меню для пользователей, использующих мышь при наведении.

Я надеюсь, что в этом есть смысл.

person Graham Ritchie    schedule 06.12.2019
comment
Большое спасибо за это объяснение, это помогает. Кстати, в настоящее время я показываю подменю при наведении и фокусе, а также использую расширенную арию, что теперь кажется неправильным. Я думаю, что либо мне придется отказаться от этой расширенной арии, либо, если моя UX-команда согласится, изменить взаимодействие так, чтобы в фокусе пользователь должен был щелкнуть, чтобы развернуть ее, тогда расширенная ария будет иметь больше смысла. - person whyAto8; 06.12.2019
comment
определенно правильный путь, нет ничего плохого в том, чтобы делать это при наведении, но в фокусе я ожидаю, что это будет то, с чем я взаимодействую, покажите это стрелкой вниз. Я не помню ссылку, но на веб-сайте w3 есть отличный пример меню, на котором вы можете основывать функциональность. Также есть этот пример w3 .org/TR/wai-aria-practices/examples/menubar/menubar-1/, который должен дать вам представление, хотя тот, о котором я думаю, лучше :-P - person Graham Ritchie; 06.12.2019

WCAG 3.2.1 ясно дает понять, что элементы не могут изменяться в фокусе. Пользователям клавиатуры и программ чтения с экрана должно быть разрешено как открывать, так и закрывать элемент, когда он получает фокус. Независимо от того, открывается он в фокусе или нет, aria-expanded используется для предупреждения пользователей программ чтения с экрана о том, что элемент (включая теги привязки) будет расширяться с содержимым сразу после этого элемента при его запуске.

person Emily Kay    schedule 10.12.2019

aria-expanded указывает, развернут ли в данный момент элемент или другой элемент группировки, которым он управляет, или свернут. [...] это может быть применено к разделам страницы, чтобы пометить расширяемые и сворачиваемые области, гибкие для управления плотностью контента.

Вы можете применить aria-expanded к ссылке, но если нажатие на ссылку вызывает действие, но не меняет фокус браузера или местоположение страницы, авторам рекомендуется рассмотреть возможность использования роли кнопки вместо роли ссылки.

Источники: https://www.w3.org/TR/wai-aria-1.1/#aria-expanded и https://www.w3.org/TR/wai-aria-1.1/#link

person Patrick Demers    schedule 17.12.2019