Viewport и доступность
Viewport‑слой отвечает за виртуализацию, расчёт видимых строк и согласование DOM‑фокуса.
1) Базовые понятия
- Viewport — прямоугольник видимой области.
- Row projection — вычисление диапазона строк для рендера.
- Column projection — видимый набор колонок.
2) Инвалидирование и refresh
Core предоставляет явные точки синхронизации:
ts
api.refreshRows("manual")
api.refreshColumns("manual")Используйте их при:
- изменении высот строк,
- перестроении колонок,
- смене размеров контейнера.
3) A11y‑контракт
Рекомендуемый минимум в адаптере:
- один активный фокус (roving tabindex),
- aria‑роль для grid‑контейнера,
- aria‑col/row для ячеек,
- управление фокусом при scroll/selection.
4) Частые ошибки
- Рендер «лишних» строк без синхронизации с проекцией.
- Прерывание измерений при частых resize.
- Потеря фокуса при обновлении выборки.