Атрибут role тега <svg>
Описание
Атрибут role определяет семантическую роль элемента <svg> для технологий доступности (скринридеров). Он помогает правильно интерпретировать назначение SVG-графики.
<svg role="img" width="100" height="100" aria-label="Круглая диаграмма">
<circle cx="50" cy="50" r="40" fill="#3498db"/>
</svg>
Распространённые значения role:
| Значение | Применение | Рекомендации |
|---|---|---|
img |
Декоративные изображения, иконки | Используйте с aria-label |
presentation |
Чисто декоративные элементы | Только когда SVG не несёт смысла |
graphics-document |
Сложная графика с информацией | Для диаграмм, схем, графиков |
Особенности работы:
- Влияет на то, как скринридеры объявляют элемент
- Должен соответствовать реальному назначению SVG
- Работает в сочетании с ARIA-атрибутами
- Наследуется только для некоторых ролей
Пример для интерактивной графики:
<svg role="button" tabindex="0" aria-label="Увеличить" width="50" height="50">
<circle cx="25" cy="25" r="20" fill="#e74c3c"/>
<text x="25" y="30" text-anchor="middle" fill="white">+</text>
</svg>
Рекомендации:
- Всегда указывайте
role="img"для значимых изображений - Для декоративных элементов используйте
role="presentation" - Сочетайте с
aria-labelилиaria-labelledby - Для сложной графики добавляйте текстовое описание
Ограничения:
- Неправильная роль может ухудшить доступность
- Не заменяет текстовые альтернативы
- Поддержка зависит от браузера и скринридера
Примечание: Для комплексных интерактивных SVG-элементов используйте соответствующие ARIA-роли (button, checkbox и др.) и обеспечивайте клавиатурную навигацию.