Кратко
СкопированоСостояние виджета из WAI-ARIA. Сообщает вспомогательным технологиям, что элемент разворачивает и сворачивает другое содержимое.
aria нужен для компонентов, которые изменяют видимость содержимого. Например для кнопки, которая показывает или скрывает список ссылок на сайте.
Пример
Скопировано
<nav> <button aria-label="Список товаров" aria-expanded="false" aria-controls="subnav" > <!-- Иконка --> </button> <div id="subnav"> <ul> <li> <a href="/dogs-pools/"> Бассейны для собак </a> </li> <li> <a href="/cats-boxes/"> Коробки для кошек </a> </li> <li> <a href="/rats-water-bowls/"> Поилки для крыс </a> </li> </ul> </div></nav>
<nav>
<button
aria-label="Список товаров"
aria-expanded="false"
aria-controls="subnav"
>
<!-- Иконка -->
</button>
<div id="subnav">
<ul>
<li>
<a href="/dogs-pools/">
Бассейны для собак
</a>
</li>
<li>
<a href="/cats-boxes/">
Коробки для кошек
</a>
</li>
<li>
<a href="/rats-water-bowls/">
Поилки для крыс
</a>
</li>
</ul>
</div>
</nav>
Скринридер при фокусе на кнопке расскажет о ней примерно так: «Список товаров, кнопка, свёрнуто». Когда пользователь раскроет список, скринридер просто сообщит «развёрнуто» без повторения информации о кнопке.
Как пишется
СкопированоДобавьте к элементу атрибут aria с одним из трёх значений:
undefined(по умолчанию) — у элемента нет содержимого, которое разворачивается и сворачивается.true— содержимое или другие элементы развёрнуты.false— содержимое или другие элементы свёрнуты.
aria используют для интерактивных элементов, с которыми могут взаимодействовать пользователи. Так что атрибут подходит только для некоторых HTML-тегов и ARIA-ролей:
- ссылок
<a>или ролиlink; - кнопок
<button>или ролиbutton; - чекбоксов
<input typeили роли= "checkbox"> checkbox; - выпадающих списков
<select>или ролейcombobox,listbox; - интерактивных строк таблиц
<tr>илиrow; - интерактивных заголовков ячеек или строк таблиц
<th>илиrowheader; - приложений
application; - вкладок
tab; - пунктов меню как в программе
menuitem; - пунктов древовидных списков
treeitem; - ячеек сеток
gridcell.
Атрибут повысит доступность бургер-меню, кастомных аккордеонов, выпадающих или древовидных списков, а ещё сеток — интерактивных таблиц как в Exel.
aria хорошо сочетается с атрибутами связи aria и aria. aria указывает на связь между управляющим и управляемым элементами, а aria — на связь между родительским и дочерним.
Чтобы скринридеры правильно рассказали о том, свёрнут или развёрнут элемент, задействуйте магию JavaScript 🪄 Например, слушайте событие click на элементе и, если содержимое развёрнуто, задавайте кнопке aria, если свёрнуто — aria. Значения можно переключать методом .set.