Re: Screen Reader in VB6

  • From: "John Greer" <jpgreer17@xxxxxxxxxxx>
  • To: <programmingblind@xxxxxxxxxxxxx>
  • Date: Sun, 24 Feb 2008 17:57:47 -0600

Most of all of what is happening in the screen reader code can be explained by studying through the Microsoft MSAA and SAPI 5 tts documentation distributed with the MSAA API and the SAPI 5 SDK. But yeah most of what it is doing is interpreting MSAA information that is built into Windows, much like Narrator does. The ModAADeclares.bas file is all of the state, object and event constants that MSAA monitors for. The main routine of the program takes the MSAA register numbers, and then uses the ModAADeclares.bas file to assign them a human understandable constant such as selected, not selected, button, checkbox etc. It then passes that info to SAPI 5 to be read using text to speech. A short answer, I know but I would need to write documentation as long as the MSAA documentation Microsoft publishes to explain all of what is going on. But yeah the same as Narrator if the controls it is trying to read do not pass information through to MSAA then the screen reader does not know what the control is. The other thing the source code does not have is keyboard hooks. What this means is that in its present state you may not be able to assign the control key to stop the screen reader from speaking etc. It is however able to use the keyboard functions built into windows such as arrowing around the screen,copy, paste etc. etc. I hope this explained things at least a little. Oh you may also notice that it can't speak its own Window. That was one of those unsquashed bugs I never got around to working out. However if you run another screen reader along side it you will find that there are MSAA objects that get printed to the edit boxes such as Name, Description, Value, Role etc. and also hook and unhook buttons that, you guessed it, turn on and off the MSAA event monitoring. ----- Original Message ----- From: "Bob J." <rjustice004@xxxxxxxxxx>

To: <programmingblind@xxxxxxxxxxxxx>
Sent: Sunday, February 24, 2008 7:13 PM
Subject: Re: Screen Reader in VB6


Hello John,

I was hoping that I might learn how a screen reader is able to spy on other
programs by inspecting the code in this project.  However, there is nearly
no documentation included and what little there is doesn't seem very
revealing to me.  I don't suppose that you have any documentation that
discusses how or why this code should act as a screen reader.

Any and all assistance appreciated!

Bob


----- Original Message ----- From: "John Greer" <jpgreer17@xxxxxxxxxxx>
To: <programmingblind@xxxxxxxxxxxxx>
Sent: Saturday, February 23, 2008 1:41 PM
Subject: Screen Reader in VB6


Here is a little modified project that I had found the original source to on
the net sometime back.  I can no longer find the page I got the original
source from though.  What it is is the basics of a Narrator like screen
reader written in VB6.  I have mostly been using it as a testing tool for
various projects but it does have the potential to become much more. I have uploaded it to my website if anyone would care to download it and try their
hand at it.
Be aware that is of course not bug free, but I do remember at one point I
had it reading messages in Windows Messenger to give an example of what is
possible.
www.blindcrawler.com/Programs/MSAAScreenReaderVB6.zip
Enjoy and have fun.

__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind



__________
View the list's information and change your settings at //www.freelists.org/list/programmingblind

Other related posts: