iOS - 辅助功能方法 - 移动焦点

时间:2017-01-27 17:06:25

标签: ios swift accessibility

我正在开发一款应用,并尝试尽可能让它变得可访问。一旦动作发生,我试图将焦点移动到某个元素。我很好奇这两个函数之间的区别:

UIAccessibilityFocusedElement与UIAccessibilityPostNotification

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

2 个答案:

答案 0 :(得分: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导致崩溃

答案 1 :(得分:1)

如果您尝试根据动作/屏幕更改方案将焦点移动到元素。

我想你应该看看:

UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, element_to_be_focused>);

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

UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, element_to_be_focused); 

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