Экранные читатели
Считыватели экрана – это вспомогательные технологии, которые преобразуют содержимое экрана в речь или обновляемый текст Брайля. Они позволяют пользователям, которые не могут видеть экран или пользуются дополнительным сенсорным методом, взаимодействовать с вашей игрой или приложением. Считыватели экрана интерпретируют визуальные элементы, предоставляют слуховую обратную связь о том, что находится на экране, и позволяют перемещаться с помощью доступных сенсорных жестов или команд клавиатуры.
Пользователи экранных чтецов
Слепые и слабовидящие люди составляют основную базу пользователей. Однако пользователи экранных читателей также включают людей с нарушениями обучения, такими как дислексия, которые более эффективно обрабатывают слуховую информацию, некоторых людей с аутизмом, которые получают выгоду от мультисенсорного ввода, и людей с временными нарушениями зрения.
Некоторые пользователи сочетают экранные считыватели с увеличением экрана. Другие слушают на высокой скорости, пока просматривают экран. Модели использования экранных считывателей так же разнообразны, как и люди, которые на них зависят.
Как работают экранные чтения
Программы чтения с экрана превращают визуальный интерфейс в звуковой или тактильный. Они перемещаются по иерархия доступности, параллельная структура, описывающая визуальные элементы в текстовом формате.
Когда экранный читатель встречает приложение, он запрашивает его иерархию доступности через операционную систему. OS запрашивает приложение через платформу APIs. Приложение должно отвечать с информацией, такой как описания элементов, состояния и отношения.
Некоторые программы для чтения экрана перемещаются по иерархии доступности в порядке прохождения сначала глубины (переходя вниз по дочерним элементам, прежде чем переходить к родственным элементам), в то время как другие программы перемещаются в соответствии с расположением элементов на экране.
Когда пользователь перемещает фокус по доступным элементам, экранный читатель запрашивает свойства каждого элемента и объявляет соответствующую информацию.
На следующей диаграмме показан поток объявлений:
Your application's accessibility code provides information about the elements on the screen
→ The user navigates via the screen reader to a visual element (by touch, swipe, arrow key, etc.)
→ The screen reader queries the element's properties via the platform's accessibility API
→ The screen reader announces that information to the user
→ The user hears the element's description, value, role, state, and available actions
Что экранные читатели требуют от приложения
Экранные читатели требуют конкретной информации о каждом доступном элементе. Эта информация организована в структуру данных, называемую узел доступности, свойства которых подпадают под следующие категории.
Для всех доступных элементов требуются следующие свойства:
| Свойство | Описание |
|---|---|
| Этикетка | Название элемента или краткое описание (например, текст кнопки или описание значка). Это основная информация, которую объявляет экранный читатель. |
| Рамка | Положение и размер элемента на экране, используемый для сенсорной навигации и индикатора фокуса. |
Следующие свойства являются факультативными для соответствующих доступных элементов:
| Свойство | Описание |
|---|---|
| Роль | Тип элемента (например, кнопка, ползунок, флажок или текстовое поле). Это информирует программу чтения экрана о поведении элемента и модели взаимодействия. |
| Значение | Текущее значение или содержимое элемента (например, текстовое содержимое или значение слайдера). |
| Состояние | Текущее состояние элемента (например, отключено, установлено или развернуто). |
Следующие свойства предоставляют сведения о навигации.
| Свойство | Описание |
|---|---|
| Hierarchy | Отношения родительского и дочернего элемента, используемые для линейной навигации и группировки. |
| Видимость | Должны ли экранные читатели «видеть» и фокусироваться на элементе. |
Возможности взаимодействия определяются следующими свойствами:
| Свойство | Описание |
|---|---|
| Действия | Что пользователи могут делать с элементом (например, активировать, настроить, отключить или развернуть). |
| Подсказки | Дополнительный контекст о взаимодействии с элементом. |
Шаблоны взаимодействия пользователя с экранным читателем
Ввод пользователя
Когда активен экранный читатель, модели взаимодействия устройства полностью меняются. Например, одно нажатие, которое обычно активирует кнопку, вместо этого объявляет о кнопке пользователям экранного читателя. Скольжение, которое обычно прокручивается, вместо этого переходит к следующему элементу. Пользователи экранного читателя используют совершенно иные словари жестов или клавиатурные команды для навигации и взаимодействия со своими устройствами.
Вашему приложению не нужно обрабатывать конкретные касания или ввод с клавиатуры (которые могут варьироваться в зависимости от платформы, программы для чтения экрана и предпочтений пользователя). Когда активирована программа для чтения экрана, операционная система перехватывает все вводные данные пользователя и переводит их в стандартные события доступности, такие как activate или dismiss. Вашему приложению нужно реагировать только на эти события высокого уровня.
Навигация пользователей
Пользователи экранных редакторов разрабатывают эффективные стратегии навигации. Понимание этих моделей помогает вам создавать более интуитивные интерфейсы.
В следующей таблице приведены типичные схемы навигации экранных редакторов:
| Навигационная схема | Описание | Руководство по проектированию |
|---|---|---|
| Линейная разведка | Передвигается по всем элементам последовательно. Новые пользователи часто исследуют этот путь вначале. | Убедитесь, что ваш порядок фокуса следует визуальному макету и логическому потоку. |
| Ориентировочная навигация | Переходы между основными разделами. Пользователи переходят непосредственно к заголовкам, кнопкам или полям формы. | Используйте семантические роли, чтобы включить этот шаблон. |
| Поиск и сканирование | Позволяет пользователям найти конкретный контент по ключевому слову. Экранные читатели предлагают функцию поиска внутри страниц. | Предоставьте четкие, краткие метки, которые включают интуитивные термины. |
| Ротор или меню быстрой навигации | Категоризирует элементы по типу. Пользователи могут перечислять все кнопки, все заголовки или все контейнеры отдельно. | Правильное назначение роли позволяет использовать эту функцию. |
Информирование экранных редакторов
Программы чтения с экрана строят мысленную модель вашего интерфейса на основе иерархии доступности. Когда интерфейс меняется, программу нужно уведомить, чтобы она обновила модель и сообщила об этом пользователю.
В следующей таблице приведена сводка общих типов изменений, требующих уведомлений экранного чтеца.
| Изменить тип | Когда это происходит | Что делать |
|---|---|---|
| Изменение экрана или вида | Пользователь переходит на новый экран, открывает диалог или переключает вкладки. | Обновите иерархию доступности и отправьте нужные события, чтобы программа чтения с экрана заново выстроила своё представление об интерфейсе и перевела фокус на новое содержимое. |
| Прокрутка и видимость содержания | Элементы прокручиваются вверх или вниз. | Обновите иерархию доступности, чтобы программа чтения экрана знала, какие элементы доступны в данный момент. |
| Динамические обновления контента | Появляется индикатор загрузки, обновляется строка прогресса или заполняются результаты поиска. | Объявляйте значимые переходы состояния, которые влияют на понимание пользователем происходящего или на доступные ему действия. Объявлять нужно не каждую анимацию. |
| События вне фокуса пользователя | Завершается загрузка, истекает таймер или возникает ошибка вне текущего фокуса пользователя. | Используйте объявления доступности для передачи этой информации без изменения фокуса. |
Общие проблемы с экранным чтением
В следующей таблице перечислены наиболее распространенные проблемы при внедрении поддержки экранных читателей, а также стратегии их решения:
| Вызов | Проблема | Решение |
|---|---|---|
| Индивидуальные управления | Экранные читатели ожидают стандартные роли и поведение. Слайдер, который выглядит как циферблат, все равно должен вести себя как слайдер. | Назначайте соответствующую роль и сопоставляйте пользовательские взаимодействия со стандартными шаблонами доступности. |
| Перекрывающиеся элементы | Считыватели экрана используют границы элементов экрана для сенсорной навигации. Перекрывающиеся границы мешают пространственным отношениям. | Убедитесь, что доступные элементы имеют точные, не перекрывающиеся прямоугольники рамки. |
| Быстрые изменения состояния | Слишком много объявлений перегружает пользователей. | Отдавайте приоритет объявлениям, которые меняют доступные действия или влияют на понимание пользователем текущего состояния. Не каждое покадровое обновление нужно проговаривать. |
| Большое количество элементов | Плотные интерфейсы затрудняют пользователям экранных читателей поиск соответствующего контента. | Не все объекты в игровой сцене должны быть доступны. Приоритизировать ключевые интерактивные элементы. |
Проверка поддержки экранного чтения
Всегда тестируйте с помощью реальных экранных считывателей на ваших целевых платформах — включите их в настройках устройства и перейдите к полной навигации от начала до конца. Реальные экранные считыватели выявляют проблемы, которые симуляторы или автоматизированные инструменты упускают из виду, и подтверждают, что ваша реализация работает так, как предполагается для реальных пользователей.
Используйте следующий контрольный список для базовой проверки:
- Каждый соответствующий элемент объявляет свой ярлык, значение и роль
- Линейная навигация (например, клавишами со стрелками) следует логическому порядку
- Государственные изменения объявляют соответствующим образом
- Все действия элементов работают через жесты или команды экранного читателя
- Элементы, скрытые меню или накладками, недоступны
- Модальные диалоги правильно фокусируются
- Отменяемые накладки объявляют и закрывают правильно