[jawsscripts] Re: JAWSWillFollowPc/TetherJawsToPC Broken in Jaws 10, 11 and 12.

  • From: "Don Marang" <donald.marang@xxxxxxxxx>
  • To: <jawsscripts@xxxxxxxxxxxxx>
  • Date: Mon, 28 Feb 2011 09:04:33 -0500

The Tether mode is very interesting when poking around in an application. 
Did you know if you press the key combination for TetherJAWSToPC twice, it 
becomes the default when JAWS starts?  Because of the downsides of this 
mode, such as issues with submenus, I can not imagine using it as a general 
default or as the default within an application.  It is better to use 
individual commands, such as RouteJAWSToPC in situations where it will be 
effective.

I wrote an set of useful scripts for a very badly behaved desktop Verizon 
application that would notify you on your PC when a call came in on your 
land line.  It provided a customizeable name for the caller and the number. 
It also kept track of the incomming call log and could interact with Voice 
Mails.  It is worthless now because they rewrote the application.  It is now 
a totally inaccessible desktop gadget that I have not figured out how to get 
any information out of!

Mostly it is best to override one or more of the built-in event functions, 
like ToolTipEvent.  In my case, there was a call log listbox with only two 
columns, the caller's name and the date / time.  The caller's phone number 
only appears when the mouse hobers ober the item in the list!  By overriding 
the ActiveItemChangedEvent, which is triggered when entering the list or 
moving up / down in the list, you can add additional actions.  I totally 
rearranged the order in which information was announced and the format for 
phone numbers.  All phone numbers were transfomed into 123-456-9999.  It 
also RoutedJAWSToPC at the right moment.  Since this application did not 
have proper ToolTips or HelpBalloons, I had to use logic in the 
WindowCreatedEvent to identify which window just poped up.  When these 
ToolTip windows appeared, I captured the needed text.

I pasted the ActiveItemChangedEvent  function below and a link where a zip 
archive of the latest code is available.  It probably makes no sense to 
install, since the application is no longer available and the website no 
longer will communicate with it.

http://mysite.verizon.net/marangs/VerizonCallAssistant.html

;  Originally written for JAWS 10 Beta 3 (10.0.419)
;  Started on 26 October 2008

Void Function ActiveItemChangedEvent (handle hWnd, int iCurrentID, Int 
iCurrentChild, handle hWndPrevious, Int iPreviousID, Int iPreviousChild)

SpeechOn ()
; SayMessage (OT_DEBUG, "Current window = " + IntToString (hWnd))
; SayMessage (OT_DEBUG, "Current ID = " + IntToString (iCurrentID)) ; 
returns -4, The arguments of -4 are indeed an MSAA thing: That's 
ObjID_Client, an indicator of which part of the window was responsible for 
the event
; SayMessage (OT_DEBUG, "Current ID description = " + GetObjectDescription 
(False, 0)) ; returns the date of the item
; SayMessage (OT_DEBUG, "Current ID ACC description = " + 
GetObjectContainerHelp ()) ; returns null
; SayMessage (OT_DEBUG, "Current ID object name = " + GetObjectName (False, 
0)) ; returns the item (name and date)
; SayMessage (OT_DEBUG, "Current ID object state = " + GetObjectState 
(False, 0)) ; Should return "Selected"
; SayMessage (OT_DEBUG, "Current ID object type = " + GetObjectType ()) ; 
returns "List Box Item"
; SayMessage (OT_DEBUG, "Current ID value = " + GetObjectValue (False, 0)) ; 
returns null
; SayMessage (OT_DEBUG, "Current child = " + IntToString (iCurrentChild)) ; 
Returns the item index

; SayMessage (OT_DEBUG, "Previous window = " + IntToString (hWndPrevious))
; SayMessage (OT_DEBUG, "Previous ID = " + IntToString (iPreviousID))
; SayMessage (OT_DEBUG, "Previous child = " + IntToString (iPreviousChild))

If hWnd == ghVCAResultsListView Then
        Let giVCACurrentResultsItem = iCurrentChild
        SayFormattedMessage (OT_MESSAGE,
                FormatString (MSG_PRE_LIST_ITEM_L, IntToString 
(giVCACurrentResultsItem)),
                FormatString (MSG_PRE_LIST_ITEM_S, IntToString 
(giVCACurrentResultsItem)))
        If GetCharacterAttributes () & ATTRIB_BOLD Then
                SayMessage (OT_MESSAGE, MSG_NEW_L, MSG_NEW_S)
        EndIf
        ; SayMessage (OT_DEBUG, "Selection state = " + IntToString 
(lvGetItemState 
(hWnd, iCurrentChild) ))

        ; SayObjectActiveItem (True) ; Says the wrong number of items in list 
