Re: writing a jaws script to read bottom line, when there is a lot of blank space at the bottom.

  • From: Don Marang <donald.marang@xxxxxxxxx>
  • To: programmingblind@xxxxxxxxxxxxx
  • Date: Wed, 25 May 2011 01:58:08 -0400

I think Freedom Scientific has minimal tools for internal debugging, but I do not know of any they have documented. Your best option is to temporarily add SayString statements. For instance, placing a statement like below inside the While statement should help learn what is going on.


SayString ("line = " + sLine)

Adding an index might also help:

Script SayLastLine ()
Var
    Int iLoop,
    String sLine

SaveCursor () ; saves the prior cursor type (PC) - does not save its location
InvisibleCursor ()
RouteInvisibleToPc () ; move the invisible cursor to the PC cursor location so it can be saved and returned to same location if moved
SaveCursor () ; Saves the cursor  type and location
; The JAWS cursor is the mouse pointer
; The invisible cursor works the same but does not cause the mouse to hover and change items
; The invisible cursor can not be clicked
JAWSPageDown () ; Moves the invisible cursor to the vottom of the window
JAWSHome () ; moves to the beginning of the line
Let iLoop = 1
Let sLine = ""
While sLine == ""
    PriorLine ()
    Let sLine = GetLine ()
    SayString ("line " + IntToString (iLoop) + " from bottom = " + sLine)
    Let iLoop = iLoop + 1
EndWhile
SayMessage (OT_MESSAGE, "last line is " + sLine, "line = " + sLine)
; The RestoreCursor calls really are not necessary, since they will get popped off the stack when the script exits
RestoreCursor ()
RoutePcToInvisible ()
RestoreCursor ()
EndScript


Like I said, You might need to change the logic of the While loop depending on the values you get. Remember, there are a lot of things that can be done with JAWS Scripts. It is not, however, a full featured language like C++.


*Don Marang*
Vinux Software Development Coordinator - vinuxproject.org <http://www.vinuxproject.org/> There is just so much stuff in the world that, to me, is devoid of any real substance, value, and content that I just try to make sure that I am working on things that matter.
-- Dean Kamen

On 5/24/2011 9:26 PM, Littlefield, Tyler wrote:
Hello:
This gave me a good starting point--thanks. I've sat down to try to make TerraTerm do what I want. It reads the ScrollDown symbol at the very bottom, so I use a PriorLine before, and it doesn't read anything. Does jaws script have some sort of debugging functionality so I can step through and see exactly what is going on?

On 5/23/2011 9:21 PM, Don Marang wrote:
Hi Ty,

I assume that the text is within a text edit window or terminal and you are not talking about a status line. Hopefully, the following will get you started. Make sure to press Control D inside this script to provide additional information, especially assign it a hotkey. I did not concentrate on the logic of this function, I attempted to give you insights into the JAWS Scripts issues you would encounter. If there is a status line at the bottom, use PriorLine () before using any logic so that the cursor is above the status line.

Script SayLastLine ()
Var
    String sLine

SaveCursor () ; saves the prior cursor type (PC) - does not save its location
InvisibleCursor ()
RouteInvisibleToPc () ; move the invisible cursor to the PC cursor location so it can be saved and returned to same location if moved
SaveCursor () ; Saves the cursor  type and location
; The JAWS cursor is the mouse pointer
; The invisible cursor works the same but does not cause the mouse to hover and change items
; The invisible cursor can not be clicked
JAWSPageDown () ; Moves the invisible cursor to the vottom of the window
JAWSHome () ; moves to the beginning of the line
Let sLine = ""
While sLine == ""
    PriorLine ()
    Let sLine = GetLine ()
EndWhile
SayMessage (OT_MESSAGE, "last line is " + sLine, "line = " + sLine)
; The RestoreCursor calls really are not necessary, since they will get popped off the stack when the script exits
RestoreCursor ()
RoutePcToInvisible ()
RestoreCursor ()
EndScript

*Don Marang*
Vinux Software Development Coordinator - vinuxproject.org <http://www.vinuxproject.org/> There is just so much stuff in the world that, to me, is devoid of any real substance, value, and content that I just try to make sure that I am working on things that matter.
-- Dean Kamen

On 5/23/2011 9:00 PM, Littlefield, Tyler wrote:
Hello all:
My message pretty much sums up my issue. I have a program where the bottom line of the window is blank, but I want to read the last bottom line where there is text. Is there a way to make jaws silently skip all lines, and read up and announce the last line where there is text?



--

Take care,
Ty
my website:
http://tds-solutions.net
my blog:
http://tds-solutions.net/blog
skype: st8amnd127
My programs don't have bugs; they're randomly added features!

Other related posts: