Какова цель атрибута "роль" в 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?



список ролей можно найти здесь, но я вижу, что некоторые люди делают свои собственные. Это разрешено или правильное использование атрибута роли?



какие мысли по этому поводу?

510   3  

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

    Ничего не найдено.