【问题标题】:Modify Voice over accessibility traverse order in Objective C在 Objective C 中修改 Voice over 可访问性遍历顺序
【发布时间】:2022-11-10 10:29:22
【问题描述】:

在使用 Objective C 编写的 iOS 应用程序中,当画外音打开,左上角的取消按钮和右上角的保存按钮,这两个按钮在视图的同一个顶部栏中,现在顺序是取消->保存->其他视图在页面上。但是我需要在保存之前实际遍历和编辑所有其他元素,所以我需要将遍历顺序设置为取消->所有其他视图->保存按钮.

我看到了一些解决方案,它们创建了新视图来对元素进行分组或重新排序accessibilityElementOrders。但我只是改变一个按钮,有没有一种简单的方法,比如android:accessibilityTraversalAfter在目标 C 中?

【问题讨论】:

  • 您需要包含一些额外的细节 (MRE) 以更好地表达您正在处理的问题:按钮如何相对于彼此定位?您尝试从哪个方向转移焦点?会发生什么以及预期的行为是什么?
  • 左上角的取消按钮和右上角的保存按钮,这两个按钮在视图的同一个顶栏,现在的顺序是取消->保存->页面上的其他视图。但是我需要在保存之前实际遍历和编辑所有其他元素,因此我需要将遍历顺序设置为取消 -> 所有其他视图 -> 保存按钮。

标签: ios objective-c accessibility voiceover


【解决方案1】:

修改屏幕上元素的顺序很少是一个好主意,尤其是在 iOS 中。 VoiceOver 被许多不同能力的人使用,包括视力不佳的人,他们会对为什么顺序与显示不匹配感到困惑。甚至那些完全失明的人也会期望以其他应用程序的工作方式与您的应用程序进行交互。当您可以跳过操作时,将按钮置于顶部是一种非常常见的模式,但如果您必须先对内容进行操作,则将其置于底部。您应该尽可能地遵循这些约定,这样用户就不会对您的应用程序的行为感到惊讶(对于 AX 工具的用户来说这是一个更大的问题,因为恢复可能更具挑战性)。

VO 的工作方式是创建一个并行的对象层次结构并使用一些简单的规则(如几何顺序)遍历它。所以不,如果您坚持修改按钮的顺序,您将不得不修改该层次结构,这意味着类似于accessibilityElementOrders

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    • 2011-08-28
    • 2010-12-10
    • 1970-01-01
    相关资源
    最近更新 更多