【问题标题】:Background VoiceOveraccessibility focus on a UICollectionView背景 VoiceOver 辅助功能专注于 UICollectionView
【发布时间】:2018-02-10 10:22:40
【问题描述】:

我在收藏视图上遇到画外音问题。我有一个包含 5 个单元格的全屏(减去导航栏)UICollectionView。每个单元格都包含一个带有isAccessibilityElement=true 的视图。

激活 VoiceOver 后,导航栏中的标题将获得焦点。如果我然后通过向左/向右滑动每个单元格项目来移动焦点,就像人们期望的那样,一个一个地聚焦。问题是如果我改为通过在屏幕上向下拖动手指来移动焦点。然后当手指在任何单元格之外时,屏幕的背景(即集合视图的区域)将获得焦点。

有没有办法关闭它?

我试过了:

class MyViewController: UICollectionViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        // A. This makes everything in the collection inaccessible, both 
        // background and cell content. 
        //collectionView?.accessibilityElementsHidden = true

        // B. This has no effect
        //collectionView?.isAccessibilityElement = false
    }  
...

我希望 B 能够工作,但它没有(没有任何反应)。我还尝试了其他各种方法,例如:self.view.isAccessibilityElement = false,self.view.superview.isAccessibilityElement = false,但没有成功。

希望有人能提供帮助!

【问题讨论】:

  • 好久不见,你明白了吗?我有同样的问题,如果你这样做会是一个巨大的帮助......

标签: ios swift uicollectionview accessibility voiceover


【解决方案1】:

使用 VoiceOver 遍历集合视图就像遍历 trait 属性为 adjustable 的可访问元素。

集合视图的每个元素都是一个UIAccessibilityElement,必须在您的代码中重新定义。

要了解应该如何实现,我建议你看一下 WWDC 2018 - Deliver an exceptional accessibility experience 视频,其内容完美总结 here 并且其提供的示例可以是 downloaded... 遵循这种编程方式不会' t 聚焦背景中的任何对象。

【讨论】:

  • 视频和摘要都很大,能否引用相关部分?
  • @f3dm76 :视频的每个主题都很详细,并指出了它所指的延时摄影。专注于持续几分钟的演示。如果您想解决问题,请花时间了解视频的每个要点……有时这是必要的。
  • 是的,但是点的名称并没有告诉我关于 UICollectionViews 或它们不必要的焦点。您能否指出与当前问题相关的问题?
  • @f3dm76 :如果演示看起来您的应用应该可以运行,请下载可用代码进行查看。在我看来,问题在于您已实施的内容以及苹果解释的方式。一步一步走他们的路,那肯定行得通。
  • 在演示中,他们希望“UICollectionView”具有“可调整”特性并获得焦点。然而,这个问题的重点是没有特征并避免“UICollectionView”将注意力集中在自身上。我只需要关注它的几个单元格,而不是集合本身。我不明白为什么设置 'collectionView?.isAccessibilityElement = false' 不能实现这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-15
  • 2017-09-04
相关资源
最近更新 更多