2017-02-10 2 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는 약 16ms마다 변환되는 초당 약 60 회 실행해야합니다. 너무 자주 달리면 뜻하지 않은 결과가 발생합니다. – amaitland

+0

좋은 정보 덕분입니다. 나는 그것에 대해 확신하지 못했습니다. –

관련 문제