The Oven

Plugin World => General Plugins => Plugins => Topic started by: ChrisR on September 03, 2015, 02:25:55 PM

Title: NVDA
Post by: ChrisR on September 03, 2015, 02:25:55 PM
Dear Chris,
I have tried Yours nvda.script for WIn PE8 from year 2014...
.......................
I Am kindly asking You for new Nvda.script.
I know, that You will not like Me because of it, but You have always created perfect script for blind users. If You would have some time, if it would be perfect to have newest PE working with NVDA.
By The way, really excellent job, project work very efficiently. I will always use X86 source of Windows 10, so I hope, that NVDA script could be make. But I really do not know, how to repair it myself.........
Thank You very very much for Yours developers help.
With kindness regards.
Janusz Chmiel
Probably a little too much  :wink:  :wink:
You also know that I prefer a topic or post than a personal message. So it is here  :thumbsup:

I just updated the old NVDA plugin with latest version 2015.3 inside and 2,3 little things.
it works well here in Win7 to Win10pese even though I am unable to use it by closing my eyes  :wink:

Download the 2 files below (Right clic > Save as) and put them side by side in Projects\Finals folder (to be played after Audio plugin and then launched in PE after the audio started)

NVDA.Script updated [attach=2]
NVDA_File.Script (http://win10se.cwcodes.net/Temp/NVDA_File.Script)


What is NVDA?
Quote
NVDA (NonVisual Desktop Access) is a free “screen reader” which enables blind and vision impaired people to use computers.
It reads the text on the screen in a computerised voice.
You can control what is read to you by moving the cursor to the relevant area of text with a mouse or the arrows on your keyboard.

NVDA HomePage: http://www.nvaccess.org/

[attach=1]
Title: Re: NVDA
Post by: Lancelot on September 04, 2015, 05:58:42 AM
NVDA plugin updated with latest NVDA and some additional options.
http://yomi.cwcodes.net/Yomi/Final_Y/NVDA.Script
http://yomi.cwcodes.net/Yomi/Final_Y/NVDA_File.Script

Current Reply2:

Well, I got those pm lots of times before  :smile:

If Audio works, than NVDA would also work  :smile:

I feel running NVDA is not the trouble, but getting Audio work is, and with newer Windows and more standart sound chips, life is getting easier to NVDA users   :thumbsup:


 :thumbsup: Chris

:turtle:
Title: Re: NVDA
Post by: ChrisR on September 04, 2015, 10:47:37 PM
I made a small change to launch NVDA after Audio is started. It is more secure for running smoothly.
It is on first post and it is renamed in 1-10_NVDA.
You must put the 2 plugins side by side in Projects\Finals folder, now. To be played after the Audio plugin and then launched in PE after the audio started.

Happy testing :thumbsup:
Title: Re: NVDA
Post by: roelvdwal on October 30, 2018, 03:56:00 PM
Hello everyone,

The nvda plugin unfortunately doesn't work properly in the current win10PESE:

Lancelot provided me with the following fix, which makes the plugin work with PEBakery:
If,%CompareVersions%,Equal,Bigger,,Require_FileQ,RTWorkQ.dll
-->
If,%CompareVersions%,Equal,Bigger,Require_FileQ,RTWorkQ.dll
it's on line 79.
Also, UIA fails to initialize in newer win10pese builds. This mainly affects web browsers, these become unusable.
According to
https://docs.microsoft.com/en-us/dotnet/framework/ui-automation/ui-automation-overview
the following dlls are required:
UIAutomationProvider.dll
UIAutomationTypes.dll
UIAutomationClient.dll
UiAutomationCore.dll
UIAutomationClientsideProviders.dll
I am not sure if all of these dlls are required when you need to use UIA, but at least some of them are.
NVDA is also a 32 bit application, so I'm not sure which dlls we need. It might also depend on the app being used, firefox is 64 bit, but 32 bit programs will need other dlls. Maybe 32 and 64 bit versions of these dlls should be added to the nvda script.

Thanks for any help provided.
Title: Re: NVDA
Post by: James on October 30, 2018, 05:01:52 PM
I have 2018.3 Mostly working while testing with XPE - The issue is No Speech...
The speech setting are all populated - output device is populated..
writes to speech log file..
Volume control shows speech patterns..

But No Sound - No Matter What Media Is Installed...
Title: Re: NVDA
Post by: Lancelot on October 30, 2018, 05:46:40 PM
Hi roelvdwal

test Win10PESE with older source.

https://tb.rg-adguard.net/public.php

Select Type:
Windows (Final)

1803
1709
1703

Keep in mind ChrisR wrote this plugin ~ 2015-09-05

Tip: You do not need the latest Win10 for PE.  :wink:

If all fails, also make a test with 1709 with wb. pebakery not tested around much.

:turtle:
Title: Re: NVDA
Post by: APT on October 30, 2018, 06:52:55 PM
Hi roelvdwal

well I know nothing about nvda

but for reference I just ran  ChrisR's original scripts unmodded apart from the line 79 edit and placed in Finals folder
tested in win10pese with 10.0.16299.15 (1709) as source, x64.  Built from a Win7 x64 pro desktop
using BuilderSE and PEBakery release 951b5, both builders seem to give a working nvda

regards APT

ps.   also tried latest updated Win10PESE (update&secure) with 1809 in PEBuilder & PEBakery (latest nightly 9.6b6 2018.10.29)
both work but with a broken voice (stuttering) - presume driver issue
'full copy' selected in 1-copy files plugin
Title: Re: NVDA
Post by: roelvdwal on October 31, 2018, 11:19:11 AM
Hello everyone,

thank you for all the testing. I've done a test with the slightly modified nvda pluggin, build 1809 and pebakery, and am getting good results. UIA still doesn't function properly, which make open and save file view lists inaccessible. To itterate, nvda does run in all builds. The main issue is with UIA support. To check if it works, open the nvda menu, go to tools, hit view log. Something like this should be in the log:
INFO - _UIAHandler.UIAHandler.MTAThreadFunc (00:04:19.891):
UIAutomation: IUIAutomation5
The nvda in win10pese gives an error stating that UIA could not be initialized. When testing with winbuilder and windows version 1709, firefox completely failed to work. With 1809 and PeBakery I had more success: firefox worked, but open/save dialogs didn't work properly. If you don't get speech and you want to try getting speech, make a new vm (applies to vmware), and load the iso into that. The included test does not include sound. So if anyone could tell me how to solve the error found under the nvda menu \ tools \ view logs referring to UIA automation, that would be extremely helpful. I'm not sure how useful the msdn article is I linked above. This error has shown up in all of my builds.
The log should contain:
INFO - _UIAHandler.UIAHandler.MTAThreadFunc (00:04:19.891):
UIAutomation: IUIAutomation5

Thanks a lot!
Title: Re: NVDA
Post by: James on October 31, 2018, 11:41:11 AM
It would Be Nice If we could test with your modified plugin..

That way we all on same page here....

for those testing with 1809 this App is x86 and requires wow64 files on x64 Build...
Also from my testing Process Monitor Shows looking for Certain (Google Search By File Name) JAVA Files

NVDA 2018 XPE - My Testing - No Speech In PE (https://mega.nz/#!6Loy3CgT!ZcJ20-nxyYwhYZlRbR5M1KMP03tGa6nLxP1krk7D2vg)

Code: [Select]
\Windows\SysWOW64\UIAutomationCore.dll
\Windows\SysWOW64\??-??\UIAutomationCore.dll.mui

\windows\System32\UIAutomationCore.dll
\Windows\System32\??-??\UIAutomationCore.dll.mui
Title: Re: NVDA
Post by: roelvdwal on October 31, 2018, 01:05:09 PM
Hi James,

Thanks a lot for modifying the original script. I'll see if I can get speech working in the win10xpe pluggin, thanks for your help.
Regarding the modified plugin, Only line 79 was modified in the original, allowing it to run under PEBakery. This line checked if windows was newer or equal to 8.1, and in your script that check isn't present, so you're not missing any updates.
Title: Re: NVDA
Post by: James on October 31, 2018, 01:23:20 PM
Well if you get Speech Working - Please Share The Plugin For Others To Use and Learn From..

Thank You
Title: Re: NVDA
Post by: roelvdwal on October 31, 2018, 02:12:57 PM
Hi James,

I have found some interesting things:

1. Plugin works over here, with speech. I did enable accessibility support and wow64 support. After trying to launch nvda, it crashed after speaking "loading nvda, please wait...". After copying it to a writable location, nvda worked as expected. I susspect the following happened:
Nvda tries to load one core voices by default. When accessibility support is turned off, it tries to speak threw onecore and fails, but doesn't notice. When accessibility is turned on, it tries to speak through onecore, it does notice that something is wrong, tries switching to it's built-in synthesizer espeak, tries to write configuration and crashes. Regarding the firefox crashes: This my build failed to work with firefox. My win10pese build did work. In win10pese, firefox is on version 55, in win10xpe firefox is on version 52. I think the thing that is more interesting is that in win10xpe, firefox is 64 bit, and in win10pese, firefox is 32-bit. I will check the plugin for any missing 64-bit dlls and force the option to run from RAM. In addition, I'll check if I can make nvda autorun on startup.
Title: Re: NVDA
Post by: James on October 31, 2018, 02:45:18 PM
Plugin has Startup Shortcut..... Below Folder Input box..

Seen option to use One core in NVDA settings....

I test with RAM Builds - Thus Writable Media or Use USB - thus also writable media...

Firefox will follow PE_Programs Unless You Select Run From Ram

For me in XPE Google Better Choice
Title: Re: NVDA
Post by: roelvdwal on October 31, 2018, 04:13:09 PM
Hi James,

Sorry, failed to notice. Unfortunately the startup shortcut doesn't work, maybe because of the audio service starting afterwards, will look into it.
In my new builds, firefox does work. I have no idea why it does, I'll try retracing my steps..
Title: Re: NVDA
Post by: James on October 31, 2018, 04:45:59 PM
Well if you get Speech Working - Please Share The Plugin For Others To Use and Learn From..

Thank You

Thank You
Title: Re: NVDA
Post by: roelvdwal on October 31, 2018, 05:19:26 PM
Hello James,

No modifications to the plugin were necessary. I am just using your version. I don't know why speech failed for you, but see my post about onecore voices, maybe that had something to do with it. If speech doesn't work, you might need to enable accessibility in the build core, but I have not hardcoded the accessibility requirement into the plugin yet. I will of course share any improvements I make, it'd be selfish not to. I am currently trying to make nvda start after the audio service, haven't figured out the firefox issue yet. I will keep you informed.
Title: Re: NVDA
Post by: James on October 31, 2018, 05:33:32 PM
With XPE 10-12-2018 > Using Current Test Plugin with Source 1803 x64 -

NVDA 2018 -

ONLY Requires !! - WOW64 Basic - And The test Plugin already has Message if not WoW64 Basic selected...

*****

NOW, If I change only the Source to 1809 - I lose System Startup Sound (Reported Earlier) and NVDA Speech

So appears to be a ( compareversion, if ) somewhere in XPE Issue

I find it hard to believe that I am the only one to lose startup sound with just an OS source change..
Title: Re: NVDA
Post by: roelvdwal on October 31, 2018, 05:55:44 PM
Attached is a slightly modified nvda plugin, only the script, not the file. In it, I have solved a small bug wherein the exit command was removed incorrectly from the autorun.cmd, causing it to appear twice, once before the nvda run command. However, NVDA still does not start properly, due to it starting before the audio service starts, causing it to be speechless. Restarting nvda does give speech. James, how are you testing the iso? I'm using vm ware, on windows 1803, the xpe build is using a 1809 source, nvda speaks when started manually after the startup sound. If you know by any chance how the startup sound is automatically played, that'd help to complete the automatic starting of NVDA. I've looked at the audio pluggin, there is a filetype association there, but I can't find any command that tells the PE to play startup.mp3 when the audio service has been started. Once again, thanks for your great work converting the win10PESE plugin into an xpe one.
[attach=1]
Title: Re: NVDA
Post by: James on October 31, 2018, 06:52:37 PM
From Build Core Interface - Select "Edit Pecmd.ini" Button

Add / Replace This Code Under " _SUB AudioInit "

Code: [Select]
//Startup sound
EXEC @!%WinDir%\System32\mpg123.exe -q %SystemRoot%\Media\startup.mp3

//Start NVDA after Audio
//EXEC @!%WinDir%\System32\NVDA_Startup.cmd


Here Is The XPE NVDA-2018 Plugin v3 with Autorun after audio service via pecmd
Attachment removed


Title: Re: NVDA
Post by: roelvdwal on October 31, 2018, 07:56:24 PM
Yeah, it was relatively easy to find and correct that bug. I know the modification was small, but at least we are on the same plugin now.

Regarding the audio problem, I have tried the following, in order:
Look at the original nvda script to check what it does: it says
// Start NVDA later after Audio plugin which Load Audio drivers to Start Auiosrv=> plugin in Level=7 now
after that, the autorun.cmd gets appended with the name of the nvda executable so that it is started.
From this I conclude that somehow autorun.cmd is executed after the audio service is started in win10pese, autorun.cmd does not contain a check if the audiosrv service has been started.
Also interesting is that the nvda plugin has level = 8 and according to the comment the audio plugin has level = 7.
In win10xpe, nvda has level=5 and the audio plugin has level=0, so we're good there, I think.
So after discovering that the old nvda plugin did not contain much useful information how to start it after the audio service started, I tried finding the script that plays the startup sound. The startup sound will have to be played after the audio service has started, so maybe nvda can be executed in that same script, after the startup sound. I looked at the audio plugin, It copies lots of files and registry keys. However, it does not write any script, at least as far as I can see. The folder of the startup sound does not contain clews either, nor the folder of the mpeg123 executable. I'm sorry if I am being vague in my bug reports. With firefox, it seems that on first build, it fails, but when the second build is started, it runs correctly. Maybe when I said that firefox worked in my new builds I made the impression that I simply didn't test my old builds well enough and had us running around in circles for nothing? To rephrase: When building win10xpe for the first time with only accessibility and wow64 enabled next to nvda, the rest are default settings, on a computer running windows 1803, with PE source 1809, NVDA's browse mode in firefox does not work. After the second build with some extra tools enabled, it suddenly did work. In that build, I enabled google chrome and I enabled a few other plugins, process monitor is one, to help me get the missing dll. I found this very strange, so I disabled google chrome and then rebuilt again to see if somehow google chrome included the correct files to make nvda work with firefox, firefox still worked so google chrome was not the issue. If my questions are easily answered and if I have missed some major source of documentation, I'm sorry for not noticing it.
Title: Re: NVDA
Post by: APT on October 31, 2018, 08:22:31 PM
Hi James

Quote
Here Is The XPE NVDA-2018 Plugin v6 with Autorun after audio service via pecmd
* NVDA_2018.Script (47.27 kB - downloaded 1 times.)

the error in line 79 seems to have crept back in this one
still trying test
Title: Re: NVDA
Post by: Lancelot on October 31, 2018, 09:05:40 PM
Hi roelvdwal,

Win10PESE
- Images Configuration

Change Index number from 10 to 1

*
If you are using Utils\'Extracted Wim Folders' change Index number from 10 to 1 and extract again.

->
Here NVDA plugin with Line79 fix works very fine following Chris instruction.
Tested with Win10_SingleLang_EnglishInternational_x64
Edit: with 1809

ps: NVDA UIA works fine here. It works at startup with sound and all fine.

:turtle:
Title: Re: NVDA
Post by: Lancelot on October 31, 2018, 09:11:31 PM
Hi roelvdwal,

also better not mix both NVDA plugins on projects.
Both have same title on builder screen:
NVDA
that comes from
Title=NVDA

ps: Plugins on servers and by regular users do not have such a mistake. We avoid such mistakes by end users.

An advice, change NVDA XPE plugins title with edit on plugins:
Title=NVDA
-->
Title=NVDA XPE

Title=NVDA - File Container
-->
Title=NVDA XPE - File Container

This way you keep secure.  :thumbsup:

:turtle:
Title: Re: NVDA
Post by: Lancelot on October 31, 2018, 09:15:52 PM
Edit:

Here NVDA plugin with Line79 fix works very fine following Chris instruction.
Tested with Win10_SingleLang_EnglishInternational_x64
Edit: with 1809

See here:
https://tb.rg-adguard.net/public.php
Title: Re: NVDA
Post by: James on November 01, 2018, 01:25:31 AM
I have 2018.3 Mostly working while testing with XPE - The issue is No Speech...
The speech setting are all populated - output device is populated..
writes to speech log file.. Volume control shows speech patterns..
But No Sound - No Matter What Media Is Installed...

for those testing with 1809 this App is x86 and requires wow64 files on x64 Build...
NVDA 2018 XPE - My Testing - No Speech In PE

With XPE 10-12-2018 > Using Current Test Plugin with Source 1803 x64 -
NVDA 2018 - ONLY Requires !! - WOW64 Basic - And The test Plugin already has Message if not WoW64 Basic selected...
*****
NOW, If I change only the Source to 1809 - I lose System Startup Sound (Reported Earlier) and NVDA Speech

Testing attachments have been removed as they where only intended for roelvdwal to test with..
And linked to this topic in a manner to help roelvdwal with his XPE testing..
roelvdwal appears to be happy with his testing results, although I was not happy with the results of mine..
Title: Re: NVDA
Post by: roelvdwal on November 01, 2018, 11:08:10 AM
Hi James,

Thanks for the new plugin. What also works is to move the audio_init before the preshell init in pecmd.ini, it also causes nvda to start much sooner. I don't know which of these two solutions is cleaner though. Regarding your issues, If you don't get a startup sound and nvda shows speech patterns, that probably means there is an issue in the audio plugin or a bug in the virtualisation software, not something in the nvda plugin. I can't reproduce the issue with win 1809. However, When I test with vm ware, audio completely stops sometimes, and only a reboot from the host can bring it back. It doesn't matter if the guest is rebooted, then the audio still doesn't work. This bug shows up rarely though. If you have a usb soundcard, maybe audio will work with that. Or maybe try bear metal and see if the bug still persists? Then we can narrow the causes down.
Title: Re: NVDA
Post by: James on November 01, 2018, 01:35:42 PM
I Clean Boot WinPE - Thus MY Issue With Sound Using 1809 Source
Everybody Else Seems To Test In VM Without Sound Issue...

And You Are Very Welcome - Glad To be Able To Help..
Title: Re: NVDA
Post by: roelvdwal on November 01, 2018, 04:12:11 PM
Hi James,

Just did a clean boot on a pc with a realtek builtin sound card, everything is ok here. I've also built a minimum win10xpe with almost everything disabled, and when WinXshell is used in place of explorer, nvda fails to start, nvda can't load the speech synthesizer. Is it acceptable to build a check into the nvda script checking for explorer, even though the main problem might be in the audio plugin?
Title: Re: NVDA
Post by: James on November 01, 2018, 04:32:22 PM
Place this line right under [Process] inside NVDA plugin

If winxshell is selected the build will continue - But NVDA plugin will not be processed

Code: [Select]
If,%Shell%,Equal,WinXShell,EchoExtended,"You Can Not Use WinXShell To Run %ProgramTitle%.",,,Message,5,Exit
Title: Re: NVDA
Post by: Lancelot on November 01, 2018, 07:48:52 PM
Hi roelvdwal,

NVDA plugin updated with latest NVDA and some additional options.
http://yomi.cwcodes.net/Yomi/Final_Y/NVDA.Script
http://yomi.cwcodes.net/Yomi/Final_Y/NVDA_File.Script

It works fine on Win10PESE everything I test following your posts so far all good.  :great:

*
Topic get quite mess with "NVDA" plugin and "NVDA - XPE" XPEplugin.

Troubles you report on "NVDA - XPE" XPEplugin does not exists on Win10PESE "NVDA" plugin.
nvda start after the audio service
It is already that way on Win10PESE.

So after discovering that the old nvda plugin did not contain much useful information how to start it after the audio service started
It contains information, but do not worry about that. "NVDA - XPE" plugin author already knows how it works.

However, When I test with vm ware, audio completely stops sometimes, and only a reboot from the host can bring it back. It doesn't matter if the guest is rebooted, then the audio still doesn't work. This bug shows up rarely though.
Never happened with tests using Win10PESE



Test results are different due to different projects with different incompatible plugins.
To keep things tidy If you have questions for "NVDA - XPE" XPEplugin on Win10XPE,
We already open a forum section for that, better open topic here:
http://theoven.org/index.php?board=39.0


:turtle:
Title: Re: NVDA
Post by: James on November 01, 2018, 08:26:23 PM
http://theoven.org/index.php?topic=2616.0
Title: Re: NVDA
Post by: Lancelot on November 01, 2018, 08:32:11 PM
http://theoven.org/index.php?topic=2616.0

That is what I mean. Follow that path James.   :thumbsup:
Title: Re: NVDA
Post by: roelvdwal on November 02, 2018, 10:59:37 AM
Thanks all for your contributions. At this point though, after you told me that the startup of winPE goes on in pecmd.ini, I feel like I can also improve the plugin. If I am helped too much, I won't learn how to do this myself. Besides, we're really getting into nice to have features here. I will update the nvda xpe plugin shortly in it's topic, I will add the possibility of constructing the nvda application from a newly created portable copy which will be created with a downloaded installer. The currently running nvda user config can be added to this portable copy, removing the need to keep updating the nvda_file xpe plugin and which will make it trivial to get a personalized nvda running in win10xpe. This will be a good exercise for me, not very difficult but it will get me acquainted with the scripting language.
Title: Re: NVDA
Post by: Lancelot on November 02, 2018, 11:14:32 AM
Hi roelvdwal,

just to keep things tidy on current topic:

I will add the possibility of constructing the nvda application from a newly created portable copy which will be created with a downloaded installer.
Instruction of this already given by Chris inside NVDA plugin.

The currently running nvda user config can be added to this portable copy, removing the need to keep updating t
There is already the option on NVDA plugin to put your personal version.
Also yet another option to use custom nvda.ini

Chris seems to think all possibilities when creating NVDA plugin.

This will be a good exercise for me, not very difficult but it will get me acquainted with the scripting language.

Yes exercise is good.  :great:
Title: Re: NVDA
Post by: blindtango on January 27, 2021, 12:01:09 AM
Hi,

Has the NVDA problems been solved?  Is there a new plugin as NVDA now works with Python 3 and some features require later versions of windows builds. Some of the new NVDA-addons don't work on earlier versions of the operating systems.

If this has been updated, could you share please share the plugin and the steps to build an accessible NVDA Windows XPE?

Thanks.