Понимание Доступности на iOS

С начала основанные на iOS устройства включали несколько функций, сделавших устройство простым для всех использовать, включая визуальную голосовую почту, большие шрифты в Почте, и увеличивающий веб-страницы, фотографии и карты. С добавлением следующих функций доступности для людей с визуальной, слуховой, и физической нетрудоспособностью еще проще использовать их устройства:

Кроме того, слабовидящие пользователи могут полагаться на VoiceOver, чтобы помочь им использовать свои устройства.

Доступность и VoiceOver

VoiceOver является инновационной читающей экран технологией Apple, дающей пользовательский контроль их устройствами, не имея необходимость видеть экран. VoiceOver делает это путем выступания в качестве посредника между пользовательским интерфейсом приложения и касанием пользователя, предоставления слышимых описаний элементов и действий в приложении. Когда VoiceOver активен, пользователи не должны волноваться о случайном удалении контакта или вызове телефонного номера, потому что VoiceOver говорит им, где они находятся в пользовательском интерфейсе, какие меры они могут принять, и каковы результаты тех действий будут.

Приложение доступно, когда все элементы пользовательского интерфейса, с которыми могут взаимодействовать пользователи, доступны. Элемент пользовательского интерфейса доступен, когда он должным образом сообщает о себе как элемент доступности.

Чтобы быть полезным, однако, доступный элемент пользовательского интерфейса должен предоставить точную и полезную информацию о своей экранной позиции, имени, поведении, значении и типе. Это - информация, которую VoiceOver говорит с пользователями. iOS SDK содержит интерфейс программирования и инструменты, помогающие Вам гарантировать, что элементы пользовательского интерфейса в Вашем приложении и доступны и полезны (для получения дополнительной информации, посмотрите Доступность iOS API и Инструменты).

Почему необходимо сделать приложение доступным

Необходимо сделать приложение для iPhone доступным для пользователей VoiceOver потому что:

Важно знать, что поддержка доступности не влияет на Вашу возможность обновить и создать красивые приложения для iPhone. Интерфейс программирования Доступности UI позволяет Вам добавлять тонкий слой функциональности, не изменяющей появление Вашего приложения или вмешивающейся в его основную логику.

Доступность iOS API и Инструменты

iOS 3.0 и позже включает интерфейс программирования Доступности UI, который является легким API, помогающим приложению предоставить всю информацию, VoiceOver должен описать пользовательский интерфейс и помочь слабовидящим людям использовать приложение.

Интерфейс программирования Доступности UI является частью UIKit и реализован на стандартных средствах управления UIKit и представлениях по умолчанию. Это означает, что при использовании стандартных средств управления и представлений большая часть работы подавания доступной заявки выполнена для Вас. В зависимости от уровня настройки в Вашем приложении, делая его доступным может быть столь же простым как предоставление точных и полезных описаний Ваших доступных элементов пользовательского интерфейса.

iOS SDK также обеспечивает инструменты, чтобы помочь Вам подать свою доступную заявку:

Кроме того, можно использовать сам VoiceOver для тестирования доступности приложения. Чтобы изучить, как протестировать Ваше приложение с VoiceOver, посмотрите Тестовую Доступность на Своем Устройстве с VoiceOver.

Интерфейс программирования доступности UI

Интерфейс программирования Доступности UI состоит из двух неофициальных протоколов, одного класса, функции и ряда констант:

  • UIAccessibility неофициальный протокол. Объекты, реализующие UIAccessibility отчет протокола их состояние доступности (т.е. доступны ли они) и предоставляет дескриптивную информацию о себе. Стандартные средства управления UIKit и представления реализуют UIAccessibility протокол по умолчанию.

  • UIAccessibilityContainer неофициальный протокол. Этот протокол позволяет подкласс UIView для создания некоторых или всех объектов, это содержит доступный как отдельные элементы. Когда объекты, содержавшиеся в таком представлении, не являются самостоятельно подклассами, это особенно полезно UIView и, поэтому, не автоматически доступны.

  • UIAccessibilityElement класс. Этот класс определяет объект, который может быть возвращен через UIAccessibilityContainer протокол. Можно создать экземпляр UIAccessibilityElement представлять элемент, который не автоматически доступен, таков как объект, не наследовавшийся от UIView, или не существующий объект.

  • UIAccessibilityConstants.h заголовочный файл. Этот заголовочный файл определяет константы, описывающие черты, которые элемент доступности может показать и уведомления, которые может отправить приложение.

