Кратко
Скопировано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-атрибуты.