# DataGridSelectable: Доступность

## Подписи

- У сетки должна быть внешняя подпись или окружающий контекст, объясняющий задачу выбора.
- Подписи ячеек должны оставаться осмысленными, когда их читают по отдельности.

## Поведение клавиатуры

| Клавиша | Действие |
| --- | --- |
| <kbd>Enter</kbd> / <kbd>Space</kbd> | Выбирает ячейку в фокусе. При `selection='multiple'` добавляет её в выбор или убирает из него. Отключённые ячейки игнорируют клавишу. |
| <kbd>→</kbd> / <kbd>←</kbd> / <kbd>↓</kbd> / <kbd>↑</kbd> | Переносят фокус между ячейками как в `DataGrid`. Отключённые ячейки пропускаются, если `excludeDisabled` не равен `false`. |
| <kbd>Home</kbd> / <kbd>End</kbd> / <kbd>Page Down</kbd> / <kbd>Page Up</kbd> | Переносят фокус на первую или последнюю доступную ячейку строки либо на последнюю или первую строку колонки, как в `DataGrid`. |
| <kbd>Shift</kbd> + <kbd>↓</kbd> / <kbd>Shift</kbd> + <kbd>→</kbd> | При `selection='range'` и выбранной ячейке переносит фокус и расширяет диапазон до новой ячейки. `expandable={false}` отключает это. |

## Поведение фокуса

- Активна одна ячейка за раз.
- Отключённые или исключённые ячейки не должны становиться активными, если правила продукта это запрещают.
- В реальных сценариях проверяйте фокус после расширения диапазона и перетаскивания указателем.

## Семантика для скринридеров

- Итоговая семантика зависит от собранного слоя сетки и ячеек.
- Высокоуровневые потребители должны сохранять понятные объявления для активных, выбранных и недоступных ячеек.

## Риски доступности

- визуальное скрытие активного или выбранного состояния
- нестабильные подписи ячеек, из-за которых навигация по сетке сбивает с толку
- плотная матрица выбора без контекстных инструкций
