我有一个带有水平按钮和标签的水平堆栈 View
当我打开画外音时,这些按钮中的文字根本无法阅读。所有其他工作正常。
下面是我如何设置我的代码。请指导如何启用这些。不确定为什么这不起作用
我的按钮文本和标签文本采用动态值
此外,如果任何关于使用 accessibilityIdentifier 的信息真的很有帮助。我找不到对此的明确解释
self.myHorizontalStackView.isAccessibilityElement = true
//Accessibility for Button
self.submitButton.isAccessibilityElement = true
self.submitButton.accessibilityTraits = UIAccessibilityTraitStaticText
self.submitButton.accessibilityLabel = screenControls.buttonTitle
//Accessibility for Label
self.addressLabel.isAccessibilityElement = true
self.addressLabel.accessibilityTraits = UIAccessibilityTraitStaticText
self.addressLabel.accessibilityLabel = screenControls.address1
最佳答案
所以问题看起来像是来自您的 stackView
本身。参见 this关于该主题的其他 SO 问题/答案:
If a container view is accessible, its child views are often obscured to avoid confusion about what the user is trying to interact with.
所以在这里,将您共享的代码段中的第一行更改为:
self.myHorizontalStackView.isAccessibilityElement = false
这应该使 VoiceOver 能够找到 stackView
的 subview 。
至于你的另一个问题:
Also if any info why the accessibilityIdentifier is used would really help. I couldn't find clear explanation for this
如果您询问标识符的用途,它主要用于测试目的。通过为您的 View 设置唯一标识符,您的测试可以轻松地使用辅助功能引擎来查找特定 View 并执行您想要测试的任何操作。就 VoiceOver 而言,accessibilityIdentifier
没有作用。
关于ios - 堆栈 View 中控件的辅助功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54501143/