ios - 堆栈 View 中控件的辅助功能

标签 ios swift accessibility

我有一个带有水平按钮和标签的水平堆栈 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/

相关文章:

ios - 在 iOS8 中使用 Swift 点击时如何隐藏/显示 tabBar

ios - 类名与Framework中的类冲突

iphone - iOS SDK写在UIImage上绘制文本

swift - 保存sknodes数组

json - Swift:如何在异步 urlsession 函数中返回一个值?

html - 让屏幕阅读器读取跨度文本的正确方法是什么

html - HTML5 中是否不需要 ALT 属性的值来通过验证?

javascript - HTML 文本输入 - 阻止 Windows 8 触摸键盘?

ios - 从 AppDelegate 呈现 ViewController

iphone - 如何在项目build设置中指定 DEBUG 定义?