Понимание Доступности на iOS
С начала основанные на iOS устройства включали несколько функций, сделавших устройство простым для всех использовать, включая визуальную голосовую почту, большие шрифты в Почте, и увеличивающий веб-страницы, фотографии и карты. С добавлением следующих функций доступности для людей с визуальной, слуховой, и физической нетрудоспособностью еще проще использовать их устройства:
Изменение масштаба. Увеличивает весь экран устройства.
Белый на Черном цвете. Инвертирует цвета на дисплее.
Моно Аудио. Комбинирует звук левых и правых каналов в моно сигнал, играемый с обеих сторон.
Говорите автотекст. Говорит текстовый iPhone исправлений и предложений делает, в то время как пользователи вводят.
Речевое Управление. Позволяет пользователям выполнять телефонные вызовы и воспроизведение iPod управления с помощью речевых команд.
Кроме того, слабовидящие пользователи могут полагаться на VoiceOver, чтобы помочь им использовать свои устройства.
Доступность и VoiceOver
VoiceOver является инновационной читающей экран технологией Apple, дающей пользовательский контроль их устройствами, не имея необходимость видеть экран. VoiceOver делает это путем выступания в качестве посредника между пользовательским интерфейсом приложения и касанием пользователя, предоставления слышимых описаний элементов и действий в приложении. Когда VoiceOver активен, пользователи не должны волноваться о случайном удалении контакта или вызове телефонного номера, потому что VoiceOver говорит им, где они находятся в пользовательском интерфейсе, какие меры они могут принять, и каковы результаты тех действий будут.
Приложение доступно, когда все элементы пользовательского интерфейса, с которыми могут взаимодействовать пользователи, доступны. Элемент пользовательского интерфейса доступен, когда он должным образом сообщает о себе как элемент доступности.
Чтобы быть полезным, однако, доступный элемент пользовательского интерфейса должен предоставить точную и полезную информацию о своей экранной позиции, имени, поведении, значении и типе. Это - информация, которую VoiceOver говорит с пользователями. iOS SDK содержит интерфейс программирования и инструменты, помогающие Вам гарантировать, что элементы пользовательского интерфейса в Вашем приложении и доступны и полезны (для получения дополнительной информации, посмотрите Доступность iOS API и Инструменты).
Почему необходимо сделать приложение доступным
Необходимо сделать приложение для iPhone доступным для пользователей VoiceOver потому что:
Это увеличивает Вашу базу пользователей. Вы упорно работали для создавания большого приложения; не упускайте возможность для предоставления доступа к нему доступным еще для большего количества пользователей.
Это позволяет людям использовать Ваше приложение, не видя экран. Пользователи с ухудшением зрения могут использовать Ваше приложение с помощью VoiceOver.
Это помогает Вам адресовать инструкции по доступности. Различные руководящие органы создают инструкции для доступности, и создание Вашего приложения для iPhone, доступного для пользователей VoiceOver, может помочь Вам встретить их.
Это - правильное решение.
Важно знать, что поддержка доступности не влияет на Вашу возможность обновить и создать красивые приложения для iPhone. Интерфейс программирования Доступности UI позволяет Вам добавлять тонкий слой функциональности, не изменяющей появление Вашего приложения или вмешивающейся в его основную логику.
Доступность iOS API и Инструменты
iOS 3.0 и позже включает интерфейс программирования Доступности UI, который является легким API, помогающим приложению предоставить всю информацию, VoiceOver должен описать пользовательский интерфейс и помочь слабовидящим людям использовать приложение.
Интерфейс программирования Доступности UI является частью UIKit и реализован на стандартных средствах управления UIKit и представлениях по умолчанию. Это означает, что при использовании стандартных средств управления и представлений большая часть работы подавания доступной заявки выполнена для Вас. В зависимости от уровня настройки в Вашем приложении, делая его доступным может быть столь же простым как предоставление точных и полезных описаний Ваших доступных элементов пользовательского интерфейса.
iOS SDK также обеспечивает инструменты, чтобы помочь Вам подать свою доступную заявку:
Интерфейсная область инспектора Разработчика, обеспечивающая простой способ предоставить дескриптивную информацию о доступности, в то время как Вы разрабатываете свои файлы пера. Чтобы узнать больше, как сделать это, посмотрите информацию о Пользовательском атрибуте Определения в Интерфейсном Разработчике.
Инспектор доступности, выводящий на экран информацию о доступности, встроенную в пользовательский интерфейс Вашего приложения, и позволяющий Вам проверять эту информацию, когда Вы запускаете свое приложение в Средстве моделирования iOS. Чтобы изучить, как исследовать информацию о доступности в Вашем приложении, посмотрите Доступность Отладки в Средстве моделирования iOS с Инспектором Доступности.
Кроме того, можно использовать сам 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.
Пользователи VoiceOver полагаются на метки и подсказки, которые они слышат, чтобы помочь им использовать Ваше приложение. Поэтому особенно важно удостовериться, что каждый доступный элемент пользовательского интерфейса в Вашем приложении предоставляет точные и информативные описания. Для стандартных средств управления UIKit и представлений, информация об атрибуте по умолчанию является часто надлежащей, но необходимо проверить эти элементы для проверки. Для пользовательских элементов управления и представлений, Вам, вероятно, придется предоставить некоторых или всю эту информацию самим. Для некоторых инструкций по тому, как сделать это, посмотрите Обрабатывающие Полезные Метки и Подсказки.