Реализация высококонтрастного режима в мобильном приложении

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

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

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

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Реализация высококонтрастного режима в мобильном приложении
Средний
от 1 дня до 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

Реализация высококонтрастного режима в мобильном приложении

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

На iOS — Settings → Accessibility → Display & Text Size → Increase Contrast. На Android — Settings → Accessibility → High Contrast Text (только текст) или High Contrast Mode (Samsung One UI).

Как реагировать на системный запрос

iOS

UIAccessibility.isDarkerSystemColorsEnabled — проверяет включённый Increase Contrast. Меняется в реальном времени; подписываемся на UIAccessibility.darkerSystemColorsStatusDidChangeNotification.

Система автоматически адаптирует системные цвета (UIColor.label, UIColor.secondaryLabel) к High Contrast. Кастомные цвета из Asset Catalog поддерживают High Contrast вариант: в .xcassets для каждого цвета есть Appearances → High Contrast. Добавляем HC-вариант — и цвет автоматически переключается без кода.

Для SwiftUI: @Environment(\.colorSchemeContrast) — возвращает .standard или .increased. Используем для условного выбора цвета или веса шрифта:

@Environment(\.colorSchemeContrast) var contrast

var textColor: Color {
    contrast == .increased ? .black : .secondary
}

Android

Configuration.HIGHTEXT_ADJUSTMENT_UNSET vs заданное значение — не работает как флаг High Contrast системно (в отличие от iOS). На Android «High Contrast Text» — это системный override, который Android применяет поверх приложения: текст автоматически рисуется с обводкой (text outline) для повышения читаемости на любом фоне. Это нельзя контролировать из приложения, но можно проверить через AccessibilityManager.isHighTextContrastEnabled() (API 26+):

val am = getSystemService(AccessibilityManager::class.java)
val isHighContrast = am?.isHighTextContrastEnabled ?: false

Samsung One UI предоставляет полноценный High Contrast Mode — там меняются системные цвета. В Jetpack Compose isSystemInDarkTheme() не поймает HC на Samsung; нужна проверка через AccessibilityManager.

Flutter

MediaQuery.of(context).highContrasttrue при включённом HC (iOS и Android). В ThemeData можно задать отдельную ColorScheme для HC:

ThemeData theme = MediaQuery.of(context).highContrast
    ? ThemeData(colorScheme: highContrastColorScheme)
    : ThemeData(colorScheme: defaultColorScheme);

Что нужно адаптировать

Цвет текста на фоне. WCAG 2.1 требует контрастность 4.5:1 для обычного текста и 3:1 для крупного (18pt+). В HC-режиме целевой порог — 7:1. Инструмент проверки: Color Contrast Analyser (desktop) или Xcode Accessibility Inspector.

Тонкие границы и разделители. 1px линии на белом фоне исчезают при HC. Нужно увеличить толщину или изменить цвет.

Градиенты и изображения как фон под текст. В HC текст поверх градиента теряет читаемость. Добавляем текстовую подложку или убираем градиент в HC-режиме.

Тени и blur-эффекты. Frosted glass, UIVisualEffectView, BackdropFilter в Flutter — в HC не контрастны. Заменяем на сплошной непрозрачный фон.

Декоративные иконки. В HC убираем иконки-украшения, оставляем только функциональные с достаточным контрастом.

Срок: 1-3 дня. Зависит от количества кастомных компонентов и от того, реализована ли тёмная тема — она часто становится основой для HC. Стоимость рассчитывается индивидуально.