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

C# WPF:如何让屏幕阅读器忽略进度条状态更新?,c#,wpf,accessibility,screen-readers,C#,Wpf,Accessibility,Screen Readers,最近,我一直在尝试让内置的Windows7旁白/屏幕阅读器与我的WPF应用程序兼容。关于这方面的信息很少,但我读到的是,我可以设置附加属性(AutomationProperties.HelpText、AutomationProperties.AutomationID) 我遇到的问题是,UI包含一个进度条,当前进度值在屏幕阅读器更改时定期被读取。在这种情况下,读出进度是不可取的,但我无法找到一种方法来关闭它。我想也许我可以通过访问与元素关联的AutomationPeer来设置它,但事实似乎并非如此

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

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


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

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

长话短说;你在这里无能为力。确保事件被发送,这样屏幕阅读器可以根据用户的指示选择是否读取事件


还要记住,叙述者是一个基本的屏幕阅读器,大多数用户实际上会使用像JaveS(大约800美元左右)或NVDA(免费!)之类的东西,所以考虑一下这些测试,以获得一个真实的屏幕阅读器用户体验的更近的感觉。我希望至少有一些方法可以“建议”屏幕阅读器忽略某些元素,但我将尝试使用NVDA进行测试,以便更好地了解更高级的屏幕阅读器的功能。谢谢如何强制引发事件?我认为这取决于您使用的屏幕阅读器,但您应该能够调用AutomationPeer.RaiseAutomationEvent()