nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
Other
2.08k stars 626 forks source link

NVDA stops reading webpages in all browser - saying "unknown" or "pane" #2807

Closed nvaccessAuto closed 6 years ago

nvaccessAuto commented 11 years ago

Reported by techczech on 2012-11-18 17:48 Some time ago NVDA started to simply report "unknown" or "pane" when I try to read any webpage with it. I installed the 2012.3 beta and it started working but when I updated to the final version of 2012.3, it's happening again. This is an issue in Chrome, FF and IE 9. (Chrome and FF say "unknown" and IE9 says "pane").

I suspect it may be some problem with my computer (Win 7, 64bit, 8GB RAM, 128 SSD) since the same thing happens with portable versions that work on other machines but have no idea where to start looking.

Otherwise everything else seems to work fine. Even the Browser window (i.e. page title is read fine) but nothing on the webpage works.

I saw a similar issue reported on http://www.nvda-project.org/ticket/2624 but no resolution was offered.

I did notice that there were problems with pages that had not been fully loaded before but this is even on pages that are completely loaded. Blocking #4408, #4641

nvaccessAuto commented 11 years ago

Comment 1 by techczech on 2012-11-18 18:53 Some other things I've noticed:

  1. If I try to select a bit of text on a webpage and press NVDA+Shift+upArrow, I get "no selection". But when I press NVDA+upArrow, I get "blank".
  2. Audio feedback in a text area works fine but trying to get selected text read out gives me "no selection".
  3. The same issue happens when I have the browser in incognito mode.
  4. NVDA-F7 does nothing
nvaccessAuto commented 11 years ago

Comment 2 by briang1 on 2012-11-20 08:59 Well, the fact that this is happening on more than one browser suggests to me that you have a windows or other software issue here. If it used to work, it might be worth having a look at what has been installed since it did work. If it never worked on this machine, then to be honest it could be almost anything. I had some issues a while back with a piece of software that continuously put an invisible window over every piece of software I tried to run. This was a badly designed internet connection monitoring freebie that came with a usb dongle. Removing that and using the Windows device solved the issue completely. You might try looking at anything strange which runs with start up and disabling it. Just a suggestion as it had me foxed as it looked like no buffers were being created. It showed itself up as a real mouse click was the only way to get things to work correctly, presumably as this moved the program being runs display to the foreground.

nvaccessAuto commented 11 years ago

Comment 3 by techczech on 2012-11-25 11:35 The plot thickens. I tried to disable all the possible background processes and nothing happened. Finally, I booted into Safe Mode (with networking) and using the Speech viewer was getting the same problem in all browsers. Unknown in Firefox/Chrome and pane in IE. This was both with installed 2012.3 and portable 2012.2. It continued to work fine on all the interfaces, in text documents and in MS Word.

But I did notice that it does not read PDFs - either in Adobe Reader XI or in PDF X-Change Viewer. It reads the interfaces but says 'avenue page view' when I mouse over the text pane but nothing else when I try to select text.

As I said, it used to work on this machine. The problem is that I can't identify exactly what might have happened between it working and not working because I only use NVDA seldom for testing websites and I also test a lot of software.

Could this be some sort of keylogger or other root malware on my machine? What kind of process would cause this?

nvaccessAuto commented 11 years ago

Comment 4 by mdcurran on 2012-11-26 08:04 I assume that in Firefox you also can't track the cursor in edit fields? This sounds very much like IServiceProvider is not available or is functioning incorrectly. We use this interface for IAccessible2 (Firefox), MSHTML (Internet Explorer) and Adobe Reader. But not for MS Office or UI Automation etc. One other person reported this to me earlier this year. Clearly there must be some kind of software that is installed, or was installed, that is either blocking queryInterface to IServiceProvider, or has somehow unregistered IServiceProvider proxying altogether.

nvaccessAuto commented 11 years ago

Comment 5 by briang1 on 2012-11-26 18:18 I guess he could compare running processes on a good and non working system to see if this is the case or maybe 7 has something likexps system file checker, but from memory, registration is not always checked in these pieces of software.

nvaccessAuto commented 11 years ago

