【问题标题】:iOS - Accessibility methods - moving focusiOS - 辅助功能方法 - 移动焦点
【发布时间】:2017-01-27 17:06:24
【问题描述】:

我正在开发一个应用程序并尝试使其尽可能易于访问。一旦发生动作,我试图将焦点转移到某个元素。我很好奇这两个函数的区别:

UIAccessibilityFocusedElement 与 UIAccessibilityPostNotification

如果有人能解释两者之间的区别,将不胜感激。

【问题讨论】:

  • 这并没有直接解决两者之间的区别,而是我加注的一个惊人的概述,它可能会解决您的问题,并且与UIAccessibilityPostNotification直接相关:stackoverflow.com/questions/27797515/…
  • 抱歉回复晚了。是的,并没有真正回答这个问题,但确实帮助解决了我的问题。

标签: ios swift accessibility


【解决方案1】:

如果您尝试将焦点移至基于操作/屏幕更改场景的元素。

我想你应该看看:

UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, element_to_be_focused>);

应在出现包含屏幕主要部分的新视图时发布。

UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, element_to_be_focused); 

应该在屏幕布局发生变化时发布,例如当单个元素出现或消失时。

【讨论】:

    【解决方案2】:

    UIAccessibilityPostNotification 用于更改事物(例如聚焦元素,但也可以暂停和恢复类似的辅助技术:

    UIAccessibility.post(notification: .pauseAssistiveTechnology, argument: UIAccessibility.AssistiveTechnologyIdentifier.notificationSwitchControl)
    UIAccessibility.post(notification: .resumeAssistiveTechnology, argument: UIAccessibility.AssistiveTechnologyIdentifier.notificationSwitchControl)
    

    它也可以宣布一些东西:

    UIAccessibility.post(notification: .announcement, argument: "Say something")
    

    或在无障碍滚动后刷新焦点

    UIAccessibility.post(notification: .pageScrolled, argument: nil)
    

    另一方面,UIAccessibilityFocusedElement 不能改变任何东西。它只是以这种方式返回当前聚焦的元素(或nil):

    UIAccessibility.focusedElement(using: UIAccessibility.AssistiveTechnologyIdentifier.notificationVoiceOver)
    

    附带说明 - 目前只有可以暂停或恢复的辅助技术是 notificationSwitchControl,尝试使用 Voice Over 会导致崩溃

    【讨论】:

      猜你喜欢
      • 2022-11-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多