О порядке обхода

Общая информация

Если у пользователя включена программа TalkBack для чтения с экрана, то навигация в приложениях может осуществляться двумя способами.

  • Аудиоподсказки. Если выбран этот способ, то пользователю нужно медленно проводить по экрану и система будет озвучивать все элементы, которых он касается.
  • Линейная навигация. В этом случае для перехода от одного элемента к другому нужно проводить пальцем вправо или влево. 

Во всех приложениях для Android поддерживаются оба способа. Если выбрана линейная навигация, то порядок обхода в целом должен соответствовать визуальному расположению элементов. Главное – сделайте так, чтобы он был понятен для пользователей.  

По умолчанию в TalkBack при линейной навигации порядок обхода определяется на основе иерархии представления данных.

Реализация

Если иерархия представления данных не отражает логическую структуру приложения, чтобы изменить порядок обхода, можно применить свойство android:accessibilityTraversalBefore или android:accessibilityTraversalAfter. В этом случае программа чтения будет переходить к областям в заданном вами порядке. Если к каким-то элементам эти свойства не применены, то обход будет осуществляться в порядке, установленном программой чтения.

Порядок обхода при использовании службы специальных возможностей отличается от принципа фокуса ввода, который применяется, если подключена внешняя клавиатура. Навигация при помощи клавиатуры определяется свойствами android:nextFocusDown, android:nextFocusLeft, android:nextFocusRight и android:nextFocusUp.

Если вы решили применить свойства accessibilityTraversalBefore и accessibilityTraversalAfter, то следуйте нашим рекомендациям.

  • Используйте эти свойства, только если логическая последовательность отличается от последовательности в иерархии представления данных.
  • Все элементы, на которые можно установить фокус ввода при использовании аудиоподсказок, должны также иметь это свойство и при линейной навигации.
  • Порядок обхода должен быть соотнесен с линейной навигацией, независимо от направления движения. Например, если использован жест для перехода к следующему элементу, а затем сразу же жест для перехода к предыдущему, фокус должен сохраниться на изначальном элементе.
  • Не используйте циклическое переключение, если применяете свойства accessibilityTraversalBefore и accessibilityTraversalAfter. В противном случае некоторые элементы при линейной навигации могут стать недоступны.

Дизайн

При разработке дизайна решите, в какой последовательности будет осуществляться навигация по элементам. Постарайтесь сделать так, чтобы порядок обхода совпадал с визуальным представлением данных. Если это невозможно, настройте порядок обхода в соответствии с логической структурой интерфейса.

Советы о том, как упростить навигацию в приложении, приведены здесь.

Тестирование

Вот как протестировать порядок обхода при использовании службы специальных возможностей:

  1. Включите TalkBack.
  2. Запустите приложение.
  3. С помощью жестов последовательно выделяйте элементы на экране.
  4. Убедитесь, что фокус переключается в логическом порядке и программа правильно озвучивает названия элементов.
  5. Убедитесь, что фокус перемещается последовательно, независимо от направления движения.

Также вы можете проверить порядок обхода с помощью специальных инструментов для Android. Чтобы проверить приложение на устройстве вручную, воспользуйтесь Сканером доступности. Для автоматического тестирования включите проверку доступности в Espresso и Robolectric.

Поиск
Очистить поле поиска
Закрыть поиск
Главное меню
11479308259960342956
true
Поиск по Справочному центру
true
true
true
true
true
717068
false
false