[jawsscripts] Re: advantages of object oriented over procedural API, plus Gw Fs Scripting methodology question.

  • From: "Smith, Alice A. HQ DCO" <Alice.A.Smith@xxxxxxx>
  • To: <jawsscripts@xxxxxxxxxxxxx>
  • Date: Mon, 4 Aug 2008 10:31:27 -0400

One use we have found for a JAWS script object is to use methods stored
in a VB or .net DLL. 
Granted, that  is only for one application, a terminal emulator, where
we store field data for screens in an MS Access database. The methods
pull data and data types out of the database based on the field
location. The script uses the data types to determine how to speak the
data. For example, if the position is a table element, it will have
associated data of column header and row header types. The script uses
the object methods to pull the data and then speaks it in the correct
order. 

If I tab to the table element, the script will speak the column header
and the field contents. If I Ctrl+alt+up arrow, the script will speak
the row header and the field contents. If I ctrl+alt+numpad 5, the
script will speak the row and column numbers, the headers and the field
contents. (this is kicked in by handling of the FocusPointMovedEvent,
not keystrokes.)

We went this route to get screens Section 508 compliant faster because
the resources to modify the 1500 screens covered by the database just
aren't available. Newly designed screens follow standards so they do not
have to be added to the database. The script will speak the data
properly using the "consistent" markup on the newer screens. There are a
total of over 3000 screens in use. We hope to eventually phase out the
database but for now the users are able to use screens that were very
difficult before.

This is very complex and I doubt that many of you are tied to terminal
emulators.

Best,
Alice



-----Original Message-----
From: jawsscripts-bounce@xxxxxxxxxxxxx
[mailto:jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of Paul Magill
Sent: Monday, August 04, 2008 9:24 AM
To: jawsscripts@xxxxxxxxxxxxx
Subject: [jawsscripts] Re: advantages of object oriented over procedural
API, plus Gw Fs Scripting methodology question.


For me the issue is simpler, and the choice easier.

I have helped develop, and continue to maintain thousands of lines of
Jaws scripts for myself and others where I work.  While these contain
some Object Oriented features, it is nearly all ordinary scripting.

The reason for this, is that I fall short of the skill, knowledge or
whatever it takes to fully grasp the object oriented approach.  The
object oriented features that I have used, I borrowed directly from what
Jamal, Doug and others have released on this list, or published on web
sites.

For their generosity in releasing that source code, and so much other
useful information, I am ever grateful, as it is clear that much can be
achieved with objects, even if I cant come up with the design & code
myself.

Because of this, even if the WE approach were perfect , I would continue
with Jaws scripting, as I am able to understand & use enough of it  to
remain competitive at work.

From what I have read, the WE approach has some appeal for programmers,
but I think there may be others on this list, who, like me, are able to
write reasonably useful  Jaws scripts, but are definetly not
programmers.

If FS is considering moving toward a more object oriented approach, I
implore them to also continue with the current methods, for the benefit
of the non programmers amongst us.


Regards,
Paul from Aust.

----- Original Message -----
From: "Doug Lee" <doug.lee@xxxxxxxxxxxxxxxx>

I agree with Victor that the lack of standard data structure support in
JAWS scripting is a hassle.  I don't understand the comment about
VBScript not promoting open source access to assistive technology
though.  Not only are the VBScript scripts so far written presented in
source form, but VBScript is only one choice of several at the disposal
of scripters for Window-Eyes.  This openness may eventually present its
own problems, at least in some highly security-conscious environments;
but I don't see how that language support decision is at all
source-restrictive.

As for why object-orientedness could be an advantage to scripters:
A huge problem I've always seen in JAWS scripting is the lack of
isolation of code for one problem from code for another.  Build up a set
of scripts to address 15 issues without containing the code for each
unto itself, and you end up with a mess that's hard to maintain.  This
is largely why I started writing code in jsl files, though I'm sure not
all souls out there appreciate the number of files for one scripting
solution this causes me to produce occasionally.
Some of my jsl files really are sort of like objects though.  In an
object-oriented language, I would not have had to create my own means of
isolating things--special namespace prefixes, rules on variable and
function names, irregularly polymorphic use of function parameters, etc.
Besides this though, the jsl method remains quite limited compared to
real objects because it is much harder to extend a jsl without rewriting
it than to extend a class, at least in a better language than VBScript
(and *that* is one of my biggest issues with VBScript, that you can't
properly inherit from a class!).
In JAWS, you can actually implement even more object-orientation
simulation by using jsb files and Use commands than by using jsl files
and Include commands, but I mostly avoid that to avoid the runtime
performance hit of loading a fleet of jsb files on every
Alt+Tab.

And finally, what the JAWS language might have over the GW offering:
For security-conscious people, such as on-site IT personnel at various
sites I've visited, I think the fact that the JAWS scripts run within
JAWS itself is a comfort.  JAWS scripts don't look and act like
application programs nearly as much as I expect GW scripts will do in
their eyes.  Whether this is actually a substantive advantage remains to
be seen.  I can't be sure what other pros JAWS'
approach may offer over the GW approach because I know the JAWS
environment better than the GW environment.

__________
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: