【问题标题】:What is accessibilityTextHeadingLevel supposed to do?无障碍文本标题级别应该做什么?
【发布时间】:2022-12-30 05:23:10
【问题描述】:

在我的 iOS 应用程序中,我使用 UILabels 作为标题;为了可访问性,我将他们的accessibilityTraits设置为.header。我认为我可以通过将每个 attributedText 设置为一个属性字符串来使标题和副标题的层次结构清晰,该字符串将 .accessibilityTextHeadingLevel 应用于其整个范围,但这似乎不会导致可访问性的任何差异经验。

.accessibilityTextHeadingLevel 应该有什么作用?我看到了关于如何设置它的文档,但没有说明它实际上是什么.

【问题讨论】:

    标签: ios accessibility voiceover


    【解决方案1】:

    我看到了有关如何设置它的文档,但没有说明它的实际作用。

    不幸的是,你是对的......关于它的目的没有明确的解释。

    但是,声明此属性仅适用于符合 UITextInput 协议例如 UITextView。

    .accessibility Text Heading Level 应该有什么影响?

    该密钥背后的基本原理可能是提供与网页中的结构相同的结构。

    我不确定这是否相关,但它看起来像是另一个与 VoiceOver 一起使用可能很有趣的工具,即使我不相信它的效率。

    要注意此属性的效果,请尝试使用以下代码来收听“标题级别 x” 选择标题行时在文本视图中。

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

    这个属性的不明确目标的论点是它在 WWDC 系列中没有被引入:用一个简单的例子简单地提到它就足够了。

    最后,我希望本次回归能够让您满意地回答您最初的问题,并让您能够继续在您的应用程序中实现 VoiceOver。

    我写了一个开发者技术支持事件(DTSI #796394403)对于这个问题,Apple 的回答是:

    1. 目前无法快速到达每个具有此属性的元素(例如转子项目).

    2. 从技术上讲,UIAccessibilityTextAttributeHeadingLevel 指的是 h 值,类似于 HTML 标记 h1h2 的值。

      最后,我得出的结论是:

      • 将此属性用于 UITextField 没有意义,只有 UITextView 可能与指出某些元素的重要性有关(只有这2个对象符合UITextInput协议).
      • 没有设计关于直接访问具有此属性的元素(没有原生转子项目).
      • .accessibilityTextHeadingLevel 的效果仅依赖于在特定条件下指定文本的标题级别,因为它必须遵守的协议。

    【讨论】:

    • 感谢您提供这些信息 - 但它提出的问题多于它回答的问题!为什么代码 cmets 说这只适用于 UITextInput 而文档 (developer.apple.com/documentation/foundation/nsattributedstring/…) 却没有?在输入字段中设置标题级别有什么意义?不是问你,而是问 Apple。
    • 同意混乱。使用 Voiceover 转子设置,您可以将其设置为“标题”,然后向上/向下滑动以导航到下一个标题,但它不会宣布标题等级在本机应用程序中。它只宣布标题级别在网站上(对于 H1、H2、H3 等)。
    猜你喜欢
    • 2022-01-22
    • 1970-01-01
    • 2021-07-15
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    • 2017-10-01
    • 2011-02-23
    • 2017-07-23
    相关资源
    最近更新 更多