画外音 - 继续听写

Voice over - resume dictation

我有一个页面,其中的元素按以下顺序添加到视图中:


Self.view


Voice Over听写设置为从title开始,close,next,back,然后到scrollview的subviews。它按预期工作,除非我离开到另一个页面并返回。每当从另一个视图再次加载此页面时,它会再次从 title 开始指示,尽管页面的 UI 停留在上次离开的位置。

scrollview设置为水平方向滚动,它有10个子视图(问题)来模拟分页效果。在第 4 和第 9 页,我可以选择需要在何处显示另一个控制器 A。当从控制器 A 中解散时,画外音从 title 开始指示,而不是从最后一个活动元素恢复,即第 4 页的问题或其选项。这是 mockup UI 元素的放置,我很难确定画外音元素的顺序。


horizontalScroller.accessibilityElements = [firstQuestion, secondQuestion, thirdQuestion, fourthQuestion, fifthQuestion, sixthQuestion, seventhQuestion, eigthQuestion, ninthQuestion, finalQuestion]
view.accessibilityElements = [titlelabelLabel, closebuttonButton, nextButton, backButton, horizontalScroller]

我认为这是因为 Voice Over 设计为每次加载页面时都从头开始。但是,在这种情况下,视障用户会很困惑地回答同一个问题,IMO。任何帮助调整它以恢复它最后的位置,将不胜感激。

当您的视图出现时,您可以检查 VoiceOver 是否 运行:

UIAccessibility.isVoiceOverRunning

如果 VoiceOver 为 运行,您可以使用以下命令使 VoiceOver 移动到 targetView

UIAccessibility.post(notification: .layoutChanged, argument: targetView)

如果这不起作用:

UIAccessibility.post(notification: .screenChanged, argument: targetView)

编辑:在某些情况下需要延迟后发布通知。