Клавиша / esc

generic

Роль элемента-контейнера без имени и семантики.

Время чтения: меньше 5 мин

Кратко

Скопировано

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-атрибуты, возможно, стоит использовать более специфичную роль или семантический HTML-элемент.

Подсказки

Скопировано

💡 Используйте роль generic только когда действительно нужен элемент без семантического значения. В большинстве случаев лучше выбрать подходящий семантический тег или более конкретную ARIA-роль.

💡 Если вам нужно сделать элемент интерактивным, используйте другие ARIA-роли, например, button или link.

Особенности

Скопировано
  • Роль generic — это абстрактная роль, которая используется как основа для других ролей.
  • Элементы с ролью generic не попадают в дерево доступности как отдельные элементы, если у них нет других ARIA-атрибутов или ролей.
  • В отличие от ролей presentation и none, роль generic не удаляет семантику дочерних элементов.
  • Если элемент с ролью generic получает фокус, некоторые скринридеры могут объявить его как «группу» или «область».

Подводные камни

Скопировано

Неправильная замена: роль generic не должна использоваться вместо ролей presentation или none, когда нужно удалить семантическое значение элемента.

Сложности с фокусом: если элемент с ролью generic становится фокусируемым (например, через tabindex), пользователи скринридеров могут быть дезориентированы из-за отсутствия чёткого семантического значения.

Вложенность: при вложении элементов с ролью generic друг в друга может возникнуть путаница в дереве доступности, особенно если используются ARIA-атрибуты.