[nvda] Re: Reclassing unknown window classes
- From: James Teh <jamie@xxxxxxxxxxx>
- To: nvda@xxxxxxxxxxxxx
- Date: Tue, 30 Jan 2007 08:51:36 +1000
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/
- References:
- [nvda] Re: Reclassing unknown window classes
- From: Tony Broome
- [nvda] Re: Reclassing unknown window classes
- From: Michael Curran
- [nvda] Re: Reclassing unknown window classes
- From: Peter Vágner
- [nvda] Re: Reclassing unknown window classes
- From: Michael Curran
Other related posts:
- » [nvda] Reclassing unknown window classes
- » [nvda] Re: Reclassing unknown window classes
- » [nvda] Re: Reclassing unknown window classes
- » [nvda] Re: Reclassing unknown window classes
- » [nvda] Re: Reclassing unknown window classes
- » [nvda] Re: Reclassing unknown window classes
- » [nvda] Re: Reclassing unknown window classes
- » [nvda] Re: Reclassing unknown window classes
- » [nvda] Re: Reclassing unknown window classes
- » [nvda] Re: Reclassing unknown window classes
- » [nvda] Re: Reclassing unknown window classes
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
- [nvda] Re: Reclassing unknown window classes
- From: Tony Broome
- [nvda] Re: Reclassing unknown window classes
- From: Michael Curran
- [nvda] Re: Reclassing unknown window classes
- From: Peter Vágner
- [nvda] Re: Reclassing unknown window classes
- From: Michael Curran