NVDA Support for WinBoard

Discussions about the WinBoard protocol. Here you can also report bugs and request new features.

Moderators: hgm, Andres Valverde

NVDA Support for WinBoard

Postby EverlastingWinner » 15 Sep 2011, 22:06

Dear WinBoard developers:

First, I would like to thank you so very much for creating and maintaining the WinBoard for JAWS. It has helped us play and studdy chess in an accessible environment.

Unfortunately, JAWS, provided by Freedom Scientific, is far too expensive for most blind users and always has been. Priced at $900, one can more easily purchase a computer than this bit of software required to make computers usable by the blind and vision impaired community.

Fortunately, a few years ago, a free and Fairly well developed alternative to JAWS was published known as NVDA (Nonvisual Desktop Access). NVDA has come rather far in the short time it has been in development and has proven a worthy chalenger to JAWS. People who have used JAWS for many years have already made the swich, and as this software progresses, I am confident that more will do this in future.

Because of this, I would like to ask you to consider adding support for NVDA. This would prove a great favor to the blind community and will ensure that those who have replaced JAWS because of its unreasonable price can continue to enjoy your software.

You can find the necessary files and information right here.

Again, thank you for your contributions to the blind community.

Regards,
EverlastingWinner
EverlastingWinner
 
Posts: 8
Joined: 29 Sep 2009, 15:06
Location: Turkey

Re: NVDA Support for WinBoard

Postby H.G.Muller » 16 Sep 2011, 10:13

Well, it looks like this should be very easy. WinBoard for JAWS explicitly uses JAWS in only a single place, where it calls upon it to speak a text. All utterances that do not follow from the standard screen-reader functionality are handled by this single call. NVDA seems to offer a similar call, accessible through the nvdaControllerClient.

Only catch is that the NVDAroutine expects to get the text delivered in wide characters (UNICODE, one presumes), while JAWS and WinBoard work with normal 8-bit ASCII.

I downloaded the nvdaControllerClient to obtain the library and header file, and made a provisory change in WinBoard for JAWS to call upon them, so that I could compile a "WinBoard for NVDA" version. This seems to work; when I run it (and the nvdaControllerClient32.dll is in the same folder as winboard.exe) it starts up, and pops up an error box to in form me that NVDA is not running. I currently don't have the disk space to install NVDA, so I could not test any further.

This WinBoard binary can be downloaded from http://hgm.nubati.net/WinBoard-NVDA.zip . Perhaps you can try it on a computer that really has NVDA running on it.

When this works, I can try to cast it into a more user-friendly form, which supports both JAWS and NVDA, and figures out at run time which of these interfaces is present (based on the presence of the nvdaControllerClient32.dll or jfwapi32.dll in its folder), and then uses that. What also will need some more work is the conversion of ASCII to UNICODE; currently I do that by making a simple copy of the character codes, which is fine for the English version, as it uses only ASCII, but would fail miserably when you select a language that also uses non-ASCII characters.

Please let me know if the test version works.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: NVDA Support for WinBoard

Postby EverlastingWinner » 17 Sep 2011, 00:07

Hello, Mr. Muller,

This looks very promising. I have successfully run WinBoard in conjunction with NVDA! Nevertheless, it seems to me that there should be some issues that we should resolve:

  1. When I navigate to an empty square, I.E. to the h3 square, NVDA tells me an additional letter, either H or L, after telling the name of the square, I.E. "h3H".
  2. After someone makes a move, it adds some letter like I told above after most move descriptions, I.E. "White 3 moves pawn to c5 L".
  3. When the engine ponders, NVDA start saying "W" or some other letter in a rhythmic manner.

Other than that, as I said above, it works perfectly. I encourage you to install the NVDA, and test it yourself, if possible, for better understanding the issues that I reported.

I am very appreciative for your effort to contribute yet another great software to the open source community.

Regards,
EverlastingWinner
EverlastingWinner
 
Posts: 8
Joined: 29 Sep 2009, 15:06
Location: Turkey

Re: NVDA Support for WinBoard

Postby H.G.Muller » 17 Sep 2011, 09:06

OK, there was indeed a bug in converting the text from normal ASCII to UNICODE, which left one character from a previously sproken text at the end. That should be fixed now, and I uploaded the fixed version to the same link. Could you test if this also makes the problem on pondering go away?

A question:

Would people that use NVDA normally have the nvdaControllerClient installed on their system? Would it be registered when they install NVDA? I had just unpacked the archive with controlled-client stuff is a separate folder, but then WinBoard could not find the DLL. So I had to move the DLL to the same folder as winboard.exe. Should I package the DLL with WinBoard for JAWS/NVDA, so that it will be installed (perhaps optionally) when people install WinBoard?
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: NVDA Support for WinBoard

Postby EverlastingWinner » 17 Sep 2011, 10:31

Hello, Mr. Muller,

The empty square chattiness seems to go away, but when pondering, the NVDA now started saying blank instead of some letters.

As far as the NVDA Controller Client goes: No, the DLLs do not exist by default. The developers themselves put them into the directory where their application is located.
EverlastingWinner
 
Posts: 8
Joined: 29 Sep 2009, 15:06
Location: Turkey

Re: NVDA Support for WinBoard

Postby theblindeagle » 17 Sep 2011, 16:05

yes, this sounds very neat. i hope if we could also see a complete version, including the engines and all this stuf for the NVDA version. and it will be very nice if the nvda controler client compiled with the winboard installation package.
theblindeagle
 
Posts: 1
Joined: 17 Sep 2011, 00:18

Re: NVDA Support for WinBoard

Postby H.G.Muller » 17 Sep 2011, 16:53

For now the procedure can be to first install the JAWS version, and then simply replace the winboard.exe there by the NVDA version, and copy the nvdaControllerClient32.dll there. In the end I will make a single winboard.exe that can connect both to JAWS and NVDA, and include the jfwapi32.dll and nvdaControllerClient32.dll. I could set it up such that it uses JAWS when jfwapi32.dll is present, and NVDA otherwise. So people wanting to use NVDA can simply delete the jfwapi32.dll. Or perhaps not even install it; I could supply a checkbox in the installer to make installation of the DLLs optional.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: NVDA Support for WinBoard

Postby Olivier Deville » 17 Sep 2011, 20:26

theblindeagle wrote:yes, this sounds very neat. i hope if we could also see a complete version, including the engines and all this stuf for the NVDA version. and it will be very nice if the nvda controler client compiled with the winboard installation package.


Nice to see you here, Ramy :)

Olivier
User avatar
Olivier Deville
 
Posts: 1176
Joined: 26 Sep 2004, 19:54
Location: Aurec, France

Re: NVDA Support for WinBoard

Postby H.G.Muller » 18 Sep 2011, 16:24

OK, I have one more version I would like you to test (can be downloaded from the same link again). For one, this version now supports both JAWS and N V D A, rather than being specifically made for one of the two. It will test if N V D A is running, and if not it will try if it can connect to JAWS through jfwapi32.dll. This means it can only run if nvdaControllerClient32.dll is present, even for JAWS users, but I will distribute that with the installer. Even if you don't have N V D A itself installed, it will still correctly answer the question if it is running (with "no", of course), as is the case on my system. Could you try if it automatically uses N V D A on yours?

The other change is that I now use the MicroSoft MultiByteToWideChar routine to convert the ASCII to UNICODE for passing it to N D V A, and I am curious if this works or if it completely messes up things so that nothing intellegible is spoken anymore. If it works, it means that this version can now also properly speak translations to languages that use non-ASCII characters (like German umlaut or French accent aigu) in the translated utterances.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: NVDA Support for WinBoard

Postby EverlastingWinner » 19 Sep 2011, 02:19

Hello, Mr. Muller,

Running your last built of WinBoard in conjunction with both JAWS and NVDA was successful. I also tested the readability of non-English characters with NVDA by switching the language configuration to German. NVDA has successfully read some characters like 'ü', 'ö, etc.

Thanks again. I am very appreciative for this.
EverlastingWinner
 
Posts: 8
Joined: 29 Sep 2009, 15:06
Location: Turkey

Re: NVDA Support for WinBoard

Postby hgm » 19 Sep 2011, 09:36

OK, since it seems to work I put the new winboard.exe into the WinBoard 4.5 for JAWS installer, together with the nvdaControllerClient32.dll, and adapted the text for it in the download thread on this forum a little, to mention that it supports N V D A.
hgm
 
Posts: 11
Joined: 20 Aug 2009, 19:21


Return to WinBoard development and bugfixing

Who is online

Users browsing this forum: No registered users and 5 guests