alert | Сообщение с важной и, как правило срочной, информация. Также см. alertdialog и status. |
alertdialog | Сообщение, которое содержит важную информацию, и первоначальный акцент переходит элементу в диалоговом окне. Также см. alert и dialog. |
application | Область объявленная как веб-приложение, в отличие от веб-документа. |
article | Раздел состоящий из композиции, которая в свою очередь образует самостоятельную часть документа, страницы или сайта. |
button | Кнопка, позволяющая пользователю вызвать какие-либо действия. Также см. link. |
Чекбокс, который имеет три возможных значения: истина, ложь, или смешанное. | |
columnheader | Ячейка таблицы, содержащая заголовок для столбца. |
combobox | Вариация селекта; аналогично textbox, позволяющая пользователям печатать для выбора опции, или при печате добавить новую опцию к списку. Также см. listbox. |
dialog | Сообщение, предназначенное для прерывания обработки текующего приложения, для ввода пользователем какой-либо информации или требующее от него какое-либо действие. Также см. alertdialog. |
directory | Список ссылок на части группы, например содержание. |
document | Область, содержащая информацию, которая объявлена ??как содержимое документа, в отличие от веб-приложений. |
form | Ориентир области, которая содержит коллекцию элементов и объектов, которые, в целом, объединяются, чтобы создать форму. См. также search. |
Сетка интерактивного управления, которая содержит элементы сведенные в таблицу данных, в виде строк и столбцов, как таблица. | |
gridcell | Ячейки в сетке или древовидная сетка. |
group | Набор объектов пользовательского интерфейса, которые не предназначены для включения в итоговую страницу или содержимое, вспомогательных технологий. |
heading | Заголовок для раздела страницы. |
img | Контейнер для набора элементов, которые формируют изображение. |
link | Интерактивная ссылка на внутренний или внешний ресурс, который при активации заставляет браузер пользователя перейти к этому ресурсу. См. также button. |
link | Интерактивная ссылка на внутренний или внешний ресурс, который при активации приводит к переходу браузера пользователя к этому ресурсу. См. также button. |
list | |
listbox | Виджет, который позволяет пользователю выбрать один или несколько элементов из списка вариантов. См. также combobox и list. |
listitem | Один элемент в списоке или содержании. |
log | Тип интерактивной области, где новая информация добавляется в осмысленном порядке, а старая может исчезнуть. См. также marquee. |
marquee | |
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 | |
tab | Вкладка, представляющая из себя механизм для выбора вкладки необходимой пользователю. |
tablist | Список элементов tab, которые являются ссылками на tabpanel элементы. |
tabpanel | Контейнер для ресурсов связанных с tab, где каждый tab содержиться в tablist. |
textbox | |
timer | Тип интерактивной области, содержащую числовой счетчик, который указывает на количество затраченного времени от начальной точки, или время, оставшееся до конечной точки. |
toolbar | Набор часто используемых функциональных кнопок, представленых в компактной визуальной форме. |
tooltip | Контекстное всплывающее окно, которое отображает описание элемента. |
tree | Тип списка, который может содержать подуровни вложенных групп, которые могут быть свернуты и расширены. |
treegrid | Сетка, чьи строки могут быть свернуты и расширины так же как и в tree. |
treeitem | Опция элемента tree. Этот элемент внутри tree, может быть свернут или расширен, если имеет вложенный подуровень. |
Атрибут role и его значения
Атрибут role
в HTML5 позволяет наиболее четко указать семантическое предназначение блока/элемента страницы при взаимодействии пользователя с сайтом.
<div role='banner'>...</div> <nav role='navigation'> <ul> ... </ul> </nav>
Возможные значения атрибута 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?
Большинство ролей, которые вы видите, были определены как часть ARIA 1.0, а затем позже включены в HTML с помощью вспомогательных спецификаций, таких как HTML-AAM. Некоторые из новых элементов HTML5 (dialog, main и т. д.) Даже основаны на исходных ролях ARIA.
http://www.w3.org/TR/ вай-Ария/
Существует несколько основных причин для использования ролей в дополнение к вашему родному семантическому элементу.
Причина #1. переопределение роли, когда ни один элемент языка хоста не является подходящим или, по разным причинам, использовался менее семантически подходящий элемент.
В этом примере была использована ссылка, хотя результирующая функциональность больше похожа на кнопку, чем на навигационную ссылку.
<a href="#" role="button" aria-label="Delete item 1">Delete</a>
<!-- Note: href="#" is just a shorthand here, not a recommended technique. Use progressive enhancement when possible. -->
Пользователи программы чтения с экрана будут слышать это как кнопку (в отличие от ссылки), и вы можете использовать селектор атрибутов CSS, чтобы избежать class-itis и div-itis.
[role="button"] {
/* style these as buttons w/o relying on a .button class */
}
[Обновление 7 лет спустя: убран селектор*, чтобы сделать некоторых комментаторов счастливыми, так как старая причуда браузера, которая требовала универсального селектора на селекторах атрибутов, не нужна в 2020 году.]
Причина #2. резервное копирование роли собственного элемента для поддержки браузеров, которые реализовали роль ARIA, но еще не реализовали роль собственного элемента.
Например, роль «main» поддерживается в браузерах уже много лет, но это относительно недавнее дополнение к HTML5, поэтому многие браузеры еще не поддерживают семантику для <main>
.
<main role="main">…</main>
Это технически избыточно, но помогает некоторым пользователям и не вредит никому. Через несколько лет эта техника, скорее всего, станет ненужной для main.
Причина #3. обновление 7 лет спустя (2020): Как отметил по крайней мере один комментатор, теперь это очень полезно для пользовательских элементов, и некоторые технические работы ведутся для определения роли доступности по умолчанию веб-компонента. Даже если/как только этот API будет стандартизирован, может возникнуть необходимость переопределить роль компонента по умолчанию.
Примечание/Ответ
Вы тоже писали:
Я вижу, что некоторые люди придумывают свои собственные. Допустимо ли это или правильно использовать атрибут роли?
Это допустимое использование атрибута, если только не включена реальная роль. Браузеры будут применять первую распознанную роль в списке токенов.
<span role="foo link note bar">...</a>
Из этого списка допустимыми ролями являются только link
и note
, поэтому роль ссылки будет применяться в доступности платформы API, потому что она стоит на первом месте. Если вы используете пользовательские роли, убедитесь, что они не конфликтуют с какой-либо определенной ролью в ARIA или языке хоста, который вы используете (HTML, SVG, MathML и т. д.)
Необходимы ли атрибуты ‘role’ в HTML5?
Пытаясь идти в ногу с HTML5 ,я убедился, что проверяю все свои наценки с помощью инструмента W3 validator. Недавно я начал добавлять атрибут role
к элементам. Тем не менее, я заметил, что следующие предупреждения всплывают снова и снова:
Роль
button
не нужна для элементаbutton
.Роль
navigation
не нужна для элементаnav
.
Но точно так же на веб-сайте W3C, касающемся ARIA в HTML, говорится, что роль button
применима к элементу <button>
и что роль navigation
применима только к элементу <nav>
.
Это подводит меня к моему вопросу: являются ли атрибуты role
необходимыми для роли из HTML5? Какой у меня был бы сценарий, по которому мне нужно было бы их использовать?
Поделиться Источник David 15 февраля 2018 в 19:29
2 ответа
- Действительно ли необходимы role=»radiogroup» и role=»radio»?
Есть некоторые обучающие сайты ARIA, использующие несемантические markup и некоторые javascript для демострации использования role=radiogroup и role=radio , такие как следующий пример: <ul role=radiogroup> <li tabindex=-1 role=radio aria-checked=false> <img role=presentation…
- html5 doctype атрибуты
Я обновил свои сайты doctype с XHTML до HTML5, В настоящее время у меня есть: <!DOCTYPE html> <html lang=en-GB xml:lang=en-GB dir=ltr xmlns=http://www.w3.org/1999/xhtml> мой вопрос заключается в том, требуются ли атрибуты xml:lang и xmlns по-прежнему, поскольку я мигрировал с xml на…
5
Первое правило ARIA гласит:
Если вы можете использовать собственный элемент HTML [HTML51] или атрибут с уже встроенной семантикой и поведением, вместо того чтобы переориентировать элемент и добавить роль, состояние или свойство ARIA, чтобы сделать его доступным, сделайте это.
Если вы просматриваете навигационную роль в WAI-ARIA, она утверждает, что HTML Nav -это связанная концепция и что navigation=role
уже является ролью по умолчанию, поэтому нет необходимости устанавливать ее вручную самостоятельно:
Допустимые значения атрибутов роли ARIA: роль навигации (по умолчанию-не устанавливается).
Таким образом , роль навигации применима к <nav>
, но она уже установлена по умолчанию, так что вам не нужно делать это самостоятельно.
Подводя итог вашему вопросу, нет, не устанавливайте роли, если они уже подразумеваются в семантике HTML5. Вы можете проверить веб-сайт ниже, который, как мне кажется, описывает некоторые хорошие моменты относительно того, когда вы should/shouldn’t используете ARIA (это не все об атрибуте роли, но он охватывает и это):
Что такое вай-Ария, что она делает для меня, а что нет?
Поделиться J. Afarian 15 февраля 2018 в 22:42
Поделиться Steve Faulkner 17 февраля 2018 в 10:20
Похожие вопросы:
Являются ли атрибуты формы HTML5, созданные MVC3 ненавязчивой проверкой, в порядке?
Я смотрел на ненавязчивую проверку MVC3. Такие атрибуты прикрепляются к входным элементам формы: data-val=true //declares that the element should be validated data-val-required=this field is…
Почему необходимы атрибуты «for» для меток форм?
Почему необходимы атрибуты for для меток форм? Мне они никогда не были нужны
Может ли кто-нибудь дать мне больше информации о том, что делают атрибуты The role и aria-* HTML5?
Я хочу знать, для чего предназначены роль и атрибуты aria-* в HTML5. Спасибо.
Действительно ли необходимы role=»radiogroup» и role=»radio»?
Есть некоторые обучающие сайты ARIA, использующие несемантические markup и некоторые javascript для демострации использования role=radiogroup и role=radio , такие как следующий пример: <ul…
html5 doctype атрибуты
Я обновил свои сайты doctype с XHTML до HTML5, В настоящее время у меня есть: <!DOCTYPE html> <html lang=en-GB xml:lang=en-GB dir=ltr xmlns=http://www.w3.org/1999/xhtml> мой вопрос…
Html5: какие атрибуты я изменяю с html, css и javascript соответственно?
Я бэкэнд-программист, пытающийся выучить HTML5. Интересно, как узнать, какие атрибуты могут быть изменены непосредственно в html и какие атрибуты должны быть изменены с помощью Javascript. Или с…
Браузеры, поддерживающие HTML5; перестанут ли они поддерживать теги и атрибуты, которые не поддерживаются HTML5?
Для тега <tr> ; ни один из атрибутов (align, bgcolor, char, charoff, valign) не поддерживается в HTML5. Перестанет ли когда-нибудь какой-либо браузер поддерживать его?Перестанут ли атрибуты…
Необходимы ли атрибуты noreturn для выхода из функций?
Необходимы ли атрибуты noreturn Для никогда не возвращающихся функций, или это просто (возможно, преждевременно? — по крайней мере для выходов, я не представляю, зачем там оптимизировать)…
Поддерживает ли Rails 4 все новые атрибуты HTML5 <input> ?
Поддерживает ли Rails 4 все новые атрибуты HTML5 <input> ? Я заметил, что атрибуты HTML5 <input>, такие как min & max и step , поддерживаются в Rails 4 : <%=…
Могу ли я использовать атрибуты role и aria в xhtml 1.0
Я использую XHTML 1.0 для веб-сайта. Я хочу сделать его доступным, поэтому я хочу добавить атрибуты role и aria в свой markup. Поможет ли это в любом случае вспомогательным технологиям лучше…
Какова цель атрибута «роль» в HTML?
Большинство ролей, которые вы видите, были определены как часть ARIA 1.0, а затем включены в HTML5. Некоторые из новых элементов HTML5 (dialog, main и т. Д.) Даже основаны на исходных ролях ARIA.
http://www.w3.org/TR/wai-aria/
Есть две основные причины использовать роли в дополнение к вашему семантическому элементу.
Причина № 1. Переопределение роли, в которой нет подходящего элемента основного языка или, по разным причинам, использовался менее семантически подходящий элемент.
В этом примере была использована ссылка, даже несмотря на то, что результирующая функциональность больше похожа на кнопку, чем навигационная ссылка.
<a href="#" role="button" aria-label="Delete item 1">Delete</a>
Программы чтения с экрана будут воспринимать это как кнопку (в отличие от ссылки), и вы можете использовать селектор атрибутов CSS, чтобы избежать class-itis и div-itis.
*[role="button"] {
/* style these a buttons w/o relying on a .button class */
}
Причина № 2. Резервное копирование роли нативного элемента для поддержки браузеров, которые реализовали роль ARIA, но еще не реализовали роль нативного элемента.
Например, «главная» роль поддерживается браузерами уже много лет, но это относительно недавнее дополнение к HTML5, поэтому многие браузеры пока не поддерживают семантику для <main>
.
<main role="main">…</main>
Это технически избыточно, но помогает некоторым пользователям и никому не вредит. Через несколько лет эта техника, вероятно, станет ненужной.
Вы также написали:
Я вижу, что некоторые люди создают свои собственные. Это разрешено или правильное использование атрибута роли?
Это допустимое использование атрибута, если реальная роль не включена. Браузеры будут применять первую распознанную роль в списке токенов.
<span role="foo link note bar">...</a>
Из списка, только link
и note
являются действительными ролями, и поэтому роль связи будет применяться , поскольку речь идет о первом. Если вы используете пользовательские роли, убедитесь, что они не конфликтуют с какой-либо определенной ролью в ARIA или используемом языке хоста (HTML, SVG, MathML и т. Д.).
Эффективное использование ARIA в HTML5
ARIA это аббревиатура от Accessible Rich Internet Applications (доступные насыщенные интернет-приложения), использование этого стандарта позволяет сделать сайт более доступным для людей с ограниченными способностями, например, с нарушениями слуха или зрения. Посмотрим, что могут сделать разработчики, чтобы облегчить им жизнь.
Один из способов использования этого стандарта — добавление ARIA в разметку HTML. Вы наверняка знакомы с семантическими элементами HTML такими как nav
, button
или header
. Легко понять, для чего можно использовать эти элементы. Они дают больше смысла содержимому страницы и мы можем использовать комбинацию этих элементов и ARIA в разметке. Однако для совместного их использования стоит учитывать несколько вещей.
Роли ARIA
Роли ARIA добавляются в разметку HTML как атрибуты. Они определяют тип элемента и указывают цель, которой он служит. В следующем примере элемент идентифицируется как баннер:
<header role="banner">
Еще один пример: здесь роль сообщает сведения о том, что элемент содержит информацию о содержимом страницы.
<div role="contentinfo">
This website was built by Georgie.
</div>
Оповещение будет выглядеть так:
<div role="alert">
Please upgrade to the latest version of your browser for the best experience.
</div>
role=”alert” полноценно работает с элементами, динамически добавляемыми в DOM или при смене отображения, например, с display:none
to display:block
Следующая роль одна из моих любимых, ее я использую, когда элемент используется чисто декоративно. Если вы представите человека со скринридером, подумайте об элементах, содержимое которых нет смысла зачитывать. Это могут быть декоративные элементы или пустые элементы, используемые для фона.
<span role="presentation"></span>
Элементы span (как и div) в большинстве случаев не нуждаются в указании role=”presentation”, так как не являются объектами в дереве доступности браузера (accessibility tree). Но для семантических элементов типа h2
—h6
это имеет смысл.
Атрибуты ARIA
Атрибуты ARIA немного отличаются от ролей ARIA. Они также добавляются в разметку, но существует уже определенный диапазон атрибутов ARIA. Все атрибуты используют префикс aria-
и делятся на две группы: состояния и свойства.
- Значения атрибутов-состояний изменяются в результате взаимодействия с пользователем.
- Значения атрибутов-свойств, как правило, остаются неизменны.
Пример ARIA атрибута-состояния это aria-checked
, используемый в таких элементах как чекбоксы и радиокнопки.
<input type="radio" aria-checked="true">
На самом деле использование атрибута ARIA в нативной радио-кнопке излишне, связывание input type="radio"
и aria-checked
производится автоматически.
Образец атрибута-свойства это aria-label
. Этот атрибут используется, когда метка элемента формы не видима на страница (это может быть продиктовано дизайном или просто не иметь смысла). Для случаев, когда текст метки видим, подходит атрибут aria-labelledby
. Он используется также как и предыдущий, значение этого атрибута совпадает со значение id
метки.
<label>Address</label>
<input type="text" aria-labelledby="address">
Это также можно сделать в элементе figure
.
<figure aria-labelledby="operahouse_1">
<img src="operahousesteps.jpg" alt="The Sydney Opera House">
<figcaption>We saw the opera <cite>Barber of Seville</cite> here!</figcaption>
</figure>
Больше о поддерживаемых атрибутах-состояниях и атрибутах-свойствах можно узнать на сайте консорциума.
Правила ARIA
Прежде чем бросаться в атаку, запомните, что по нескольким причинам не стоит добавлять ARIA к каждому элементу.
Старайтесь максимально использовать семантические элементы HTML
Семантика ARIA по умолчанию ссылается на семантику, применяемую к элементам в браузере. Такие элементы как nav
, article
и button
обладают уже заложенными ролями role="navigation"
, role="article"
и role="button"
соответственно. До появления семантических элементов HTML было распространена разметка по типу <div role="navigation">
. Теперь мы можем использовать nav
вместо div
и нам не нужно добавлять к семантическому элементу role="navigation"
, потому как эта роль в нем уже подразумевается по умолчанию. Вы можете проверить по таблице W3C наличие и отсутствие атрибутов ARIA у искомого элемента.
У элемента может быть только одна роль
У элемента не может быть множественных ролей. Согласно определению, роль это:
Основной индикатор типа. Эта семантическая ассоциация позволяет инструментам отображать и поддерживать взаимодействие с объектам в манере, соответствующей ожиданиям пользователя относительно остальных объектов того же типа.
Не может быть двух ролей у элемента HTML. Все роли семантичны тем или иным способом и в соответствии с определением выше, элемент не может быть двух типов. Может ли у вас быть кнопка-заголовок? Нет, только одно из двух. Выбирайте роль, которая лучше всего описывает функцию элемента.
Не изменяйте нативную семантику
Вы не должны применять роль, не соответствующую семантике элемента, так как добавленная роль переписывает нативную семантику элемента. Например:
<footer role="button">
Однако второе правило ARIA позволяет в случае необходимости использовать вложение элементов.
<footer><button>Purchase this e-book</button></footer>
Как еще можно сделать разметку более доступной?
Максимально используйте семантические элементы
Это приходит с опытом, но если вы думаете о функциональности того, что вы строите, это может дать вам хорошую идею об использовании элементов, подходящих для ваших целей лучше, чем div
или span
. На практике вы можете использовать список элементов HTML на сайте W3C, чтобы лучше ознакомиться с ними.
Одним из моих любимых примеров является тег blockquote
, который часто используется не по назначению. Есть другие похожие элементы, служащие конкретным целям:
q
— используется для указания строчных цитат, таких как цитаты внутри текста параграфов.cite
— используется для цитирования творческой работы с текстом, например, стихов.
Вот пример с использованием обоих упомянутых элементов:
<p>In <cite>The Love Song of J. Alfred Prufock</cite> by T.S. Eliot, the clinical imagery of the line <q>Like a patient etherized upon a table</q> suggests themes of loneliness.</p>
Существует еще множество элементов HTML, которые вы, возможно, не учитываете, включая несколько новых, поэтому еще раз рекомендую оценить возможности.
Атрибут
alt
Это часто забываемая часть разметки, которая может серьезно сказаться на доступности, особенно в случае скринридеров. Этот атрибут появился в спецификации со времен HTML2 и описывается следующим образом:
текст используемый вместо изображения, если изображение недоступно в силу каких-то ограничений или предпочтений пользователя.
По причине ограничений или предпочтений пользователя. Независимо от причин, по которым не загружается изображение, у пользователей с ослабленным зрением на самом деле нет предпочтений. Они просто испытывают проблемы при просмотре изображения. Хотя спецификация ничего не говорит о термине “доступность”, она предполагает, что изображение не может быть загружено как следует, а у пользователя есть возможность отключить загрузку изображения. Хотя мы живем в мире, в котором второй вариант кажется менее вероятным, мы не можем предугадать, что делает пользователь на другом крае. Поэтому мы должны предлагать пользователям альтернативу.
Люди часто заполняют атрибут alt
не информативно, например, пишут текст типа “собака” для фотографии своей собаки, играющей в парке. К сожалению, этот текст не нарисует никакой картины для слабовидящих. Следующий подход более приемлем:
<img src="bobby.jpg" alt="My dog Bobby playing fetch in the park">
Отметьте, что атрибут alt
создан не для того же, что и элемент figcaption
: цель alt
это создание альтернативного текста для изображения, а figcaption
это просто правильный заголовок для figure
. Если развивать наш предыдущий пример у figcaption
следующий текст:
<figcaption>Isn’t Bobby cute?</figcaption>
Пример разметки с использованием семантического HTML и ARIA, ориентированный на доступность
Если вы смотрели на примеры в этой статье, то вы ожидаете увидеть в качестве образца следующее:
- использование семантического HTML для изображения и заголовка
- целевое использование элемента
cite
- добавление атрибута
alt
- использование одного из атрибутов ARIA
<figure aria-labelledby="operahouse_1">
<img src="operahousesteps.jpg" alt="The Sydney Opera House"/>
<figcaption>We saw the opera <cite>Barber of Seville</cite> here!</figcaption>
</figure>
Заключение
Роли и атрибуты ARIA дают огромный эффект, когда содержимое вашего сайта обрабатывается скрин-ридерами и прочими вспомогательными технологиями. С распространением вспомогательных технологий нам надо рассматривать интеграцию ARIA в наш код как постоянную практику.
Дополнительные материалы
Зачем Использовать Атрибут Role В Html5
Я создал веб-страницу с помощью html5.
Я использовал исходный код из бутстрапа.
Например: role="main"
, role ="navigation"
, role = "document"
и т.д.
Если я удалю этот атрибут из своего кода, страница не изменилась.
Итак, я хочу знать: какова цель атрибута «role»?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href='http://fonts.googleapis.com/css?family=Raleway:900,500,600,200,400,700' rel='stylesheet' type='text/css'>
<title>Layout</title>
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
</head>
<body role="document">
<!-- Fixed navbar -->
<div role="navigation">
<div>
<div>
<h2><img src="img/logo.png" /></h2>
</div>
</div>
</div>
<div role="main">
<!-- Main jumbotron for a primary marketing message or call to action -->
<div>
<div>
<img src="img/banner.png"/>
<img src="img/issue-no-img.png"/>
<span>Issue No.<br /><b>376</b></span>
</div>
<div>
<div>
<img src="img/left-note-img.png"/>
</div>
<div>
<p><span> NEW! </span> <span>JUN 07, 2003</span></p>
<p><i>Get your breaks points on.</i></p>
<span>
<h2>DOT NET ARTICLES</h2>
</span>
<span><i>by</i> <a>JOHN WOO</a> <i> - 10 Commments</i></span><br/>
</div>
<div>
<div>
<input type="text" placeholder="Search..." />
<span></span>
</div>
</div>
</div>
<hr/>
<p class = "header-pgf">
Text, navigation, and tables, oh, my! What a responsive web designer to do? How can you confine your design to as few major breakpoints as possible? Where and when will you sketching? Is it possible to sketch on actual devices, and what are the accessibility implications of doing so? The answers to these and other profound questions will be found in this exclusive excerpt from Chapter 7 of Responsive Design Workflow, Stephen Hay new book, available now from New Riders.
</p>
<hr>
<h2>More from A List Apart</h2>
<hr>
<div>
<div>
<h3>Columnists</h3>
<p>JACK MCGRANE <i>on</i> CONTENT</p>
<p>The Alternative is Nothing</p>
<img src="img/thumb1.jpg" />
<p>We're witnessing one of thr latest waves of technological disruption, as mobile devices put access to the internet in the hands of people who previously never had that power.</p>
</div>
<div>
<h3>From the Blog</h3>
<p>Maps Should Be Crafted.Not "Plugged In"></p>
<p>Web designers: erase the line between "the map" and "the content" by harnessing the power of open-source Leafler and your own fresh creative thinking. In the tradition of ALA recent "Hack Your Maps." Happy Cog Brandon Rosage shares how to make location a central aspect of the content experience-not just a visual aid.</p>
</div>
<div>
<p>Amazon Web Services Introduces a New API</p>
<p>Amazon Web Services Identity and Access Management(IAM) is expanding to support web identity federation. Developers can integrate Amazon.com, Facebook, or Google odentity into their app by using the new AWS Security Token Services(STS) API, AssumeRoleWithWebIdentity. to request temporary security credentials.</p>
</div>
<div>
<h5>Gratitude</h5>
<p>Thanks to our RSS sponser Typekit-offering desktop and web fonts in a single subscription starting June 17</p>
<div>
<img src="img/mothers-day.jpg" /> <br/>
<p>Two special Mothers' Say Kits are available from Field Notes Brand. Ad via The Deck </p>
</div>
<div>
<h5>Job Board</h5>
<a href="#" >New York Times is looking for a <br />Ruby on Rails Web Developer.</a>
More on the <a href ="#">Job Board ></a>
</div>
</div>
</div>
<br />
</div>
</div>
<!-- /container -->
<div>
<div>
<div>
<span><img src="img/article-logo.png" /></span>
<span>ARTICLES</span>
<span>COLUMNS</span>
<span>BLOG</span>
<span>TOPICS</span>
</div>
<div class = "list-footer">
<span>ABOUT</span>
<span>AUTHORS</span>
<span>MASTHEAD</span>
<span>CONTRIBUTE</span>
<span>STYLE GUIDE</span>
<span>CONTACT</span>
<span>SPONSORSHIPS</span>
</div>
<hr/>
<div>
<div>
<img src="img/dot-net-ad.jpg"/>
<h4>.NET Training</h4>
<p>If you have a .NET question on a topic that not covered by other more specific forums.</p>
<a href="#">ask here. ></a>
</div>
<div>
<img src="img/shopify-expert-ad.jpg"/>
<h4>Shopify Expert</h4>
<p>Unique custom made Shopify theme and tweaks.</p>
<a href="#">click to view</a>
</div>
</div>
<hr />
<div>
<p>Copyright © 2013 Dot Net How</p>
</div>
</div>
</div>
</body>
</html>
ролей WAI-ARIA — доступность | MDN
На этой странице перечислены справочные страницы, охватывающие все роли WAI-ARIA, обсуждаемые в MDN. Полный список ролей см. В разделе Использование ARIA: роли, состояния и свойства
.- ARIA: роль предупреждения
- Роль предупреждения может использоваться, чтобы сообщить пользователю, что элемент был динамически обновлен. Программы чтения с экрана мгновенно начнут считывать обновленное содержимое при добавлении роли. Если ожидается, что пользователь закроет предупреждение, вместо этого следует использовать роль alerttdialog.
- ARIA: роль приложения
- Роль приложения
- ARIA: роль статьи
- Роль статьи
- ARIA: роль баннера
- Роль баннера
- ARIA: роль кнопки
- Роль кнопки должна использоваться для интерактивных элементов, которые вызывают ответ при активации пользователем.Добавление
role = "button"
заставит элемент отображаться как кнопка для чтения с экрана. Эту роль можно использовать в сочетании с атрибутомaria -olved
для создания переключателей. - ARIA: роль ячейки
- Значение
ячейки
атрибута роли ARIA определяет элемент как ячейку в табличном контейнере, который не содержит информацию заголовка столбца или строки. Для поддержки ячейка должна быть вложена в элемент с ролью, строка
. - ARIA: роль флажка
- Роль флажка используется для интерактивных элементов управления. Элементы, содержащие
role = "checkbox"
, должны также включать атрибутaria-checked
, чтобы показать состояние флажка для вспомогательных технологий. - ARIA: роль комментария
- Комментарий
роль ориентира
семантически обозначает комментарий / реакцию на некоторый контент на странице или на предыдущий комментарий. - ARIA: дополнительная роль
- Дополнительная роль
ориентира
используется для обозначения вспомогательного раздела, который относится к основному контенту, но может стоять отдельно при разделении.Эти разделы часто представлены в виде боковых панелей или полей для выноски. Если возможно, используйте вместо него HTML-элемент
- ARIA: роль contentinfo
- Роль ориентира
contentinfo
используется для идентификации информации, повторяющейся в конце каждой страницы веб-сайта, включая информацию об авторских правах, навигационные ссылки и заявления о конфиденциальности. Этот раздел обычно называют нижним колонтитулом. - ARIA: роль диалога
- Роль диалога
- ARIA: роль документа
- Обычно используется в сложных составных виджетах или приложениях, документ
роль
может информировать вспомогательные технологии о переключении контекста в режим чтения: рольдокумента
сообщает вспомогательным технологиям с режимами чтения или просмотра для использования режим документа для чтения содержимого, содержащегося в этом элементе. - ARIA: роль ленты
- Лента
статей
, в котором статьи добавляются или удаляются с любого конца списка по мере прокрутки пользователя. Канал - ARIA: роль фигуры
- Роль фигуры ARIA
может использоваться для идентификации фигуры внутри содержимого страницы, где соответствующая семантика еще не существует.Фигура обычно считается одним или несколькими изображениями, фрагментами кода или другим контентом, который передает информацию другим способом, чем обычный поток текста.
- ARIA: роль формы
- Роль ориентира формы
- ARIA: роль сетки
- Роль сетки предназначена для виджета, который содержит одну или несколько строк ячеек. Положение каждой ячейки имеет значение, и его можно сфокусировать с помощью ввода с клавиатуры.
- ARIA: роль gridcell
- Роль gridcell используется для создания ячейки в сетке или древовидной сетке. Он предназначен для имитации функциональности элемента HTML
td
для группировки информации в виде таблицы. - ARIA: роль заголовка
- Роль заголовка определяет этот элемент как заголовок страницы или раздела. Чтобы страница была более структурированной, необходимо также предусмотреть уровень для обозначения взаимосвязей между разделами.
- ARIA: роль img
- Роль ARIA
img
может использоваться для идентификации нескольких элементов внутри содержимого страницы, которые следует рассматривать как одно изображение.Эти элементы могут быть изображениями, фрагментами кода, текстом, смайликами или другим контентом, который можно комбинировать для визуального представления информации. - ARIA: роль списка
- Роль списка ARIA
может использоваться для идентификации списка элементов. Обычно он используется вместе с ролью
listitem
, которая используется для идентификации элемента списка, содержащегося внутри списка. - ARIA: роль списка
- Роль списка
- ARIA: роль Listitem
- Роль listitem ARIA
может использоваться для идентификации элемента внутри списка элементов. Обычно он используется вместе с ролью
list
, которая используется для идентификации контейнера списка. - ARIA: основная роль
- Основная роль ориентира
- ARIA: роль метки
- Роль метки
метка
семантически обозначает элементы HTML, содержащие текст, который помечен / выделен для справки. Это семантически эквивалентно элементу HTML . Если возможно, вам следует использовать этот элемент. - ARIA: роль навигации
- Роль ориентира
navigation
используется для определения основных групп ссылок, используемых для навигации по веб-сайту или содержимому страницы. - ARIA: роль региона
- Роль ориентира области
- ARIA: row role
- Элемент с
role = "row"
- это строка ячеек в табличной структуре. Строка содержит одну или несколько ячеек, ячеек сетки или заголовков столбцов и, возможно, заголовок строки в сеткеи, необязательно, в группе строк
- ARIA: rowgroup role
- Элемент с
role = "rowgroup"
- это группа строк в табличной структуре.Группа строк - ARIA: роль поиска
- Роль ориентира
search
используется для идентификации раздела страницы, используемого для поиска по странице, сайту или группе сайтов. - ARIA: роль предложения
- Роль ориентира
предложение
семантически обозначает одно предлагаемое изменение редактируемого документа.Это следует использовать в элементе, который обертывает элемент с ролью вставки - ARIA: роль переключателя
- Роль переключателя ARIA
- ARIA: роль вкладки
- Роль вкладки ARIA
указывает интерактивный элемент внутри списка вкладок
- ARIA: table role
- Табличное значение атрибута роли ARIA идентифицирует элемент, содержащий роль, как имеющий неинтерактивную табличную структуру, содержащую данные, расположенные в строках и столбцах, аналогично собственному HTML-элементу
.
- ARIA: роль панели вкладок
- Роль панели вкладок ARIA указывает
- ARIA: роль текстового поля
- Роль текстового поля
- ARIA: роль таймера
- Роль таймера указывает вспомогательным технологиям, что элемент представляет собой числовой счетчик, указывающий количество прошедшего времени от начальной точки или оставшееся время до конечной точки.
оптимизация - Какова цель атрибута "роль" в HTML?
Большинство ролей, которые вы видите, были определены как часть ARIA 1.0, а затем были включены в HTML с помощью поддерживающих спецификаций, таких как HTML-AAM. Некоторые из новых элементов HTML5 (диалог, основной и т. Д.) даже основаны на исходных ролях ARIA.
http://www.w3.org/TR/wai-aria/
Есть несколько основных причин использовать роли в дополнение к вашему собственному семантическому элементу.
Причина №1. Переопределение роли, в которой не подходит ни один элемент основного языка или по разным причинам использовался менее семантически подходящий элемент.
В этом примере использовалась ссылка, хотя конечная функциональность больше похожа на кнопку, чем на ссылку навигации.
Удалить
Пользователи программ чтения с экрана будут слышать это как кнопку (а не ссылку), и вы можете использовать селектор атрибутов CSS, чтобы избежать class-itis и div-itis.
[role = "button"] { / * оформляем их как кнопки без использования класса .button * / }
[Обновление 7 лет спустя: удален селектор *, чтобы порадовать некоторых комментаторов, поскольку старая причуда браузера, требовавшая универсального селектора для селекторов атрибутов, не нужна в 2020 году.]
Причина №2. Резервное копирование роли собственного элемента для поддержки браузеров, которые реализовали роль ARIA, но еще не реализовали роль собственного элемента.
Например, роль «main» поддерживалась в браузерах в течение многих лет, но это относительно недавнее дополнение к HTML5, поэтому многие браузеры еще не поддерживают семантику для
.… Это технически избыточно, но помогает некоторым пользователям и никому не вредит.Через несколько лет эта техника, скорее всего, станет ненужной для основной.
Причина №3. Обновление 7 лет спустя (2020): как отметил по крайней мере один комментатор, теперь это очень полезно для настраиваемых элементов, и в настоящее время ведется некоторая работа над спецификациями для определения роли доступности по умолчанию для веб-компонента. Даже если / однажды этот API стандартизирован, может возникнуть необходимость переопределить роль компонента по умолчанию.
Примечание / ответ
Вы также писали:
Я вижу, что некоторые люди придумывают свои собственные.Это разрешено или это правильное использование атрибута роли?
Это разрешенное использование атрибута, если не указана реальная роль. Браузеры будут применять первую распознанную роль в списке токенов.
...
Из списка допустимыми ролями являются только
link
иnote
, поэтому роль ссылки будет применяться в API доступности платформы, потому что она идет первой. Если вы используете настраиваемые роли, убедитесь, что они не конфликтуют с какой-либо определенной ролью в ARIA или используемом вами основном языке (HTML, SVG, MathML и т. Д.).)html - зачем использовать атрибут роли в html5
На этот вопрос уже есть ответы :
Закрыт 6 лет назад.
Я создал веб-страницу, используя html5.
Я использовал исходный код из начальной загрузки.
Например:
role = "main"
,role = "navigation"
,role = "document"
и т. Д.Если я удалю этот атрибут из своего кода, страница не изменится.
Итак, я хочу знать: какова цель атрибута "роль"?
Макет Номер проблемы
376НОВИНКА! & nbsp; 7 ИЮНЯ 2003 г.
Увеличивайте свои брейк-пойнты.
СТАТЬИ В ТОЧЕЧНОЙ СЕТИ
от JOHN WOO - 10 комментариев
Текст, навигация и таблицы, о боже! Что делать адаптивному веб-дизайнеру? Как можно ограничить свой дизайн как можно меньшим количеством основных точек останова? Где и когда вы будете рисовать? Можно ли делать наброски на реальных устройствах и каковы последствия этого для доступности? Ответы на эти и другие важные вопросы можно найти в этом эксклюзивном отрывке из главы 7 рабочего процесса отзывчивого дизайна, новой книги Стивена Хэя, доступной сейчас на сайте New Riders.
Больше от A List Apart
Колумнисты
ДЖЕК МАКГРЕЙН на КОНТЕНТЕ
Альтернатива - ничто
Мы являемся свидетелями одной из последних волн технологических потрясений, поскольку мобильные устройства предоставляют доступ к Интернету в руки людей, которые раньше никогда не имели такой возможности.
Из блога
Карты следует создавать, а не "вставлять в сеть">
Веб-дизайнеры: сотрите грань между «картой» и «содержанием», используя возможности Leafler с открытым исходным кодом и собственное творческое мышление. В традициях недавнего проекта ALA «Взломайте свои карты». Брэндон Росэйдж из Happy Cog рассказывает, как сделать местоположение центральным аспектом контента, а не просто наглядным пособием.
Amazon Web Services представляет новый API
Amazon Web Services Identity and Access Management (IAM) расширяется для поддержки федерации веб-идентификации. Разработчики могут интегрировать Amazon.com, Facebook или Google odentity в свои приложения с помощью нового API AWS Security Token Services (STS), AssumeRoleWithWebIdentity. для запроса временных учетных данных.
Благодарность
Благодаря нашему спонсору RSS Typekit, предлагающему настольные и веб-шрифты в рамках единой подписки, начиная с 17 июня
Два специальных набора «Говорят матери» можно приобрести в магазине Field Notes Brand. Реклама через The Deck
СТАТЬИ КОЛОННЫ БЛОГ ТЕМЫО НАС АВТОРЫ MASTHEAD ВНОСИТЬ РУКОВОДСТВО ПО СТИЛЯМ КОНТАКТ СПОНСОРСТВО<час />Обучение работе с .NET
Если у вас есть вопрос по .NET по теме, не освещенной другими более конкретными форумами.
спросите здесь. >Авторские права и копия; Dot Net How, 2013 г.
Объяснение атрибута роли HTML
Атрибут
role
описывает роль элемента в программах, которые могут его использовать, таких как программы чтения с экрана или лупы.Пример использования:
Button Link
Программы чтения с экрана будут читать этот элемент как «кнопку», а не как «ссылку».
Есть четыре категории ролей:
- Абстрактные роли
- Роли виджетов
- Роли структуры документа
- Ориентир роли
Дополнительная информация об атрибутах HTML: