iOS 画外音,如何跳过 tableview 单元格而不是说话 "not enabled"

标签 ios swift voiceover

我有一个包含多个单元格的表格 View 。这些单元格中有几个纯粹是装饰性的,包含一个分隔线。每当它点击其中一个单元格时,使用 Xcode 中的辅助功能检查器开发人员工具,它就会说“未启用”。

因此,第一部分,我不确定在单元格上“未启用”旁白是否是最佳做法,因为它感觉更干净,并且更接近于完全跳过无旁白版本。但是,我可以想象这样一种情况,如果用户知道所有单元格(即使是装饰性的),那么页面导航对用户来说可能会更加明显。

如果这不是最佳实践问题,我该如何让它跳过单元格而不说任何内容?

目前,我已经尝试在 Storyboard 中将这些单元格的可访问性设置为完全关闭,并将其应用于创建分隔线的内部 View :

enter image description here

我还在属性检查器中禁用了 UserInteractionEnabled

在单元格的代码中,我设置了:

self.divider.isAccessibilityElement = false
self.isAccessibilityElement = false

但是,检查器仍然没有在这些单元格上“启用”,并且辅助功能检查器将特征显示为“静态文本未启用”

enter image description here

有什么想法吗?

最佳答案

UITableViewCell 可以看作是一个容器,其中嵌入了许多元素(按钮...),而且,您不能同时拥有一个父元素查看(表格 View 单元格) 及其 subview (标签、按钮...) both accessible使用 VoiceOver:可以选择您的单元格或其内容。

在您的情况下,您不希望屏幕阅读器读出单元格本身或其内容,因此您必须指定:

  • yourCell.isAccessibilityElement = false
  • yourCell.accessibilityElementsHidden = false

根据这个原理,您跳过一个表格 View 单元格而不是说“未启用”

关于iOS 画外音,如何跳过 tableview 单元格而不是说话 "not enabled",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59073463/

相关文章:

javascript - 如何在 React Native 上更改 iOS 中的 Audio Session 类别?

ios - 如何以编程方式快速使用 CAGradientLayer 将渐变设置为 UIView( subview )?

ios - 在 iOS 上使用 API 获取 Google 联系人

swift - 如何使用 NSURL 获取用户路径

swift - didSelectRowAtIndexPath 遇到问题

swift - 访问 UITabBarController 中的内容

ios - 如何将 Voiceover 绑定(bind)到 MPVolumeView slider 中?

iOS - 企业发展计划 - 证书已过期

ios - 通过无障碍标准手势处理语音

ios - 当 UIAlertController 处于事件状态时,VoiceOver Z 手势不会触发