"allowsDirectInteraction" 标记的视图内的直接交互(当 VoiceOver 处于活动状态时)不起作用

Direct interaction (when VoiceOver is active) inside "allowsDirectInteraction" marked View does not work

编辑:刚注意到,它有时有效,有时无效。而且我也不知道为什么。

我正在制作一个主要为盲人设计的应用程序,VoiceOver 可能会启用。在一种观点中,我需要自己进行交互和手势。在那里,我试图创建一个可直接交互的区域,以便它背后的功能就像没有激活画外音一样工作,即使它是。但是当我这样做时,VoiceOver 总是告诉我:“区域直接交互”或类似的东西(测试设备未设置为英语),而不是双击打印文本。

有人知道问题出在哪里吗?

这是我的观点:

struct MyView: View {
    var body: some View {
        TestView()
            .accessibilityAddTraits(.allowsDirectInteraction)
    }
}

这就是 TestView:

struct TestView: View {
    var body: some View {
        Rectangle()
            .onTapGesture(count: 2) { print("A View was tapped") }
            .onAppear { print("A View was created") }
    }
}

当拥有一个用尽所有 space 的视图时,它不能像看起来那样默认直接交互。用户需要自己使用转子或设置来完成此操作:

设置App/Accessibility/VoiceOver/RotorActions/Direct触摸应用程序/

当在设置中检查应用程序时,标记有特征 .allowDirectInteraction 的视图确实会像 VoiceOver 未激活一样工作,尽管这应该只用于可自行访问的元素,而不是简单的方法以避免让这些部分可以访问该应用!