问题描述
我有包含cefsharp ChromiumWebBrowser组件的winforms应用程序。我希望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);
按照amaitland的提示,我们找到了以下解决方案。 / p>
禁用MultiThreadedMessageLoop-然后,您需要根据下面的原始示例定期调用DoMessageLoopWork。
var settings = new CefSettings()
{
MultiThreadedMessageLoop = false
};
Cef.Initialize(设置);
浏览器=新的ChromiumWebBrowser( https://url.com/);
var t = new Timer {Interval = 5};
t.Start();
t.Tick + = t_Tick;
this.panel1.Controls.Add(浏览器);
}
void t_Tick(对象发送者,EventArgs e)
{
this.BeginInvoke((Action)(()=> Cef。 DoMessageLoopWork()));
}
I have winforms application that contains cefsharp ChromiumWebBrowser component. I want JAWS to read it's content. Now JAWS only read title of main window. Is there any way to achieve this? I tried "force-renderer-accessibility" flag but it didn't help me.
Here is the code i tried:
var settings = new CefSettings()
{
CefCommandLineArgs = { new KeyValuePair<string, string>("force-renderer-accessibility", "true") }
};
Cef.Initialize(settings, performDependencyCheck: false, browserProcessHandler: null);
Following amaitland's prompting above we found the following solution.
Disable MultiThreadedMessageLoop - you then need to periodically invoke DoMessageLoopWork as per the crude sample below.
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()));
}
这篇关于如何使JAWS屏幕阅读器识别和读取cefsharp ChromiumWebBrowser控件的内容?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!