Требуется ли role=main для элемента ‹main›?

Кажется излишним использовать ориентир ARIA, если наиболее семантический и доступный способ определить основной раздел вашего контента — это стандартный элемент <main>. Действительно ли необходимо добавлять role="main" к элементу?


person Bryce    schedule 03.03.2014    source источник


Ответы (2)


Не все современные браузеры уже сопоставили арию-роль main с элементом <main> (пока только Firefox 21+ и Chrome 26+). Когда все браузеры будут поддерживать эту функцию, атрибут role="main" можно будет убрать, а пока лучше его использовать.

Источники:

http://html5doctor.com/the-main-element/#comment-35495 (и ответ Стива Фолкнера) http://html5doctor.com/the-main-element/#comment-36407 (последняя цитата и ответ)

person Fabrizio Calderan    schedule 03.03.2014
comment
Этот источник, похоже, на самом деле не указывает, какие конкретные браузеры его поддерживают, а какие нет - трудно сказать, что имел в виду современный браузер 5 лет назад. - person MattTreichel; 12.12.2019

Это зависит от вашей причины, почему вы хотите использовать «роль».

Две основные причины использовать роли в нативном семантическом элементе:

Причина 1. Переопределение роли, когда нет подходящего элемента основного языка или по разным причинам использовался менее подходящий семантически элемент.

Пример:

<a href="#" role="button" aria-label="Delete item 1">Delete</a>

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

Программа чтения с экрана воспримет это как кнопку (в отличие от ссылки), и вы можете использовать селектор атрибутов CSS, чтобы избежать использования классов и разделов.

*[role="button"] {
  /* style these a buttons w/o relying on a .button class */
}

Резон 2. Резервное копирование роли нативного элемента для поддержки браузеров, в которых реализована роль ARIA, но еще не реализована роль нативного элемента.

Например, роль main поддерживается в браузерах уже много лет, но это относительно недавнее дополнение к HTML5, поэтому многие браузеры еще не поддерживают семантику для .

<main role="main">…</main>

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

Вы можете проверить ссылку ниже для получения дополнительной информации ...

Доступные многофункциональные интернет-приложения (WAI-ARIA) 1.0

person Yesvinkumar    schedule 03.03.2014
comment
Интересно, прошло несколько лет и сейчас это не нужно ???? - person MattTreichel; 12.12.2019
comment
@MattTreichel: на этой странице предлагается использовать ЛЮБОЙ подход, но не оба. w3.org/TR/wai-aria-practices/ примеры/ориентиры/main.html - person Bryce; 15.12.2019