【问题标题】:Accessibility for controls in stack view堆栈视图中控件的可访问性
【发布时间】:2019-02-04 13:11:32
【问题描述】:

我有一个带有水平按钮和标签的水平堆栈视图

当我打开画外音时,这些按钮中的文字根本无法阅读。所有其他工作正常。

以下是我如何设置我的代码。请指导如何启用这些。不知道为什么这不起作用

我的按钮文本和标签文本采用动态值

此外,如果有任何信息为什么使用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

【问题讨论】:

标签: ios swift accessibility


【解决方案1】:

所以问题看起来像是来自您的stackView 本身。请参阅this 关于该主题的其他 SO 问题/答案:

如果容器视图是可访问的,它的子视图通常会被遮盖以避免混淆用户试图与之交互的内容。

因此,在这里,将您共享的 sn-p 中的第一行更改为:

self.myHorizontalStackView.isAccessibilityElement = false

这应该使 VoiceOver 能够找到 stackView 的子视图。

至于你的其他问题:

此外,如果有任何信息为什么使用accessibilityIdentifier 真的会有所帮助。我找不到明确的解释

如果您要询问标识符的用途,它主要用于测试目的。通过为您的视图设置唯一标识符,您的测试可以轻松地使用可访问性引擎来查找特定视图并执行您想要测试的任何操作。对于 VoiceOver,accessibilityIdentifier 没有任何作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    相关资源
    最近更新 更多