Silverlight:如何强制屏幕阅读器阅读内容?

时间:2011-06-17 00:21:34

标签: c# silverlight accessibility ui-automation screen-readers

Silverlight在使自动化树可访问方面做得很好,但有没有办法以编程方式让屏幕阅读器阅读内容?到目前为止,我一直在使用:

        AutomationPeer peer = FrameworkElementAutomationPeer.FromElement(element);
        if (peer == null)
        {
            peer = FrameworkElementAutomationPeer.CreatePeerForElement(element);
        }
        if (peer != null)
        {
            peer.RaiseAutomationEvent(AutomationEvents.AutomationFocusChanged);
        }

这在调试Silverlight运行时下工作正常(即如果我从VS内部启动IE),但如果我在Visual Studio外部启动IE(即使它指向同一个内部开发服务器......)也不行。那么有另一种简单的方法让屏幕阅读器阅读一些内容吗?

编辑:它在MS讲述者中也能正常工作,但在NVDA中却不行......很奇怪。

1 个答案:

答案 0 :(得分:0)

我认为你必须将重点放在元素本身上。屏幕阅读器跟踪焦点,然后根据焦点读取值。如果您触发AutomationFocusChanged事件,那么它可能会检测到该事件,但会返回到之前的相同控件。