Доступность нативных мобильных приложений¶
Требования применяются к пользовательскому интерфейсу нативных приложений iOS
и Android. Уровни обязательности определены в корневом README.md.
MOB-AXS-001. Семантика вспомогательных технологий¶
Уровень: MUST
Применяется к: интерактивному и значимому визуальному элементу
Элемент должен иметь платформенную accessibility role, доступное имя, состояние и значение, соответствующие видимому поведению. Декоративный элемент не должен создавать отдельный фокус. Порядок VoiceOver и TalkBack должен сохранять смысл и последовательность сценария.
Пользовательское действие не должно быть доступно только через визуальный признак или необъявленный жест.
Обоснование¶
Без платформенной семантики вспомогательная технология не может определить назначение элемента и результат действия.
Проверка¶
- автоматическая проверка accessibility tree;
- ручной проход VoiceOver и TalkBack;
- тест порядка фокуса и изменения состояния.
Исключения¶
Стандартный платформенный компонент MAY использовать встроенную семантику без дублирующего label, если она однозначна в контексте.
MOB-AXS-002. Масштабирование текста и визуальная различимость¶
Уровень: MUST
Применяется к: пользовательскому тексту, состоянию и критичному контролу
Текст должен поддерживать системный размер шрифта вплоть до accessibility-
категорий без потери обязательного содержимого или действия. Контраст обычного
текста должен быть не ниже 4.5:1, крупного текста и значимого нетекстового
контрола — не ниже 3:1.
Цвет не должен быть единственным способом передать состояние, ошибку или результат.
Обоснование¶
Фиксированный layout и недостаточный контраст делают сценарий недоступным пользователям с ослабленным зрением.
Проверка¶
- screenshot или UI tests на минимальном и максимальном системном размере;
- автоматическое измерение контраста;
- review состояний без цветового различия.
Исключения¶
Логотип и неизменяемое стороннее изображение MAY не соответствовать порогу, если необходимая информация доступна отдельно.
MOB-AXS-003. Размер цели и альтернативный ввод¶
Уровень: SHOULD
Применяется к: touch target и жесту
Touch target следует делать не меньше 44×44 pt на iOS и 48×48 dp на
Android. Сложному или многопальцевому жесту следует предоставлять доступную
альтернативу через обычный control.
Вибрация, звук и движение не следует использовать как единственное подтверждение результата.
Обоснование¶
Достаточная цель и альтернативный ввод уменьшают моторный барьер без навязывания конкретного визуального размера элемента.
Проверка¶
- измерение accessibility frame;
- тест каждого жеста альтернативным способом;
- проверка результата с отключёнными vibration, audio и animation.
Исключения¶
Встроенный системный control MAY использовать платформенный размер, если увеличение target нарушает нативный контракт компонента.
MOB-AXS-004. Блокирующая проверка критичных сценариев¶
Уровень: MUST
Применяется к: критичному пользовательскому сценарию и изменению общей навигации либо design system
CI должен выполнять доступные автоматические accessibility checks. До release критичный сценарий должен пройти ручную проверку VoiceOver на iOS и TalkBack на Android для затронутой платформы. Результат должен фиксировать версию приложения, ОС, сценарий и обнаруженные нарушения.
Обоснование¶
Автоматическая проверка обнаруживает структуру и свойства, но не подтверждает связность реального сценария через screen reader.
Проверка¶
- контролируемое удаление label в UI test;
- воспроизводимый сценарий VoiceOver и TalkBack;
- проверка блокировки release для критичного нарушения.
Исключения¶
Платформа, не затронутая изменением общего контракта, MAY переиспользовать результат проверки того же неизменившегося UI.