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

## Именование

Сетка должна сопровождаться контекстом, который объясняет, что содержат ячейки.

## Работа с клавиатурой

| Клавиша | Действие |
| --- | --- |
| <kbd>→</kbd> / <kbd>←</kbd> | Переносит фокус на следующую или предыдущую ячейку строки. Следует направлению текста: в right-to-left → ведёт к предыдущей ячейке. Останавливается на краю строки, если не задан `wrap`. |
| <kbd>↓</kbd> / <kbd>↑</kbd> | Переносит фокус на ячейку ниже или выше в той же колонке. |
| <kbd>Home</kbd> / <kbd>End</kbd> | Переносит фокус на первую или последнюю ячейку строки. |
| <kbd>Ctrl</kbd> + <kbd>Home</kbd> / <kbd>Ctrl</kbd> + <kbd>End</kbd> | Переносит фокус на первую ячейку первой строки или последнюю ячейку последней строки. |
| <kbd>Page Down</kbd> / <kbd>Page Up</kbd> | Переносит фокус на последнюю или первую строку в той же колонке, а при заданном `rowDelta` — на столько строк. |
| <kbd>Tab</kbd> | Вводит фокус в сетку на последнюю активную ячейку и затем выводит из неё: вся сетка — одна остановка табуляции. |

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

- перемещение активной ячейки должно оставаться видимым
- интерактивное содержимое внутри ячеек не должно скрывать текущее состояние навигации

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

- строки и ячейки должны оставаться понятными как структура сетки
- кастомное содержимое ячеек не должно затемнять смысл текущей позиции

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

- разреженная визуальная раскладка без соответствующей логики исключений
- встраивание сложных контролов, которые перехватывают фокус у модели сетки
- использование `DataGrid` там, где семантическая `Table` была бы понятнее
