iOS 画外音从覆盖的 UIWindow 读取
iOS Voiceover reads from covered UIWindow
我有以下设置:
- UIWindow 0,windowLevel 0,rootController是app的主体部分,占满整个屏幕,isHidden为false,不是keywindow
- UIWindow 1,windowLevel 1,rootController为副屏,占满全屏,不透明,isHidden为false,is key window
问题:
启用画外音后,我触摸 window 1 中没有可交互元素的区域,但 window 0 中确实有这样的元素时,它将select 并读取 window 0 中的元素,即使 window 0 根本不可见。
有什么我遗漏的吗?
原来有两种方法可以解决这个问题:
- 在 window 0 上将 accessibilityElementsHidden 设置为 true。不理想,因为它必须在 window 1 消失时恢复。
- 在 window 1 上将 accessibilityViewIsModal 设置为 true。所有 windows 都是兄弟姐妹,因此出于可访问性目的,这将忽略 window 0。我认为这不会影响状态栏和键盘等特殊 windows。这可能是最好的解决方案。
我有以下设置:
- UIWindow 0,windowLevel 0,rootController是app的主体部分,占满整个屏幕,isHidden为false,不是keywindow
- UIWindow 1,windowLevel 1,rootController为副屏,占满全屏,不透明,isHidden为false,is key window
问题:
启用画外音后,我触摸 window 1 中没有可交互元素的区域,但 window 0 中确实有这样的元素时,它将select 并读取 window 0 中的元素,即使 window 0 根本不可见。
有什么我遗漏的吗?
原来有两种方法可以解决这个问题:
- 在 window 0 上将 accessibilityElementsHidden 设置为 true。不理想,因为它必须在 window 1 消失时恢复。
- 在 window 1 上将 accessibilityViewIsModal 设置为 true。所有 windows 都是兄弟姐妹,因此出于可访问性目的,这将忽略 window 0。我认为这不会影响状态栏和键盘等特殊 windows。这可能是最好的解决方案。