【问题标题】:How to make custom GUI controls visible to screen readers?如何使自定义 GUI 控件对屏幕阅读器可见?
【发布时间】:2013-07-05 09:03:41
【问题描述】:

我正在努力提高我的 Delphi 应用程序对视力障碍用户的可访问性。我的应用程序使用许多自定义 GUI 组件。它们大多来自 TWinControl 或 TGraphicControl。

在使用NVDA测试时,我的自定义组件似乎是不可见的。例如,NVDA将通过读取常规Delphi VCL控件(例如按钮或表单)播放时读取控件(或其他细节)的名称来响应。相比之下,当在任何自定义控件上致力于鼠标时,NVDA根本没有响应。

如何使我的自定义组件对NVDA和其他屏幕阅读软件可见?

【问题讨论】:

  • 可能的副本Creating Accessible UI components in Delphi remy在这个问题上的出色答案将指导您解决方案 span>
  • @ davidheffernan谢谢您的链接。我不认为这个问题是完全重复的。 Remy 的回答解决了实现 IAccessible 的问题,这只是可能实现的 API 之一。

标签: delphi delphi-xe2 accessibility screen-readers nvda


【解决方案1】:

NVDA Design Overview 页面上找到了答案。 NVDA 使用许多可访问性 API 来收集有关 GUI 控件的信息。 NVDA 支持:

看来我需要实现上述 API 之一。不确定每个 API 的优缺点是什么。

Creating Accessible UI components in Delphi 提供有关实现 IAccessible 的详细信息。 (感谢大卫的链接)

【讨论】:

  • 我相当怀疑 MSAA 比 UIAutomation 更容易实现。我还认为较旧的 MSAA 将比最近的 UIAutomation 获得更广泛的支持。因此,除非您需要支持仅在 UIAutomation 中可用的功能,否则您可能会更好地使用 MSAA。
猜你喜欢
  • 2018-12-31
  • 1970-01-01
  • 2012-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-26
相关资源
最近更新 更多