我在UIButton
中嵌入了UILabel
和UIStackView
,在Interface Builder中看起来像这样:
通过设置UIStackView
的{{1}}和isAccessibilityElement
属性,我可以将accessibilityLabel
和UIButton
分组到一个VoiceOver分组,类似于:
但是,使用此配置时,UILabel
(上图中的灰色圆圈)变得无法使用,导致控件无效。
是否有办法维持此分组,同时仍然允许UIButton
可以点击?
答案 0 :(得分:2)
默认情况下,辅助功能元素的accessibilityActivationPoint
是其框架的中点。当按钮和标签分组为新元素时,组合框架的中点不再位于按钮的边界内。
您可以通过覆盖堆栈视图accessibilityActivationPoint
来解决此问题,以便它返回按钮的激活点。请注意,此属性位于屏幕坐标中,因此如果视图在屏幕上移动(例如滚动),则仅仅设置一次就不够了。
此外,对于分组元素,"表现"就像给辅助技术用户的按钮一样,你应该给它一个按钮的accessibilityTraits
。可以找到所有列表的完整列表here。