Какова цель атрибута "роль" в HTML?
Я продолжаю видеть атрибуты роли в работе некоторых людей. Я тоже использую его, но я не уверен в его эффекте.
например:
<header id="header" role="banner">
Header stuff in here
</header>
или:
<section id="facebook" role="contentinfo">
Facebook stuff in here
</section>
или:
<section id="main" role="main">
Main content stuff in here
</section>
этот атрибут роли необходим?
этот атрибут лучше для семантики?
Это улучшает SEO?
список ролей можно найти здесь, но я вижу, что некоторые люди делают свои собственные. Это разрешено или правильное использование атрибута роли?
какие мысли по этому поводу?
3 ответов:
большинство ролей, которые вы видите, были определены как часть ARIA 1.0, а затем позже включены в HTML5. Некоторые из новых элементов HTML5 (dialog, main и др.) даже основаны на оригинальных ролях арии.
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 и т. д.)
Как я понимаю, роли изначально определялись XHTML, но были устаревшими. Однако теперь они определяются HTML 5, см. здесь:https://www.w3.org/WAI/PF/aria/roles#abstract_roles_header
цель атрибута role-определить для синтаксического анализа программного обеспечения точную функцию элемента (и его дочерних элементов) в составе веб-приложения. Это в основном как доступность для чтения с экрана, но я также вижу, что это полезно для встроенных браузеры и скребки экрана. Чтобы быть полезным для необычного HTML-клиента, атрибут должен быть установлен на одну из ролей из спецификации, которую я связал. Если вы создаете свой собственный, этот "будущий" функционал не может работать-комментарий будет лучше.
практичность здесь:http://www.accessibleculture.org/articles/2011/04/html5-aria-2011/
этот атрибут роли необходим?
ответ: да.
- атрибут роли необходим для поддержки доступных богатых интернет-приложений (ВАЙ-АРИЯ) для определения ролей в языках на основе XML, когда языки не определяют свой собственный атрибут роли.
- хотя именно по этой причине атрибут роли публикуется протоколы и форматы работы Группа атрибут имеет более общие случаи применения.
обеспечивает:
- доступность
- адаптация устройства
- обработка на стороне сервера
- описание сложных данных,...так далее.
Comments