如何为UIControl组设置单个VoiceOver

时间:2017-11-01 22:22:18

标签: voiceover uiaccessibility

我在UIButton中嵌入了UILabelUIStackView,在Interface Builder中看起来像这样:

enter image description here

通过设置UIStackView的{​​{1}}和isAccessibilityElement属性,我可以将accessibilityLabelUIButton分组到一个VoiceOver分组,类似于:

enter image description here

但是,使用此配置时,UILabel(上图中的灰色圆圈)变得无法使用,导致控件无效。

是否有办法维持此分组,同时仍然允许UIButton可以点击?

1 个答案:

答案 0 :(得分:2)

默认情况下,辅助功能元素的accessibilityActivationPoint是其框架的中点。当按钮和标签分组为新元素时,组合框架的中点不再位于按钮的边界内。

您可以通过覆盖堆栈视图accessibilityActivationPoint来解决此问题,以便它返回按钮的激活点。请注意,此属性位于屏幕坐标中,因此如果视图在屏幕上移动(例如滚动),则仅仅设置一次就不够了。

此外,对于分组元素,"表现"就像给辅助技术用户的按钮一样,你应该给它一个按钮的accessibilityTraits。可以找到所有列表的完整列表here

相关问题