gpt4 book ai didi

ios - MKAnnotationView 自定义标注对辅助功能(VoiceOver)不可见

转载 作者:行者123 更新时间:2023-12-03 11:16:54 25 4
gpt4 key购买 nike

我有一个 MKAnnotationView子类并将其中的几个放在 MKMapView 上. MKAnnotationView子类设置一些可访问性元素,如下所示:

func applyAccessibility() {

self.isAccessibilityElement = true
self.accessibilityTraits = [.none]

self.accessibilityLabel = "Bus stop map pin"
self.accessibilityValue = busStop.name
}
VoiceOver 会读出固定在 map 上的公交车站的名称。
然后我使用 UIView当点击公交车站时,子类作为标注 View 。
func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {

if let annotation = view.annotation
{
if annotation is MKUserLocation
{
// This is our location marker
return
}

busStopAnnotationCalloutView.setupForAnnotationView(view, delegate: self)

view.addSubview(busStopAnnotationCalloutView)

mapView.setCenter(annotation.coordinate, animated: true)
}
}
这很好用,但是这个标注 View 对 VoiceOver 完全不可见。
init我设置的标注 View :
isAccessibilityElement = true
accessibilityTraits = .none
accessibilityLabel = "Callout view"
accessibilityIdentifier = "BusStopAnnotationCalloutView.callout"
它还创建了自己的标签和一个按钮,我设置了类似这样的按钮:
label.isAccessibilityElement = true
label.accessibilityTraits = .header
label.accessibilityLabel = "\(busStop.name)"
用户界面按钮
button.isAccessibilityElement = true
button.accessibilityTraits = .button
button.accessibilityLabel = "Select this bus stop"
但这些元素都对 VoiceOver 不可见。 Accessibility Inspector看不到他们。
当我用 Accessibility Inspector 在 View 中移动时它只是拿起和 MKAnnotation位于标注下方的 map 上。
编辑 - - - -
我创建了一个小示例项目,它有一个无法访问的自定义标注 View 。
Example project
还有一个简短的屏幕录像显示了这个问题:
Video thumbnail
on YouTube

最佳答案

Developer Technical Support直接去苹果后请求,他们认为这是一个错误,但是由于这在我测试的任何版本的 iOS 上都不起作用,我建议这更多是疏忽而不是错误,我很惊讶没有其他人想要做可访问的 map View 标注。
Apple DTS 还问我是否希望他们寻找解决方法,几天后他们回来说根本没有!
所以现在,从 iOS 12.4 开始,这里的答案是它是不可能的。

关于ios - MKAnnotationView 自定义标注对辅助功能(VoiceOver)不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66160318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com