我可以看到 TVirtualStringTree
具有一个称为 AccessibleName
的属性,我认为它不起作用,也就是说,将其设置为屏幕读取器(例如nvda(。
我尝试的是在OnGetText
事件中进行设置,但这似乎并没有产生任何结果(例如Sender->AccessibleName = "my node name";
(。它读取的只是树的全部内容,而不仅仅是一个当前节点,就像我没有对属性进行任何更改相同,如果更改了节点(使用键盘(,它不做任何事情。
应该读取的内容 - 列名 - 列内容 - 另一列名称 - 另一列内容等。就像使用常规TListView
一样。
似乎在这里实现了可访问的接口-https://github.com/virtual-treeview/virtual-treeview/blob/master/master/source/vtaccessibility.pas
您能否分享一些示例,如何使用内置可访问性的VirtualTreeView来使屏幕读取器可读组件,因为这些示例确实很少?
编辑(用于未来的Googles(:
解决C 建筑商访问单元链接的相关问题:
在C 构建器中实现VirtualTreeView TVTDDEFAULTACCESSIBLE PROVIDER
编辑2(用于未来的Googles(:
此外,TVirtualStringTree
还提供OnGetImageText
。此事件用于为树中使用的图像提供可访问的文本,例如,如果您在节点中有多个图像来表示某些状态,则可以使用图像标签来描述这些状态。
您需要将VirtualTrees.Accessibility
单元添加到uses
部分(项目或您的单元之一(。该单元注册可访问性提供商,它将仅读取树中的集中项目以及列名。