Я — Денис, Middle Android-разработчик в «Лайв Тайпинге». В этой статье я расскажу об инструменте тестирования accessibility в Android приложениях.
Введение
Исследования показывают, что максимальный процент выявленных проблем с accessibility составляет 40-50%. Поэтому ручное тестирование всегда необходимо. Но для этих 40-57% есть несколько инструментов, которые можно использовать. Один из них — Accessibility Scanner, и в этой статье я расскажу о том, как протестировать с его помощью ваше приложение. Давайте начнем с того, что это такое.
Accessibility Scanner
Accessibility Scanner — полезный инструмент для полуавтоматического тестирования доступности приложения. Он может выявить проблемы в следующих категориях:
размер цели касания;
кликабельные элементы;
контрастность текста и изображения.
Он также предлагает исправления для некоторых из обнаруженных проблем, и предоставляет дополнительную информацию о них. Тем не менее, он не находит все возможные проблемы доступности и, таким образом, не гарантирует хорошей доступности вашего пр��ложения. Ручное тестирование все еще необходимо.
Замечательно то, что вы можете использовать Accessibility Scanner с любым приложением для Android — это может быть нативное приложение для Android или созданное с использованием кроссплатформенных технологий, таких как Flutter или React Native. Или это может быть даже PWA — Progressive Web App.
Установка
Чтобы воспользоваться Accessibility Scanner, его нужно сначала загрузить из Google Play.

После запуска сканера будет предложено его активировать в настройках специальных возможностей.

На телефонах Samsung нужно выбрать пункт «Установленные приложения» и выбрать «Сканер доступности».

После вам необходимо дать доступ к управлению работой экрана. И нажать на «тогл» для запуска сканера.

Тестирование
Accessibility Scanner предоставляет две возможности — сканировать один экран или записывать несколько экранов. Перейдите к приложению, затем нажмите кнопку Accessibility Scanner на экране. Откроется меню, в котором вы можете выбрать запись, снимок (один экран) или отключить сканер доступности.
Нажмите кнопку записи, чтобы записать поток или несколько экранов. Затем перемещайтесь по экранам. Если в вашем телефоне включена вибрация, вы должны ощущать легкую вибрацию каждый раз, когда приложение делает снимок экрана.
Завершить запись можно нажатием той же кнопки, которая теперь превратилась в кнопку «Стоп». Если она не видна на экране, то можно, например, открыть Быстрые настройки (сдвиньте их вниз от верхней части экрана).
Итак, вы сделали снимок или записали поток. Следующий шаг — посмотреть результаты и интерпретировать их.
Сканер доступности предоставляет обзор экранов:

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

Как правило, в описании проблем также содержатся идеи о том, как их устранить. Подробнее о различных проблемах, их возможных причинах и способах устранения вы можете узнать из материалов, упомянутых в следующем разделе. Например, приложение для покупки шаурмы.

Найденные проблемы и вариант их решения можно посмотреть кликнув на выделенный элемент или в списке категорий.

Android studio
Но даже без сканера можно узнать, на сколько ваш UI accessibility friendly. Достаточно открыть XML или Compose вёрстку и «провалиться» в меню предупреждений/ошибок. Тут IDE сама подскажет у какого элемента какая проблема. И даже выдаст ссылку на документацию.

Итог
Google создал материалы, позволяющие узнать больше о сканере доступности. Есть два хороших текстовых ресурса:
А если вы предпочитаете смотреть видео, у них также есть видео на YouTube.
Благодарю за внимание!

Денис Попков
Middle Android разработчик в «Лайв Тайпинге»
Если вы нашли неточности/ошибки в статье или просто хотите дополнить её своим мнением — то прошу в комментарии! Или можете написать мне в Telegram — t.me/MolodoyDenis.