accessibilityIdentifier

accessibilityIdentifier

我有一个带有按钮的水平stackview,并水平标记

当我打开语音切换功能时,这些按钮中的文字根本看不到。所有其他一切正常。

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

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

同样,如果有任何信息说明为什么使用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关于此主题的其他问题/答案:

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

因此,在这里,将您共享的代码段的第一行更改为:

self.myHorizontalStackView.isAccessibilityElement = false

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

至于您的其他问题:

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

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

09-11 11:22