Установите другое поведение, когда VoiceOver включен, в виде стека с помощью кнопок - PullRequest
0 голосов
/ 04 октября 2018

У меня есть пользовательский вид стека с двумя кнопками рядом.Когда VoiceOver включен, я хочу, чтобы эти две кнопки читались как некая вкладка, например «Кнопка X Элемент 1 из 2» и «Кнопка Y Элемент 2 из 2».Возможно ли это?

Мой контроллер вида имеет следующее:

@IBOutlet weak var buttonAdd: UIButton!
@IBOutlet weak var buttonDelete: UIButton!
@IBOutlet weak var selector: CustomSelectorStackView!

Я попытался добавить в свой viewDidLoad:

accessibilityElements = [buttonAdd, buttonDelete]

и изменить черты кнопок, нобезуспешно.

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

1 Ответ

0 голосов
/ 12 октября 2018

Вы можете использовать свойство метки доступности, чтобы VoiceOver мог читать все, что вы хотите:

let buttons = [buttonAdd, buttonDelete]

for button in buttons {
    button.accessibilityLabel = "\(button), Item \(x) of \(buttons.count)"
}

Вы также можете добавить его какподсказка (но имейте в виду, что некоторые пользователи VoiceOver отключают подсказки):

for button in buttons {
    button.accessibilityLabel = button
    button.accessibilityHint = "Item \(x) of \(buttons.count)"
}

В этих примерах предполагается, что видимый текст понятен пользователю VoiceOver, например «Кнопка добавления» или «Кнопка удаления».Если текст не понятен или вы использовали изображение вместо текста, используйте accessibilityLabel для назначения понятного текста.Однако в этом примере вы не сможете выполнить итерацию, вам нужно будет назначить ярлык каждой кнопке отдельно.Затем вы можете либо добавить номер вкладки к метке, либо выполнить итерацию, чтобы назначить их подсказке.

buttonAdd.accessibilityLabel = "Add Button"
buttonDelete.accessibilityLabel = "Delete Button"

По сути, есть несколько способов выполнить то, что вы описали, и это лишь несколькопримеры.

Это руководство очень полезно: http://a11y -guidelines.orange.com / mobile_EN / dev-ios.html

...