我创建了一个自定义辅助功能转子,以允许按照示例 djibouti33 在自定义注释 View 中导航此处提供:Create a custom VoiceOver Rotor to navigate MKAnnotationViews .它在选择自定义转子后工作,但 MKMapView 的转子始终默认为其他选择。通过自定义注释进行导航的能力在应用程序的上下文中最有意义(即优先考虑通过特定于应用程序的注释进行导航)。有没有办法默认选择自定义转子?
与此相关,我认为让 VoiceOver 声明选择自定义转子的选项也会更直观,但是当触摸 MKMapView 时,VoiceOver 总是声明“使用转子选择兴趣点”。像这样更改 map View accessibilityHint 没有效果:
mapView.accessibilityHint = "use the rotor to access alerts"
选择 MKMapView 时是否可以更改 VoiceOver 的语音?
最佳答案
创建自定义转子后,它会添加到用户在其设置中选择的一系列转子操作中。 不幸的是,在这种情况下,用户设置是一种您无法访问的私有(private)框,这就是为什么自定义转子不能成为默认选择,这是用户自愿选择的原因。
关于第二个问题,你的mapview is a container并且,作为希望将其子项显示为可访问元素的父 View ,其 isAccessibilityElement
属性为 false,这意味着 VoiceOver 不会分析标签或提示。
如果您想访问 map 中的可访问元素,您的 MKMapView 本身将永远不会被选中(仅选择其元素),然后 VoiceOver 不会针对这种特殊情况读出任何内容 因为它是一个不可见的元素。
根据您的应用程序演示,您可以在加载 View 时发布通知,或者在 map 前添加一个可访问的元素,例如指示转子可用于获取某些信息。
关于ios - 使自定义 VoiceOver 转子成为 MKMapView 的默认转子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47893867/