c# - WPF:如何让屏幕阅读器忽略进度条状态更新?

标签 c# wpf accessibility screen-readers

最近,我一直在尝试让内置的 Windows 7 讲述人/屏幕阅读器与我的 WPF 应用程序兼容。关于此的信息很少,但我读到的是我可以设置附加属性(AutomationProperties.HelpText、AutomationProperties.AutomationID)。

我遇到的问题是 UI 包含一个进度条,并且屏幕阅读器在更改时会定期读出当前进度值。在这种情况下,读出进度是不可取的,但我找不到关闭它的方法。我想也许我可以通过访问与该元素关联的 AutomationPeer 来设置它,但情况似乎并非如此(我可以强制引发一个事件,但我不能让它忽略一个事件)。

有谁知道这样做的方法吗?

最佳答案

这通常由屏幕阅读器本身通过用户设置/选项控制,而不是您可以在应用程序级别执行的操作。 Windows 附带的讲述人是一个相当基本的屏幕阅读器;与像 Jaws 或 NVDA 这样更像 Word 的屏幕阅读器相比,它更像是记事本或写字板级别。讲述人的选项很少,而其他两个可能有各种选项,用户可以在屏幕阅读器说出特定事件时使用这些选项进行自定义。

所以,长话短说;在这里你无能为力。确保事件已发送,这样屏幕阅读器就可以按照用户的指示选择阅读或不阅读。

此外,请记住,讲述人是一款基本的屏幕阅读器,大多数用户实际上会使用 Jaws(售价 800 美元左右)或 NVDA(免费!)之类的东西,因此请考虑对它们进行测试,以更深入地了解它的功能真实世界的屏幕阅读器用户会体验到。

关于c# - WPF:如何让屏幕阅读器忽略进度条状态更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7339776/

相关文章:

WPF DataGrid ItemsSource 绑定(bind)问题

C# WPF 即使在最小化时也捕获 keydown

c# - 澄清在 MVVM 中绑定(bind) Listbox.SelectedItem

ios - 对于 iOS、Safari、VoiceOver,如何让 VoiceOver 阅读文本内容以外的内容?

c# - 使用接口(interface)实现 CRUD

c# - 使用具有公差的 IEqualityComparer GetHashCode

font-face - 从屏幕阅读器中隐藏图标的适当方法

reactjs - 将 `eslint-plugin-jsx-a11y` 与 `styled-components` 一起使用

c# - 一对多下拉列表建议

c# - 每天早上 7 点调用 Web 服务方法