目标:MS Teams 在双显示器上的可访问性行为,显示器设置为不同比例,例如 100% 和 125%,分辨率为 1920*1080。我使用的工具是 Accessibility Insight。
问题:当我在 100% 比例的监视器(也是我的主监视器)中启动 Teams 应用程序并将其移动到 125% 比例的监视器时,Accessibility Insight 无法正确定位 MS Teams 的元素。我看到已识别元素的位置距离顶部大约 280。我还看到 Left 似乎偏离了大约 1.25 倍,我认为这可能是由于缩放。如果我在 125%(或任何其他比例)的单个监视器上工作,Accessibility Insight 在 MS Teams 上运行良好。
我阅读/理解的内容:我了解 MS Teams 是 Per Monitor DPI Aware 应用程序,Accessibility Insight 也是如此。如果我启用 GDI 缩放,阅读改善高 DPI 体验,我确实看到 Accessibility Insight 能够找到应有的元素。此外,Accessibility Insight 在“显示设置”本身(SystemSettings.exe 进程)上运行良好,这也是 Per Monitor DPI Aware。这让我认为 MS Teams 中的 Per Monitor Awareness 没有正确实施。
问题:
- 我的假设是否正确,即 MS Teams 在双/多显示器上无法按预期工作,也就是说,它在具有不同比例因子的双显示器中正确放大或缩小?
- 无论如何,在不更改 MS Teams 的 GDI 缩放/覆盖高 DPI 缩放的情况下,是否可以让 Accessibility Insight 在 MS Teams 上正常工作?
- 在 Electron Application 上运行的 Accessibility Insight 本身是否存在挑战?我观察到与 Slack 类似的问题。
[编辑] 添加了使用 Windows 自动化 API 的结果
运行 Teams 的监视器为 125% 和 1920x1080。虽然我的演示应用程序标记为 Per Monitor DPI Aware 并在 Monitor 100%、1920x1080 上运行。这两款显示器的尺寸均为 14 英寸。结果显示自动化 API 检索的 Teams 应用程序标题栏顶部的根 [团队主窗口] 元素的左侧和顶部位置以及“搜索”框的左侧和顶部位置。根据 Microsoft 的文档,自动化 API 检索物理坐标。观察
- 鼠标的物理位置显示 X:2455 和 Y:10
- 自动化 API 中元素搜索框的左侧和顶部位置分别为 2935 和 280。
- 2935 的值,按比例缩小 1.25 时为 2348,当我在系统 DPI 感知或 DPI 不感知模式下运行我的应用程序时,它与搜索框上鼠标的物理位置匹配。因此,每个监视器模式下的左坐标是系统感知或非感知模式下左坐标的放大版本。
- 我无法得出与 280 的最高值的任何相关性