如何让JAWS屏幕阅读器识别和读取cefsharp ChromiumWebBrowser控件的内容?

时间:2017-02-10 16:08:31

标签: winforms accessibility cefsharp jaws-screen-reader

我有winforms包含cefsharp ChromiumWebBrowser组件的应用程序。我希望JAWS能够阅读它的内容。现在JAWS只读主窗口的标题。有没有办法实现这个目标?我试过了#34; force-renderer-accessibility"国旗,但它没有帮助我。

这是我试过的代码:

var settings = new CefSettings()
        {
            CefCommandLineArgs = { new KeyValuePair<string, string>("force-renderer-accessibility", "true") }
        };            
        Cef.Initialize(settings, performDependencyCheck: false, browserProcessHandler: null);

1 个答案:

答案 0 :(得分:2)

按照amaitland的上述提示,我们找到了以下解决方案。

禁用MultiThreadedMessageLoop - 然后您需要根据下面的原始示例定期调用DoMessageLoopWork。

        var settings = new CefSettings()
        {
          MultiThreadedMessageLoop = false
        };            
        Cef.Initialize(settings);

        browser = new ChromiumWebBrowser ("https://url.com/");

        var t = new Timer {Interval = 5};
        t.Start();
        t.Tick += t_Tick;

        this.panel1.Controls.Add(browser);

    }

    void t_Tick(object sender, EventArgs e)
    {
        this.BeginInvoke((Action) (() => Cef.DoMessageLoopWork()));
    }