Подписи
Всегда задавайте явную доступную подпись, потому что видимого текста обычно нет.
Поведение клавиатуры
ОбъявлениеПереведите фокус на демо и нажмите клавишу из таблицы.
| Клавиша | Действие |
|---|---|
| EnterSpace | Активирует кнопку в фокусе. Это нативный <button>; с asChild у дочернего элемента остаются свои клавиши, и ссылка реагирует только на Enter. |
- Действие должно оставаться понятным по одному доступному имени.
Поведение фокуса
- Фокус должен попадать на интерактивный корень.
- Видимый стиль фокуса должен сохраняться после собственной стилизации.
Семантика для скринридеров
- Доступное имя должно приходить из
aria-labelили другого поддерживаемого способа подписи. - Декоративные иконки не должны быть единственным источником смысла.
Семантика формы
typeпо умолчанию не задан: как и нативный<button>,IconButtonотправляет окружающую форму.- Задавайте
type='button'для действий, которые не должны отправлять форму. - Используйте
type='submit', только если отправка через одну иконку по-прежнему понятна в контексте.
Риски доступности
- Отсутствует
aria-label. - Разрушительные действия только с иконкой, смысл которых неочевиден.
- Понятные текстовые действия слишком рано заменяются кнопками только с иконкой.