Полный список методов ally.is

Библиотека ally.js предназначена для проверки доступности элементов веб-страницы и управления фокусом с точки зрения accessibility. Центральным компонентом является объект ally, предоставляющий методы проверки видимости, доступности и фокусируемости элементов. Методы сгруппированы по функциональным направлениям: проверка состояния элементов, работа с фокусом, навигация по дереву DOM и вспомогательные утилиты.


Методы для проверки состояния элементов

ally.is предоставляет функции для определения различных аспектов доступности:

  • ally.is.focusable(element) Возвращает true, если элемент может быть сфокусирован с помощью клавиатуры или программно. Проверяются свойства tabindex, видимость и интерактивность.

  • ally.is.tabbable(element) Проверяет, может ли элемент быть достигнут при навигации с помощью клавиши Tab. Отличается от focusable, так как учитывает порядок обхода и скрытые элементы.

  • ally.is.visible(element) Определяет, видим ли элемент на странице. Метод учитывает свойства CSS display, visibility, opacity и размеры элемента.

  • ally.is.visibleByStyle(element) Проверяет видимость элемента исключительно через CSS-свойства, не учитывая позицию на странице и пересечения с другими элементами.

  • ally.is.disabled(element) Определяет, имеет ли элемент атрибут disabled или находится в состоянии, запрещающем взаимодействие с ним.

  • ally.is.focused(element) Возвращает true, если элемент в данный момент является активным элементом документа (document.activeElement).

  • ally.is.labelable(element) Проверяет, может ли элемент иметь текстовую метку (label), что важно для accessibility форм.

  • ally.is.textInput(element) Определяет, является ли элемент полем ввода текста, включая <input> с типами text, email, password и <textarea>.


Методы проверки контекста и окружения

  • ally.is.inDocument(element) Проверяет, находится ли элемент в DOM текущего документа.

  • ally.is.focusContainer(element) Определяет, является ли элемент контейнером для фокусируемых элементов. Часто используется в модальных окнах и всплывающих меню.

  • ally.is.focusRestricted(element) Проверяет, ограничен ли фокус внутри элемента (например, внутри модального окна с aria-modal).

  • ally.is.focusedTrap(element) Проверяет, находится ли элемент внутри активного фокус-трэпа.


Методы работы с атрибутами ARIA

  • ally.is.ariaDisabled(element) Определяет, имеет ли элемент атрибут aria-disabled="true".

  • ally.is.ariaHidden(element) Проверяет, скрыт ли элемент для скринридеров (aria-hidden="true"), независимо от его видимости на экране.

  • ally.is.ariaLabelable(element) Проверяет возможность элемента иметь ARIA-метку (aria-label, aria-labelledby).


Методы проверки взаимодействия

  • ally.is.clickable(element) Определяет, может ли элемент быть активирован пользователем через мышь или клавиатуру. Учитываются элементы <button>, <a> с href, интерактивные элементы и обработчики событий onclick.

  • ally.is.disabledOrNotEditable(element) Возвращает true, если элемент либо заблокирован, либо не поддерживает редактирование (например, <input readonly>).

  • ally.is.editable(element) Проверяет возможность редактирования содержимого элемента, включая contenteditable и текстовые поля.


Методы проверки структурных свойств

  • ally.is.scrollable(element) Определяет, можно ли прокручивать содержимое элемента по вертикали или горизонтали.

  • ally.is.inert(element) Проверяет, заблокировано ли взаимодействие с элементом через inert или аналогичные техники.

  • ally.is.focusableGroup(element) Определяет, является ли элемент контейнером, который управляет группой фокусируемых элементов (например, списки табов).


Дополнительные вспомогательные методы

  • ally.is.navigable(element) Проверяет возможность навигации к элементу через любые интерактивные действия: Tab, мышь, скрипты.

  • ally.is.textContent(element) Определяет, содержит ли элемент текстовый контент, что важно для проверки читаемости и доступности текста.

  • ally.is.visibleByBounding(element) Проверяет видимость элемента через расчёт его прямоугольника (getBoundingClientRect) и проверку пересечения с родителями.

  • ally.is.describedBy(element) Проверяет наличие атрибутов aria-describedby, указывающих на вспомогательные тексты для доступности.

  • ally.is.labelledBy(element) Проверяет наличие атрибутов aria-labelledby, обеспечивающих правильное обозначение элемента.


Принципы использования

Методы ally.is не изменяют состояние DOM и не устанавливают фокус. Они предназначены исключительно для проверки состояния элементов и их соответствия требованиям доступности. Их можно комбинировать для создания комплексных проверок, например, фильтрации всех tabbable и видимых элементов на странице, выявления элементов с ARIA-метками или проверки, находятся ли элементы внутри модальных окон с ограничением фокуса.

Использование этих методов в связке с ally.query и ally.focus позволяет строить скрипты для управления доступностью, тестирования UI и реализации кастомных компонентов с соблюдением стандартов accessibility.