Николай Морев написал о повышении доступности iOS-приложений (на примере Яндекс Go).
— Недостаточно разово разметить интерфейс для скринридера. Без системного подхода в развивающемся продукте такие доработки неизбежно деградируют;
— Учёт требований доступности увеличивает трудозатраты примерно на 10%;
— Что можно сделать быстро: а) подписать элементы, состоящие из картинки; б) объединить связанные элементы; в) добавить признак «Кнопка» элементам, на которые можно нажать;
— В приложении могут быть тупики, из которых нельзя выйти с помощью VoiceOver. Оказавшийся в тупике пользователь обычно закрывает приложение и запоминает этот сценарий, чтобы больше не попасться;
— Тупик может появиться из-за не поддерживаемых VoiceOver способов взаимодействия. Например, когда экран выбора адресов закрывается только свайпом. Какие-то экраны из-за этого, наоборот, невозможно открыть;
— Для борьбы с тупиками на все экраны можно добавить: а) кнопки закрытия; б) стандартный звук открытия нового экрана; в) стандартный для VoiceOver жест закрытия экрана «зигзаг двумя пальцами»;
— Для экранов, открываемых только свайпом, можно добавить дополнительные способы открытия. Например, экран с карточками в Яндекс Go полностью раскрывается свайпом вверх. Для VoiceOver он раскрывается автоматически, когда фокус достигает последней видимой карточки и пользователь пытается пройти дальше;
— Если элемент, обновляющийся каждые несколько секунд (через сколько минут приедет такси), находится в фокусе, каждое обновление скринридер будет зачитывать. Чтобы он не частил, можно добавить признак updatesFrequently;
— Если обновившийся элемент не в фокусе, важное изменение можно объявить с помощью announcement;
— Когда происходит выбор варианта из горизонтального списка (например, из списка тарифов), хорошо подходит элемент adjustable, позволяющий легко переключаться между вариантами вертикальным свайпом;
— Чтобы скринридер не принимал число вроде 1812 за год, можно добавить в него разделители разрядов. Скринридер не озвучивает разделители, соответствующие пользовательской локали (в русской это запятая).
Post #965
5.97K
- 👍 13