Подтвердить что ты не робот

Что такое атрибут роли XHTML? Для чего ты это используешь?

Я прочитал W3C page, но это все еще неопределенно для меня. Является ли атрибут role целью прояснить код? Или это будет интерпретироваться некоторыми браузерами или пауками?

Может ли он использоваться как селектор DOM с использованием некоторых библиотек JavaScript (я так думаю, так как атрибут id должен быть уникальным, это можно использовать для идентификации нескольких ресурсов на странице)?

4b9b3361

Ответ 1

Краткая версия:

Атрибут роли может предоставить будущим браузерам способ работать разумно с определенными элементами XML независимым от устройства способом. Например, неупорядоченный список, помеченный атрибутом роли "Навигация", может быть интерпретирован разумно в браузерах как в настольных, так и в карманных средах, что позволяет четко отображать их в обеих средах.

Длинная версия:

Атрибут роли XHTML, определенный в этой спецификации, позволяет автору аннотировать XML-языки с машиносчитываемой семантической информацией о цели элемента. Варианты использования включают доступность, адаптацию устройства, обработку на стороне сервера и сложное описание данных.

Атрибут описывает роль (роли), которую текущий элемент играет в контексте документа. Это может быть использовано, например, приложениями и вспомогательными технологиями для определения цели элемента. Это может позволить пользователю принимать обоснованные решения о том, какие действия могут быть предприняты над элементом, и активировать выбранное действие независимо от устройства. Его также можно использовать в качестве механизма для аннотирования частей документа определенным доменным способом (например, правовой таксономией).

Пример:

<ul role="navigation sitemap">
    <li href="downloads">Downloads</li>
    <li href="docs">Documentation</li>
    <li href="news">News</li>
</ul>

Учитывая, что рабочая группа XHTML2 перестанет существовать в конце этого года, нет никаких шансов, что эта спецификация когда-либо достигнет статуса релиза во всем, что напоминает его текущую форму. http://www.w3.org/News/2009#entry-6601

Ответ 2

Документ, на который вы ссылаетесь, является частью работы ныне прекращенной рабочей группы XHTML 2. Это фактически устарело.

HTML5/XHTML5 также имеет атрибут role. Его определение аналогично, но несколько более ограничено - его цель - указать роли доступных богатых интернет-приложений (ARIA), чтобы вспомогательные технологии, такие как программы чтения с экрана, могли лучше информировать пользователей о целях компонентов (виджетах) пользовательского интерфейса, а также помогать им перемещаться веб-страницы легче.

Список допустимых ролей для ARIA доступен по адресу http://www.w3.org/TR/wai-aria/#roles

Ответ 3

Роль

может использоваться для доступности. Я понимаю, что атрибут роли следует избегать, когда семантика дает понять. Использование <nav role="navigation">...</nav>, например, обескураживается, поскольку семантический элемент nav уже подразумевает навигацию.

Но бывают случаи, когда это полезно. Например, изображение, которое представляет собой ссылку, может иметь role="link" tabindex="0", чтобы помочь читателям экрана и другим вспомогательным технологиям понять, что он действует как ссылка (обязательно прослушайте приставку к ключу для ввода ключа и события клика).

Или на изображении вы можете иметь role="button", чтобы указать, что изображение действует как кнопка.

Атрибут role позволяет веб-приложению добавлять семантику в веб-приложение, которое имеет смысл для браузеров, но не может быть передано в разметке без указания его.

Часто существует семантически правильный способ сделать это, не прибегая к атрибуту, но он есть, когда вам это нужно.