ios 可访问性文本标题级别应该做什么?

jrcvhitl  于 2022-12-30  发布在  iOS
关注(0)|答案(1)|浏览(90)

在我的iOS应用程序中,我使用UILabels作为标题;为了便于访问,我将它们的accessibilityTraits设置为.header。我以为可以通过将每个文件的attributedText设置为一个属性化字符串(该字符串的整个范围都应用了.accessibilityTextHeadingLevel)来使文件头和子文件头的层次结构更加清晰,但这似乎不会在可访问性体验方面产生任何差异。
.accessibilityTextHeadingLevel应该有什么效果?我看到了关于如何设置它的文档,但没有说明它实际 * 做 * 什么。

mzillmmw

mzillmmw1#

我看到了关于如何设置它的文档,但没有说明它实际做什么。
不幸的是,你是对的......关于它的用途还没有明确的解释。
然而,声明该属性仅用于符合UITextInput协议的视图,例如UITextView。

.accessibilityTextHeadingLevel应该具有什么效果?
该键背后的基本原理可以是提供与例如网页中的结构相同的结构。
我不确定这是否相关,但它看起来像另一个工具,可能是有趣的使用语音,即使我不相信它的效率。
要注意此属性的效果,请尝试以下代码,以便在文本视图中选择标题行时监听 “heading level x”

@IBOutlet weak var myTextView: UITextView!

override func viewDidAppear(_ animated: Bool) {
    
    var myString = AttributedString()
    
    for i in 0...6 {
        
        let titleStr = AttributedString("title \(i)\n\n",
                                        attributes: AttributeContainer([.accessibilityTextHeadingLevel:i]))
        myString.append(titleStr)
    }
    
    myTextView.attributedText = NSAttributedString(myString)
    super.viewDidAppear(animated)
}

这个属性的不明确目标的论据是它没有在WWDC系列中引入:用一个简单的例子简单地提到它就足够了。
最后,我希望这个回报是令人满意的回答您的第一个问题,并允许您继续实现您的应用程序中的画外音。
我针对此问题编写了开发人员技术支持事件 (DTSI #796394403),Apple回答说:
1.目前还没有办法快速访问每个具有此属性的元素 (例如转子项目)
1.从技术上讲,UIAccessibilityTextAttributeHeadingLevel引用的h值类似于HTML标记h1h2的值。
最后,我得出结论:

  • UITextField使用此属性没有意义,只有UITextView可能与指出某些元素的重要性有关 (只有这两个对象符合UITextInput协议)
  • 未设计任何与直接访问具有该属性 (无本地转子项目) 的元件有关的内容。
  • .accessibilityTextHeadingLevel的效果仅依赖于在特定条件下指定文本的标题级别,这是由于必须遵守的协议。

相关问题