如何强制VoiceOver不读取"标题"视图控制器标题的单词

时间:2015-04-09 10:53:41

标签: ios objective-c accessibility voiceover

有没有办法强制VoiceOver不读取视图控制器标题"标题"读完title / accessibilityLabel后的单词?

目前行为是默认行为。如果我将标题设置为"我的面板"配音将会读到这样的内容:

"我的小组" ...."标题"

我相信这是在某些UI元素上设置的可访问性特征UIAccessibilityTraitHeader的结果,但我不知道哪个元素具有这个特征。我的视图控制器嵌套在导航控制器中。请不要问为什么我需要删除这个单词。这是要求,我需要摆脱它。

2 个答案:

答案 0 :(得分:1)

大卫的评论是正确的答案。您应该在语义上使用UIElement类。换句话说,如果文字"我的面板"不是观点的标题,那么它在语义上是什么?获得该问题的答案后,您可以重新设计视图以使用该类型的元素,并进行适当的样式设计。

但是,根据您提供的所有信息,它似乎在语义上是一个标题,因此屏幕阅读器正在做适当的事情。

无论谁给你这个要求,都可能不知道他们在说什么。这种类型的要求通常来自对可访问的UI / UX设计不熟悉的人。

答案 1 :(得分:0)

您可以自定义此标题视图,并在自定义视图中实施accessibilityElementDidBecomeFocused方法,此视图确实成为焦点,并将UIAccessibilityLayoutChangedNotification发布到VoiceOver并关注自身,然后返回特征UIAccessibilityTraitNone

- (void)accessibilityElementDidBecomeFocused {
       UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification,   self);
}

- (UIAccessibilityTraits)accessibilityTraits {
    return UIAccessibilityTraitNone;
}
相关问题