我创建了一个自定义辅助功能转子,以允许按照djibouti33在此处提供的示例Create a custom VoiceOver Rotor to navigate MKAnnotationViews导航自定义批注视图。选择自定义转子后,它可以工作,但是MKMapView的转子始终默认为其他选择。在应用程序的上下文中浏览自定义注释的能力最有意义(即,优先浏览特定于应用程序的注释)。有没有一种方法可以默认选择自定义转子?
与此相关,我认为让VoiceOver状态为选择自定义转子的选项也将更加直观,但是当触摸MKMapView时,VoiceOver始终会显示“使用转子选择兴趣点”。像这样更改地图视图的可访问性提示无效:
mapView.accessibilityHint = "use the rotor to access alerts"
选择MKMapView时是否可以更改VoiceOver的讲话?
最佳答案
创建自定义转子后,会将其添加到用户在其设置中选择的一系列转子动作。
不幸的是,用户设置是在这种情况下无法访问的专用框,这就是为什么自定义转子不能作为默认选择的原因,这是用户愿意的选择。
关于第二个问题,您的mapview is a container以及作为希望将其子级显示为可访问元素的父视图,其isAccessibilityElement
属性为false,表示VoiceOver不会分析标签或提示。
如果您想到达地图中的可访问元素,则永远不会选择MKMapView本身的 (仅其元素),然后 VoiceOver不会为这种特殊情况读出任何内容,因为它是它的不可见元素。
根据您的应用程序演示,您可以在加载视图时发布通知,或在地图之前添加可访问元素,以指示例如可以使用转子获取某些信息。