2017-02-10 8 views
1

私はcefsharp ChromiumWebBrowserコンポーネントを含むwinformsアプリケーションを持っています。私はJAWSにその内容を読ませたい。現在、JAWSはメインウィンドウのタイトルのみを読み込みます。これを達成する方法はありますか?私は "force-renderer-accessibility"フラグを試みましたが、それは私を助けませんでした。JAWSスクリーンリーダーがcefsharp ChromiumWebBrowserコントロールのコンテンツを認識して読み込む方法を教えてください。

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

コードの問題は何ですか?なぜそれは機能しませんでしたか? –

+0

デフォルトでは、ブラウザは別のメッセージループで実行されます。 – amaitland

答えて

1

をamaitlandのプロンプト私たちの上に次の解決策を見つけ、次のとおりです。ここで

は、私が試したコードです。

MultiThreadedMessageLoopを無効にする - DoMessageLoopWorkを定期的に呼び出す必要があります。

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

     browser = new ChromiumWebBrowser ("https://devsandbox.surpass-preview.com/launchtest"); 

     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())); 
    } 
+0

DoMessageLoopWorkは約60回/秒で実行する必要があります。これは約16msごとに実行されます。あまりにも頻繁に実行すると、予期せぬ結果が生じます。 – amaitland

+0

それは素晴らしい情報ありがとうございます。私はそれについてはわからなかった。 –

関連する問題