背景 VoiceOveraccessibility 专注于 UICollectionView

jol*_*ola 6 accessibility ios voiceover uicollectionview swift

我在 collectionview 上遇到画外音问题。我有一个包含 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
    }  
...
Run Code Online (Sandbox Code Playgroud)

我希望 B 工作,但它没有(什么也没发生)。我还尝试了其他各种方法,例如:self.view.isAccessibilityElement = false,self.view.superview.isAccessibilityElement = false,但都没有成功。

希望有人能帮忙!

XLE*_*_22 0

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

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

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