我有一个NSTouchBar
项,其视图为NSSegmentedControl
,有4个项目 - A,B,C,D。对于有视力的人来说,这是有意义的,但对于一个人来说谁使用VoiceOver,只是说" A"," B"," C"或" D"没有很好的经验 - 他们可能不明白这究竟是做什么的,所以我想将可访问性标题改为"选择A","执行B" ,"打开C","显示D"。
AFAIK,NSSegmentedControl
没有任何关于设置自定义辅助功能标题的方法,因此我进行了更深入的挖掘 - 它似乎为每个细分创建了一个子视图({{1但是它并不重要) - 所以我试过了:
NSSegmentItemView
设置为isAccessibilityElement
true
,并且我已尝试设置辅助功能标题,标签,......几乎任何有用的内容。不幸的是,我可以在这些上设置我想要的任何东西,VoiceOver会忽略它。可访问性检查器无法在触摸栏窗口上工作,这个问题变得复杂......
有没有人有任何想法?
答案 0 :(得分:0)
我试图做类似的事情(在NSSegmentedControl的自定义修改上重新实现可访问性),并且我通过覆盖一些NSAccessibilityProtocol
方法获得了大部分成功。
在您的情况下,您可以尝试覆盖accessibilityChildren
以返回提供不同标签的自定义元素。
答案 1 :(得分:0)
NSSegmentedControl 将获取图像的辅助功能描述。所以我使用的解决方案是确保我所有的分段控件都有图像,并且对于每个控件,如有必要,制作图像的副本,明确设置可访问性描述,并重置图像。我的一些片段也使用了单字符文本,所以我创建了字符的图像并使用了它们。
丑陋,但比我找到的任何其他解决方案都要好。