(1 of 
11)
        ; SayObjectActiveItem (False) ; not able to reformat phone number in 
search 
results
        If StringContains (gsVCAResultsTitle, LIST_RECENT) Then
                Let gsVCAResultsName = lvGetItemText (hWnd, iCurrentChild, 1)
                Let gsVCAResultsDate = lvGetItemText (hWnd, iCurrentChild, 2)
                SayFormattedMessage (OT_MESSAGE,
                        FormatString (MSG_LIST_ITEM_L, 
gsVCAResultsName,gsVCAResultsDate),
                        FormatString (MSG_LIST_ITEM_S, 
gsVCAResultsName,gsVCAResultsDate))

        Else
                Let gsVCAResultsName = lvGetItemText (hWnd, iCurrentChild, 1)
                Let gsVCAResultsNumber = lvGetItemText (hWnd, iCurrentChild, 2)
                Let gsVCAResultsNumber = ReformatPhoneNumber 
(gsVCAResultsNumber)
                SayFormattedMessage (OT_MESSAGE,
                        FormatString (MSG_LIST_ITEM_L, 
gsVCAResultsName,gsVCAResultsNumber),
                        FormatString (MSG_LIST_ITEM_S, 
gsVCAResultsName,gsVCAResultsNumber))

        EndIf

        JAWSCursor ()
        RouteJAWSToPc () ; move JAWS cursor to item to activate custom ToolTip 
to 
capture phone number in WindowActivatedEvent
        LeftMouseButton () ; select item
        PCCursor ()
