macOS как сгруппировать и сфокусировать более одной метки во время специальных возможностей VoiceOver - PullRequest
0 голосов
/ 08 июля 2020

Моя иерархия представлений: Родительское представление, представление контейнера, которое является подвидом родительского представления. Представление контейнера имеет несколько меток в виде пары ключ-значение. Например: Имя: 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)

Оцените ваш вклад.

Спасибо

...