辅助功能VoiceOver不适用于UILabel

时间:2018-03-26 07:55:57

标签: ios swift xcode accessibility

我遇到无障碍VoiceOver无效的情况。

我的customView包含UIImage(imageSample)和UILabel(labelSample)

同样的CustomView用于应用内的两个不同屏幕。

屏幕1 - 这有效! 查看 - > MainScrollView - > MainStackView - > OptionAStackView - > CustomView

屏幕2 - 这不起作用! 查看 - > MainScrollView - > MainStackView - > ContainerView - > StackView - > StackView - > OptionBStackView - > CustomView

标签的voiceOver在屏幕1上运行,但在屏幕2上失败。有没有人知道为什么VoiceOver会在屏幕2上失败?具有多个堆栈视图的布局是否会影响VoiceOver?画外音在处理多个堆栈视图时有问题。

注意:为UI标签启用了辅助功能。并且在层次结构中禁用此标签上方的视图。

1 个答案:

答案 0 :(得分:1)

使用大量分层的对象时,辅助功能非常糟糕。如果您MainScrollView的多个子视图将.isAccessibilityElement设置为true,则customView下方的视图可能是正在被选中的视图。要检查是否是这种情况,您可以点击第二个屏幕将焦点放在屏幕上,然后向右滑动以继续将焦点移动到视图层次结构中。如果您设法最终到达第二个屏幕上的contentView,那么您就知道焦点最初会落在与您想要的不同的图层上。

我的猜测是ContainerView是焦点的初始着陆位置。如果您设置ContainerView.isAccessibilityElement = false,则可以解决您的问题。