Кратко
СкопированоARIA-роль generic
— это базовая роль, которая не добавляет элементу специального семантического значения. Она автоматически присваивается элементам <div>
и <span>
. Несмотря на то, что эта роль является базовой, она не очень популярна среди разработчиков и многие даже не знают о её существовании, так как обычно используют <div>
и <span>
без явного указания роли.
Как понять
СкопированоЭта роль полезна, когда вы хотите:
- создать элемент без особого семантического значения;
- сгруппировать контент, но не использовать семантические элементы или другие ARIA-роли;
- сбросить более специфичную роль до базовой.
Как пишется
СкопированоРоль можно добавить через атрибут role
:
<div role="generic"> Просто контейнер</div>
<div role="generic"> Просто контейнер </div>
Так как generic
— это роль по умолчанию у <div>
и <span>
. Лучше использовать эти HTML-элементы без явного указания роли:
<!-- Так лучше --><div> Просто контейнер</div>
<!-- Так лучше --> <div> Просто контейнер </div>
Взаимодействие с ARIA-атрибутами
СкопированоС ролью generic
можно использовать глобальные ARIA-атрибуты. Чаще используются:
aria
- hidden aria
- label aria
- describedby aria
- labelledby aria
- details aria
- expanded aria
- controls aria
- owns
Важно помнить, что если вам нужно добавить ARIA-атрибуты, возможно, стоит использовать более специфичную роль или семантический HTML-элемент.
Подсказки
Скопировано💡 Используйте роль generic
только когда действительно нужен элемент без семантического значения. В большинстве случаев лучше выбрать подходящий семантический тег или более конкретную ARIA-роль.
💡 Если вам нужно сделать элемент интерактивным, используйте другие ARIA-роли, например, button
или link
.
Особенности
Скопировано- Роль
generic
— это абстрактная роль, которая используется как основа для других ролей. - Элементы с ролью
generic
не попадают в дерево доступности как отдельные элементы, если у них нет других ARIA-атрибутов или ролей. - В отличие от ролей
presentation
иnone
, рольgeneric
не удаляет семантику дочерних элементов. - Если элемент с ролью
generic
получает фокус, некоторые скринридеры могут объявить его как «группу» или «область».
Подводные камни
СкопированоНеправильная замена: роль generic
не должна использоваться вместо ролей presentation
или none
, когда нужно удалить семантическое значение элемента.
Сложности с фокусом: если элемент с ролью generic
становится фокусируемым (например, через tabindex
), пользователи скринридеров могут быть дезориентированы из-за отсутствия чёткого семантического значения.
Вложенность: при вложении элементов с ролью generic
друг в друга может возникнуть путаница в дереве доступности, особенно если используются ARIA-атрибуты.