Моя иерархия представлений: Родительское представление, представление контейнера, которое является подвидом родительского представления. Представление контейнера имеет несколько меток в виде пары ключ-значение. Например: Имя: Somename. Что-то вроде в разделе «Упростите информацию о специальных возможностях». Ярлыки без группировки.
Примечание. Мой вопрос касается macOS, я просто дал iOS для справки.
VoiceOver читает ключ и значение как по отдельности, но я хочу, чтобы они читались как одна метка и фокус также как одна метка.
Я пробовал setAccessibilityFrameInParentSpace
и NSAccessibilityElement
. Но все же VoiceOver читает и фокусируется отдельно. Код:
func setAccessibility() {
var elements = [NSAccessibilityElement]()
let groupedElement = NSAccessibilityElement()
groupedElement.setAccessibilityLabel("\(nameLabel.stringValue), \(nameValue.stringValue)")
//groupedElement.setAccessibilityFrame(nameLabel.frame.union(nameValue.frame))
groupedElement.setAccessibilityFrameInParentSpace(nameLabel.frame.union(nameValue.frame))
elements.append(groupedElement)
/*
nameLabel.setAccessibilityLabelUIElements(elements)
nameValue.setAccessibilityLabelUIElements(elements)
nameLabel.setAccessibilityLabel("\(nameLabel.stringValue), \(nameValue.stringValue)")
nameLabel.setAccessibilityFrame(nameLabel.frame.union(nameValue.frame))
*/
containerView.setAccessibilityLabelUIElements([elements])
}
Я сослался на macOS специальные возможности . Что-то еще мне не хватает. Для отдельных ярлыков установлена доступность. Как
setAccessibilityElement(true)
setAccessibilityRole(.staticText)
Оцените ваш вклад.
Спасибо