UIAutomation:混合 ProviderFragmentRoot 和 ProviderSimple

问题描述

对于我的应用程序(VCL、Delphi),我正在使用 UIAutomation 实现屏幕阅读器支持。这适用于控件的 ProviderFragmentRoot 和逻辑元素(如组合框中的条目)的 ProviderSimple 的实现。

我想要达到的目标: 在一个面板上,我有各种控件,一个在下一个。它们由标题分隔。这些标题仅绘制在面板上,即它们不是控件并且没有 HWND。因此标题不会出现在 UIAutomation 树中。

我需要一些关于如何为面板实现 ProviderFragmentRoot 以便在 UIAutomation 树中包含标题提示(任何要阅读的文章或指导示例等)。

我目前拥有的是这样的:

  • 面板
    • 编辑 1:UIA_EditControlTypeId
    • 编辑 2:UIA_EditControlTypeId
    • 编辑 3:UIA_EditControlTypeId
    • 编辑 4:UIA_EditControlTypeId

我需要什么:

  • 面板
    • 标题 1:UIA_GroupControlTypeId
    • 编辑 1:UIA_EditControlTypeId
    • 编辑 2:UIA_EditControlTypeId
    • 标题 2:UIA_GroupControlTypeId
    • 编辑 3:UIA_EditControlTypeId
    • 编辑 4:UIA_EditControlTypeId

据我了解 UIAutomation 树是基于控件的父子关系构建的。我还管理了重新父控件,例如使弹出窗口成为相应编辑的子项。我只是在查找有关如何在树中混合控件和逻辑元素的信息时有点迷失。我在其他应用程序中看到过这样的结构,它使屏幕阅读器可以读出标题

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)