Comment 6 by techczech on 2012-11-26 20:27 Is there a way I can check what this could be? I googled IServiceProvider and there doesn't seem to be a way to query it from the user interface. I tried running the .Net installer and repair .Net but that didn't help.

I tried the trial of JAWS13 and that works fine (so I'm assuming they use a different method).

nvaccessAuto commented 11 years ago

Comment 7 by jteh on 2012-11-26 21:22 Please try the following:

  1. Open a command prompt as administrator: Start menu, type cmd.exe into the search box, press control+shift+enter and accept the UAC prompt.
  2. Copy and paste the following command and press enter:
 regsvr32 "c:\program files\internet explorer\ieproxy.dll"
  1. Copy and paste the following command and press enter: regsvr32 "c:\program files (x86)\internet explorer\ieproxy.dll"
  2. Type exit and press enter to exit the command prompt.
nvaccessAuto commented 11 years ago

Comment 8 by techczech on 2012-11-26 22:00 Thanks. Did that successfully but no joy. NVDA still not working.

nvaccessAuto commented 11 years ago

Comment 9 by briang1 on 2012-12-05 08:12 The last time I got an unregistered dll like this I had to reboot the machine for it to start working. Note this was a problem with Outlook Express in XP, but I'd imagine the same principals are involved.

nvaccessAuto commented 11 years ago

Comment 10 by jteh on 2012-12-05 08:25 You may need to use the 32 bit version of regsvr32. Also, there's another dll you might need to register call actxprxy.dll. Please try the steps in this article.

nvaccessAuto commented 11 years ago

Comment 11 by jteh (in reply to comment 8) on 2013-01-23 01:33 Replying to techczech:

Thanks. Did that successfully but no joy. NVDA still not working.

Can you please try the following?

  1. Open a command prompt as administrator: Start menu, type cmd.exe into the search box, press control+shift+enter and accept the UAC prompt.
  2. Type this command and press enter:
 sfc /scannow
  1. Type exit and press enter to exit the command prompt.
  2. Restart NVDA. Does this help?
nvaccessAuto commented 10 years ago

Comment 13 by bgaraventa on 2014-09-10 23:25 I'm having the same problem, and it's driving me sort of nuts.

I'm using a Win7 64bt machine new as of six months ago, and at first NVDA ran as expected.

I remember checking a web page at the end of July, which worked fine, then have updated NVDA since then with newer versions, and now I can't access any web content in any browser. The browser opens, but it is impossible to navigate into and read the content. The rest of the OS appears to be accessible as before, just that all web content is now unreadable.

I did all of the recommended steps above, and registered all of the DLLs successfully, restarted, and had the same result, then I ran the check cmd prompt indicated after, and got the following message: "Windows Resource Protection did not find any integrity violations."

I restarted NVDA, with the same result. I uninstalled NVDA all together, erased any remaining files in %appdata% to clear everything, reinstalled the latest NVDA release as of today, and still have the same problem.

Any ideas would be appreciated.

nvaccessAuto commented 10 years ago

Comment 14 by jteh on 2014-09-10 23:30 Please try registering c:\windows\system32\oleaut32.dll, c:\windows\syswow64\oleaut32.dll, c:\windows\system32\oleacc.dll and c:\windows\syswow64\oleacc.dll with regsvr32; see comment:7 for instructions, but substitute the file name.

nvaccessAuto commented 10 years ago

Comment 15 by briang1 on 2014-09-11 08:21 For the record, on one of my machines it turned out to be the 32 bit version of oleacc.dll that had been deregisterd by a windows update which tried to update an Office product I'd actually uninstalled. After doing this fix, I found that Microsoft actually had a fixer for Office products that failed to uninstall correctly and the problem never returned as update never tried to update the non existant Office 2010 again.

landmine commented 8 years ago

I am having this problem as well. This machine is a Windows 10 laptop, and I have been using NVDA with Firefox almost daily since January without problems. It came with Windows 10 Home from the factory, so this was not an upgrade. The problem started on last Thursday 5/12. I believe that it also coincided with a Windows update. But I have uninstalled all updates from that date and a few days before, and the problem persists.

NVDA works correctly on the desktop, Windows start menu, and most applications. MSN Money reads perfectly, and NVDA is working with Edge. But it fails to work with IE11, Thunderbird, Chrome and Firefox ever since this problem has started. As I move through these applications, NVDA reads 'unknown' for each element (Chrome, FF, Thunderbird) or in IE11 NVDA is silent. This is the case when NVDA is installed on the machine or I use the portable version (both 2016.1)

This problem is not present using JAWS. I've tried booting into safe mode to test, but I get a message indicating that no wave device is available to play sound. Please let me know what you think and if there is any other info I can provide.

jcsteh commented 8 years ago

This occurs when certain Windows components become unregistered for some reason or another. Unfortunately, it can be one of several components. Please try the suggestions provided in earlier comments on this issue.

landmine commented 8 years ago

I have tried registering all the DLLs listed on this issue, but no luck. This includes:

c:\windows\system32\oleaut32.dll c:\windows\syswow64\oleaut32.dll c:\windows\system32\oleacc.dll c:\windows\syswow64\oleacc.dll

I tried: "c:\program files\internet explorer\ieproxy.dll" + "c:\program files (x86)\internet explorer\ieproxy.dll" but got file not found.

Are there any other files you could suggest? Perhaps there are additional needed components in Windows 10?

landmine commented 8 years ago

I don't know which .dll file was the cause, but NVDA is working again in all browsers after running this in a cmd window as admin:

for %x in (c:\windows\system32\*.dll) do regsvr32 /s %x

effectively re-registering all components in the system32 folder.

Thanks for the lead!

Brian1Gaff commented 8 years ago

Well usually its something in Office that seems to muck this up and I can only guess why, so I'll shut up.

:-) Brian

