При разработке мобильного приложения мы столкнулись с реальной проблемой: пользователи со слабым зрением не могли читать текст даже при включённой тёмной теме. Контрастность 4.5:1, требуемая WCAG 2.1, оказалась недостаточной. Штрафы за недоступность могут достигать 500 000 рублей, а экономия на переделках после внедрения HC — до 200 000 рублей. High Contrast Mode обеспечивает контрастность 7:1 — это на 55% выше стандартного уровня, а по сравнению с тёмной темой контраст выше в 1.5 раза. На iOS — Increase Contrast, на Android — High Contrast Text или High Contrast Mode у Samsung. Требования раздела 4.2 App Store Review Guidelines обязывают адаптировать интерфейс для людей с ограничениями. Мы реализуем такой режим под ключ за 1–3 дня.
Почему высококонтрастный режим отличается от тёмной темы?
Тёмная тема меняет цветовую палитру, но контраст остаётся средним. HC-режим принудительно делает фон максимально светлым, текст — максимально тёмным, убирает декоративные элементы, градиенты и тени. Это необходимо для пользователей со слабым зрением, когда даже тёмная тема не обеспечивает читаемость. Тестирование читаемости на реальных устройствах подтверждает: при HC текст остаётся читаемым даже на ярком солнце.
Как iOS обрабатывает Increase Contrast?
Система автоматически адаптирует системные цвета (UIColor.label, UIColor.secondaryLabel) под HC. Кастомные цвета из Asset Catalog поддерживают High Contrast вариант: добавляем HC-вариант — и цвет переключается без кода. Для SwiftUI используем @Environment(\.colorSchemeContrast):
@Environment(\.colorSchemeContrast) var contrast
var textColor: Color {
contrast == .increased ? .black : .secondary
}
Также подписываемся на UIAccessibility.darkerSystemColorsStatusDidChangeNotification для динамического обновления.
Как проверить High Contrast на Android?
На Android «High Contrast Text» — системный оверлей, который невозможно контролировать из приложения, но можно проверить через AccessibilityManager.isHighTextContrastEnabled(). Samsung One UI предоставляет полноценный режим с изменением системных цветов. В Jetpack Compose isSystemInDarkTheme() не реагирует на HC, нужна отдельная проверка:
val am = getSystemService(AccessibilityManager::class.java)
val isHighContrast = am?.isHighTextContrastEnabled ?: false
| Платформа | Системный флаг | Доступность для разработчика | Особенности |
|---|---|---|---|
| iOS | UIAccessibility.isDarkerSystemColorsEnabled |
Подписка через Notification | Автоматическое применение к системным цветам |
| Android (AOSP) | AccessibilityManager.isHighTextContrastEnabled() |
Только чтение | Применяет системный оверлей, приложение не контролирует |
| Samsung One UI | Встроенный режим | Недоступен через SDK | Меняет системные цвета, приложение адаптируется через theme |
Что нужно адаптировать в High Contrast режиме?
| Компонент | Стандартный режим | High Contrast |
|---|---|---|
| Цвет текста на фоне | 4.5:1 | 7:1 |
| Тонкие границы | 1px серый | 2px чёрный |
| Градиенты и изображения | Полупрозрачные | Сплошной фон + подложка |
| Тени и blur | UIVisualEffectView | Непрозрачный фон |
| Декоративные иконки | Серые полупрозрачные | Только функциональные, чёрные |
Адаптация цветовой схемы включает создание HC-вариаций для всех кастомных цветов. Это особенно важно для компонентов, где контрастность падает ниже 7:1.
Типичные ошибки при адаптации
Рассмотрим несколько распространённых ошибок, которые возникают при внедрении HC.
- Разделители толщиной 1px на белом фоне исчезают при HC — увеличивайте до 2px и делайте чёрными. В одном из проектов (финансовое приложение) мы обнаружили, что после включения HC все разделители исчезли — пришлось увеличить их толщину до 2px и изменить цвет на #000.
- Frosted glass (
UIVisualEffectView) не обеспечивает контраст — заменяйте на сплошной непрозрачный фон. - Тонкие шрифты (weight: 300) на светлом фоне теряют читаемость — используйте weight 400+.
Контрастность 7:1 — это уровень AAA для нормального текста. Для крупного текста (≥18pt или ≥14pt bold) достаточно 4.5:1. Рекомендуем соблюдать AAA для всего текста, чтобы охватить максимум пользователей.
Процесс работы
- Анализ: проверяем текущую реализацию цветовой схемы и компонентов.
- Проектирование: создаём HC-вариации цветов в Asset Catalog или кодом.
- Реализация: добавляем проверки системных флагов, заменяем эффекты.
- Тестирование: проверяем контрастность на симуляторах и реальных устройствах (3+ модели).
- Деплой: обновляем приложение в App Store и Google Play.
Что входит в работу
- Полный аудит текущего интерфейса на соответствие WCAG 2.1.
- Создание HC-цветовой схемы (iOS Asset Catalog + SwiftUI, Android colors.xml).
- Доработка кастомных компонентов (кнопки, ячейки, экраны).
- Тестирование на 2–3 реальных устройствах.
- Документация по использованию HC-режима для поддержки.
Опыт нашей команды — более 5 лет в мобильной разработке и 20+ проектов с интеграцией accessibility-фич. Мы гарантируем, что после адаптации ваше приложение пройдёт модерацию по требованиям доступности. Свяжитесь с нами для бесплатной консультации. Закажите адаптацию под высококонтрастный режим сегодня.
Срок: 1–3 дня в зависимости от объёма кастомных UI-компонентов. Стоимость рассчитывается индивидуально. Получите консультацию по адаптации вашего приложения или закажите бесплатный аудит accessibility.







