如何解决更改UWP TextBox的屏幕阅读器行为?
我编写了一个UserControl,它的工作方式与PasswordBox类似,但通过TextBox实现。该控件将替换键入的字符,这些字符使用“点”字符,并且在我们不想显示实际内容的情况下使用。除了屏幕阅读器会读取要键入的每个字符外,它还是按预期工作,这违背了目的。相比之下,当用户在PasswordBox中键入字符时,讲述人程序将说“隐藏”而不是键入的密钥。
当用户在TextBox中键入按键时,是否可以做些更改屏幕阅读器行为的操作?如果我可以说“隐藏”会很好,但是让屏幕阅读器不说任何内容也可以。我查看了AutomationProperties类的属性,但看不到明显的东西。
解决方法
在编写Windows应用程序时,用于UI的类已经提供了UI自动化支持,它启用了辅助功能应用程序和辅助技术,例如屏幕阅读器。 PasswordBox的自动化为PasswordBoxAutomationPeer,您可以检查默认对等实现并在PasswordBoxAutomationPeer中覆盖部分,它覆盖IsPassword方法,该方法可以防止屏幕阅读器读取字符。
因此,您可以从TextBox派生自定义类,并为在自定义类中启用的其他功能添加自动化支持。然后重写OnCreateAutomationPeer,以便它返回您的自定义对等项。例如:
onTintColor
在那之后,您可以在MyTextBox中用“点”字符替换字符。另外,有关自定义自动化对等项的更多详细信息,您可以参考此document。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。