bglists@blueyonder.co.uk Sent via blueyonder. Please address personal email to:- briang1@blueyonder.co.uk, putting 'Brian Gaff' in the display name field. ----- Original Message ----- From: "Christopher W. Land" notifications@github.com To: "nvaccess/nvda" nvda@noreply.github.com Sent: Thursday, May 19, 2016 12:12 PM Subject: Re: [nvaccess/nvda] NVDA stops reading webpages in all browser - saying "unknown" or "pane" (#2807)

I don't know which .dll file was the cause, but NVDA is working again in all browsers after running this in a cmd window as admin:

for %x in (c:\windows\system32\*.dll) do regsvr32 /s %x

effectively re-registering all components in the system32 folder.

Thanks for the lead!


You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/nvaccess/nvda/issues/2807#issuecomment-220294831

werose commented 7 years ago

same to me

karlbo commented 7 years ago

Just reiterating that for 64-bit systems, the following (from an admin command prompt) did the trick:

C:\Windows\SysWOW64 regsvr32 oleacc.dll

derekriemer commented 7 years ago

If you are needing help, I am willing to explain how to do this, otherwise, we can't fix this.

On 10/26/2016 11:03 AM, zahra21 wrote:

hi joseph.
i studied the suggestions.
but i am not computer expert to use registry and cmd.
also bug reporter mentioned that this solution could not resolved
his problem!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/nvaccess/nvda/issues/2807#issuecomment-256413376, or mute the thread https://github.com/notifications/unsubscribe-auth/AFGivbQNeFf2UhHWRICQDzTQcT92SUxAks5q34fjgaJpZM4IhlAJ.


Derek Riemer

Websites: Honors portfolio http://derekriemer.com Awesome little hand built weather app! http://django.derekriemer.com/weather/

email me at derek.riemer@colorado.edu mailto:derek.riemer@colorado.edu Phone: (303) 906-2194

feerrenrut commented 7 years ago

This seems like a good candidate to document on the wiki since its affected so many people. P2 to create the wiki page documenting the problem and the fixes outlined here, then I think the issue can be closed.

derekriemer commented 7 years ago

@feerrenrut for less technical users, would a fixer program to fix the issue be on scope as well?

feerrenrut commented 7 years ago

After we collect this info, providing a simple batch file or similar might be simpler than explaining how to do it manually. Being sure it works across all systems may not be so easy.

zahra21 commented 7 years ago

hi. whats the reason that nvda does not work with firefox if someone uninstall one office program? i read that this problem happen, if we uninstall office program! i realy wish to fix it very soon.

On 11/4/16, Reef Turner notifications@github.com wrote:

After we collect this info, providing a simple batch file or similar might be simpler than explaining how to do it manually. Being sure it works across all systems may not be so easy.

You are receiving this because you commented. Reply to this email directly or view it on GitHub: https://github.com/nvaccess/nvda/issues/2807#issuecomment-258353973

we have not sent you but as a mercy to the creation. holy quran, chapter 21, verse 107. in the very authentic narration is: imam hosein is the beacon of light and the ark of salvation. best website for studying islamic book in different languages al-islam.org

jcsteh commented 7 years ago

The trouble is we really don't know what fixed it for different people. There seem to be a few different issues that manifest as the same problem. I guess just registering all COM dlls in system should be pretty safe, though I'm not sure we can automatically determine which ones are COM dlls from a batch script. Also, I'm a lot more dubious about automating something like sfc /scannow, since I really have no idea whether it could potentially break other things on the system. Still, it's probably worth at least collating the data we do have into a coherent stream. :)

