首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止UIButton showsTouchWhenHighlighted更改VoiceOver描述

防止UIButton showsTouchWhenHighlighted更改VoiceOver描述
EN

Stack Overflow用户
提问于 2021-02-02 17:43:28
回答 2查看 254关注 0票数 1

设置showsTouchWhenHighlighted (例如,通过IB选项“显示高亮显示”),在没有标题的按钮上设置将改变VoiceOver描述。读取可访问性标签后,VoiceOver发出嗡嗡声,并宣布对图像的描述。有什么方法可以禁用这种行为吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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的“基本操作”表)

代码语言:javascript
复制
myButton.subviews.forEach{$0.accessibilityTraits = .none}

由于本机的实现问题或任何人都能理解的简单代码行,这个解决方案删除了按钮中所有可能的VoiceOver屏幕识别.我仍然感兴趣,如果你能解释一下为什么你的解决方案是有效的,拜托。

票数 1
EN

Stack Overflow用户

发布于 2021-02-02 20:01:33

设置accessibilityContainerType = UIAccessibilityContainerTypeSemanticGroup

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66014921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档