Поддержка доступности

Мы стараемся как можно больше упростить поддержку доступности. DivKit автоматически проставляет правильные типы в соответствии с платформой таким объектам, как text, input, select, slider и tabs. Но мы не можем дать пользователю дополнительную информацию, задать корректное описание (description) и т. п. Поэтому image и separator по умолчанию исключены из доступности.

Если элемент имеет действия на нажатие (одинарное или двойное) — это также будет автоматически озвучено accessibility-сервисом на платформах Android и iOS.

Для настройки доступности можно использовать объект accessibility. Пример:

"accessibility": {
       "type": "button",
       "hint": "Tap on the button to play music.",
       "description": "Play music",
       "state_description": "Clicked",
       "mode": "merge"
 }
  • type — роль элемента. Используется для правильной идентификации элемента accessibility-сервисом.
  • hint — подсказка, что произойдет при взаимодействии. Читается после description.
  • description — основное описание элемента.
  • state_description — описание текущего состояния элемента. Например, для переключателя это может быть состояние включен/выключен.
  • mode — способ организации дерева accessibility. Всего существует 3 режима:
    • default — элемент и все поддерево разбираются по отдельности;
    • merge — элемент и все его поддерево воспринимаются как единое целое;
    • exclude — элемент и все поддерево недоступно для accessibility.

Роли элемента

  • none — роль элемента отсутствует.
  • button — тип кнопки. Если элемент будет иметь активные действия на одиночное или продолжительное нажатие — это также будет озвучено.
  • image — тип изображения. Мы не сможем дать подробностей про ваше изображение, поэтому рекомендуем указать description для этого типа.
  • text — тип текста.
  • edit_text — тип поля ввода.
  • header — тип заголовка.
  • list — тип списка. Элементы внутри будут читаться подряд.
  • auto — автоматическая простановка типа. Также является типом по умолчанию.

Узнать больше

Следите за новостями DivKit в Telegram-канале: http://t.me/divkit_news.

Также вы можете обсуждать интересующие вас темы в сообществе пользователей DivKit в Telegram: https://t.me/divkit_community_ru.

Репозиторий DivKit