klabranche commented 7 years ago

I know this comment is much later but I wanted to let anyone searching the web like I was for this issue. I had just uninstalled several programs from my box including CS6 & Adobe Pro and then JAWS and NVDA stopped reading browsers. I did the for loop that @landmine mentioned above on May 19, 2016 and it got my readers working again.

for %x in (c:\windows\system32\*.dll) do regsvr32 /s %x

jcsteh commented 7 years ago

Ideally, we want to try to create some sort of tool built into NVDA which can fix problems like this. That tool should run automatically at install time, but it could also be an option in the Tools menu for systems which get broken post NVDA install. We will not support Windows XP or Vista with this tool, since that adds additional complexity and those operating systems are no longer supported by Microsoft anyway.

Registering every dll in the system directory isn't really feasible. However, some research should hopefully allow us to avoid this.

Here's what we know so far.

Oleacc:

  1. On Windows XP, IAccessible ({618736E0-3C3D-11CF-810C-00AA00389B71}) was marshalled using the typelib marshaller; i.e. it specified the typelib marshaller ({00020424-0000-0000-C000-000000000046}) as its ProxyStubClsid32.
  2. On Windows 7 and above, IAccessible switched to using the oleacc.dll proxy dll for marshalling; ProxyStubClsid32 is {03022430-ABC4-11D0-BDE2-00AA001A1953}.
  3. Some applications incorrectly register themselves as the proxy/typelib for IAccessible when they install.
  4. Fixing this should just be a matter of re-registering the correct proxy for IAccessible as per point 2.
  5. The question is whether regsvr32 oleacc.dll does this registration correctly. Users seem to suggest it does, but I've also heard it doesn't. We've heard of at least one case where regsvr32 on all dlls in system32/syswow64 didn't seem to fix the issue, but a registry patch fixed it. We'll need to test this on Windows versions 7 through 10, probably by breaking the IAccessible ProxyStubClsid32 entry and then regsvr32 oleacc.dll. We should also make sure that this gets reset properly even when we set IAccessible to use the typelib marshaller, as broken apps might do this (point 3) and it's possible oleacc checks this before overwriting.
  6. If it doesn't, we can modify the registry ourselves. This combined registry patch does that for both normal and WoW64.

Other interfaces:

  1. We need IDispatch ({00020400-0000-0000-C000-000000000046}) and IEnumVARIANT ({00020404-0000-0000-C000-000000000046}). Those are in oleaut32.dll. Regsvr32 should fix that, but again, that needs to be tested.
  2. We need IServiceProvider ({6D5140C1-7436-11CE-8034-00AA006009FA}). On some versions of Windows, that's in ieproxy.dll, which is either in Program Files\Internet Explorer or system32. In Windows 10, it's in system32\OneCoreCommonProxyStub.dll. The correct dll needs to be checked on Windows versions 7 through 10.
  3. We may also need to register actxprxy.dll, but I'm not certain. There's probably no harm in doing it anyway.
  4. There are a lot of base interfaces in combase.dll, but it doesn't seem to be possible to register that one. Hopefully, that one doesn't ever get broken.

