我试图改善我的Delphi应用程序对视力障碍用户的可访问性。我的应用程序使用许多自定义GUI组件。它们主要来自TWinControl或TGraphicControl。

使用NVDA进行测试时,我的自定义组件似乎不可见。例如,当鼠标悬停在常规的Delphi VCL控件(例如按钮或窗体)上时,NVDA将通过读取控件的名称(或其他详细信息)进行响应。相反,将鼠标悬停在我的任何自定义控件上时,NVDA完全不响应。

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

最佳答案

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

  • Microsoft Active Accessibility (MSAA)(也称为IAccessible),
  • ​IAccessible2
  • Java访问桥
  • UI Automation

  • 看来我需要实现上述API之一。尚不确定每种API的优缺点。

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

    10-04 17:52