javascript42
Главная
Все учебники
Блог
Учебник Tabbable
Введение
Что такое tabbable
Зачем нужна библиотека для управления фокусом
Установка и подключение
Совместимость с браузерами
Основные концепции табуляции
Базовое использование
Функция tabbable
Получение всех фокусируемых элементов
Параметры и опции
Возвращаемые значения
Разница между tabbable и focusable
Функция focusable
Назначение и отличия от tabbable
Элементы с tabindex="-1"
Скрытые и невидимые элементы
Работа с disabled элементами
Примеры практического применения
Функция isTabbable
Проверка отдельных элементов
Логика определения доступности для табуляции
Обработка граничных случаев
Интеграция в условную логику
Функция isFocusable
Определение фокусируемости элемента
Элементы с нестандартными атрибутами
Особенности работы с SVG
Валидация пользовательского ввода
Атрибут tabindex
Естественный порядок табуляции
Положительные значения tabindex
Нулевое значение tabindex
Отрицательные значения tabindex
Антипаттерны и плохие практики
Работа с контейнерами
Ограничение области поиска
Вложенные контейнеры
Shadow DOM
Iframe и их содержимое
Динамически создаваемые элементы
Опции библиотеки
getShadowRoot
includeContainer
Настройка собственных фильтров
Производительность различных конфигураций
Специальные HTML-элементы
Формы и их элементы
Contenteditable области
Кастомные компоненты
Видимость и доступность
CSS свойства влияющие на табуляцию
Visibility и display
Opacity и pointer-events
Клиппинг и overflow
Позиционирование за пределами viewport
Модальные окна и диалоги
Ловушка фокуса
Возврат фокуса при закрытии
Первый фокусируемый элемент
Циклическая навигация
Обработка Escape и Enter
Меню и выпадающие списки
Навигация стрелками
Закрытие при потере фокуса
Вложенные подменю
Поиск по первой букве
Карусели и слайдеры
Управление фокусом между слайдами
Скрытие неактивных элементов от табуляции
Кнопки навигации
Индикаторы и пагинация
Автоматическая прокрутка и фокус
Аккордеоны и вкладки
Переключение между панелями
Aria-атрибуты и роли
Паттерн roving tabindex
Сворачивание и разворачивание
Сохранение состояния фокуса
Таблицы и сетки данных
Сортировка и фильтрация
Виртуализация и ленивая загрузка
Drag and drop
Фокус на перетаскиваемых элементах
Зоны сброса
Визуальная обратная связь
Доступность для скринридеров
Динамический контент
Добавление элементов в DOM
Удаление элементов
Обновление списка tabbable
Debounce и throttle
MutationObserver
Производительность
Кеширование результатов
Оптимизация селекторов
Ленивые вычисления
Batch обновления
Профилирование и бенчмарки
Интеграция с фреймворками
React и хуки
Angular директивы
Svelte actions
Vanilla JavaScript
Доступность
WCAG требования
ARIA спецификация
Тестирование доступности
Обработка ошибок
Невалидные контейнеры
Отсутствие tabbable элементов
Циклические ссылки в DOM
Защитное программирование
Логирование и отладка
Тестирование
Unit тесты
E2E тестирование фокуса
Кросс-браузерное тестирование
Альтернативные решения
Сравнение с focus-trap
Сравнение с ally.js
Собственная реализация
Когда библиотека избыточна
Миграция и обновление
Breaking changes
Deprecation warnings
Обратная совместимость
Стратегии постепенного внедрения
Расширенные паттерны
Композиция нескольких ловушек фокуса
Приоритеты и стеки
Условная активация
Делегирование управления
Кастомные стратегии табуляции
Отладка
Визуализация порядка табуляции
Трассировка фокуса
Частые проблемы и решения
Лучшие практики
Graceful degradation