Делаем приложение на Android доступным для всех

Разбираемся, как работает Accessibility в Android
3 минуты5751

Как сделать мобильное приложение более доступным для людей с ограниченными возможностями? Чтобы разобраться в этом, перевели свежий гайд.

Доступность (Accessibility)

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

  • Получить доступ к более широкой аудитории. По статистике Всемирного банка в мире живет 15 % людей, которые имеют ограниченные возможности в той или иной степени. Именно этим людям как нельзя кстати придутся приложения и сервисы, которые поддерживают доступность, позволяющую беспрепятственно учиться, общаться и работать.
  • Сделать свое приложение более гибким. Такое приложение просто облегчает взаимодействие с ним независимо от того, есть у пользователя какие-то ограничения или нет.

Как работает Accessibility в Андроиде

Основной способ — это озвучивание контента на экране, а также голосовое описание элементов, которые располагаются на нём. Вот на что можно обратить внимание, чтобы  добиться большей доступности вашего приложения:

  • Упрощайте выполнение задач. Постарайтесь, чтобы любое взаимодействие с вашим приложением было простым и понятным, сократите количество шагов и действий для решения той или иной задачи или для перехода с одного экрана на другой.
  • Увеличивайте размер интерактивных элементов. Попробуйте сделать элементы, с которыми взаимодействует пользователь (кнопки, всплывающие уведомления и т. п.), максимально простыми, большими и с хорошими отступами между ними. Особенно это касается ключевых элементов (переход на другой экран, отправка данных, сохранение и т. д.).
  • Помечайте текстовыми тегами те элементы интерфейса, которые не содержат явного текста или описания.
  • Используйте выделение элементов. Это позволит взаимодействовать с элементами экрана с помощью внешней клавиатуры, трекпада или каких-то пультов и джойстиков.

Имплементация

Добавляйте лейблы/теги для картинок. Вот пример соответствующего атрибута XML для ImageView:

android:contentDescription="Application logo"

Если какой-то элемент не является интерактивным и выполняет декоративную функцию, его можно пропустить, чтобы не засорять описание экрана:

android:contentDescription="@null"
или
android:importantForAccessibility="no"

Помечайте текст как заголовок:

//доступно для API 28 и выше
android:accessibilityHeading="true"

Установите параметр элемента как focusable, если он участвует в навигации по экрану или позволяет взаимодействовать с собой через функцию ScreenReader:

//доступно для API 28 и выше
android:screenReaderFocusable="true"

Установите атрибуты для более легкой навигации между элементами с помощью клавиатуры или иных внешних устройств (пульты ДУ и т. п.):

↓ android:nextFocusDown="@id/textview_2"
← android:nextFocusLeft="view id"
↑ android:nextFocusUp="view id"
→ android:nextFocusRight="view id"

Укажите, что тот или иной текстовый элемент является заголовком для другого:

android:labelFor="view id"

Укажите, как сервисы доступности должны обрабатывать изменения на экране:

android:accessibilityLiveRegion="none || assertive || polite"

Или укажите групповой атрибут для нескольких элементов:

//атрибут для контейнера
android:focusable="true"
или
//доступно для API 28 и выше
android:screenReaderFocusable="true"

Цветовой контраст

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

Имплементация цветового контраста

  • Убедитесь, что передний и задний фон экранов не сливаются и четко различимы.
  • Для повышения контраста текста используйте атрибуты android:textColor (для выбора цвета текста) и android:background (для выбора фона).
  • Пользуйтесь 18 кеглем для обычного текста или 14 — для жирного.

Тестируйте Accessibility вашего приложения

Подходящие способы: 

  • Ручное тестирование: самостоятельно пройдитесь по всем экранам и их функциям.
  • Включите в настройках смартфона TalkBack или Accessibility Scanner и пройдитесь по вашему приложению.
  • Тестирование в коде: включите тестирование Accessibility в библиотеках Espresso и Robolectric.
init {
   AccessibilityChecks.enable().setRunChecksFromRootView(true)
}
  • Тестирование с помощью пользователей приложения: дайте попробовать другим пользователям и узнайте их мнение.
  • Используйте отчёт о предварительном запуске в Google Play.

Воспользуйтесь примером, написанным специально для этой статьи. Пример Accessibility scanner. Пример Talkback: 

Читайте больше полезных статей для начинающих Android-разработчиков:

А если затянет — приходите на факультет Android-разработки. В время учебы вы разработаете Android-приложение и выложите его в Google Play, даже если никогда не программировали. А также своите языки Java и Kotlin, командную разработку, Material Design и принципы тестирования.

androidтуториалпрограммирование
Нашли ошибку в тексте? Напишите нам.
Спасибо,
что читаете наш блог!