Атрибуты доступности

Атрибуты, описывающие доступный элемент пользовательского интерфейса, составляют ядро из Доступности UI API. VoiceOver предоставляет информацию атрибута пользователям, когда они получают доступ или взаимодействуют с управлением или представлением.

Атрибуты являются также компонентами интерфейса программирования, который Вы, наиболее вероятно, будете использовать. Это вызвано тем, что атрибуты инкапсулируют информацию, дифференцирующую одно управление или представление от другого. Для стандартных средств управления UIKit и представлений, Вы, возможно, просто должны были бы гарантировать, что информация об атрибуте по умолчанию является подходящей для Вашего приложения; для пользовательских элементов управления и представлений, Вам, возможно, придется предоставить большую часть информации атрибута.

Интерфейс программирования Доступности UI определяет следующие атрибуты:

  • Метка. Короткое, локализованное слово или фраза, кратко описывающая управление или представление, но не идентифицирующая тип элемента. Примеры, «Добавляют» или «Игра».

  • Черты. Комбинация одной или более отдельных черт, каждая из которых описывает единственный аспект состояния элемента, поведения или использования. Например, элемент, ведущий себя как клавиша на клавиатуре и это в настоящее время выбирается, может быть охарактеризован комбинацией Клавиши на клавиатуре и Выбранных черт.

  • Подсказка. Краткая, локализованная фраза, описывающая результаты действия с элементом. Примеры - то, “Добавляет, что заголовок” или “Открывает список покупок”.

  • Кадр. Кадр элемента в координатах экрана, данного CGRect структура, указывающая расположение на экране и размер элемента.

  • Значение. Текущая стоимость элемента, когда значение не представлено меткой. Например, меткой для ползунка могла бы быть «Скорость», но ее текущая стоимость могла бы составить «50%».

Элементы доступности обеспечивают содержание для атрибутов, предоставляется ли то содержание по умолчанию или Вами. Элемент доступности всегда обеспечивает содержание для атрибутов метки и кадра. Атрибут кадра требуется, потому что элемент доступности должен всегда быть в состоянии сообщить о своей позиции в пользовательском интерфейсе. (Обратите внимание на то, что объект, наследовавшийся от UIView включает атрибут кадра по умолчанию.) Атрибут метки требуется, потому что он содержит имя или описание элемента доступности, который говорит VoiceOver.

Если эти атрибуты не применяются к элементу, элемент доступности не требуется, чтобы обеспечивать содержание для подсказки и атрибутов черт. Например, элемент, не выполняющий действие, не должен обеспечивать подсказку.

Элемент доступности предоставляет информацию для атрибута значения только, когда содержание элемента изменяемо и не может всегда описываться меткой. Например, текстовое поле, содержащее адрес электронной почты, могло бы иметь метку «Адрес электронной почты», но его содержание зависит от ввода данных пользователем и обычно формы «username@address». Рисунок 1-1 показывает часть информации, которую мог бы предоставить VoiceOver.

Рисунок 1-1  VoiceOver говорит информацию, предоставленную доступными элементами

Пользователи VoiceOver полагаются на метки и подсказки, которые они слышат, чтобы помочь им использовать Ваше приложение. Поэтому особенно важно удостовериться, что каждый доступный элемент пользовательского интерфейса в Вашем приложении предоставляет точные и информативные описания. Для стандартных средств управления UIKit и представлений, информация об атрибуте по умолчанию является часто надлежащей, но необходимо проверить эти элементы для проверки. Для пользовательских элементов управления и представлений, Вам, вероятно, придется предоставить некоторых или всю эту информацию самим. Для некоторых инструкций по тому, как сделать это, посмотрите Обрабатывающие Полезные Метки и Подсказки.