gpt4 book ai didi

delphi - 如何设置与 TEdit 控件关联的可访问名称?

转载 作者:行者123 更新时间:2023-12-03 14:36:03 28 4
gpt4 key购买 nike

如果用户使用屏幕阅读器(例如 Microsoft 讲述人),并且他们的焦点进入文本框:

enter image description here

他们听到的只是:

Editing text

同时在可访问的应用程序中,

  • 例如 Microsoft 文件资源管理器
  • 微软Word
  • 微软Excel
  • 微软 Outlook

辅助功能系统能够获取控件的“辅助名称”:

enter image description here

Batch separator. Editing text

这通过实现 IAccessible 的窗口起作用界面。它通过向 hWnd 发送 WM_GETOBJECT 来获取窗口的 IAccessible 实现。信息。但应用程序永远不会发送此消息:

Sent by both Microsoft Active Accessibility and Microsoft UI Automation to obtain information about an accessible object contained in a server application.

Applications never send this message directly. Microsoft Active Accessibility sends this message in response to calls to AccessibleObjectFromPoint, AccessibleObjectFromEvent, or AccessibleObjectFromWindow.

但是我们可以处理该消息,并向调用者返回一个IAccessible接口(interface):

case Message.Msg of
WM_GETOBJECT:
begin
if DWORD(Message.LParam) = OBJID_CLIENT then
Message.Result := LResultFromObject(IAccessible, Message.WParam, FAccessible);
end;
end;

在 .NET 世界中,他们的包装器围绕 Edit control ,公开了一种使用 Control.AccessibleName property: 设置 TextBox 的可访问名称的方法

Control.AccessibleName Property

Gets or sets the name of the control used by accessibility client applications.

public string AccessibleName { get; set; }

我不知道底层 Microsoft Edit 控件如何公开辅助功能。除了 TCustomActionMenuBar 之外,我在 VCL 中找不到任何对 IAccessible 的引用。

VCL 如何公开辅助功能?

如何设置与 TEdit 控件关联的可访问名称?

如何设置与编辑控件关联的可访问名称?

奖金闲聊

可访问项目的名称通过 read-only IAccessible.accName property. 返回

Property  Access Type  Description
-------- ----------- ----------------------------------------------------------
accName Read-only The name of the object. All objects support this property.
See get_accName.

奖励阅读

最佳答案

How does the VCL expose accessibility features?

根本没有。

如果您想要此功能,您必须在自己的代码中手动实现与 IAccessible 相关的所有内容,然后子类化您的 VCL 控件以响应 WM_GETOBJECT 消息,就像您在问题中所显示的那样。

例如:

Creating Accessible UI components in Delphi

关于delphi - 如何设置与 TEdit 控件关联的可访问名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49538064/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com