Notes:

jcsteh commented 7 years ago

Further findings regarding regsvr32 oleacc.dll:

  1. If the IAccessible registration is correct (i.e. marshalling with oleacc.dll), regsvr32 oleacc.dll leaves it alone.
  2. If it specifies a proxy other than the typelib marshaller or oleacc, it registers the typelib marshaller with the correct typelib.
  3. If it's already the typelib marshaller, it corrects the typelib if necessary, but leaves the typelib marshaller.

In other words, this doesn't quite do what we want: it leaves the typelib marshaller when it shouldn't. That could mean we end up with a situation where 32 and 64 bit are using a different marshaller, which means breakage.

So, we should tweak the registry ourselves for IAccessible.

dkager commented 7 years ago

There is no such thing as coincidence: today I had this problem with MathPlayer. So I would be happy to work on some kind of tool (though I lack the appropriate background).

jcsteh commented 7 years ago

@dkager commented on 3 Aug 2017, 23:44 GMT+10:

There is no such thing as coincidence: today I had this problem with MathPlayer.

It'd be great if you could confirm whether this registry patch (rename to .reg) fixes the issue. This is for a 64 bit system. If you're using a32 bit system, remove the sections containing WOW6432Node.

jcsteh commented 7 years ago

For anyone experiencing this issue, please try the following. Note that these instructions are not as complete for Windows 8 and 8.1 yet.

  1. Please apply this registry patch (remove the .txt extension).
  2. If you're using 64 bit Windows, please also apply this second registry patch (remove the .txt extension).
  3. Open a command prompt as administrator: Start menu, type cmd.exe into the search box, press control+shift+enter and accept the UAC prompt.
  4. Enter the following commands:
    c:\windows\system32\regsvr32 c:\windows\system32\oleaut32.dll
    c:\windows\system32\regsvr32 c:\windows\system32\actxprxy.dll
  5. On a 64 bit system, also enter the following commands:
    c:\windows\syswow64\regsvr32 c:\windows\syswow64\oleaut32.dll
    c:\windows\syswow64\regsvr32 c:\windows\syswow64\actxprxy.dll
  6. On Windows 7 (both 32 and 64 bit), also enter the following command:
    c:\windows\system32\regsvr32 "c:\Program Files\Internet Explorer\ieproxy.dll"
  7. On Windows 7 64 bit, also enter the following command:
    c:\windows\syswow64\regsvr32 "c:\Program Files (x86)\Internet Explorer\ieproxy.dll"
  8. On Windows 10 (both 32 and 64 bit), also enter the following command:
    c:\windows\system32\regsvr32 c:\windows\system32\OneCoreCommonProxyStub.dll
  9. On Windows 10 64 bit, also enter the following command:
    c:\windows\syswow64\regsvr32 c:\windows\syswow64\OneCoreCommonProxyStub.dll
dkager commented 7 years ago

Confirmed working, after restarting NVDA and Explorer.

NZGene commented 7 years ago

In Windows 10, on some machines NVDA has been saying unknown or pane in all browsers (apart from Edge). If using a copy of Mozilla Thunderbird, and you try and tab through to get to the tree view (where the folders are) it basically says unknown. It doesn't do anything in Mozilla Thunderbird. You can't even get to the menus in Mozilla Firefox. NVDA says unknown in the running applications section. It will not speak any of the icons there. If the applications key is used, it will not speak any of the menus. Yet it will work in other programs but not quite correctly at times. Refer to a suggestion from May 19th that fixed the problem, but other people on the NVDA list are having the same problem. This sometimes may be after a Windows update or if Office is uninstalled. The log here is from an earlier version of NVDA, but have seen people using 2017.2 have the same problem.

NVDA log.docx

jcsteh commented 7 years ago

