[jawsscripts] Re: scripting for multiple programs running on Internet Explorer?

  • From: Doug Lee <doug.lee@xxxxxxxxxxxxxxxx>
  • To: jawsscripts@xxxxxxxxxxxxx
  • Date: Thu, 11 Oct 2012 10:18:41 -0400

My methods of handling this are a bit complex but cover all the
problems with this issue of which I am aware.

Basic approach, for all JAWS versions:

Create a stub script file, Internet Explorer.jss, in the JAWS user
folder. Have it load the original FS scripts via a Use statement, then
load each of your custom script files via further Use statements, and
finally include a small filler function that just returns nothing,
because some JAWS script compiler versions fail to compile a script
file correctly if it contains no functions or scripts. Each custom
script file is then free of worrying about where it fits into the set
of custom and FS scripts. Just make sure each script file is careful
not to apply its extra functionality too broadly; for example,
condition all activity in a custom script file on the current page
title or URL.

Sample Internet Explorer.jss file:

; ***shared script load line*** (see below for specific content).
; Load custom scripts on the following lines.
use "custom_IE1.jsb"
use "custom_IE2.jsb"
; ...

void function filler()
return
endFunction

If your scripts are ok running in JAWS 14 only:

The "*** shared script load line*** can be replaced simply with

use "Internet Explorer.jsb"

Do not try that on any JAWS version older than JAWS 14.

If your scripts will run only in JAWS 13 or 14:

You can use a full path to the shared Internet Explorer scripts, but
that path will be machine dependent. An example is

use "c:\\Documents and Settings\\All Users\\Application Data\\Freedom 
Scientific\\JAWS\\13.0\\Settings\\enu\\Internet Explorer.jsb"

Watch out though: If the user upgrades to a new major JAWS version and
uses the Merge utility to copy over scripts and configuration
settings, you could end up with a script in JAWS 14 that loads a
script right out of the JAWS 13 shared folder. For this reason I
recommend against the full-path approach. People do that.

For all JAWS versions including 13 and 14:

Copy Internet Explorer.jss, jsb, and jsd from the JAWS shared folder
to the JAWS user folder under altered names. I prefer to use
Internet Explorer_fs.jsb/jsd/jss here. Then for the ***shared script
load line***, use this:

use "Internet Explorer_fs.jsb"

Warning: For this approach, you will have to keep the _fs files in the
user folder up to date every time the user does a JAWS update, repair,
upgrade, etc. My Skype scripts at http://www.dlee.org/skype/ include
code to automate this synchronization.

One final general warning: As you observed, using
SwitchToConfiguration will lose you some standard JAWS script
functionality. The price of keeping that, though, is that you will not
have separate jcf, jkm, etc., files for each custom script set. For
this reason, I tend to include in each custom script file's
AutoStartEvent code to write any special entries to those files. I use
the IniWriteString function to do this. In this way you can make, say,
custom_IE1.jss maintain its own special keystrokes in Internet
Explorer.jkm in the JAWS user folder, so your installer, if you have
one, doesn't have to worry about playing with that file. The only
problem with this, of course, is that removing your scripts can leave
behind extra key assignments, JCF entries, etc. If that's a problem
for you, you might prefer to leave the jkm/jcf bookkeeping to your
script installers.

Hth.

On Thu, Oct 11, 2012 at 10:49:47PM +1100, Paul Magill wrote:
Hi all,

At work we have a number of different applications which all run in Internet
Explorer.

We have been adding scripts for all of these, to the standard FS I E
scripts, but as more internal applications are moving from seperate programs
with their own .JSS files, to run in Internet Explorer, the scripting is
becoming too complex, not to mention conflicting keystrokes.

I am hoping for some advice, on how to arrange for some of these
applications to have their own script & keymap files,  so that when we
switch from one application  to another, each running in Internet Explorer, 
a
seperate .jss& .jkm  file will be loaded for that program, and importantly,
still with access to the FS I E functionality.

Can the "USE" statement be manipulated to achieve this?

I have looked at the SwitchToConfiguration  function, but if I were to use
that to load a script set, for example for the customer database, then all
the wonderful FS virtual functionality would be lost.

Any suggestions will be greatly appreciated.

Thank you,
Paul from Australia



__________???

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

-- 
Doug Lee, Senior Accessibility Programmer
SSB BART Group - Accessibility-on-Demand
mailto:doug.lee@xxxxxxxxxxxxxxxx  http://www.ssbbartgroup.com
"While they were saying among themselves it cannot be done,
it was done." --Helen Keller
__________�

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

Other related posts: