- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果用户使用屏幕阅读器(例如 Microsoft 讲述人),并且他们的焦点进入文本框:
他们听到的只是:
Editing text
同时在可访问的应用程序中,
辅助功能系统能够获取控件的“辅助名称”:
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
消息,就像您在问题中所显示的那样。
例如:
关于delphi - 如何设置与 TEdit 控件关联的可访问名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49538064/
我正在为表单上的 tedit 对象定义自定义样式。 在样式编辑器中,我向背景属性添加了一个tRectangle,将其Align 属性设置为Client,设置填充和描边颜色。然后我保存了样书,tedit
我想在TEdit中格式化##.###.###-#,我使用以下代码: procedure TfrmPropiedad.edtRUTChangeTracking(Sender: TObject); var
我希望使用 VCL 和 Delphi 10+ 在 TEdit 或 TMemo 控件中看到彩色表情符号。 可以吗? 输入的文字: 👨🏼🎤👩🏾👩🏼👧🏻👦🏿 我看到的: 我想看
我有一个由两个 TComboBox 组成的表格和一个 TEdit控件,我希望能够更新 TEdit 中的单词使用组合框中的值进行控制,但不太确定如何使其工作。 例子: 组合框 #1 包含以下项目:sue
我是 super 新手,并尝试编写以下代码,将每个 TEdit.Text 设置为代码中提到的一个 procedure TForm2.Button1Click(Sender: TObject); var
我正在尝试编写一个数独求解器,我想控制 81 个 TEdit 控件作为数组,但它们的名称是 Edit1、Edit2、Edit3 而不是 Edit[1]、Edit[2] 等 我不想为所有 81 个控件分
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
有什么办法可以添加placeholder文本要编辑? 我唯一的想法是始终在其 OnChange 事件中手动设置给定 edit 的颜色和文本,但这对我来说似乎有点乏味。 还有其他建议吗? 最佳答案 您正
我想将我的 TEdit 的 Texthint 更改为灰色。 我已经找到了这个https://stackoverflow.com/a/31550017/1862576并尝试通过 SendMessage
如何添加仅接受数字的 TEdit?我搜索信息但没有任何帮助。 我需要一个不接受任何字母或字符串的TEdit。 procedure TForm1.Edit1KeyPress(Sender: TObjec
当用户单击 TEdit1 或单击选择其中的某些文本时,如何选择 TEdit1 的所有文本 最佳答案 执行超出 TEdit 控件默认行为的任何操作都可能非常危险。您的用户知道标准 Windows 控件的
我想创建一个编辑框,用户必须在其中输入密码。当他们输入密码时,我希望不显示该字符,而是显示 *。是否有任何属性可以设置来执行此操作,我知道如何将 TEdit 设置为在输入时保持空白,但我不希望这样做。
TEdit(或 TCombo、TButtonedEdit)中的文本始终与顶部对齐。我还没有找到任何可以改变对齐方式的属性。通常这不是问题,除非我想设置更大的高度。 我用谷歌搜索了一下。有一些解决方案可
我想使用与默认不同的 Font.Color 绘制一段 TEdit.Text。有没有例子如何做到这一点? 我正在尝试做这样的事情: 注意:这张截图只是一个毛茸茸的草稿,但它让我相信什么问题是可以解决的。
我想在 Paintbox 中绘制 TEdit 的主题边框。该代码必须在 Windows Vista 和 7 下运行。我已尝试以下操作。它只能在 Windows XP 下运行。 var Detail
我有一个表单 TForm1,其中包含 5 个 TEdit 和 2 个 TBitBtn。 我还需要该程序,以便在 BitBtn1Click 上的 Edit1 和 Edit2 中输入数字数据后,Edit1
我在 Delphi 中编写代码时遇到了问题。也就是说,我无法访问组件,即使它们已声明并且我在上面的代码中使用了它们(之前在过程中,现在我尝试在函数中使用它们 - 也许这就是原因,我不知道,我不擅长De
如果用户使用屏幕阅读器(例如 Microsoft 讲述人),并且他们的焦点进入文本框: 他们听到的只是: Editing text 同时在可访问的应用程序中, 例如 Microsoft 文件资源管理器
创建一个简单的 FireMonkey 移动应用。 向表单添加 TEdit 字段。 分配 OnApplyStyleLookup 事件 编写以下代码 procedure TForm1.Edit1Apply
很容易获得 TEdit 控件的外部尺寸,但其中包括斜角(或框架,取决于 Ctrl3d 是否为真)。我想找出TEdit的白色输入区域的尺寸和位置。 我尝试了 TEdit.ClientRect,但如果 C
我是一名优秀的程序员,十分优秀!