@NZGene, it'd be good if you can try the steps I suggested in https://github.com/nvaccess/nvda/issues/2807#issuecomment-320149243 on affected machines and report whether that fixes the issue for you. The eventual aim is to develop a tool to fix problems like this automatically and it'd be helpful to know whether our suspicions about the cause of the problem are correct. Thanks.

KITSKevinBonett commented 6 years ago

Hi @jcsteh - I've also been having issues with NVDA and have just applied fixes suggested in your comment above. I can confirm that NVDA now works correctly in Win7 SP1 with FF57 and IE11. I've tried both NVDA 2017.3 and 2017.4.

Might be an idea to make this fix more prominent on NVDA website? Maybe on https://www.nvaccess.org/help/

Brian1Gaff commented 6 years ago

Yes if you have a fix for this might be worth an update to nvda stable too with info. I gave up and went back to the old esr, though may well take up Jamies idea of a portable version if I can figure out how to register two dlls in different places with the same name that is.. gulp. Brian

michaelDCurran commented 6 years ago

As mentioned by some users, oneCoreCommonProxyStub.dll cannot be registered again on windows 10. It does not export DllRegisterServer. The alternative would be to put the needed registry values for IServiceProvider in a .reg file and import it to the Registry. Interestingly, Windows 10 refuses to import the file. I'm guessing that now windows 10 is protecting some system interfaces from being tampered with... which is a good thing. Let us hope that Trusted Installer also cannot do this and thus the issue with IServiceProvider becoming unregistered or incorrectly registered is no longer possible on windows 10. Note that even if trusted installer can do this, NVDA can never gain this permission, so we won't be able to fix it anyway.

michaelDCurran commented 6 years ago

On windows 8.1, IServiceProvider is in actxprxy.dll.

RadhikaTakyar commented 5 years ago

For anyone experiencing this issue, please try the following. Note that these instructions are not as complete for Windows 8 and 8.1 yet.

  1. Please apply this registry patch (remove the .txt extension).
  2. If you're using 64 bit Windows, please also apply this second registry patch (remove the .txt extension).
  3. Open a command prompt as administrator: Start menu, type cmd.exe into the search box, press control+shift+enter and accept the UAC prompt.
  4. Enter the following commands:
    c:\windows\system32\regsvr32 c:\windows\system32\oleaut32.dll
    c:\windows\system32\regsvr32 c:\windows\system32\actxprxy.dll
  5. On a 64 bit system, also enter the following commands:
    c:\windows\syswow64\regsvr32 c:\windows\syswow64\oleaut32.dll
    c:\windows\syswow64\regsvr32 c:\windows\syswow64\actxprxy.dll
  6. On Windows 7 (both 32 and 64 bit), also enter the following command:
    c:\windows\system32\regsvr32 "c:\Program Files\Internet Explorer\ieproxy.dll"
  7. On Windows 7 64 bit, also enter the following command:
    c:\windows\syswow64\regsvr32 "c:\Program Files (x86)\Internet Explorer\ieproxy.dll"
  8. On Windows 10 (both 32 and 64 bit), also enter the following command:
    c:\windows\system32\regsvr32 c:\windows\system32\OneCoreCommonProxyStub.dll
  9. On Windows 10 64 bit, also enter the following command:
    c:\windows\syswow64\regsvr32 c:\windows\syswow64\OneCoreCommonProxyStub.dll

Hi- I am getting this error when I am trying trying to run the above command. image

Please if you can help! looking forward to hear back from you.

lukaszgo1 commented 5 years ago

@RadhikaTakyar First of all many NVDA developers are blind, so screenshots are of no use to most of us. From performing OCR on it it looks like you cannot reregister oneCoreCommonProxyStub.dll, is that right? If so, take a look at this commend.

RadhikaTakyar commented 5 years ago

Sorry about the inconvenience. Yes- error is to make sure that if the DLL is a valid DLL and asking to try again. So what can be done to reslove the issue. If the " alternative would be to put the needed registry values for IServiceProvider in a .reg file and import it to the Registry." also doesn’t work.

lukaszgo1 commented 5 years ago

This issue is now closed. Please open a new issue explaining what problem you are experiencing. Have you tried running COM Registration Fixing tool from the tools menu?