Кратко
СкопированоСостояние виджета из 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
.