Реализация поддержки Switch Control в мобильном приложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

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

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

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Реализация поддержки Switch Control в мобильном приложении
Средний
~2-3 дня
Часто задаваемые вопросы

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

Этапы разработки

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

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    495

Реализация поддержки Switch Control в мобильном приложении

Switch Control (iOS) и Switch Access (Android) — технологии управления устройством через внешний переключатель: кнопка, педаль, датчик дыхания. Используется людьми с ограниченной моторикой, которые не могут взаимодействовать с сенсорным экраном.

Механика: система последовательно подсвечивает элементы интерфейса (сканирование); пользователь активирует переключатель в нужный момент. Второй переключатель — или выбор нужного элемента, или вход в подменю действий.

Что нужно для поддержки

iOS — Switch Control

Switch Control использует тот же accessibility tree, что и VoiceOver. Если VoiceOver работает корректно — Switch Control в большинстве случаев тоже. Но есть нюансы.

Группировка элементов. При сканировании система сначала подсвечивает группы (контейнеры), потом входит внутрь. Если карточка товара не сгруппирована как единый элемент — Switch Control последовательно проходит каждый subview: изображение, название, цену, кнопку. Слишком много шагов для одного действия.

accessibilityElements на контейнере + accessibilityActivate() override для кастомного действия по активации — уменьшают количество шагов сканирования.

Кастомные жесты. Свайп по карточке для удаления — стандартный UIKit UISwipeGestureRecognizer Switch Control не вызовет. Нужно добавить UIAccessibilityCustomAction:

let deleteAction = UIAccessibilityCustomAction(
    name: "Удалить",
    target: self,
    selector: #selector(deleteItem)
)
accessibilityCustomActions = [deleteAction]

Custom Actions появляются в меню Switch Control при активации элемента.

Scanning style. По умолчанию — автосканирование (элементы подсвечиваются автоматически). Пользователь может включить ручное сканирование. Убедиться, что фокус не «застревает» в бесконечном цикле внутри одного контейнера.

Android — Switch Access

Switch Access настраивается через Settings → Accessibility → Switch Access. Два основных режима: Linear Scanning (последовательный обход) и Row-Column Scanning (сначала строки, потом столбцы).

android:focusable="true" и корректные android:nextFocusDown/Up/Left/Right — определяют порядок навигации. Без явных nextFocus атрибутов система строит порядок по позиции на экране — может быть нелогичным для сложных layout.

В Compose: Modifier.focusRequester() и Modifier.focusOrder { down = nextFocusRequester } — программный контроль порядка фокуса для Switch Access.

Кастомные действия аналогично iOS: ViewCompat.setAccessibilityDelegate с переопределением onInitializeAccessibilityNodeInfo — добавляем AccessibilityActionCompat для нестандартных операций.

Тестирование без реального пользователя

На iOS: Settings → Accessibility → Switch Control → Add New Switch → Screen → Full Screen. Теперь тап по экрану = активация переключателя. Можно проверить поток сканирования самостоятельно.

На Android: Settings → Accessibility → Switch Access → Use Volume Keys as Switches. Volume Up = переключиться к следующему элементу, Volume Down = выбрать.

Полное тестирование требует реального устройства — эмулятор не поддерживает Switch Control/Access в полном объёме.

Сколько это занимает

Если VoiceOver/TalkBack уже реализованы — Switch Control в большинстве случаев работает автоматически. Основная работа — добавить UIAccessibilityCustomAction/AccessibilityActionCompat для жестовых действий и проверить порядок сканирования. 2-3 дня. Если accessibility tree не проработан — нужно начинать с VoiceOver/TalkBack аудита.