WinApi:如何为屏幕阅读器的自绘按钮添加替代文本?
Posted
技术标签:
【中文标题】WinApi:如何为屏幕阅读器的自绘按钮添加替代文本?【英文标题】:WinApi: How to add alternative text to owner-drawn button for screen readers? 【发布时间】:2013-07-01 15:03:31 【问题描述】:我创建了一个应用程序(C++,纯 Win32,没有 ATL/MFC),它有一个带有两个按钮的窗口。
这些是所有者绘制的按钮,是窗口本身的子级,我使用带有 BS_OWNERDRAW 样式的 CreateWindowEx 创建它们。
我目前正在进行辅助功能测试,但屏幕阅读器无法读取按钮上的文本。是否需要采取特殊步骤才能让屏幕阅读器读取按钮文本?
【问题讨论】:
你的按钮不显示文字??是你的问题吗?是吗?? 不,按钮正在显示文本,屏幕阅读器无法识别按钮上的文本并将其读出 您是否尝试过使用 SetWindow Text 向按钮实现提供文本? (这可能是屏幕阅读器寻找它的地方,无论按钮是否自行绘制。) 微软有一个完整的可访问性 API 供屏幕阅读器使用,特别是这样他们就不必求助于此类手动操作。标准 UI 控件默认实现辅助功能,但我不确定所有者绘制的控件如何处理。 【参考方案1】:正如 Scott 所说,尝试设置按钮的标准窗口文本,即使您是手动绘制它。否则,您将不得不让您的控件实现IAccessible
接口,并响应WM_GETOBJECT
窗口消息,以便向屏幕阅读器和自动化工具提供自定义文本等详细信息。
【讨论】:
以上是关于WinApi:如何为屏幕阅读器的自绘按钮添加替代文本?的主要内容,如果未能解决你的问题,请参考以下文章
如何为移动屏幕的导航栏项目添加切换按钮,并使用 HTML、CSS 和 Bootstrap v4 将它们切换为下拉菜单