# Доступность — лёгкий проход (24.06.2026)

**Метод:** ручной эвристический разбор по accessibility-деревьям, снятым Playwright во время
прогона (это реальные a11y-снимки страниц), + наблюдения глазами. **Это не замена техническому
гейту:** формальный источник истины по a11y в проекте — **Pa11y** (`npm run a11y`,
CLAUDE.md §3 п.3). Здесь — UX-уровень доступности, что видно без инструментов.

## Что хорошо (подтверждено по a11y-дереву)

- У интерактивных элементов есть осмысленные имена: кнопки («Пополнить баланс», «Создать
  проект», «Меню пользователя»), чекбоксы («Выбрать сделку «7999XXXXXXX»»,
  «Выбрать все проекты по текущим фильтрам»), прогресс-бары («Прогресс дневной нормы: 0%»).
- Заголовочная иерархия читаемая: на странице один `h1` (название экрана), `h2` для секций
  («История транзакций», «Воронка», «Активность по дням»).
- Поля форм связаны с подписями (Email, Пароль, «Контактное имя», «Сумма пополнения»).
- Таблицы используют семантику `table/columnheader/row/cell` — скринридер прочитает реестр.
- Поле Email в профиле корректно `disabled` с поясняющим текстом — не ловушка фокуса.
- 404-страница доступна, с понятными ссылками и контактом support.

## Проблемы / на проверку

| # | Экран | Проблема | Рекомендация |
|---|---|---|---|
| A1 | Дашборд, плашка баланса | `aria-label="Хватит на 10 дней из 7"` — наследует баг B1: озвучивается неверное и логически невозможное значение («10 из 7»). | Чинится вместе с B1; после фикса aria станет корректным. |
| A2 | Капча на регистрации | Виджет Yandex SmartCaptcha — на dev в ошибке; на проде проверить, что капча проходима с клавиатуры и доступна скринридеру (частая болячка капч). | Прогнать a11y именно по странице регистрации на проде. |
| A3 | Иконки-кнопки в топбаре | «Уведомления», «Поиск» — есть имена, но проверить видимость фокуса (focus-visible) при Tab. | Подтвердить через Pa11y/клавиатуру. |
| A4 | Контраст | Палитра Forest (teal на ivory) обычно ок, но статусные чипы и «приглушённый» текст-подписи (`text-caption`) на светлом фоне — кандидаты на низкий контраст. Глазами не измерить. | Контраст — на Pa11y (WCAG 2.1 AA). |
| A5 | Тосты «Сохранено.»/«Баланс пополнен.» | Используют `role=status` (хорошо), проверить, что озвучиваются и не исчезают слишком быстро для скринридера. | Подтвердить тайминг live-region. |

## Вывод

UX-доступность на хорошем базовом уровне (имена, заголовки, семантика таблиц/форм). Для
формального вердикта WCAG 2.1 AA нужен **отдельный технический прогон Pa11y** по ключевым
экранам — особенно регистрация (капча), биллинг и баннер блокировки. A1 закроется вместе с
багом B1.
