«Незрячие тоже заказывают такси»: как делают Android-приложения для тех, кто не видит
Android-разработчик из «Яндекс Go» рассказывает, сложно ли делать доступные приложения и где этому научиться.
Иллюстрация: Polina Vari для Skillbox Media
Виктор Вихров
об эксперте
Android-разработчик в «Яндекс Go». Три года преподавал в IT-школе Samsung для старшеклассников. Один из спикеров курса по цифровой доступности.
Незрячим и слабовидящим людям нужны доступные приложения. Неправильно думать, что они не покупают еду, не оплачивают счета и не сидят в Instagram* только потому, что не видят. У них те же потребности, что и у остальных людей, поэтому я верю, что доступным должен быть любой продукт.
Но не все компании хотят тратить на это ресурсы — некоторые из них считают, что слабовидящие не их целевая аудитория, и к тому же их слишком мало, но это только на первый взгляд. Таких людей много — нужно лишь обратиться к цифрам.
У незрячих и слабовидящих тоже есть друзья и знакомые, которым они могут сказать: «Это плохое приложение, не пользуйтесь». У таких людей большое сообщество, они постоянно обмениваются находками — например, советуют удобные приложения.
В законодательстве даже были подвижки в эту сторону — бизнес обязан дать всем пользователям версии с одинаковыми возможностями. Если в приложении для незрячих будет меньше функций, это потянет на иск. Но это уже юридические тонкости.
Сложно ли сделать приложение доступным
Нет универсальной формулы, с которой легко посчитать, сколько стоит разработать и поддерживать доступное приложение. Всё зависит от того, пишут ли проект с нуля или дорабатывают готовый, есть ли там нестандартные компоненты UI и недоступный интерфейс, который придётся переделывать.
Рассмотрю два варианта:
Сделать приложение с нуля. Их обычно пишут на стандартных компонентах Android, что-то уникальное разрабатывают редко. Чтобы сделать продукт доступным, нужно будет учесть некоторые нюансы, и это не отнимет у команды кучи ресурсов.
Доработать готовое. У старых проектов может быть много нестандартных элементов, иногда там нет дизайн-системы или её только внедряют. Поэтому процесс будет длинный — рекомендуется выделить основные сценарии приложения и поработать над ними, а потом делать доступными остальные.
Если есть дизайн-система, работать гораздо легче — UI приложения выстраивают из её готовых компонентов. Если сделать эти компоненты доступными, это отразится на интерфейсе всего приложения. Конечно, если в интерфейсе появятся новые уникальные элементы, для них всё придётся повторить, но поддерживать приложение будет не так уж трудно.
Главная цель доступности — чтобы незрячий мог пользоваться всеми функциями приложения. Но всё можно делать постепенно: например, в первую очередь сделать подписи элементов, а в следующих итерациях работать над другими частями интерфейса.
Кто отвечает за доступность: дизайнер или разработчик
Если компания решила сделать приложение доступным, нельзя допускать, чтобы в команде задачей занимался только условный Вася. Пока он будет внедрять доступность, другие разработчики добавят пять новых фич, и всё придётся делать заново.
Поэтому над доступностью приложения должна работать вся команда. Каждому разработчику нужно хотя бы поверхностно вникнуть в процесс и следовать набору правил. Иначе, если кто-то из команды забудет про доступность, система постепенно развалится.
Но первый, с кого начинается доступность, — UX-дизайнер. Он планирует, как всё будет выглядеть для конечного пользователя. Основная задача на Android-разработчиках, если в проектировании есть особенности — например, когда нужного компонента нет в стандартной библиотеке Android и его придётся долго создавать с нуля.
Бэкендеры тоже должны быть в курсе всего. Они иногда участвуют — например, добавляют со стороны бэкенда новые поля для подписей изображений.
Пример качественной работы — приложение IKEA, где все фотографии с интерьером подробно описаны. Если на фото стол и два бокала с вином, то в подписи так и указано. Задача бэкендеров была в том, чтобы добавить поля для описания изображения, дальше их озвучивает само приложение.
Как дела с доступностью в «Яндекс Go»
В 2018 году я попал на воркшоп, где услышал про доступность приложений, — спикерами там были Валерия Курмак, руководитель направления инклюзии в «Яндексе», и Анатолий Попко, один из авторов российского стандарта по доступности цифрового контента. Я узнал, как незрячие пользуются смартфоном, и увидел проблемы в своём приложении.
Я сразу пришёл к продакт-менеджеру «Яндекс Go» и сказал: «Смотри, я тут ходил на конференцию и понял — у нас не всё в порядке с доступностью, нужно что-то делать». Оказалось, это уже было в планах.
В 2019 году мы сделали приложение доступным, и в маркетах сразу появились положительные отзывы от незрячих. Но за пару лет мы добавили много нового в интерфейс и функции, и не всё это было доступно. В конце 2020 года мы поняли, что этим вопросом нужно заняться снова.
Сначала нас консультировала Валерия Курмак, потом у меня появились свои наработки, и я пошёл к ней на курс уже спикером. Весь 2021 год мы улучшали доступность в «Яндекс Go», я делился опытом с ребятами из команды.
Сейчас каждый разработчик делает вклад в доступность нашего приложения. Когда одна из команд вносит изменения в свою часть проекта, остальные тоже об этом узнают. Я уверен, что новая схема поможет избежать прошлых ошибок и приложение останется доступным навсегда.
У нас подписаны картинки и элементы, чтобы было понятно, зачем они нужны. Человек может отличить кнопку от свитча, понять, отмечен ли чекбокс. Благодаря тому, что все компоненты дизайн-системы доступные, разрабатывать новый UI стало проще.
Ко Дню незрячих 13 ноября 2021 года мы добавили в приложение «Яндекс Go» поддержку программ экранного доступа. Сейчас мы продолжаем следить, чтобы все текущие и новые элементы интерфейса оставались доступными.
Где научиться делать доступные приложения
Опытные разработчики уже многое делают на автомате: знают, какой подход лучше использовать в дизайне, как сверстать экран или какие проверки добавить. Но у них есть отличный шанс повысить свою экспертность — научиться делать доступные приложения.
Когда я знакомился с темой доступности, в интернете я нашёл только несколько непопулярных докладов. Но со временем всё больше материалов стал публиковать Google — у него есть документация с базовыми принципами и плейлист с короткими видео, где разбирают конкретные кейсы: например, как сделать доступным поле для ввода.
Полезная книга — Android Accessibility by Tutorials, её автор Виктория Гонда. Есть классная статья от Airbnb, где они рассказывают, как сделали приложение доступным. Надеюсь, скоро и я опубликую свои статьи про «Яндекс Go».
Я в восторге от того, как всё сделали разработчики мобильного приложения IKEA. Думаю, стоит ориентироваться на то, как доступность реализовали в Airbnb, YouTube и Netflix.
В ноябре 2021 года я выступил на конференции Mobius с докладом про адаптацию Android-приложений для незрячих, а Михаил Рубанов из Dodo Engineering — про доступность в iOS. Надеюсь, мы убедили кого-то внедрить это у себя в приложении. Ещё мы с Михаилом преподаём на курсе по цифровой доступности.
Хочется верить, что у многих разработчиков есть миссия делать мир лучше и создавать удобные сервисы. Чтобы продуктом могли пользоваться незрячие, нужно всего ничего — если это сделают все компании, эффект будет очень значительный.