Зачем нужен атрибут role в HTML
Атрибут role в HTML5 Предназначен для того, чтобы максимально четко указать семантическое предназначение блока/элемента страницы при взаимодействии пользователя с сайтом.
<div class='navbar' role='banner'>...</div>
<nav class='menu' role='navigation'>
<ul>
...
</ul>
</nav>
Четкое определение роли элемента:
Атрибут 'role' предоставляет явное определение роли HTML-элемента на странице. Это особенно полезно для пользователей с ограниченными возможностями, такими как пользователи с ограниченным зрением или инвалиды. Правильное использование атрибута 'role' обеспечивает понимание содержимого страницы, даже если визуальное восприятие ограничено.
Улучшение доступности сайта:
Когда ваши веб-страницы доступны для всех категорий пользователей, это не только соответствует принципам социальной ответственности, но также положительно влияет на ранжирование вашего сайта в поисковых системах. Поисковые алгоритмы учитывают уровень доступности веб-ресурса, и использование атрибута 'role' является одним из ключевых факторов.
SEO-оптимизация для поисковых роботов:
Атрибут 'role' также оказывает влияние на SEO-оптимизацию, предоставляя поисковым роботам дополнительную информацию о структуре страницы. Корректное определение ролей элементов позволяет поисковым системам лучше понимать контент и структуру вашего сайта, что в свою очередь способствует улучшению позиций в поисковых результатах.
Поддержка технологий ассистентов:
С развитием технологий голосового управления и виртуальных ассистентов, правильное использование атрибута 'role' становится бескрайне важным. Этот атрибут помогает ассистентам лучше интерпретировать и представлять информацию, делая ваш сайт более дружелюбным к использованию современными технологиями.
Возможные значения атрибута role:
banner
— содержит главный заголовок или внутренний заголовок страницы. Например логотип и название сайта. Рекомендуется использовать не больше одного раза на странице.article
— Раздел состоящий из композиции, которая в свою очередь образует самостоятельную часть документа, страницы или сайта.complementary
— информационный блок, отделенный от основного содержания ресурса.contentinfo
— обобщающая информация о содержании страницы (к примеру, footer). Рекомендуется использовать не больше одного раза на странице.definition
— указывает определение термина или понятия.main
— выступает в качестве основного содержания документа. Рекомендуется использовать не больше одного раза на странице.navigation
— набор элементов предназначенных для навигации по документу или связанным документам. Рекомендуется использовать не больше одного раза на странице.note
— заметка ( вспомогательная информация) к основному содержанию ресурса.search
— указывает область для поиска по содержимому.alert
— Сообщение с важной и, как правило срочной, информация. Также см. alertdialog и status.alertdialog
— Сообщение, которое содержит важную информацию, и первоначальный акцент переходит элементу в диалоговом окне. Также см. alert и dialog.application
— Область объявленная как веб-приложение, в отличие от веб-документа.button
— Кнопка, позволяющая пользователю вызвать какие-либо действия. Также см. link.checkbox
— Чекбокс, который имеет три возможных значения: истина, ложь, или смешанное.columnheader
— Ячейка таблицы, содержащая заголовок для столбца.combobox
— Вариация селекта; аналогично textbox, позволяющая пользователям печатать для выбора опции, или при печате добавить новую опцию к списку. Также см. listbox.dialog
— Сообщение, предназначенное для прерывания обработки текующего приложения, для ввода пользователем какой-либо информации или требующее от него какое-либо действие. Также см. alertdialog.directory
— Список ссылок на части группы, например содержание.document
— Область, содержащая информацию, которая объявлена как содержимое документа, в отличие от веб-приложений.form
— Ориентир области, которая содержит коллекцию элементов и объектов, которые, в целом, объединяются, чтобы создать форму. См. также search.grid
— Сетка интерактивного управления, которая содержит элементы сведенные в таблицу данных, в виде строк и столбцов, как таблица.gridcell
— Ячейки в сетке или древовидная сетка.group
— Набор объектов пользовательского интерфейса, которые не предназначены для включения в итоговую страницу или содержимое, вспомогательных технологий.heading
— Заголовок для раздела страницы.img
— Контейнер для набора элементов, которые формируют изображение.link
— Интерактивная ссылка на внутренний или внешний ресурс, который при активации заставляет браузер пользователя перейти к этому ресурсу. См. также button.list
— Группа неинтерактивных элементов списка. Также см. listbox.listbox
— Виджет, который позволяет пользователю выбрать один или несколько элементов из списка вариантов. См. также combobox и list.listitem
— Один элемент в списоке или содержании.log
— Тип интерактивной области, где новая информация добавляется в осмысленном порядке, а старая может исчезнуть. См. также marquee.marquee
— Тип интерактивной области, где не существенная информация часто меняется. См. также log.
math — Контент, который представляет собой математическое выражение.menu
— Тип виджета, который предоставляет выбор списка вариантов для пользователя.menubar
— Представление menu, которое обычно остается видимым и, как правило, представлено горизонтально.menuitem
— Опции в группе выбора содержащиеся в menu или menubar.menuitemcheckbox
— Чекбокс пункта menu, который имеет три возможных значения: истина, ложь, или смешанное.menuitemradio
— Отмечаемый пункт меню в группе menuitemradio, из которых только один может быть выбран одновременно.option
— Выбираемый элемент в списке выбора.presentation
— Элемент чья семантически неявная роль не будет отображаться на доступности API.progressbar
— Элемент, который отображает ход статуса задач, занимающих много времени.radio
— Отмечаемый пункт в группе таких же пунктов, из которых только один может быть выбран одновременно.radiogroup
— Группа переключателей.region
— Большая область веб-страницы или документа, которую автор счел достаточно важной, чтобы включить в основную информацию страницы или оглавление, например, область страницы содержающая спортивную статистику событий онлайн.row
— Ряд ячеек в grid.rowgroup
— Группы, содержащие один или несколько элементов row в grid.rowheader
— Ячейка содержащая заголовок для row в grid.scrollbar
— Графический объект, который управляет прокруткой содержимого области просмотра, независимо от того, полностью ли содержание отображается в области просмотра.separator
— Разделитель, который разделяет и отличает разделы содержимого или группы пунктов menuitems.slider
— Интерфейс ввода для пользователя, когда пользователь выбирает значение из заданного диапазона.spinbutton
— Форма диапазона, где пользователь может выбрать из числа дискретных решений.status
— Контейнер, содержание которого носит рекомендательный характер для информирования пользователя, но не является достаточно важным. Также см. alert.tab
— Вкладка, представляющая из себя механизм для выбора вкладки необходимой пользователю.tablist
— Список элементов tab, которые являются ссылками на tabpanel элементы.tabpanel
— Контейнер для ресурсов связанных с tab, где каждый tab содержиться в tablist.textbox
— Поле ввода, которое предоставляет ввод в свободной форме текста.timer
— Тип интерактивной области, содержащую числовой счетчик, который указывает на количество затраченного времени от начальной точки, или время, оставшееся до конечной точки.toolbar
— Набор часто используемых функциональных кнопок, представленых в компактной визуальной форме.tooltip
— Контекстное всплывающее окно, которое отображает описание элемента.tree
— Тип списка, который может содержать подуровни вложенных групп, которые могут быть свернуты и расширены.treegrid
— Сетка, чьи строки могут быть свернуты и расширины так же как и в tree.treeitem
— Опция элемента tree. Этот элемент внутри tree, может быть свернут или расширен, если имеет вложенный подуровень.
Использование атрибута 'role' в HTML не только улучшает доступность вашего веб-сайта, но также влияет на его SEO-параметры. Этот элемент становится все более важным в контексте разнообразия пользователей и современных технологий. Интегрируйте его в свой веб-проект с умом, чтобы создать сайт, который не только привлекает внимание поисковых роботов, но и предоставляет наилучший опыт для каждого посетителя.