ios - 使自定义 VoiceOver 转子成为 MKMapView 的默认转子

标签 ios mapkit accessibility voiceover

我创建了一个自定义辅助功能转子,以允许按照示例 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/

相关文章:

ios - 如何在 MapKit 上绘制围绕多个注释/坐标的圆形叠加层?

Xcode - 以编程方式打开注释 - MapKit

如果其他应用程序的辅助功能服务打开,Android 辅助功能服务将无法正常工作

Android TalkBack 聚焦在透明层后面

ios - 开机时联系人的授权状态未更改

android - PlayN 有哪些替代品?

ios - 可选的意外发现 nil 和崩溃日志信息

objective-c - 你可以在 iOS 上调整 UIImage 的大小同时保持比例吗?用于生成缩略图

ios - 如何使用 MKDirections 请求支持多种传输类型

html - 表外字段/值对的正确 ARIA 属性?