Как заставить программу чтения с экрана 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()));
}