Кратко
СкопированоARIA-роль ориентира. Определяет на странице область со связанным одной темой содержимым, которое не зависит от остального контента. К примеру, содержимое каждой вкладки в диалоговом окне, блок с новостями или недавними постами.
Роль region
есть по умолчанию у подписанных <section>
.
Пример
Скопировано<div role="region" aria-labelledby="region-heading"> <h2 id="region-heading">Последние новости</h2> <ul> <li> <a href="#"> Попугай из Манчестера поёт лучше, чем Мадонна </a> </li> <li> <a href="#"> Хомячок из Сиэтла установил мировой рекорд по прыжкам в длину </a> </li> </ul></div>
<div role="region" aria-labelledby="region-heading"> <h2 id="region-heading">Последние новости</h2> <ul> <li> <a href="#"> Попугай из Манчестера поёт лучше, чем Мадонна </a> </li> <li> <a href="#"> Хомячок из Сиэтла установил мировой рекорд по прыжкам в длину </a> </li> </ul> </div>
Скринридер зачитает код из примера примерно так: «Последние новости, секция».
Как пишется
СкопированоВ первую очередь используйте <section>
. Роль region
пригодится только в случае сложного кастомного компонента или при поддержке очень старых браузеров. Явную роль role
лучше задавать <div>
и <span>
. Одно из правил использования ARIA — не перезаписывать роли без необходимости.
Обязательно подписывайте области с region
, особенно если их несколько. Подписи к ориентирам region
помогают пользователям скринридеров узнавать о содержимом блоков и упрощают навигацию по ним.
aria
добавляет к элементу region
подпись, о которой знают только пользователи вспомогательных технологий.
<div role="region" aria-label="Недавние события"> <!-- Содержимое блока --></div>
<div role="region" aria-label="Недавние события"> <!-- Содержимое блока --> </div>
Атрибут aria
связывает с region
видимую подпись из заголовка <h1>
–<h6>
:
<div role="region" aria-labelledby="label-1"> <h2 id="label-1">Первая глава</h2> <p>Как найти смысл жизни.</p> <p>Секрет моего успеха.</p></div><div role="region" aria-labelledby="label-2"> <h2 id="label-2">Вторая глава</h2> <p>Как перестать беспокоиться.</p> <p>И начать играть в бридж.</p></div><div role="region" aria-labelledby="label-3"> <h2 id="label-3">Третья глава</h2> <p>Перестаём грустить вместе.</p> <p>Просто улыбнись.</p></div>
<div role="region" aria-labelledby="label-1"> <h2 id="label-1">Первая глава</h2> <p>Как найти смысл жизни.</p> <p>Секрет моего успеха.</p> </div> <div role="region" aria-labelledby="label-2"> <h2 id="label-2">Вторая глава</h2> <p>Как перестать беспокоиться.</p> <p>И начать играть в бридж.</p> </div> <div role="region" aria-labelledby="label-3"> <h2 id="label-3">Третья глава</h2> <p>Перестаём грустить вместе.</p> <p>Просто улыбнись.</p> </div>
Если оставить элементы region
без подписей, скринридеры не посчитают их ориентирами.
<div role="region"> <h2>Первая глава</h2> <p>Как найти смысл жизни.</p> <p>Секрет моего успеха.</p></div><div role="region"> <h2>Вторая глава</h2> <p>Как перестать беспокоиться.</p></div><div role="region"> <h2>Третья глава</h2> <p>Перестаём грустить вместе.</p></div>
<div role="region"> <h2>Первая глава</h2> <p>Как найти смысл жизни.</p> <p>Секрет моего успеха.</p> </div> <div role="region"> <h2>Вторая глава</h2> <p>Как перестать беспокоиться.</p> </div> <div role="region"> <h2>Третья глава</h2> <p>Перестаём грустить вместе.</p> </div>
Не добавляйте на страницу слишком много секций, чтобы не перегрузить пользователей информацией и не сделать навигацию более запутанной.
Для элемента с ролью region
можно использовать все глобальные ARIA-атрибуты.
Как понять
Скопированоregion
— один из ориентиров. Это значит, что пользователи скринридеров могут перемещаться между областями страницы с помощью горячих клавиш или через меню со всеми ориентирами.