画外音 - 继续听写
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)
编辑:在某些情况下需要延迟后发布通知。
我有一个页面,其中的元素按以下顺序添加到视图中:
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)
编辑:在某些情况下需要延迟后发布通知。