辅助功能:专注于一个视图
Accessibility: focus on a view
在我的应用程序中(盲人用户必须可以访问)我有这个场景(这是一个语法练习)
当我在打开 VoiceOver 的设备上尝试它时,首先它会专注于句子的第一部分,因此在这种情况下它会显示 "Kesha",当我向右滑动以阅读下一部分时它会显示句子的第二部分"the contract because..."。我想要的是让它在阅读句子的第二部分之前也关注灰色框(即 UIView
元素),以便用户知道句子中那个空框的位置,但我不知道该怎么做。
我已经尝试过 grayBox.accessibilityLabel = "empty box"
或 grayBox.accessibilityHint = "empty box"
,但它只是没有将焦点放在该视图上,也没有说话。我还尝试在框中放置一个空的 UILabel
,但我在按正确的顺序定位它时遇到了一些问题,我认为这不是正确的方法。有什么建议吗?
在您想要 'receive focus' 的 UIView
上,您只需启用可访问性或将其标记为可访问元素,例如:
myGreyView.isAccessibilityElement = true
myGreyView.accessibilityLabel = "A grey box"
myGreyView.accessibilityHint = "this is a secretive box. I don't know what it does"
您还可以在 xcode 界面生成器 "Accessibility Enabled" 中的 UIView 属性中勾选一个框,我认为它已调用。它还允许您设置标签和提示。
有关详细信息,请参阅此 Apple guide to VoiceOver
关于元素被读出的顺序。第一部分和第二部分是不同的 UI 个标签还是一个标签?
您是在代码中添加这些还是 Xib/Storyboard?根据它们添加的顺序,子视图可以影响 VoiceOver 读出项目的顺序。
添加 3x UI 元素时,请按以下顺序添加。
- UI标签 - "Kesha"
- UI视图 - 灰框,"A grey box"
- UI标签 - "the contract because it was not fair."
如果您通过界面生成器 (Xib/Storyboard) 添加了它们,请确保视图层次结构中的顺序正确。
如果失败,您可以尝试重写方法 "accessibilityElements" 和 return 一组标签和灰色视图,按照您希望它们读出的顺序排列。
在我的应用程序中(盲人用户必须可以访问)我有这个场景(这是一个语法练习)
当我在打开 VoiceOver 的设备上尝试它时,首先它会专注于句子的第一部分,因此在这种情况下它会显示 "Kesha",当我向右滑动以阅读下一部分时它会显示句子的第二部分"the contract because..."。我想要的是让它在阅读句子的第二部分之前也关注灰色框(即 UIView
元素),以便用户知道句子中那个空框的位置,但我不知道该怎么做。
我已经尝试过 grayBox.accessibilityLabel = "empty box"
或 grayBox.accessibilityHint = "empty box"
,但它只是没有将焦点放在该视图上,也没有说话。我还尝试在框中放置一个空的 UILabel
,但我在按正确的顺序定位它时遇到了一些问题,我认为这不是正确的方法。有什么建议吗?
在您想要 'receive focus' 的 UIView
上,您只需启用可访问性或将其标记为可访问元素,例如:
myGreyView.isAccessibilityElement = true
myGreyView.accessibilityLabel = "A grey box"
myGreyView.accessibilityHint = "this is a secretive box. I don't know what it does"
您还可以在 xcode 界面生成器 "Accessibility Enabled" 中的 UIView 属性中勾选一个框,我认为它已调用。它还允许您设置标签和提示。
有关详细信息,请参阅此 Apple guide to VoiceOver
关于元素被读出的顺序。第一部分和第二部分是不同的 UI 个标签还是一个标签?
您是在代码中添加这些还是 Xib/Storyboard?根据它们添加的顺序,子视图可以影响 VoiceOver 读出项目的顺序。
添加 3x UI 元素时,请按以下顺序添加。
- UI标签 - "Kesha"
- UI视图 - 灰框,"A grey box"
- UI标签 - "the contract because it was not fair."
如果您通过界面生成器 (Xib/Storyboard) 添加了它们,请确保视图层次结构中的顺序正确。
如果失败,您可以尝试重写方法 "accessibilityElements" 和 return 一组标签和灰色视图,按照您希望它们读出的顺序排列。