设置showsTouchWhenHighlighted (例如,通过IB选项“显示高亮显示”),在没有标题的按钮上设置将改变VoiceOver描述。读取可访问性标签后,VoiceOver发出嗡嗡声,并宣布对图像的描述。有什么方法可以禁用这种行为吗?
发布于 2021-02-03 15:57:14
将accessibilityContainerType值设置为UIAccessibilityContainerTypeSemanticGroup是有效的,这很好,但我不确定这是否是该元素的目标。
即使按钮my被视为容器,我也理解这个实例属性是处理基于数据的容器的。
我调查了你的问题,这引起了我的好奇心,但不幸的是,我无法用Apple找到合适的解决方案。
首先,我认为这个解决方案可能会有所帮助,但它并没有像你在评论中提到的那样起作用.谢谢。
显然,当使用showsTouchWhenHighlighted属性时,在按钮中添加了一个视图,该视图呈现辉光触摸⟹--例如,由于Xcode中的Debug层次结构,您可以检测到这是一个UIButtonBarPressedIndicator图像。
即使您已经以编程方式更改了按钮图像的可访问性特性属性,但这个新映像似乎会将其设置为默认值。
因此,为了避免VoiceOver使用屏幕识别和读取一些无用的信息,我做了一些非常丑陋但有效的东西,例如在viewDidAppear中达到您的目标(请参阅此https://a11y-guidelines.orange.com/en/mobile/ios/development/#element-trait的“基本操作”表)
myButton.subviews.forEach{$0.accessibilityTraits = .none}由于本机的实现问题或任何人都能理解的简单代码行,这个解决方案删除了按钮中所有可能的VoiceOver屏幕识别.我仍然感兴趣,如果你能解释一下为什么你的解决方案是有效的,拜托。
发布于 2021-02-02 20:01:33
设置accessibilityContainerType = UIAccessibilityContainerTypeSemanticGroup。
https://stackoverflow.com/questions/66014921
复制相似问题