[jawsscripts] Re: Writing a new event script

Lets hope it works.  It won't automatically go their if the field's data 
changes, but it will get you their quickly.

Thanks,
Dennis Brown

----- Original Message ----- 
From: "matt" <mcdiemert@xxxxxxxxx>
To: <jawsscripts@xxxxxxxxxxxxx>
Sent: Wednesday, February 25, 2009 12:21 PM
Subject: [jawsscripts] Re: Writing a new event script


> Dennis, if this works, you're my hero for the year 2009! Leave it to me to
> ignore the simple!
>
>
> -----Original Message-----
> From: jawsscripts-bounce@xxxxxxxxxxxxx
> [mailto:jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of Dennis Brown
> Sent: Wednesday, February 25, 2009 12:12 PM
> To: jawsscripts@xxxxxxxxxxxxx
> Subject: [jawsscripts] Re: Writing a new event script
>
> What about setting a place marker on that control?  Hitting the letter k
> moves you right to it.
>
> Thanks,
> Dennis Brown
>
> ----- Original Message ----- 
> From: "Geoff Chapman" <gch@xxxxxxxxxxxxxxxx>
> To: <jawsscripts@xxxxxxxxxxxxx>
> Sent: Wednesday, February 25, 2009 11:50 AM
> Subject: [jawsscripts] Re: Writing a new event script
>
>
>> HI matt.
>>
>> Ah, hmmm,
>> you unfortunately neglected to mention that it was an html based app,
>> operating probably inside an internet explorer or other browser type 
>> front
>> end.
>> is that right?
>>
>> if so, hmm, this actually changes a lot of things!
>>
>> What version of jaws are you using with this?
>> prior to version 8 for example, route Jaws to Virtual pc tended to work
>> very
>> ppoorly if at all.
>> but they fixed it somewhat I think at version 8.
>>
>> Now in my limited experience at trying to use frames within html
>> apps/virtual pc land, I've found them to be quite a lot less effective
>> than
>> in non-virtual pc/non-html environs, because in the html environs, things
>> tend to be more dynamically updated and change their absolute onScreen
>> positions a lot more, than they seem to do in non-html applications. 
>> this
>> is in my view anywayz.
>>
>> And I think Jackie would also concur, would you Jackie?
>> that in an html type environ, trying to use the setFrameToWindow function
>> would almost certainly not be effective, as it seems that controls or
>> elements as they seem to be called in html land, are more object based,
>> than
>> they are window based?
>> But that's coming from someone with extremely limited knowledge of how
>> things in html land do their thang.
>>
>> You can certainly try the frames approach I outlined in last message, but
>> I
>> wouldn't be at all surprised to learn that it proved ineffective, as I
>> say,
>> just due to how much more dynamically movable, everything seems to be in
>> those types of apps.
>> But, who knows. it'll be a suck it and se game I think, though as I say
>> I'm
>> less confident it'll work well for you.
>> and of course the other thing inb html apps like this is, you've got the
>> whole issue of forms mode on/off to be concerned with too, sometimes just
>> left clicking even if in the right place, doesn't seem to necessarily
>> autoactivate forms mode either, not that this would be crucial I guess, 
>> if
>> you had the edit box autoGain focus, and it's text spoken to you
>> automatically.  in html land though
>> I have used hsc to glance at things like this with hotKeys, based on
>> designing a hotspot that first looks for some static onscreen text or
>> label,
>> that may surround your dynamic edit box text, and then doing an offset
>> from
>> that, and then, say, reading current word.  you can actualy input little
>> UserFunctions into the hotspot definitions box as well, which I've done 
>> to
>> autoTurn forms Mode on in a particular edit box, but it's a bit trickier
>> to
>> do and I'd have to paste you in some code probably to give this a shot.
>> it's sometimes reliable and sometimes not though, in my experience, re
>> whether forms mode gets properly triggered or not.
>> the other tricky thing about this method, is that sometimes, for some
>> wierd
>> reason, hsc/jaws functions, for this is what hsc is using, can't actually
>> always locate text that is onscreen, probably due to the whole OSM thing
>> which may be somehow not refreshed the same way in html land, I'm not
>> sure.
>> But I know sometimes I hit my hsc defined key to read something, based on
>> it
>> finding a text label then offsetting from that, and it'll claim it can't
>> see
>> the text, then I might ScrenRefresh and it'll then see it, ... stuff like
>> that.
>>
>>
>> Some of the other sharper tools in the shed up here though, may be able 
>> to
>> tell you in script land, like offer you some code etc, which may help you
>> hierarchically sort through the elements for the xx edit box on Screen, 
>> or
>> using Object searches, stuff like that, of which I am very
>> unknowledgeable.
>>
>> Message ----- 
>> From: "matt" <mcdiemert@xxxxxxxxx>
>> To: <jawsscripts@xxxxxxxxxxxxx>
>> Sent: Thursday, February 26, 2009 3:05 AM
>> Subject: [jawsscripts] Re: Writing a new event script
>>
>>
>>> Jeff,
>>> Wow, thanks so much for such a great explonation.
>>> The application I'm working with is sort of like a web bassed 
>>> application
>>> within it's on program. What I mean by that is standard Quick nav keys
>> such
>>> as e for edit field and C for combo box work quite nicely. The only
>> problem
>>> we are having is when the call comes in the Edit field which contains 
>>> the
>>> customers first name is about two tabs or two presses of the letter E
>> away.
>>> It's really important obviously to know the first name as quickly as
>>> possible to engage the caller.
>>> I'll try some of these suggestions you've so kindly provided me. They 
>>> are
>>> much appreciated.
>>>
>>>
>>>
>>>
>>> -----Original Message-----
>>> From: jawsscripts-bounce@xxxxxxxxxxxxx
>>> [mailto:jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of Geoff Chapman
>>> Sent: Wednesday, February 25, 2009 10:27 AM
>>> To: jawsscripts@xxxxxxxxxxxxx
>>> Subject: [jawsscripts] Re: Writing a new event script
>>>
>>> Hi Matt.
>>> ah, something at last I can speak into!
>>>
>>> hmmmm, you may've taken on a bit of a tiger by the tail there man, Hope
>> you
>>> have a plan for letting go! <grin.>
>>>
>>> like I mean is this all you want this puppy to do to become
>>> accessible/useable?
>>> presumably by a blind user? or is the user actually yourself?
>>>
>>> Having been pretty closely involved in the design and testing of
>>> HotSpotClicker, I would myself suggest that this would not be the tool 
>>> to
>>> use to solve this kind of problem, as HSC's strength does not lie so 
>>> much
>> in
>>> automonitoring for certain events to happen, like Frames can be made to
>> do.
>>>
>>> I would suggest if your a novice at script writing, to definitely try a
>>> frame first, as Jackie suggested, as they tend to be way simpler to get
>>> going with, although they may have other limitations which an informedly
>> and
>>> carefully-written script
>>> may avoid, but the key word here of course is, "carefully and informedly
>>> written!" and
>>> these are not always so easy to do if your knew at the game as I
>>> certainly
>>> am.
>>>
>>> However, I would provide the further warning/caveat to Jackie's
>>> suggestion
>>> that you might automatically try setting the frame to a window, which by
>> the
>>> way
>>> if you weren't aware, you do by doubleClicking the TopLeftCorner set
>> Hotkey
>>> of Control+shift+LeftBracket after moving your jawsCursor into the 
>>> window
>> in
>>> question, in that you may find, that depending on how the application 
>>> has
>>> been written, the particular area of
>>> the screen into which this "screen pop" activity occurs, may not 
>>> actually
>> be
>>> encompassed within it's own uniquely identifiable individual window.
>>> It well may be, but it also may not.
>>> i.e. it may just be an area within a far larger window, which if you set
>>> your Frame to the window using the method described above, would then
>>> obviously read waaaaay too much information.
>>> So, one way to check this, would be to move your jawsCursor to, say, the
>> top
>>> left corner, i.e. the first leftHand letter, of where the text occurs.
>> then,
>>> flip your window restriction roter, I.e. JawsKey+r, from Application
>> window,
>>> which is it's default, to, Current, window instead.
>>> This means it'll restric the jaws cursor to the boundaries of what Jaws
>>> determines is the smallest, "current",  window available, which would be
>>> what your frame
>>> would be set to, if you chose this method outlined above of auto-setting
>>> your frame to the current window size.
>>> Now, Hit control+Home from there, then hit Jaws+Down Arrow to read all.
>> now
>>> if when you do this, jaws reads only the text you need spoken and 
>>> nothing
>>> else, then you could certainly go ahead and try setting the frame to 
>>> that
>>> window as Jackie suggested.
>>> but, if you find that the control+Home movement, when in this Current
>> window
>>> restriction mode, takes your jaws cursor a long ways away from this
>>> screen
>>> area, and the SayAll starts reading all kinds of other extraneous
>>> information, either before or after your desired text,
>>> then I would personally suggest setting frame to current window, isn't
>>> likely
>>> to bring you the joy you desire.
>>>
>>> certainly if your application is operating at all in a terminal 
>>> emulation
>>> type environment, this is very likely to be the case.
>>> Don't forget to switch the roter back though to, application, when your
>> done
>>> testing!
>>>
>>> Now, some further tips.  when you define your frame, whether you set it
>>> to
>>> current window, or you mark the top left and bottom right corners of the
>>> frame manually, by moving your jaws cursor to those points, then hitting
>>> controlShiftLeftBracket and ControlShiftRightBracket respectively, it
>>> will
>>> offer you a wizard based approach for setting up your frame. first the
>> name,
>>> then description 1, then a longer description 2.
>>> then it will ask you for a keystroke you may wish to assign to your
>>> frame,
>>> I'd suggest choosing one if you can spare the keystrokes, as this can be
>>> handy too, to ReRead or doubleCheck Frame Contents etc.
>>> II like using alt+Top Number rows myself.
>>> then press enter to move to next wizard question.
>>> then it will ask you what you'd like the frame to echo.  here you'd up
>> arrow
>>> to Ehco all, since you want it to speak/echo anything written into this
>>> frame if I've understood you correctly.
>>>
>>> hit enter to complete the wizard.
>>>
>>> Now, this is where many people go wrong with frames and why they often
>> find
>>> them so unreliable and give up with them in disgust.
>>> .  what the wizard doesn't tell you, and what it really somehow ought to
>> be
>>> made to in my view, since frames have been made to be such a jolly
>> flexible
>>> and powerful tool to bringing relatively quick/easy access to some
>>> situations,
>>> is that you then should hit alt+enter, to immediately go back into 
>>> frames
>>> Properties of the frame you've just created.
>>> Then you should controlTab once, to what's called the validation rules
>>> section of the properties of the frame.  There you will find two 
>>> criteria
>>> selected by default when you create any
>>> frame: Window Title, and Window Class.  Jaws should say, "on," when you
>>> arrow between both of these, meaning that criteria is at present on, or
>>> live, to serve as rules for the validation of that frame.
>>> this state can be toggled with spaceBar to, off, if desired for each
>>> rule,
>>> and they can even be ordered in priority of validation.
>>> Leave them on at present though.  now, you need to check what text, if
>> any,
>>> it has selected for it's window title matching validation rule.  For
>>> obviously, when creating the frame, it can only grab the text out of the
>>> window title, that was there at the
>>> time of the frame creation process.  However very often, I've found that
>> it
>>> will have selected certain textual
>>> information, that may well not always be present, or remain, in that
>> window
>>> title, across various circumstances in which you are operating the
>>> application, and across which you wish the frame to still be valid, or,
>>> "fire," as I like to say.
>>> So you obviously must get rid of any of that textual information.
>>> Now this is not always easy to determine, of course, if you don't really
>>> know, how this particular window title text, might change, in various
>>> circumstances.
>>> So the trick here, which is a bit of trial and error I admit, is to seek
>> to
>>> work out, from that title, if you think it's at present containing
>>> information that you divine might not always be there in every
>> circumstance,
>>> and which would thus invalidate the frame from working, if it was not.
>>> Like for example, a particular record number, or somethihng like that,
>> which
>>> may change for every new client that calls or whatever.
>>> so you can then hit f2, to edit the text of this window title, and 
>>> insure
>>> you leave in there, only that information that your as sure as you can
>>> be,
>>> will always be present no matter what.
>>>
>>> for now, hit enter to accept any changes, and again to save changes to
>>> the
>>> frames properties and leave the dialog.
>>> then hit escape to leave frames manager, and you should be asked whether
>>> you'd like to save changes. you must of course hit y to answer yes.
>>> and you should be returned to your application.
>>>
>>> now your frame should have two events associated with it that will
>>> trigger
>>> it, if it passes the validation criteria.
>>> one event will be an "onKey" event, which means it's set to fire when 
>>> you
>>> hit the keystroke you've assigned to it, and this has been automatically
>> set
>>> for you to read the text within the frame boundaries by the wizard when
>> you
>>> chose to say yes to assigning a keystroke to the frame.
>>> and the other, is an OnText event, which has been setup by the wizard to
>>> read any newly written text that appears in the boarders of the frame.
>> you
>>> can of course set it up to only do this if certain text appears in that
>>> frame, but that's another story.
>>>
>>> Now, test your frame with your hotkey that you've assigned, and see if 
>>> it
>>> reads as desired.
>>>
>>> You asked also if focus could be made to auto jump to that field upon 
>>> any
>>> new text being written there.
>>> the answer is, yes it can, but I'd advise perhaps doing that by adding
>>> two
>>> separate new OnFrameKey events, to the Event list in the third 
>>> controlTab
>> of
>>> frames properties for your frame. so you'd go back into frames manager,
>> with
>>> jaws+9 I think it is,
>>> then find your frame in here and hit alt+enter to go back into frames
>>> properties.
>>> then controlTab to the FrameEvents section.
>>> then, hit AltA when in there, to add a new event, and choose, 
>>> OnFrameKey,
>> as
>>> the event type in this case.
>>> then hit enter to advance through the small wizard style interface, and
>> you
>>> will be asked what action you would like to take place when this frame
>> event
>>> occurs, (in this case, the event of pressing the key associated with the
>>> frame.)
>>> for this first new OnKey event, choose RouteJawsToFrame, as your action,
>> as
>>> you want the mouse to jump to your frame and, eventually, in the next
>> OnKey
>>> event we'll add in a moment,
>>> to  click the leftMouse button there, which in windows will often bring
>>> focus to the control.
>>> then hit enter.
>>> Now you'll notice a third event in the list, all marked as on by 
>>> default.
>>> you can also toggle these on/off with spaceBar as well.
>>> now you will add the last OnKey event, which will be set to click the
>>> leftMouseButton.  Hit alt+A to add your next event, choose OnFrameKey
>> again,
>>> hit enter to advance to the actions section, then this time, choose the
>>> action, RunScript.  Tip, you can use multi letter navigation in here to
>> more
>>> quickly select your action, i.e. R U for RunScript. tip, don't choose
>>> RunScriptEvent, that's a different type of action which we're not
>> concerned
>>> with right now.
>>> then hit enter. then you should be presented with a whole bunch of
>>> premade
>>> scripts from which you can choose.
>>> again using multi letter navigation, type L E F T M quickly, and you
>> should
>>> jump to leftMouseButton.  when you've chosen that, hit enter.
>>> now you should see 4 events in there, and note that again, the
>>> priority/order of the events is important.
>>> there are buttons for, Move event up, and Move event down, in that 
>>> dialog
>>> box section.
>>> insure in my view that the events are in the order:
>>> OnText, then the OnKey event that speaks your text,
>>> then the OnKey event that routes JawsCursor to frame, then the last 
>>> OnKey
>>> event which should click the left Mouse button. the last two events are
>>> particularly important, as if they're in the wrong order you might find
>> the
>>> leftMouseButton being clicked in a totally alternate location than you
>>> desire.
>>>
>>> Now your OnFrameKey when pressed, should:
>>> A. read the text of the frame;
>>> B. Route the JawsCursor/mouse to the top left corner of the frame, which
>> if
>>> you've defined it manually should be the first letter in the area; and
>>> C. click the leftMouseButton there, which often in windows applications,
>> is
>>> synonymous with setting focus to the control.
>>>
>>> You can of course, try setting two more OnText type frame Events to do
>> these
>>> last two actions, instead of the OnFrameKey event, but you may find that
>>> doing this may cut off the proper auto-speaking of all the text in the
>> frame
>>> if you do that? Try it and see! the beauty is, that you can just toggle
>>> off/on, the other OnKey events while you mess around with what works 
>>> best
>>> and what doesn't etc, which is very groovy and helpful.
>>>
>>> I'll leave it there for now and see how you go with that far first,
>>> before
>>> provideing any further info/tips about frames usage, of which there are 
>>> a
>>> few. but they're in my view, relatively easy ones compared to learning
>>> how
>>> to write a decent script to do the same job.
>>> let us know how you progress.
>>>
>>>
>>> Geoff c.
>>>
>>> To: <jawsscripts@xxxxxxxxxxxxx>
>>> Sent: Tuesday, February 24, 2009 7:56 AM
>>> Subject: [jawsscripts] Re: Writing a new event script
>>>
>>>
>>> > Hi all,
>>> > Forgive me if my questions are stupid and completely off point, but 
>>> > I'm
>>> > working with a new application that I need to write a script for.
>>> > This application is a telemarketing type application, and as such, 
>>> > when
>> a
>>> > new call comes in the first name field is immediately populated. What 
>>> > I
>>> want
>>> > to do is tell jaws when a new event happens in this particular edit
>> field
>>> > automatically say or move focus to this field.  Could this be done 
>>> > with
>> a
>>> > frame or even maybe hotspot clicker, or should I attempted to write a
>>> script
>>> > for this.
>>> > Could someone get me started as to where I should start?
>>> > I appreciate any pointers whatsoever!
>>> >
>>> >
>>> > -----Original Message-----
>>> > From: jawsscripts-bounce@xxxxxxxxxxxxx
>>> > [mailto:jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of David Farough
>>> > Sent: Monday, February 23, 2009 3:50 PM
>>> > To: JawsScripts
>>> > Subject: [jawsscripts] Re: Scripts for TaxAct 2008
>>> >
>>> > Hi Gary:
>>> >
>>> > I do not have this program so I do not know how much help I can
>>> > provide.  However, If you answer these questions I may be able to help
>>> > a
>>> > little.
>>> >
>>> > 1.  Where did you get this program from?  I did a google search on it
>>> > and saw all sorts of similarly named programs and did not want to risk
>>> > looking at the wrong one.
>>> >
>>> > 2.  What is the name of the executable that is spoken when you press
>>> > insert+q when the application has focus?
>>> > I noticed the following entry in the confignames.ini.
>>> > TaxAct06=TaxAct 2006
>>> >
>>> > I suspect that the executable for this version may be TaxAct08
>>> >
>>> > If so, you could add an entry to confignames.ini as follows:
>>> > TaxAct08=TaxAct 2006
>>> >
>>> > Judging from what I am seeing in the configuration files, It may be
>>> > difficult to get this working again if they have made significant
>>> > changes to the interface.
>>> >
>>> >
>>> >
>>> > David Farough
>>> > Application Accessibility Coordinator/coordonateur de l'accessibilité
>>> > Information Technology Services Directorate /
>>> > Direction des services d'information technologiques
>>> > Public Service Commission / Commission de la fonction publique
>>> > Email / Courriel:  David.Farough@xxxxxxxxxxxxx
>>> > Tel. / Tél:    (613) 992-2779
>>> >
>>> > >>> "Gary King" <w4wkz@xxxxxxxxxxxxx> 04:51 pm Sunday, February 22,
>>> > 2009 >>>
>>> > Is anyone planning to modify previous TaxAct scripts to work with
>>> > TaxAct
>>> > 2008?  In the past, simple modifications to the various script and
>>> > associated files made previous versions of TaxAct scripts work with 
>>> > the
>>> >
>>> > current version of the program, but this year, 2nd Story Software 
>>> > seems
>>> > to
>>> > have made changes to the program that prevents JFW from speaking the
>>> > controls.  I have used TaxAct for 10 years and hate to abandon it.
>>> > Importing data from the previous year makes it easy to get started on
>>> > this
>>> > year's taxes; at least it would, if the buttons and checkboxes would
>>> > speak.
>>> >
>>> > Gary King
>>> > mailto:w4wkz@xxxxxxxxxxxxx
>>> >
>>> > __________
>>> > Visit and contribute to The JAWS Script Repository
>>> > http://jawsscripts.com
>>> >
>>> > View the list's information and change your settings at
>>> > http://www.freelists.org/list/jawsscripts
>>> >
>>> > __________
>>> > Visit and contribute to The JAWS Script Repository
>> http://jawsscripts.com
>>> >
>>> > View the list's information and change your settings at
>>> > http://www.freelists.org/list/jawsscripts
>>> >
>>> > __________
>>> > Visit and contribute to The JAWS Script Repository
>> http://jawsscripts.com
>>> >
>>> > View the list's information and change your settings at
>>> > http://www.freelists.org/list/jawsscripts
>>> >
>>>
>>> __________
>>> Visit and contribute to The JAWS Script Repository 
>>> http://jawsscripts.com
>>>
>>> View the list's information and change your settings at
>>> http://www.freelists.org/list/jawsscripts
>>>
>>> __________
>>> Visit and contribute to The JAWS Script Repository 
>>> http://jawsscripts.com
>>>
>>> View the list's information and change your settings at
>>> http://www.freelists.org/list/jawsscripts
>>>
>>
>> __________
>> Visit and contribute to The JAWS Script Repository http://jawsscripts.com
>>
>> View the list's information and change your settings at
>> http://www.freelists.org/list/jawsscripts
>>
>>
>
> __________
> Visit and contribute to The JAWS Script Repository http://jawsscripts.com
>
> View the list's information and change your settings at
> http://www.freelists.org/list/jawsscripts
>
> __________
> Visit and contribute to The JAWS Script Repository http://jawsscripts.com
>
> View the list's information and change your settings at
> http://www.freelists.org/list/jawsscripts
>
> 

__________ 
Visit and contribute to The JAWS Script Repository http://jawsscripts.com

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

Other related posts: