Кратко
СкопированоARIA-роль ориентира, которая определяет область хедера или «шапки» сайта. Обычно в хедере размещается название компании, логотип, основная навигация по сайту, поиск и похожее содержимое.
Роль banner
есть у <header>
по умолчанию.
Пример
Скопировано<div class="header" role="banner"> <span>Мир тапиров</span></div><main> <h1>Сайт о тапирах</h1> <p>Полотно текста о тапирах.</p></main>
<div class="header" role="banner"> <span>Мир тапиров</span> </div> <main> <h1>Сайт о тапирах</h1> <p>Полотно текста о тапирах.</p> </main>
Скринридер не расскажет о роли такой области, но у пользователя появится возможность быстро перейти к хедеру с помощью специальных клавиш.
Как пишется
СкопированоДобавьте к тегу role
. Лучше всего подойдут семантически нейтральные <div>
и <span>
. В большинстве случаев используйте <header>
вместо явной роли banner
.
Хедер может быть как у страницы, так и у отдельных элементов на ней — <article>
и <main>
. Когда внутрь этих тегов вложен <header>
, скринридер не считает их ориентирами. Так что роль banner
есть только у хедера, который напрямую вложен в <body>
.
У страницы может быть только один ориентир banner
. При этом хедер из <iframe>
, если встраиваете на текущую страницу другую, не попадает в список ориентиров.
Можете задавать элементам с ролью banner
любые глобальные ARIA-атрибуты. Чаще всего пригодятся:
aria
для невидимой подписи (краткого названия) к области хедера;- label aria
, когда у- labelledby banner
есть видимая подпись.
Пример с хедером, который назван через aria
:
<header aria-label="Главный"> <!-- Содержимое хедера сайта --></header>
<header aria-label="Главный"> <!-- Содержимое хедера сайта --> </header>
Пример хедера с aria
:
<header aria-labelledby="label"> <span id="label">Каталог товаров</span> <!-- Остальное содержимое хедера --></header>
<header aria-labelledby="label"> <span id="label">Каталог товаров</span> <!-- Остальное содержимое хедера --> </header>
Как понять
СкопированоРоль banner
создаёт ориентир на странице. Это значит, что пользователи скринридеров смогут быстро переместиться к этой части страницы с помощью горячих клавиш или через меню со всеми ориентирами.
На практике
Скопированосоветует Скопировано
В Safari до 17 версии был баг, из-за которого у всех элементов <header>
со страницы вычислялась роль banner
.
<header> <!-- Элементы хедера сайта --></header><main> <article> <header> <!-- Содержимое хедера article --> </header> <!-- Какой-то текст --> </article></main>
<header> <!-- Элементы хедера сайта --> </header> <main> <article> <header> <!-- Содержимое хедера article --> </header> <!-- Какой-то текст --> </article> </main>
Из-за этого в списке ориентиров накапливалось приличное количество banner
.