Jon*_*oks 5 accessibility ios voiceover uimenuitem swift
我正在尝试设置accessibilityLabela UIMenuItem,但似乎没有效果。无论如何,VoiceOver 只是读取项目的标题:
let foo = UIMenuItem(title: "foo", action: #selector(doSomething))
item.isAccessibilityElement = true
item.accessibilityLabel = "bar"
Run Code Online (Sandbox Code Playgroud)
对于此项目,VoiceOver 会读取“foo”而不是“bar”。此外,accessibilityHint似乎也被忽略了。
该UIMenuItem元素实际上是一个包含 a (iOS 13)UICalloutBarButton的私有类,并且,即使您可以轻松对其进行编码(非正式协议),您也无法自定义其 a11y 属性。\n这太疯狂了,因为为了销售 a11y 应用程序,您必须使其适应用户,而这里的情况绝对不是这样。UIButtonLabel
但是,可以按如下方式实施解决方法来实现您的目标:
\n\nmenuFrame属性) 。UIAccessibilityElementinit+ accessibilityFrameInContainerSpace)。最好为每个菜单项创建一个可访问的元素(然后提供更好的自定义),但我没有找到获取每个单独项目的框架的方法。
\n\n不幸的是,这个问题在过去三年里仍然存在。
\n\n\xe2\x9a\xa0\xef\xb8\x8f \xe2\xac\x9b\xef\xb8\x8f\xe2\x97\xbc\xef\xb8\x8f\xe2\x96\xaa\xef\xb8\x8f编辑 \ xe2\x96\xaa\xef\xb8\x8f\xe2\x97\xbc\xef\xb8\x8f\xe2\xac\x9b\xef\xb8\x8f\xe2\x9a\xa0\xef\xb8\x8f (2020 / 03/19)
\n\n我针对这个问题写了一篇开发者技术支持事件(编号731229763 ),这是Apple 的答案:
\n\n\n\n\n我们的工程师已审核您的请求,并确定您遇到了已知问题,目前尚无已知的解决方法。
\n
我提交了一份错误报告,标题为VoiceOver:accessibilityLabel 无法在 UIMenuItem 元素上实现,参考号为FB7623526。
\n\n现在,您知道为什么accessibilityLabel毫无用处并且对 UIMenuItem 元素没有影响。
\n