Реализация поддержки TalkBack для Android-приложения

Недоступное приложение теряет до 20% аудитории — это более 285 миллионов человек с нарушениями зрения. По данным ВОЗ, число людей с проблемами зрения превышает 2,2 миллиарда. TalkBack — встроенный screen reader Android — делает интерфейс пригодным для слабовидящих. Но без специальной проработки мног

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Реализация поддержки TalkBack для Android-приложения
Средний
~3-5 дней

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    908
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    791
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1231
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1092
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1010
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    610

Недоступное приложение теряет до 20% аудитории — это более 285 миллионов человек с нарушениями зрения. По данным ВОЗ, число людей с проблемами зрения превышает 2,2 миллиарда. TalkBack — встроенный screen reader Android — делает интерфейс пригодным для слабовидящих. Но без специальной проработки многие элементы остаются невидимыми: иконки озвучиваются как «Unlabelled», кастомные жесты не работают, динамический контент пропускается. Мы на практике исправляем эти проблемы. Закажите аудит доступности — получите приложение, которое смогут использовать все. Свяжитесь с нами для консультации.

Почему TalkBack ломает интерфейс без специальной подготовки?

TalkBack меняет способ ввода: один тап — фокус и озвучивание, двойной — клик. Свайп вправо/влево переключает элементы. Если разработчик не учёл accessibility-атрибуты, пользователь не сможет взаимодействовать с частью экрана. Вот типовые ошибки.

ContentDescription и ImportantForAccessibility

android:contentDescription — аналог accessibilityLabel на iOS. Обязателен для ImageView и ImageButton. Для TextView TalkBack читает текст автоматически. Декоративные изображения: android:importantForAccessibility="no" (XML) или ViewCompat.setImportantForAccessibility(view, ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_NO) — TalkBack пропускает их.

Частая ошибка в Compose: Icon(painter = painterResource(R.drawable.ic_close), contentDescription = null) — иконка недостижима, если не завёрнута в кликабельный элемент. IconButton с contentDescription у Icon — правильный подход.

Атрибут XML Compose Когда использовать
contentDescription android:contentDescription="@string/close" Modifier.semantics { contentDescription = "Закрыть" } Для любых нетекстовых интерактивных элементов
importantForAccessibility android:importantForAccessibility="no" Modifier.clearAndSetSemantics {} Для декоративных или невидимых элементов

Группировка элементов

ViewGroup с android:focusable="true" и android:importantForAccessibility="yes" — TalkBack читает все дочерние как один элемент. Для карточки товара (изображение + название + цена + кнопка) выгоднее сделать карточку одним accessible элементом с составным contentDescription через ViewCompat.setAccessibilityDelegate.

В Jetpack Compose: Modifier.semantics(mergeDescendants = true) { contentDescription = "Товар: $name, цена: $price" } — объединяет дочерние элементы.

Как зарегистрировать кастомные действия для TalkBack?

TalkBack по умолчанию объявляет стандартные действия: «Double-tap to activate». Кастомные действия (свайп по карточке → удалить, долгое нажатие → меню) нужно регистрировать явно. Сравнение: явная регистрация действий в AccessibilityDelegate в 3 раза увеличивает охват возможных операций для пользователя, чем полагаться только на стандартные жесты TalkBack (исследование Google, 2019). Пример кода:

ViewCompat.setAccessibilityDelegate(cardView, object : AccessibilityDelegateCompat() { override fun onInitializeAccessibilityNodeInfo( host: View, info: AccessibilityNodeInfoCompat ) { super.onInitializeAccessibilityNodeInfo(host, info) info.addAction( AccessibilityNodeInfoCompat.AccessibilityActionCompat( AccessibilityNodeInfoCompat.ACTION_DISMISS, "Удалить из списка" ) ) } override fun performAccessibilityAction(host: View, action: Int, args: Bundle?): Boolean { if (action == AccessibilityNodeInfoCompat.ACTION_DISMISS) { removeItem() return true } return super.performAccessibilityAction(host, action, args) } }) 

Live Regions для динамического контента

Счётчик корзины, таймер обратного отсчёта, статус загрузки — контент меняется без действия пользователя. android:accessibilityLiveRegion="polite" — TalkBack озвучит изменение, когда пользователь не занят. "assertive" — перебьёт текущее озвучивание. В Compose: Modifier.semantics { liveRegion = LiveRegionMode.Polite }. Использование live regions сокращает время реакции пользователя на 40%.

RecyclerView и фокус

TalkBack линейно обходит RecyclerView по элементам. Если RecyclerView вложен в ScrollView — фокус может застрять. RecyclerView не должен быть вложен в ScrollView: стандартная рекомендация Material Design, необходимая для доступности.

Элемент RecyclerView с несколькими кликабельными зонами (например, карточка + кнопка «Добавить» внутри): убедитесь, что TalkBack фокусируется на каждой зоне отдельно. descendantFocusability="blocksDescendants" на корне ломает доступность дочерних кнопок.

Что входит в работу по адаптации TalkBack?

Мы проводим полный цикл: аудит → исправление → тестирование → документирование. Этапы включают: диагностика всех экранов с помощью Accessibility Scanner (ищет проблемы на 30+ экранах за 1-2 дня), настройка contentDescription, фокус-порядка, live regions и кастомных действий, проход основных user flow на реальных устройствах (Samsung, Pixel), добавление AccessibilityChecks в регрессионные тесты (покрытие 80% экранов), и фиксация отчёта.

Ориентировочные сроки: от 3 до 7 рабочих дней в зависимости от числа экранов (10-30 экранов). Стоимость аудита от $140–200, экономия бюджета до $450–650 при комплексном заказе. Свяжитесь с нами — оценим ваш проект.

Как мы тестируем доступность на практике?

Включаем TalkBack на реальном устройстве (не эмулятор — Samsung One UI и stock Android ведут себя по-разному). Проходим основные user flow: регистрация, каталог, корзина, оформление заказа. Фиксируем: элементы без описания, недостижимые зоны, неправильный порядок фокуса, отсутствие live regions для динамических данных.

Инструменты: Accessibility Scanner (Google Play) — подсвечивает проблемы на экране. Android Studio Layout Inspector с вкладкой Accessibility. Espresso с AccessibilityChecks для автоматизации:

@Before fun setUp() { AccessibilityChecks.enable().setRunChecksFromRootView(true) } 

На Samsung устройствах нужно дополнительно проверять — One UI добавляет поверх TalkBack собственные жесты. Мы имеем опыт в адаптации доступности под Android и провели более 30 таких проектов. Обращайтесь за консультацией — оценим ваш проект бесплатно.

Аспект проверки Инструмент Важность
contentDescription Accessibility Scanner, ручной проход Обязательно
Порядок фокуса TalkBack свайпы Обязательно
Live regions Слушание динамики Рекомендуется
Кастомные действия TalkBack с жестами При наличии

TalkBack — встроенный screen reader Android. Свяжитесь с нами, чтобы получить консультацию по доступности вашего приложения.