2015-02-02 3 views
3

Я хочу включить поддержку доступности в моем приложении, где у меня есть сообщение проверки в строке (например, как показано ниже), когда пользователь вводит какие-то недопустимые данные. В моем приложении не отображается сообщение об ошибке.iOS: Поддержка доступности динамических меток/ошибок проверки?

Что может быть лучшим и интуитивно понятным способом информировать зрителя о нарушениях/слепых пользователя о неправильных вводах данных. например Имя пользователя & Несоответствие пароля, недействительный.

enter image description here

+0

Хороший вопрос, работающий над ответом ... не знаю, почему этот вопрос получит голоса за закрытие ??? – ChrisCM

+0

@ harshit2811 Вы нашли решение –

ответ

4

Во-первых, нет "правильный" способ сделать это. Есть всего несколько способов, которые работают. «Лучший» способ сделать это - для iOS иметь «требуемую» черту (IMO). Но это не поддерживается, поэтому мы должны работать с тем, что нам предоставили iOS ... подсказки и метки.

Шаг 1:

Сообщите пользователю, что требуется. Я бы сделал это, добавив информацию в подсказку. Мне нравится добавлять информацию в подсказку, которая нужна только незнакомым пользователям. «Властные пользователи» вашего приложения будут использовать то, что требуется для полей (при условии, что у вас будут обратные пользователи, некоторые виды просто «попадают и запускаются»). Но, судя по всему, не наводняйте пользователей ненужной информацией. Пользователи, которые часто посещают определенное представление, будут использовать то, что требуется, поэтому не забудьте указать важную информацию в подсказке. То, что вы хотите, - это озвучка, чтобы читать поля ввода текста следующим образом: «Текстовое поле« Электронная почта (accessibilityLabel) »(тип объекта), (пауза) Это поле необходимо. (Подсказка)« Не ждите, пока после сбоя предоставлять эту информацию пользователям VoiceOver. Его всегда следует устанавливать таким образом. Если тип отказа изменяется, измените подсказку, чтобы адаптироваться к этому конкретному типу отказа. Если вы хотите сохранить подсказку в синхронизации с красным цветом этикетки, вы можете рассмотреть переопределение функции из UIAccessibilityProtocol, чтобы вытащить эту информацию EX:

- (NSString*)accessibilityHint { 
    return myUILabel.text; 
} 

Это должно привести, чтобы сохранить подсказку объекта , и текст вашего UILabel в синхронизации.

Шаг 2:

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

Шаг 3:

Используйте следующую строку кода:

UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, anAccessibilityElement); 

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

+0

Спасибо ChirsCM, Step 2 и 3 - это то, что я ищу. У вас есть ссылка на приложение iOS в магазине приложений, в которой я загружаю его (надеюсь, что он будет БЕСПЛАТНО) и больше узнать о доступности. – harshit2811

+0

Я сейчас работаю над этим. Я дам вам знать, когда он будет доступен. – ChrisCM

+0

@ChrisCM - ваше приложение готово –