Доступность: вспомогательные приложения для iPhone / iOS - PullRequest
2 голосов
/ 04 декабря 2011

Можно ли создавать вспомогательные приложения для iPhone, которые работают так же, как VoiceOver? (Использование UIAccessibility API). Чтобы уточнить, мы хотели бы создать программу чтения с экрана в том же духе, что и VoiceOver. Или VoiceOver - единственная вспомогательная технология, которая может работать на устройстве iOS?

Ответы [ 3 ]

1 голос
/ 05 декабря 2011

Да, вы можете встроить свою собственную технологию чтения с экрана в свое собственное приложение.
Вы должны будете включить свою собственную библиотеку синтеза речи, такую ​​как CMU FLite, которая может звучать не так хорошо, как VoiceOver, а также создать подкласс или добавить категории.ко всем пользовательским интерфейсам и текстовым объектам вашего приложения, которые вы хотите поддерживать в своем личном вспомогательном поведении.

В магазине приложений для iOS имеется небольшое количество говорящих приложений, которые предоставляют ограниченную настраиваемую голосовую помощь в некоторых приложениях.просмотры, без VoiceOver необходимости.(Реклама: мой Talking Tuner - один из примеров.)

Ваш вспомогательный техник будет работать только внутри вашего собственного приложения и не сможет взаимодействовать с физической кнопкой или какими-либо другими приложениями, как Siri и VoiceOver.

1 голос
/ 08 декабря 2011

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

  • Программа чтения с экрана по определению должна иметь возможность доступа к пользовательскому интерфейсу и содержимому других приложений. Здесь есть целый ряд вопросов безопасности и конфиденциальности. Хотя есть несколько способов смягчить это - например. Android требует, чтобы вспомогательные технологии были специально предоставлены разрешения в панели управления - зачем вообще идти туда, если это не нужно?

  • Некоторые из функций VoiceOver, например перехват сенсорного ввода, вероятно, нуждаются в специальной поддержке системы; и опять же, это не то, что вы обычно хотите разрешить любому приложению. В некотором смысле, программа чтения с экрана является особым случаем приложения, и гораздо проще управлять этими случаями, когда программа чтения с экрана нуждается в специальной поддержке со стороны ОС, если она все внутренняя, чем если бы эту поддержку необходимо было распространить на сторонние организации через некоторые API, и этот API должен быть каким-то образом защищен от неправильного использования (см. Пункт выше), а API должен быть задокументирован и поддерживаться в будущих выпусках ОС.

  • Наличие одного средства чтения с экрана означает, что есть только одно приложение для проверки доступности. Это чрезвычайно упрощает жизнь для разработчика. На iOS протестируйте с VoiceOver, и все готово. В отличие от Windows, вы должны проверить, возможно, JAWS, NVDA и, возможно, WindowsEyes тоже. И некоторые из этих приложений делают то, что другие не делают, поэтому вашему приложению, возможно, придется обойти одно или другое.

  • Наличие средства чтения с экрана, входящего в состав пакета, также означает, что он работает с новыми функциями сразу после выпуска ОС. Apple может гарантировать, что новые функции iOS будут доступны с первого дня. Чтобы сделать это с помощью стороннего программного обеспечения для обеспечения доступности, они должны будут позволить третьим сторонам использовать новые функции ОС, что маловероятно для такой скрытной компании, как Apple.

0 голосов
/ 04 декабря 2011

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

[myView setIsAccessibilityElement:YES];
[myView setAccessibilityTraits:UIAccessibilityTraitImage];
[myView setAccessibilityLabel:NSLocalizedString(@"Image of dog", nil)];
...