Else
        ; Most likely in a JAWS dialog
        ; SayMessage (OT_DEBUG, "Call to item changed and not in list view!  
Item = 
" + IntToString (iCurrentChild))
        ActiveItemChangedEvent (hWnd, iCurrentID, iCurrentChild, hWndPrevious, 
iPreviousID, iPreviousChild)
EndIf

EndFunction
Don Marang
Vinux Software Development Coordinator (vinux.org.uk)

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


--------------------------------------------------
From: "Geoff Chapman" <gch@xxxxxxxxxxxxxxxx>
Sent: Sunday, February 27, 2011 11:29 PM
To: <jawsscripts@xxxxxxxxxxxxx>
Subject: [jawsscripts] Re: JAWSWillFollowPc/TetherJawsToPC  Broken in Jaws 
10, 11 and 12.

> Hi Don.
>
> Thanks so much man for this response, the only one to date on this issue 
> so
> far. <smile.>
>
> I submit this got broken in jaws10, as it seems to work properly in jaws9
> here, I tested it.
>
> But, of course would very much appreciate any confirmatory info you feel
> able to provide on this.
>
> it's such a handy feature for newbys without a lot of knowledge, to 
> quickly
> gain often extremely helpful info in toolTips, when exploring new Apps, 
> and
> I'd very much like it repaired again.
>
> i also so much apreciate your pointers re it having to operate at either 
> the
> FocusChangedEvent level or lower/internally etc. I never thought of it 
> being
> a builtin (internal) issue though. soooo useful to have a forum to discuss
> these things with others eh!
>
> with your far wider experience of all things scripting, please do let me
> know of anything you discover?
>
> BTW, Are you also familiar with Object usage? i.e. any interactivity 
> between
> JAWS and MsWord? regarding the crazy cross Reference code offScreen 
> reading,
> that jaws continues to do every time it runs across a cross-reference in
> msWord 2007, in versions 11/12?
>
> Thanks.
>
>
> ----- Original Message ----- 
> From: "Don Marang" <donald.marang@xxxxxxxxx>
> To: <jawsscripts@xxxxxxxxxxxxx>
> Sent: Sunday, February 27, 2011 9:06 PM
> Subject: [jawsscripts] Re: JAWSWillFollowPc/TetherJawsToPC Broken in Jaws
> 10, 11 and 12.
>
>
>> The tether function must work at either the FocusChangedEvent level or
>> lower, such as internally.  I will see if I can reproduce your results.
>> It
>> worked the way I expected a year or two ago.  This had to be at least 
>> JAWS
>> 9, because I jumped from 5.1 to 9.  I originally thought this was an
>> answer
>> to a problem I had writing scripts for Verizon.  I will check the dates 
>> an
>> version I was using.  I think this was on Windows 7 as well, which would
>> mean at least JAWS 10.
>>
>> Tethering effects much more than the movements of the focus caused by the
>> Tab key.  It is not desirable for this feature to be the default.  For 
>> one
>> thing, when using an arrow key through a menu, it will automatically open
>> and move into all submenus!
>>
>> I totally agree with you about the ToolTip verbosity.
>>
>> Don Marang
>> Vinux Software Development Coordinator (vinux.org.uk)
>>
>> 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
>>
>>
>> --------------------------------------------------
>> From: "Geoff Chapman" <gch@xxxxxxxxxxxxxxxx>
>> Sent: Thursday, February 24, 2011 8:25 PM
>> To: <jawsscripts@xxxxxxxxxxxxx>
>> Subject: [jawsscripts] JAWSWillFollowPc/TetherJawsToPC  Broken in Jaws 
>> 10,
>> 11 and 12.
>>
>>> mighty scripters.
>>> Just letting people know of another unfortunate breakage that seems to
>>> have crept in unnoticed or uncared about over the past 3 versions, and
>>> that's what is, in my view,
>>> the rather handy newby application exploration feature, of today's
>>> subject
>>> line., viz, JAWSWillFollowPC. Or, as the actual Script is named,
>>> TetherJawsToPc.
>>>
>>> grumph!
>>>
>>> I have spent some time today, seeking to drill down into some of the
>>> functions/scripts which might've caused this, as it would seem on the
>>> surface a relatively simple one to repair maybe? but have had no luck in
>>> tracking it down myself.
>>> The Actual TetherJawsToPc script looks identical to me between jaws
>>> versions 9 and 10,
>>> so am presuming the problem must be somewhat deeper, i.e. buried in one
>>> of
>>> the functions related to tabKey or shiftTabKey pressing itself?
>>> which appear to be one's maybe like, SayFocusedObject, or
>>> SayObjectTypeAndText, or perhaps, GetObjectHelp?
>>>
>>> The Tether JawsToPc Script appears to me to just toggle the jcf option,
>>> (opt_Tether_Jaws_To_PC, from one setting to another,
>>> So I presume, that something in the tab and shiftTab key pressing
>>> functions, is maybe not checking for this setting in the relevant jcf
>>> file?
>>> and subsequently executing a routeJawsToPc based on it's 1 or 0?
>>> something
>>> like this perhaps?
>>>
>>> but something sure changed though between jaws 9 and 10, because tha'ts
>>> where it's been broken, and remained broken ever since.
>>>
>>> For those who may not be aware of this little gem,
>>> (when it actually functions properly,)
>>> When coupled with Auto ToolTip reading option set to on, (which is set
>>> individually within the prefferences section for each verbosity level, 
>>> in
>>> the verbosity dialog,
>>> - which is, not, the default setting for jaws, for reasons which have
>>> always totally eluded me,)
>>> when tethering jawsToPc, it can give a very handy way of hearing, what
>>> particular buttons or controls may do in an application, which activate
>>> the normal toolTip event class when mouse hovers over a control.  it
>>> basically means your mouse will follow your pc focus, and thus speak all
>>> those tooltips automatically for you, if any are present.
>>>
>>> one can also of course check it's functionality simply by first
>>> activating
>>> the jawsCursor, turning on the tetherJawsToPc function with
>>> Jawskey+Control+NumPad minus, pressing Tab, then pressing AltDelete, to
>>> check the jawsCursor Coordinates.
>>> When it's working properly, of course if the tab key is moving focus
>>> around an application window, like, for example, the winamp or vlc
>>> preferences dialog,
>>> pressing alt+delete after a tab press, should yield a change in the
>>> coordinates output,
>>> along with tooltips auto spoken, if that option has been enabled.
>>> Also, subsequently pressing RouteJawsToPc, when the function is working
>>> properly, then executing alt+delete again, should also, not, yield any
>>> change in the coordinates, when jawsCursor is active.
>>> However as you'll notice in jaws 10, 11 or 12, carying out the above,
>>> does, yield a change, meaning it's not tracking as it should.
>>>
>>> any thoughts from anyone as to how one might dig down further to find 
>>> out
>>> where this has come adrift?
>>> or if anyone would care to have a shot themselves and let us know ...
>>> even
>>> better! <grin.>
>>> But not an urgent one, just something I'd like to fix.
>>>
>>>
>>> thanks muchly.
>>>
>>> geoff c.
>>>
>>>
>>>
>>>
>>> __________�
>>>
>>> View the list's information and change your settings at
>>> //www.freelists.org/list/jawsscripts
>>>
>>>
>> __________�
>>
>> View the list's information and change your settings at
>> //www.freelists.org/list/jawsscripts
>>
>>
>
> __________�
>
> View the list's information and change your settings at
> //www.freelists.org/list/jawsscripts
>
> 
__________�

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

Other related posts: