Delphi 如何使用TVirtualStringTree AccessibleName或实现可访问性?
我可以看到Delphi 如何使用TVirtualStringTree AccessibleName或实现可访问性?,delphi,accessibility,c++builder,virtualtreeview,Delphi,Accessibility,C++builder,Virtualtreeview,我可以看到TVirtualStringTree有一个名为AccessibleName的属性,但我看不出它在工作,也就是说,给出设置为屏幕阅读器(如NVDA)的字符串 我尝试的是在OnGetText事件中设置它,但似乎没有产生任何结果(例如Sender->AccessibleName=“我的节点名”)。它读取的是树的全部内容,而不仅仅是当前节点,就像我没有对属性进行任何更改一样,如果节点发生更改(使用键盘),它也不会执行任何操作 它应该读的是-列名-列内容-另一个列名-另一个列内容等,就像常规的T
TVirtualStringTree
有一个名为AccessibleName
的属性,但我看不出它在工作,也就是说,给出设置为屏幕阅读器(如NVDA)的字符串
我尝试的是在OnGetText
事件中设置它,但似乎没有产生任何结果(例如Sender->AccessibleName=“我的节点名”
)。它读取的是树的全部内容,而不仅仅是当前节点,就像我没有对属性进行任何更改一样,如果节点发生更改(使用键盘),它也不会执行任何操作
它应该读的是-列名-列内容-另一个列名-另一个列内容等,就像常规的TListView
一样
这里似乎有一个iAccessible接口的实现-
您能否分享一些示例,如何使用VirtualTreeView内置的可访问性使组件对屏幕阅读器可读,因为这样的示例似乎非常稀少
编辑(针对未来的谷歌用户):
解决C++ Builder可访问性单元链接的相关问题:
编辑2(面向未来的谷歌用户):此外,
TVirtualStringTree
还提供了OnGetImageText
。此事件用于为树中使用的图像提供可访问文本,例如,如果节点中有多个图像表示某些状态,则可以使用图像标签描述这些状态。您需要添加VirtualTrees。可访问性单元到使用部分(项目或您的一个单元)。本单元注册辅助功能提供程序,它将只读取树中的重点项目以及列名。感谢您的回答-是的,您是正确的,它确实适用于Delphi。但是,在C++的Builder中,包含了<代码>虚拟树。Access。HPP < /Cuff>没有帮助,因为它不执行注册可访问性提供者的部分(该部分不存在于HPP文件中,而是列在PAS文件中)。我想我必须问一个新的问题,如何登记那些,因为它只影响C++ Builder,而不是Delphi。