Кратко
СкопированоARIA-роль ориентира для области поиска по сайту.
Такая же семантика у HTML-тега <search>
.
Пример
Скопировано<form role="search"> <label for="search-field">Найти на сайте:</label> <input type="search" id="search-field" name="search" placeholder="Например, смысл жизни" > <input type="submit" value="Искать"></form>
<form role="search"> <label for="search-field">Найти на сайте:</label> <input type="search" id="search-field" name="search" placeholder="Например, смысл жизни" > <input type="submit" value="Искать"> </form>
Скринридер не расскажет о роли области, но пользователь сможет с помощью горячих клавиш быстро перейти к ней.
Как пишется
СкопированоДобавьте к тегу role
. Это может быть <div>
, <span>
или <form>
. Пока что у одноимённого элемента <search>
нет стабильной поддержки скринридерами (хотя у браузеров с тегом всё в порядке), задавайте на всякий случай явную роль как в этом примере:
<search role="search"> <!-- Поле и другие элементы поиска --></search>
<search role="search"> <!-- Поле и другие элементы поиска --> </search>
Внутри элемента с ролью search
может быть не только поле поиска <input type
, но также связанные с поиском фильтры и ссылки. Например, чекбоксы для выбора типа товара или его цвета, ссылки на инструкции по поиску, комбинированный список со словами для автозаполнения поискового поля или подсказки.
<form role="search"> <label for="search-field">Найти на сайте:</label> <input type="search" id="search-field" name="search" aria-describedby="hint" placeholder="Например, смысл жизни" > <span id="hint"> Поддерживаем русский, корейский, латынь и пушту. </span> <a href="#">Советы по поиску</a> <fieldset> <legend>Тип товара:</legend> <label for="crowns">Короны</label> <input type="checkbox" id="crowns"> <label for="cloaks">Мантии</label> <input type="checkbox" id="cloaks"> <label for="scepters">Скипетры</label> <input type="checkbox" id="scepters"> </fieldset> <input type="submit" value="Искать"></form>
<form role="search"> <label for="search-field">Найти на сайте:</label> <input type="search" id="search-field" name="search" aria-describedby="hint" placeholder="Например, смысл жизни" > <span id="hint"> Поддерживаем русский, корейский, латынь и пушту. </span> <a href="#">Советы по поиску</a> <fieldset> <legend>Тип товара:</legend> <label for="crowns">Короны</label> <input type="checkbox" id="crowns"> <label for="cloaks">Мантии</label> <input type="checkbox" id="cloaks"> <label for="scepters">Скипетры</label> <input type="checkbox" id="scepters"> </fieldset> <input type="submit" value="Искать"> </form>
С ролью search
сочетаются все глобальные ARIA-атрибуты, но чаще всего пригодятся:
aria
, если нет видимой подписи к области поиска;- label aria
, когда у области- labelledby search
есть видимая подпись;aria
для подсказок;- describedby aria
для описания ошибок после отправки формы.- errormessage
Целиком подписывать область search
полезно, когда на сайте есть глобальный поиск и поиск по отдельной странице. Пользователи быстрее найдут нужный элемент в списке всех ориентиров благодаря такой подписи.
Пример с подписью прямо в атрибуте aria
:
<form role="search" aria-label="Поиск по сайту"> <!-- Элементы поиска --></form>
<form role="search" aria-label="Поиск по сайту" > <!-- Элементы поиска --> </form>
Пример с подписью через aria
.
<h4 id="form-label">Поиск по сайту</h4><form role="search" aria-labelledby="form-label"> <!-- Элементы поиска --></form>
<h4 id="form-label">Поиск по сайту</h4> <form role="search" aria-labelledby="form-label" > <!-- Элементы поиска --> </form>
Как понять
СкопированоРоль search
создаёт ориентир поиска на странице. Это значит, что пользователи скринридеров могут быстро переместиться к этой части страницы с помощью горячих клавиш или через меню с ориентирами.