Атрибуты aria
Использование ARIA-атрибутов значительно улучшает доступность веб-приложений для пользователей с ограниченными возможностями, помогают сделать интерфейсы более понятными, удобными и функциональными.ARIA-атрибуты в HTML
Рекомендации по использованию ARIA-атрибутов
Правильное использование помогает создавать оригинальные и доступные веб-приложения, которые работают для всех пользователей, включая тех, кто использует вспомогательные технологии. Эта статья является продолжением описания атрибутов ARIA, будьте в курсе использования атрибутов role
в статье Атрибуты role, взаимосвязанных компонентов HTML.
Используйте ARIA только когда это необходимо: ARIA-атрибуты следует применять только в случаях, когда стандартные HTML-элементы и атрибуты не могут обеспечить необходимую доступность.
Избегайте дублирования: Не используйте несколько ARIA-атрибутов, которые выполняют одну и ту же функцию. Это может запутать скринридеры и ухудшить пользовательский опыт.
Тестируйте с помощью скринридеров: Всегда проверяйте свои решения с помощью скринридеров, чтобы убедиться, что ARIA-атрибуты работают так, как задумано.
Следуйте принципу минимализма: Используйте минимальное количество ARIA-атрибутов, необходимых для обеспечения доступности. Избыточное использование может привести к обратному эффекту.
Документируйте ARIA-атрибуты: Если вы используете ARIA, убедитесь, что это задокументировано в вашем коде, чтобы другие разработчики могли понять, зачем они были добавлены.
Преимущества использования ARIA-атрибутов
Улучшение доступности для скринридеров
ARIA-атрибуты позволяют скринридерам лучше понимать структуру и функциональность веб-страниц. Например, атрибуты aria-label
и aria-labelledby
помогают предоставить текстовое описание элементов, которые иначе остались бы непонятными для пользователей скринридеров.
<button aria-label="Закрыть">×</button>
В этом примере скринридер озвучит "Закрыть" вместо символа "×", что делает интерфейс более понятным.
Улучшение взаимодействия с динамическим контентом
ARIA-атрибуты, такие как aria-live
, aria-atomic
и aria-busy
, помогают управлять тем, как скринридеры обрабатывают изменения на странице. Это особенно полезно для динамически обновляемого контента, такого как уведомления или загрузка данных.
<div aria-live="polite"> Новое сообщение: Привет, мир! </div>
В этом примере скринридер автоматически озвучит новое сообщение, не прерывая текущее чтение.
Улучшение семантики для сложных виджетов
ARIA-атрибуты позволяют добавлять семантику к элементам, которые не имеют её по умолчанию. Например, с помощью role
и aria-*
атрибутов можно создать доступные аккордеоны, вкладки, модальные окна и другие сложные виджеты.
<div role="tablist"> <div role="tab" aria-selected="true">Вкладка 1</div> <div role="tab" aria-selected="false">Вкладка 2</div> </div>
В этом примере скринридеры понимают, что это вкладки, и могут сообщить пользователю о текущем состоянии.
Улучшение доступности форм
ARIA-атрибуты, такие как aria-required
, aria-invalid
и aria-describedby
, помогают сделать формы более доступными. Они предоставляют дополнительную информацию о полях ввода, их состоянии и ошибках.
<input type="text" aria-required="true" aria-describedby="hint"> <span id="hint">Поле обязательно для заполнения.</span>
В этом примере скринридер сообщит пользователю, что поле обязательно для заполнения, и предоставит подсказку.
Улучшение доступности для пользователей с ограниченной мобильностью
ARIA-атрибуты, такие как aria-keyshortcuts
, помогают пользователям с ограниченной мобильностью взаимодействовать с интерфейсом с помощью клавиатуры. Это делает веб-приложения более удобными для всех пользователей.
<button aria-keyshortcuts="Ctrl+Shift+M">Открыть меню</button>
В этом примере пользователь может открыть меню с помощью сочетания клавиш, что упрощает навигацию.
Поддержка кастомных элементов
ARIA-атрибуты позволяют добавлять доступность к кастомным элементам, которые не имеют стандартной семантики. Например, с помощью role
и aria-*
можно создать доступные кастомные кнопки, слайдеры и другие элементы.
<div role="button" tabindex="0" aria-pressed="false">Кастомная кнопка</div>
В этом примере элемент ведёт себя как кнопка, и скринридеры сообщат о его состоянии.
Улучшение доступности для пользователей с когнитивными нарушениями
ARIA-атрибуты, такие как aria-describedby
и aria-label
, помогают предоставить дополнительную информацию, которая может быть полезна для пользователей с когнитивными нарушениями. Это делает интерфейс более понятным и предсказуемым.
<button aria-label="Закрыть">×</button>
В этом примере пользователь получает чёткое описание действия кнопки, что упрощает взаимодействие.
Примеры избыточного использования ARIA-атрибутов
Избыточное использование aria-label
<button aria-label="Закрыть" aria-labelledby="closeButton">×</button> <span id="closeButton">Закрыть</span>
Проблема: В данном примере атрибуты aria-label
и aria-labelledby
дублируют друг друга. Это может запутать скринридеры, так как они не знают, какой атрибут использовать для описания кнопки.
Рекомендация: Используйте только один из атрибутов. Если у элемента уже есть видимый текст, который описывает его функцию, дополнительный aria-label
не нужен.
Избыточное использование aria-describedby
<input type="text" aria-describedby="hint1 hint2"> <span id="hint1">Поле обязательно для заполнения.</span> <span id="hint2">Введите ваше имя.</span>
Проблема: Использование нескольких идентификаторов в aria-describedby
может привести к избыточному озвучиванию информации, что затруднит восприятие для пользователей скринридеров.
Рекомендация: Объедините описания в один элемент или используйте только одно описание, которое наиболее точно передает необходимую информацию.
Избыточное использование aria-hidden
<div aria-hidden="true"> <span aria-hidden="false">Этот текст будет озвучен.</span> </div>
Проблема: Вложенный элемент с aria-hidden="false"
внутри элемента с aria-hidden="true"
может привести к непредсказуемому поведению скринридеров.
Рекомендация: Убедитесь, что вложенные элементы не противоречат родительским атрибутам. Если элемент должен быть скрыт, все его дочерние элементы также должны быть скрыты.
Избыточное использование aria-required
и required
<input type="text" aria-required="true" required>
Проблема: Атрибуты aria-required
и required
дублируют друг друга. Это избыточно, так как required
уже указывает на обязательность поля.
Рекомендация: Используйте только required
, если браузеры и скринридеры поддерживают этот атрибут. aria-required
следует использовать только в случаях, когда стандартные HTML-атрибуты недоступны или недостаточны.
Избыточное использование aria-live
и aria-atomic
<div aria-live="polite" aria-atomic="true"> <span>Новое сообщение:</span> <span>Привет, мир!</span> </div>
Проблема: Если область с aria-live
обновляется слишком часто, это может привести к постоянному прерыванию пользователя, что ухудшит его опыт.
Рекомендация: Используйте aria-live
с осторожностью и только для действительно важных обновлений. Убедитесь, что обновления не происходят слишком часто и не мешают пользователю.
Примеры применения ARIA-атрибутов
aria-label
Назначение: Используется для предоставления текстового описания элемента, когда видимый текст отсутствует или недостаточно информативен.
<button aria-label="Закрыть">×</button>
Объяснение: Атрибут aria-label="Закрыть"
предоставляет описание для кнопки с символом "×". Скринридеры озвучат "Закрыть" вместо символа.
aria-labelledby
Назначение: Используется для связывания элемента с другим элементом, который его описывает (например, заголовок для таблицы).
<h2 id="tableLabel">Таблица пользователей</h2> <table aria-labelledby="tableLabel"> <thead> <tr> <th>Имя</th> <th>Возраст</th> </tr> </thead> <tbody> <tr> <td>Иван</td> <td>25</td> </tr> </tbody> </table>
Объяснение: Атрибут aria-labelledby="tableLabel"
связывает таблицу с заголовком. Скринридеры озвучат "Таблица пользователей" перед чтением таблицы.
aria-describedby
Назначение: Используется для предоставления дополнительного описания элемента (например, подсказка для поля ввода).
<input type="text" aria-describedby="usernameHint"> <span id="usernameHint">Имя пользователя должно содержать от 3 до 15 символов.</span>
Объяснение: Атрибут aria-describedby="usernameHint"
связывает поле ввода с подсказкой. Скринридеры озвучат подсказку после описания поля.
aria-hidden
Назначение: Используется для скрытия элемента от скринридеров, если он не несет полезной информации для пользователей с ограниченными возможностями.
<div aria-hidden="true"> Этот текст не будет озвучен скринридером. </div>
Объяснение: Атрибут aria-hidden="true"
скрывает элемент от скринридеров. Элемент остается видимым на странице.
aria-expanded
Назначение: Используется для указания, раскрыт ли элемент (например, выпадающее меню или аккордеон).
<button aria-expanded="false" aria-controls="dropdown">Меню</button> <ul id="dropdown" hidden> <li>Пункт 1</li> <li>Пункт 2</li> </ul>
Объяснение: Атрибут aria-expanded="false"
указывает, что меню свернуто. При нажатии кнопки значение меняется на true
, и меню раскрывается.
aria-controls
Назначение: Используется для указания, какой элемент контролируется текущим элементом (например, кнопка, которая управляет выпадающим меню).
<button aria-controls="dropdown" aria-expanded="false">Меню</button> <ul id="dropdown" hidden> <li>Пункт 1</li> <li>Пункт 2</li> </ul>
Объяснение: Атрибут aria-controls="dropdown"
связывает кнопку с выпадающим меню. Скринридеры сообщат, что кнопка управляет этим меню.
aria-live
Назначение: Используется для указания, что область страницы должна быть озвучена скринридером при изменении (например, уведомления или сообщения).
<div aria-live="polite"> Новое сообщение: Привет, мир! </div>
Объяснение: Атрибут aria-live="polite"
указывает, что изменения в этой области должны быть озвучены скринридером, но не прерывать текущее чтение.
aria-atomic
Назначение: Используется для указания, должен ли скринридер озвучивать весь контент области или только измененную часть.
<div aria-live="polite" aria-atomic="true"> <span>Новое сообщение:</span> <span>Привет, мир!</span> </div>
Объяснение: Атрибут aria-atomic="true"
указывает, что скринридер должен озвучить весь контент области, даже если изменилась только часть.
aria-relevant
Назначение: Используется для указания, какие изменения в области должны быть озвучены скринридером.
<div aria-live="polite" aria-relevant="additions text"> <ul id="messageList"> <li>Сообщение 1</li> </ul> </div>
Объяснение: Атрибут aria-relevant="additions text"
указывает, что скринридер должен озвучивать добавление новых элементов и изменения текста.
aria-busy
Назначение: Используется для указания, что элемент в процессе изменения (например, загрузка данных).
<div aria-live="polite" aria-busy="true"> Загрузка данных... </div>
Объяснение: Атрибут aria-busy="true"
указывает, что элемент в процессе изменения. Скринридеры могут отложить озвучивание изменений до завершения.
aria-checked
Назначение: Используется для указания состояния чекбокса или радиокнопки (например, "выбрано" или "не выбрано").
<div role="checkbox" aria-checked="false">Чекбокс</div>
Объяснение: Атрибут aria-checked="false"
указывает, что чекбокс не выбран. При нажатии значение меняется на true
.
aria-pressed
Назначение: Используется для кнопок, которые могут быть в состоянии "нажато" или "не нажато" (например, кнопки-переключатели).
<button aria-pressed="false">Переключатель</button>
Объяснение: Атрибут aria-pressed="false"
указывает, что кнопка не нажата. При нажатии значение меняется на true
.
aria-disabled
Назначение: Используется для указания, что элемент отключен (например, кнопка или поле ввода).
<button aria-disabled="true">Отключенная кнопка</button>
Объяснение: Атрибут aria-disabled="true"
указывает, что элемент недоступен для взаимодействия. Скринридеры сообщат, что элемент отключен.
aria-required
Назначение: Используется для указания, что поле ввода обязательно для заполнения.
<input type="text" aria-required="true">
Объяснение: Атрибут aria-required="true"
указывает, что поле обязательно для заполнения. Скринридеры сообщат пользователю, что поле обязательно.
aria-invalid
Назначение: Используется для указания, что значение в поле ввода недопустимо (например, ошибка валидации).
<input type="email" aria-invalid="true" aria-describedby="emailError"> <span id="emailError">Некорректный email.</span>
Объяснение: Атрибут aria-invalid="true"
указывает, что значение в поле недопустимо. Скринридеры озвучат сообщение об ошибке.
aria-haspopup
Назначение: Используется для указания, что элемент имеет всплывающее окно (например, выпадающее меню или диалог).
<button aria-haspopup="true">Меню</button>
Объяснение: Атрибут aria-haspopup="true"
указывает, что элемент имеет всплывающее окно. Скринридеры сообщат, что элемент имеет всплывающее меню.
aria-modal
Назначение: Используется для указания, что элемент является модальным окном.
<div role="dialog" aria-modal="true"> <h2>Модальное окно</h2> <p>Это пример модального окна.</p> </div>
Объяснение: Атрибут aria-modal="true"
указывает, что элемент является модальным окном. Скринридеры сообщат, что остальная часть страницы недоступна.
aria-keyshortcuts
Назначение: Используется для указания сочетания клавиш, которое активирует элемент.
<button aria-keyshortcuts="Ctrl+Shift+M">Открыть меню</button>
Объяснение: Атрибут aria-keyshortcuts="Ctrl+Shift+M"
указывает, что элемент можно активировать с помощью сочетания клавиш. Скринридеры сообщат о доступном сочетании.
aria-roledescription
Назначение: Используется для предоставления пользовательского описания роли элемента.
<div role="button" aria-roledescription="Кастомная кнопка">Нажми меня</div>
Объяснение: Атрибут aria-roledescription="Кастомная кнопка"
предоставляет пользовательское описание роли элемента. Скринридеры озвучат это описание вместо стандартного.
aria-valuemin
, aria-valuemax
, aria-valuenow
Назначение: Используются для указания минимального, максимального и текущего значения элемента (например, слайдер или прогресс-бар).
<div role="slider" aria-valuemin="0" aria-valuemax="100" aria-valuenow="50">Слайдер</div>
Объяснение: Атрибуты aria-valuemin="0"
, aria-valuemax="100"
и aria-valuenow="50"
указывают диапазон и текущее значение слайдера. Скринридеры озвучат текущее значение.
aria-valuetext
Назначение: Используется для предоставления текстового описания текущего значения элемента (например, для слайдера с нечисловыми значениями).
<div role="slider" aria-valuetext="Средняя громкость">Слайдер</div>
Объяснение: Атрибут aria-valuetext="Средняя громкость"
предоставляет текстовое описание текущего значения. Скринридеры озвучат это описание.
aria-orientation
Назначение: Используется для указания ориентации элемента (например, горизонтальный или вертикальный слайдер).
<div role="slider" aria-orientation="horizontal">Слайдер</div>
Объяснение: Атрибут aria-orientation="horizontal"
указывает, что слайдер горизонтальный. Скринридеры сообщат ориентацию элемента.
aria-posinset
, aria-setsize
Назначение: Используются для указания позиции элемента в наборе и общего размера набора (например, элементы списка).
<div role="listbox"> <div role="option" aria-posinset="1" aria-setsize="5">Пункт 1</div> <div role="option" aria-posinset="2" aria-setsize="5">Пункт 2</div> </div>
Объяснение: Атрибуты aria-posinset="1"
и aria-setsize="5"
указывают позицию элемента в наборе и общее количество элементов. Скринридеры сообщат, что это "Пункт 1 из 5".
aria-colindex
, aria-rowindex
Назначение: Используются для указания индекса столбца и строки в таблице или сетке.
<div role="grid"> <div role="row"> <div role="gridcell" aria-colindex="1" aria-rowindex="1">Ячейка 1-1</div> <div role="gridcell" aria-colindex="2" aria-rowindex="1">Ячейка 1-2</div> </div> </div>
Объяснение: Атрибуты aria-colindex="1"
и aria-rowindex="1"
указывают позицию ячейки в таблице. Скринридеры озвучат индексы.
aria-colspan
, aria-rowspan
Назначение: Используются для указания, сколько столбцов или строк охватывает ячейка в таблице или сетке.
<div role="grid"> <div role="row"> <div role="gridcell" aria-colspan="2">Ячейка, охватывающая 2 столбца</div> </div> </div>
Объяснение: Атрибуты aria-colspan="2"
и aria-rowspan
указывают, сколько столбцов или строк охватывает ячейка. Скринридеры озвучат это.
aria-sort
Назначение: Используется для указания порядка сортировки в таблице (например, по возрастанию или убыванию).
<table role="grid"> <thead> <tr> <th role="columnheader" aria-sort="ascending">Имя</th> <th role="columnheader" aria-sort="none">Возраст</th> </tr> </thead> <tbody> <tr> <td>Иван</td> <td>25</td> </tr> </tbody> </table>
Объяснение: Атрибут aria-sort="ascending"
указывает, что столбец отсортирован по возрастанию. Возможные значения: ascending
, descending
, none
, other
.
aria-readonly
Назначение: Используется для указания, что элемент доступен только для чтения (например, поле ввода).
<input type="text" aria-readonly="true" value="Это поле только для чтения">
Объяснение: Атрибут aria-readonly="true"
указывает, что поле ввода доступно только для чтения. Скринридеры сообщат, что элемент нельзя изменить.
aria-placeholder
Назначение: Используется для предоставления подсказки в поле ввода, когда оно пустое.
<input type="text" aria-placeholder="Введите ваше имя">
Объяснение: Атрибут aria-placeholder="Введите ваше имя"
предоставляет подсказку для поля ввода. Скринридеры озвучат подсказку, когда поле пустое.
aria-errormessage
Назначение: Используется для связывания элемента с сообщением об ошибке.
<input type="text" aria-invalid="true" aria-errormessage="emailError"> <span id="emailError">Некорректный email.</span>
Объяснение: Атрибут aria-errormessage="emailError"
связывает поле ввода с сообщением об ошибке. Скринридеры озвучат сообщение, если поле невалидно.
aria-autocomplete
Назначение: Используется для указания типа автозаполнения в поле ввода (например, список предложений).
<input type="text" aria-autocomplete="list">
Объяснение: Атрибут aria-autocomplete="list"
указывает, что поле поддерживает автозаполнение с предложениями. Возможные значения: none
, inline
, list
, both
.
aria-multiline
Назначение: Используется для указания, что текстовое поле поддерживает многострочный ввод.
<div role="textbox" aria-multiline="true" contenteditable="true"> Введите многострочный текст... </div>
Объяснение: Атрибут aria-multiline="true"
указывает, что текстовое поле поддерживает многострочный ввод. Скринридеры сообщат об этом пользователю.
aria-details
Назначение: Используется для связывания элемента с дополнительной информацией (например, подробное описание).
<img src="image.jpg" alt="Описание изображения" aria-details="imageDetails"> <div id="imageDetails"> <p>Это изображение было сделано в 2025 году.</p> </div>
Объяснение: Атрибут aria-details="imageDetails"
связывает изображение с дополнительной информацией. Скринридеры озвучат эту информацию.
aria-flowto
Назначение: Используется для указания следующего элемента, который должен быть озвучен скринридером после текущего.
<div id="first" aria-flowto="second">Первый элемент</div> <div id="second">Второй элемент</div>
Объяснение: Атрибут aria-flowto="second"
указывает, что после озвучивания первого элемента скринридер перейдет ко второму.
aria-owns
Назначение: Используется для указания, что элемент владеет другим элементом, который не является его потомком в DOM.
<div role="menu" aria-owns="submenu">Главное меню</div> <div id="submenu" role="menu">Подменю</div>
Объяснение: Атрибут aria-owns="submenu"
указывает, что подменю принадлежит главному меню, даже если оно не является его потомком в DOM.
aria-activedescendant
Назначение: Используется для указания активного дочернего элемента в составном виджете (например, выпадающем меню).
<div role="listbox" aria-activedescendant="option1"> <div id="option1" role="option">Пункт 1</div> <div id="option2" role="option">Пункт 2</div> </div>
Объяснение: Атрибут aria-activedescendant="option1"
указывает, что активный элемент — это "Пункт 1". Скринридеры озвучат активный элемент.
aria-colindex
, aria-rowindex
Назначение: Используются для указания индекса столбца и строки в таблице или сетке.
<div role="grid"> <div role="row"> <div role="gridcell" aria-colindex="1" aria-rowindex="1">Ячейка 1-1</div> <div role="gridcell" aria-colindex="2" aria-rowindex="1">Ячейка 1-2</div> </div> </div>
Объяснение: Атрибуты aria-colindex="1"
и aria-rowindex="1"
указывают позицию ячейки в таблице. Скринридеры озвучат индексы.
aria-colspan
, aria-rowspan
Назначение: Используются для указания, сколько столбцов или строк охватывает ячейка в таблице или сетке.
<div role="grid"> <div role="row"> <div role="gridcell" aria-colspan="2">Ячейка, охватывающая 2 столбца</div> </div> </div>
Объяснение: Атрибуты aria-colspan="2"
и aria-rowspan
указывают, сколько столбцов или строк охватывает ячейка. Скринридеры озвучат это.
aria-sort
Назначение: Используется для указания порядка сортировки в таблице (например, по возрастанию или убыванию).
<table role="grid"> <thead> <tr> <th role="columnheader" aria-sort="ascending">Имя</th> <th role="columnheader" aria-sort="none">Возраст</th> </tr> </thead> <tbody> <tr> <td>Иван</td> <td>25</td> </tr> </tbody> </table>
Объяснение: Атрибут aria-sort="ascending"
указывает, что столбец отсортирован по возрастанию. Возможные значения: ascending
, descending
, none
, other
.
aria-readonly
Назначение: Используется для указания, что элемент доступен только для чтения (например, поле ввода).
<input type="text" aria-readonly="true" value="Это поле только для чтения">
Объяснение: Атрибут aria-readonly="true"
указывает, что поле ввода доступно только для чтения. Скринридеры сообщат, что элемент нельзя изменить.
aria-placeholder
Назначение: Используется для предоставления подсказки в поле ввода, когда оно пустое.
<input type="text" aria-placeholder="Введите ваше имя">
Объяснение: Атрибут aria-placeholder="Введите ваше имя"
предоставляет подсказку для поля ввода. Скринридеры озвучат подсказку, когда поле пустое.
aria-errormessage
Назначение: Используется для связывания элемента с сообщением об ошибке.
<input type="text" aria-invalid="true" aria-errormessage="emailError"> <span id="emailError">Некорректный email.</span>
Объяснение: Атрибут aria-errormessage="emailError"
связывает поле ввода с сообщением об ошибке. Скринридеры озвучат сообщение, если поле невалидно.
aria-autocomplete
Назначение: Используется для указания типа автозаполнения в поле ввода (например, список предложений).
<input type="text" aria-autocomplete="list">
Объяснение: Атрибут aria-autocomplete="list"
указывает, что поле поддерживает автозаполнение с предложениями. Возможные значения: none
, inline
, list
, both
.
aria-multiline
Назначение: Используется для указания, что текстовое поле поддерживает многострочный ввод.
<div role="textbox" aria-multiline="true" contenteditable="true"> Введите многострочный текст... </div>
Объяснение: Атрибут aria-multiline="true"
указывает, что текстовое поле поддерживает многострочный ввод. Скринридеры сообщат об этом пользователю.
aria-details
Назначение: Используется для связывания элемента с дополнительной информацией (например, подробное описание).
<img src="image.jpg" alt="Описание изображения" aria-details="imageDetails"> <div id="imageDetails"> <p>Это изображение было сделано в 2025 году.</p> </div>
Объяснение: Атрибут aria-details="imageDetails"
связывает изображение с дополнительной информацией. Скринридеры озвучат эту информацию.
aria-flowto
Назначение: Используется для указания следующего элемента, который должен быть озвучен скринридером после текущего.
<div id="first" aria-flowto="second">Первый элемент</div> <div id="second">Второй элемент</div>
Объяснение: Атрибут aria-flowto="second"
указывает, что после озвучивания первого элемента скринридер перейдет ко второму.
aria-owns
Назначение: Используется для указания, что элемент владеет другим элементом, который не является его потомком в DOM.
<div role="menu" aria-owns="submenu">Главное меню</div> <div id="submenu" role="menu">Подменю</div>
Объяснение: Атрибут aria-owns="submenu"
указывает, что подменю принадлежит главному меню, даже если оно не является его потомком в DOM.
aria-activedescendant
Назначение: Используется для указания активного дочернего элемента в составном виджете (например, выпадающем меню).
<div role="listbox" aria-activedescendant="option1"> <div id="option1" role="option">Пункт 1</div> <div id="option2" role="option">Пункт 2</div> </div>
Объяснение: Атрибут aria-activedescendant="option1"
указывает, что активный элемент — это "Пункт 1". Скринридеры озвучат активный элемент.
aria-colindex
, aria-rowindex
Назначение: Используются для указания индекса столбца и строки в таблице или сетке.
<div role="grid"> <div role="row"> <div role="gridcell" aria-colindex="1" aria-rowindex="1">Ячейка 1-1</div> <div role="gridcell" aria-colindex="2" aria-rowindex="1">Ячейка 1-2</div> </div> </div>
Объяснение: Атрибуты aria-colindex="1"
и aria-rowindex="1"
указывают позицию ячейки в таблице. Скринридеры озвучат индексы.
aria-colspan
, aria-rowspan
Назначение: Используются для указания, сколько столбцов или строк охватывает ячейка в таблице или сетке.
<div role="grid"> <div role="row"> <div role="gridcell" aria-colspan="2">Ячейка, охватывающая 2 столбца</div> </div> </div>
Объяснение: Атрибуты aria-colspan="2"
и aria-rowspan
указывают, сколько столбцов или строк охватывает ячейка. Скринридеры озвучат это.
aria-sort
Назначение: Используется для указания порядка сортировки в таблице (например, по возрастанию или убыванию).
<table role="grid"> <thead> <tr> <th role="columnheader" aria-sort="ascending">Имя</th> <th role="columnheader" aria-sort="none">Возраст</th> </tr> </thead> <tbody> <tr> <td>Иван</td> <td>25</td> </tr> </tbody> </table>
Объяснение: Атрибут aria-sort="ascending"
указывает, что столбец отсортирован по возрастанию. Возможные значения: ascending
, descending
, none
, other
.