[program-l] How to get JAWS to act on cursor movement in VS 2013 if the movement is caused by something other than the arrow keys.

  • From: Kerneels Roos <kerneels@xxxxxxxxx>
  • To: Program-l <program-l@xxxxxxxxxxxxx>
  • Date: Wed, 04 Jun 2014 10:14:19 +0200

Hi there.

Sorry, I'm editing this email as new and then sending it again since I want a bit more info in here before the thread hopefully! starts.

I was wondering if anyone here could perhaps help me with a JAWS scripting issue. In VS 2013, when the cursor in the code editor moves, but the move is caused by something other than the usual move actuators, then JAWS seems to know that the cursor moved if I press Alt+Del, but nothing is spoken
when the move happens.

Alt+Del reveals that the cursor is the PC cursor, and the line number, hence JAWS is aware of the line change, but no actual content is voiced when the line change via a cursor movement due to something other than the arrow keys.

For example, if I move the cursor with the arrow keys, then each new line or character or whatever is read properly, but if I move the cursor through say a plugin VsVim then JAWS can detect that the cursor moved, but it does not speak what it should - almost as if speech output is only
tied to the conventional move actuators - arrow keys in this case.

Another example is if you press Ctrl+i for incremental search. You can type in something that will then not type that text into the editor, but rather perform an incremental search inside the document for your typed text. Even if the cursor position changed due to this searching, JAWS wont' read out the matched word or line, you have to issue Ins+up arrow to have the line read to you. Ideal behaviour here would be IMO that JAWS would read the entire line as soon as a new search match was found, as soon as the cursor position changed without having to require you to issue a JAWS command to read the current line / word / char..

VsVim would move the cursor when the focus is in the code editor, when VsVim is in normal mode (by pressing esc key), and one of the VsVim movement chars is hit (j for down, k for up, h for left, l for right) - for example.

I had a look at the standard JAWS scripts from FS for VS, and there is quite a bit of code there, so this might also be interfering in some way.

I noticed that this event:

Void Function FocusPointMovedEvent (int nX, int nY, int nOldX, int nOldY, int nUnit, int nDir, int nTimeElapsed)

either does not fire or is suppressed by other code in the scripts.

Since JAWS can actually detect line and column changes properly through Alt+Del, I do think there must be a higher level event I could handle, or in that event call the corresponding event from the FS scripts that seem to handle cursor movement:
Script SayCharacter()
Script SayLine()
Script SelectNextLine()
etc.

So, my question is this:
1. Are there any other events I could handle, events that fire when the PC cursor is busy editing something and moving around.
2. How can I detect that the focus is in the code editor or output window?
3. Are there some settings in JAWS I could give a try? I have noticed about a year before that Braille actually keeps up with the actual cursor position, no matter if the cursor position changed due to the usual position changers (arrows) or due to something else. At the time I was unable to cause all Braille to be read out, which might be an option, but it would be nice to have it working without requiring a Braille display.

Any other helpful hints or info would be much appreciated. I don't know too much about JAWS scripting in general, and I don't really have the resources to embark on a full study of this since usually all works well enough.

Regards,
Kerneels


--
Kerneels Roos
Cell: +27 (0)79 696 6038
Tel: +27 (0)811 2108
LinkedIn: http://za.linkedin.com/in/kerneels

Skype: cornelis.roos

** To leave the list, click on the immediately-following link:-
** [mailto:program-l-request@xxxxxxxxxxxxx?subject=unsubscribe]
** If this link doesn't work then send a message to:
** program-l-request@xxxxxxxxxxxxx
** and in the Subject line type
** unsubscribe
** For other list commands such as vacation mode, click on the
** immediately-following link:-
** [mailto:program-l-request@xxxxxxxxxxxxx?subject=faq]
** or send a message, to
** program-l-request@xxxxxxxxxxxxx with the Subject:- faq

Other related posts: