有没有办法强制VoiceOver不读取视图控制器标题"标题"读完title / accessibilityLabel后的单词?
目前行为是默认行为。如果我将标题设置为"我的面板"配音将会读到这样的内容:
"我的小组" ...."标题"
我相信这是在某些UI元素上设置的可访问性特征UIAccessibilityTraitHeader的结果,但我不知道哪个元素具有这个特征。我的视图控制器嵌套在导航控制器中。请不要问为什么我需要删除这个单词。这是要求,我需要摆脱它。
答案 0 :(得分:1)
大卫的评论是正确的答案。您应该在语义上使用UIElement
类。换句话说,如果文字"我的面板"不是观点的标题,那么它在语义上是什么?获得该问题的答案后,您可以重新设计视图以使用该类型的元素,并进行适当的样式设计。
但是,根据您提供的所有信息,它似乎在语义上是一个标题,因此屏幕阅读器正在做适当的事情。
无论谁给你这个要求,都可能不知道他们在说什么。这种类型的要求通常来自对可访问的UI / UX设计不熟悉的人。
答案 1 :(得分:0)
您可以自定义此标题视图,并在自定义视图中实施accessibilityElementDidBecomeFocused
方法,此视图确实成为焦点,并将UIAccessibilityLayoutChangedNotification
发布到VoiceOver
并关注自身,然后返回特征UIAccessibilityTraitNone
- (void)accessibilityElementDidBecomeFocused {
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, self);
}
- (UIAccessibilityTraits)accessibilityTraits {
return UIAccessibilityTraitNone;
}