【发布时间】:2020-11-13 16:24:17
【问题描述】:
我想将MacOS accessibility feature 与我的应用程序一起使用,该应用程序呈现自己的自定义 UI(即不使用 Cocoa)。为此,我实现了与我绘制的每个小部件相关联的子类NSAccessibilityElements 树。
根 UI 容器托管在外部提供给我的应用程序的 NSView 内(我的应用程序是一个插件)。现在我需要将我的NSAccessibilityElements 树附加到主机提供的现有NSView。
Apple documentation 推荐两种方法来实现这一点:
- 重新实现父级的
accessibilityChildren属性以包含自定义元素(例如Qt 使用此方法)。不幸的是,我自己没有创建父NSView,它是从外部注入的。 - 调用
accessibilityAddChildElement便捷方法。但是当我在提供的NSView对象上调用它时,我得到一个异常,它不响应此方法。
将NSAccessibilityElements 树附加到现有NSView 的正确方法是什么?
【问题讨论】:
-
您想要实现哪些无障碍功能?您是否尝试过
NSView上的setAccessibilityX方法?例如设置视图的角色:setAccessibilityRole(_:) -
@smr 我可以在提供的
NSView上调用setAccessiblityX方法,除了accessibilityAddChildElement一个,这是我追求的一个。
标签: macos cocoa accessibility nsview appkit