SwiftUI中可访问的自定义模式



我正试图让VoiceOver更容易访问SwiftUI中的自定义模态视图。

我已经设置了.accessibility(addTraits: .isModal),但VoiceOver直到模式下的焦点元素。因此,当模态可见时,我尝试设置.accessibility(hidden: true)。这是可行的,但VoiceOver将元素聚焦在最靠近打开模态的按钮位置的位置,但将第一个元素聚焦在模态中会更合乎逻辑。

不确定如何解决这个问题,以及最好的前进方向是什么。

Gist带有弹出代码。

https://gist.github.com/tfsjohan/80e9e39287f65fc044222468b834d74b

我的工作是将.accessibilityElement(children: .ignore)设置为同级视图,并在显示弹出窗口之前发送UIAccessibility.post(notification: .screenChanged, argument: nil)。这样,在导航过程中,弹出窗口后面的组件不再可用,屏幕更改事件将画外音的焦点移动到优先级最高的元素。

最新更新