我可以看到TVirtualStringTree
有一个名为AccessibleName
的属性,我看不到它有效,也就是说,给出设置为屏幕阅读器的字符串,如NVDA。
我尝试在OnGetText
事件中进行设置,但似乎没有产生任何结果(例如Sender->AccessibleName = "my node name";
)。它读取的全部内容都是树的全部内容,而不仅仅是当前节点,就像我没有对属性进行任何更改一样,如果更改节点(使用键盘),则它不会执行任何操作。
应该阅读的内容是 - 列名称 - 列内容 - 其他列名称 - 其他列内容等与常规TListView
一样。
这里似乎有iAccessible接口的实现 - https://github.com/Virtual-TreeView/Virtual-TreeView/blob/master/Source/VTAccessibility.pas
您能否分享一些示例如何使用VirtualTreeView内置的辅助功能来使组件对屏幕阅读器可读,因为这些示例似乎真的很少?
答案 0 :(得分:0)
您需要将VirtualTrees.Accessibility
单位添加到uses
部分(项目或您的单位之一)。该单元注册了可访问性提供程序,它将仅读取树中的重点项目以及列名。