iOS VoiceOver – 在标准 UIView 中实现 “x of y” 读出?

标签 ios uiview accessibility voiceover uiaccessibility

在 iOS 中使用 VoiceOver,当查看分段 Controller 之类的东西时,VoiceOver 会读取分段及其索引,即“已选择:某事:4 之 2”。

我有一个包含几个按钮的自定义 UIView 容器,我想在容器中的按钮之间滑动时复制“4 个中的 2 个”行为。

理想情况下,如果可能的话,我希望在不创建自定义 UIView 子类的情况下执行此操作。能实现吗?

最佳答案

您可以通过设置以下accessibilityLabel、accessibilityValue、accessibilityHint 和accessibilityTrait 之一来实现这一点

假设相关按钮的文本是“Blue OK”,并且您想要读取的额外文本是“2 out of 4”

  • 默认情况下,VoiceOver 会朗读:

"Blue OK" - SHORT PAUSE - "Button"


  • accessibilityLabel 设置为“2 out of 4”将导致:

"2 out of 4" - SHORT PAUSE - "Button"


  • accessibilityValue 设置为“4 之 2”将导致:

"Blue OK" - SHORT PAUSE - "2 out of 4" - SHORT PAUSE - "Button"


  • accessibilityHint 设置为“2 out of 4”将导致:

"Blue OK" - SHORT PAUSE - "Button" - LONG PAUSE - "2 out of 4"

请注意,在这种情况下,“2 out of 4”将无法用 2 根手指向下滑动来读取


如果通过为其设置特征将 button.selected 标志设置为 YES,VoiceOver 将宣布对象被选中。如果你想将它显式添加到不支持所选属性的对象,你可以自己添加特征:

//can concatenate multiples ones like so UIAccessibilityTraitButton | UIAccessibilityTraitSelected
mybutton.accessibilityTraits = UIAccessibilityTraitSelected; 

这个特征在上面的例子中读取“Button”的地方是一样的:

"Blue OK" - SHORT PAUSE - "Button, Selected"

如果您希望措辞顺序不同,则需要混合和匹配 accessibilityLabel、accessibilityValue、accessibilityHint 和 accessibilityTrait 的值,直到获得您要查找的确切措辞.

关于iOS VoiceOver – 在标准 UIView 中实现 “x of y” 读出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25324873/

相关文章:

ios - 如何在 View Controller 中为特定 View 设置动画

ios - 使用水平条形图条的任何特殊注意事项

ios - 使用授权从 Amazon S3 执行 HTTP GET 的最少 iOS 代码?

iphone - 两个 UIView 可以处理一次触摸吗?

ios - 拖动 uiview iOS

javascript - 轮播的 WAI-ARIA 角色(又名 slider 、幻灯片、画廊)

Lollipop 中的 Android WebView 可访问性

html - 当节嵌套深度为 7 时,HTML 标题的最佳实践

android - Cordova:在子浏览器中使用 window.open

ios - 在 Xcode 中成功编译和构建后,应用程序崩溃