Radix UI предоставляет высококачественные, доступные и настраиваемые компоненты для создания интерфейсов на React. Компоненты Title, Description и Action играют ключевую роль в обеспечении семантики и доступности элементов интерфейса, особенно в контексте модальных окон, тултипов, диалогов и меню.
Компонент Title служит для обозначения заголовка интерактивного элемента. Его использование гарантирует, что текст заголовка будет правильно идентифицирован скринридерами и другими ассистивными технологиями.
Основные моменты использования:
id.aria-labelledby.Пример использования:
import * as Dialog from '@radix-ui/react-dialog';
<Dialog.Root>
<Dialog.Trigger>Открыть диалог</Dialog.Trigger>
<Dialog.Overlay />
<Dialog.Content>
<Dialog.Title id="dialog-title">Настройки профиля</Dialog.Title>
<Dialog.Description id="dialog-description">
Здесь можно изменить имя пользователя и пароль.
</Dialog.Description>
</Dialog.Content>
</Dialog.Root>
Особенности:
Dialog.Title автоматически передает идентификатор для
скринридеров, если используется aria-labelledby.Компонент Description используется для предоставления дополнительной информации, поясняющей заголовок или действие. Он помогает пользователю понять контекст элемента интерфейса.
Ключевые моменты:
Пример использования:
<Dialog.Content>
<Dialog.Title>Удаление файла</Dialog.Title>
<Dialog.Description>
Это действие необратимо. Удалённый файл нельзя будет восстановить.
</Dialog.Description>
</Dialog.Content>
Особенности:
aria-describedby автоматически связывает
Description с контейнером, что повышает
доступность.Компонент Action отвечает за интерактивные элементы, инициирующие действия пользователя, такие как кнопки подтверждения, отмены, выбора.
Основные принципы:
onClick.Пример использования:
<Dialog.Content>
<Dialog.Title>Выход из аккаунта</Dialog.Title>
<Dialog.Description>
Вы уверены, что хотите выйти? Все несохранённые изменения будут потеряны.
</Dialog.Description>
<Dialog.Close asChild>
<button>Отмена</button>
</Dialog.Close>
<Dialog.Action asChild>
<button onCl ick={() => logoutUser()}>Выйти</button>
</Dialog.Action>
</Dialog.Content>
Особенности:
Dialog.Action автоматически управляет поведением по
закрытию диалога, если компонент используется внутри
Dialog или AlertDialog.asChild, позволяя использовать любой
компонент или кнопку с сохранением доступности.Использование этих компонентов совместно обеспечивает:
aria-labelledby и
aria-describedby.asChild для интеграции с кастомными
компонентами без потери доступности.Title, Description и Action в Radix UI — это не просто визуальные элементы, а фундаментальные компоненты для создания доступных и управляемых интерфейсов, особенно в сложных интерактивных модулях. Они помогают структурировать контент, обеспечивают правильное поведение для ассистивных технологий и упрощают управление пользовательскими действиями.