Как заставить программу чтения с экрана JAWS распознавать и читать содержимое элемента управления cefsharp ChromiumWebBrowser?

У меня есть приложение winforms, которое содержит компонент cefsharp ChromiumWebBrowser. Я хочу, чтобы JAWS прочитал его содержание. Теперь JAWS только читает заголовок главного окна. Есть ли способ добиться этого? Я попробовал флаг "force-renderer-accessibility", но он мне не помог.

Вот код, который я попробовал:

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

1 ответ

Следуя подсказке 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()));
    }
Другие вопросы по тегам