У Dictus iOS нашли хороший пример: функция вроде бы есть, но для VoiceOver её нет.
Smart Mode включается длинным нажатием на кнопку микрофона, потом перетаскиванием на строку в веере и отпусканием. В обычном сценарии это быстрый жест. Но VoiceOver перехватывает долгий drag, а строки веера ещё и не являются accessibility elements. В итоге незрячий пользователь не может выбрать режим диктовки вообще.
Это не “чуть неудобнее”. Это другой продукт: зрячий пользователь меняет режим прямо в клавиатуре, а пользователь VoiceOver остаётся без основного действия.
Что здесь важно для интерфейсов:
• жест с drag не должен быть единственным способом выполнить действие;
• для iOS стоит добавить accessibility actions / rotor actions или отдельное действие в списке режимов;
• кнопка микрофона должна иметь понятное имя, состояние и текущий выбранный режим;
• тестировать надо не “кнопка фокусируется”, а полный путь: найти микрофон, выбрать режим, начать диктовку, услышать состояние, отменить или изменить выбор.
Если интерфейс держится на красивом жесте, простой контрольный вопрос такой: что сделает человек, который управляет телефоном не пальцем по экрану, а VoiceOver, switch control или голосом?
Источник: getdictus/dictus-ios#397
Post #262
3