[nvda] Re: Reclassing unknown window classes

Note that although JAWS does use the video intercept to gather text and graphics, reclassing a control generally won't work so well if the control doesn't answer standard Windows API calls. For example, I am pretty sure JAWS sends bm_getchecked messages to determine the state of a checkbox based on some interesting findings in JSonar.

Jamie


Michael Curran wrote:
Hi Peter,

Since NVDA does not use a video intercept or anything fancy like that, its not as simple as to just change the type of something so that NVDA reports it as a different control. The actual logic of how to work with that control aalso has to be added.

NVDAObjects/IAccessible.py contains quite a few custom NVDAObjects written for specific MSAA objects (such as list, list item, tree view, check box, edit, rich edit etc). The class map is called staticMap and it is at the bottom of the file.
It is a map of windowClass,objectRole -> NVDAObject.

It is a little more complex than perhaps how Jaws does it, but as I said, NVDA does not have the easy way out with video intercept etc which allows access to screen text with no effort.

For instance, when I remapped the skype richViewEdit window to an edit control, I had to actualy change a little bit of logic in my edit NVDAObject so that it could cope with controls like Skype's. However, if the logic became a bit too complex, I would have split it off and made a special skypeEdit NVDAObject instead.

It just so happens that the skype one does answer normal windows API edit control window messages, which made things easier.

However, take something like the list in the Miranda chat client. There is no "remapping" we can do to make that list accessible. We are either thing to have to see if there are any new window messages we can fire at it to find out what we want... or contact the developers and tell them to use a normal list (everything else is accessible).

Mick

--
James Teh
Email: jamie@xxxxxxxxxxx
WWW: http://www.jantrid.net/
MSN Messenger: jamie@xxxxxxxxxxx
Jabber: jteh@xxxxxxxxxx
Yahoo: jcs_teh
To post messages to the list send email to
nvda@xxxxxxxxxxxxx
To unsubscribe from the list send a blank message to:
nvda-request@xxxxxxxxxxxxx
with 'unsubscribe' in the Subject field.
Thank you for your continued support of Nonvisual Desktop Access, an open 
source free screen reader for Microsoft Windows:
http://www.kulgan.net/nvda/

Other related posts: