Chakra UI изначально ориентирован на доступность, и одним из ключевых аспектов является поддержка экранных считывателей (screen readers). Это позволяет пользователям с нарушениями зрения взаимодействовать с приложением без потери функциональности. Chakra UI использует сочетание ARIA-атрибутов, семантических HTML-элементов и контролируемых компонентов, чтобы обеспечить полную совместимость с ассистивными технологиями.
Chakra UI активно использует ARIA-атрибуты для передачи информации о состоянии и роли компонентов. Например:
aria-label и
aria-labelledby – позволяют давать
доступное описание элементам интерфейса, которые не имеют текстового
содержимого.aria-hidden – скрывает элементы от
экранных считывателей, когда они не должны быть доступны
пользователю.aria-live – используется для
динамически обновляемого контента, чтобы сообщать о новых событиях.role – задаёт семантическую роль
элемента (например, button, dialog,
alert), что важно для правильного восприятия интерфейса
ассистивными технологиями.Пример использования кнопки с доступной подписью:
import { Button } from "@chakra-ui/react";
<Button aria-label="Закрыть модальное окно">
<CloseIcon />
</Button>
В этом примере CloseIcon визуально отображается, но экранный считыватель будет озвучивать текст “Закрыть модальное окно”, обеспечивая ясность действий для пользователей.
Chakra UI управляет фокусом и табуляцией компонентов автоматически, что критично для пользователей, которые используют клавиатуру или экранные считыватели:
FocusLock – гарантирует, что фокус
остается внутри модального окна или всплывающего компонента до
закрытия.VisuallyHidden – позволяет добавлять
элементы, которые видимы только для ассистивных технологий, не влияя на
визуальное отображение.tabIndex – правильно настроенный для
интерактивных элементов, чтобы логика перемещения фокуса соответствовала
ожиданиям пользователя.Пример скрытого текста для дополнительной информации:
import { VisuallyHidden, Button } from "@chakra-ui/react";
<Button>
Сохранить
<VisuallyHidden>изменения будут применены сразу</VisuallyHidden>
</Button>
Экранный считыватель озвучит полный контекст: “Сохранить, изменения будут применены сразу”, при этом на экране пользователь увидит только кнопку “Сохранить”.
Chakra UI предоставляет Modal, Drawer и Alert компоненты с встроенной поддержкой доступности:
aria-modal и
управляет фокусом, предотвращая взаимодействие с остальной частью
интерфейса до подтверждения действия.aria-live="polite" или assertive для
корректного озвучивания событий.Пример уведомления Toast с озвучиванием:
import { useToast } from "@chakra-ui/react";
const toast = useToast();
toast({
title: "Сохранение прошло успешно",
status: "success",
duration: 5000,
isClosable: true,
position: "top",
variant: "subtle"
});
Экранный считыватель прочитает текст уведомления, даже если пользователь не видит его на экране.
Формы в Chakra UI уже включают семантические элементы и корректную поддержку ARIA:
label, input и helperText.aria-invalid и связывает ошибку с соответствующим
полем.aria-checked), что позволяет корректно
озвучивать их пользователю.Пример формы с доступностью:
import { FormControl, FormLabel, Input, FormErrorMessage } from "@chakra-ui/react";
<FormControl isInvalid={emailError}>
<FormLabel htmlFor="email">Email</FormLabel>
<Input id="email" type="email" />
{emailError && <FormErrorMessage>{emailError}</FormErrorMessage>}
</FormControl>
Экранный считыватель озвучит: “Email, поле обязательно, ошибка: некорректный адрес”.
Для динамически изменяемого контента Chakra UI использует ARIA live regions, которые обеспечивают своевременное уведомление о событиях:
aria-live="polite" – для не критичных сообщений
(например, обновления состояния).aria-live="assertive" – для важных уведомлений
(например, ошибки, предупреждения).Пример:
import { Alert, AlertIcon } from "@chakra-ui/react";
<Alert status="error" aria-live="assertive">
<AlertIcon />
Произошла ошибка при сохранении данных
</Alert>
Считыватель немедленно озвучит ошибку, позволяя пользователю быстро сориентироваться.
Для проверки совместимости с экранными считывателями важно использовать:
Chakra UI обеспечивает высокий уровень доступности из коробки, благодаря комбинации семантической разметки, управления фокусом, ARIA-атрибутов и специальных вспомогательных компонентов. Это позволяет создавать интерфейсы, полностью совместимые с экранными считывателями и обеспечивающие равные возможности для всех пользователей.