[misc.handicap] Graphical User Interfaces

moth@dartmouth.edu (Tom Leathrum) (11/14/90)

Index Number: 11655

I tried to post a response to the discussion on GUI's a while ago,
but it got lost on the net.  I never got around to rewriting it
until now.  Part of what I want to say now has to do with what
finally inspired me to get around to this.

Last week, I went to Boston to hear a lecture about accessibility
in computing.  The lecturer had a copy of OutSpoken, and I had an
opportunity to watch over her shoulder as she got used to OutSpoken
and the Mac interface in general.  She had used IBM software in her
job, working for Women's Braille Press, so she was no computer
novice, but she had not used a Mac.

I was impressed.  She learned to navigate the hierarchical file
system very quickly, and was able to flip in and out of documents
easily.  She could also easily change OutSpoken's parameters, like
pitch, volume, and tone.  I attribute this ease of use much more to
OutSpoken than to the Mac interface, though.  Many things about
OutSpoken seemed to me to be improvements on the Mac, in particular
the way it treats the Desktop just like any other window.  The only
problem I saw with OutSpoken had to do with the way it handled a
window that contained a mixture of different objects, like icons,
buttons, sliders, and text -- for example, the Control Panel.
OutSpoken read things left to right, even though the Control Panel
had a somewhat finer partition than that.  It would read a line
from one area, then go to a line from some other area, and you
would have to go through several areas before you could get back to
the next line of the area where you started.

It's time for me to backtrack a bit, now.  OutSpoken is a good
piece of software for a horrible interface (IMHO).  The people at
Berkeley Systems had to muck around inside the system much more
than they should have ever had to.  But I think graphical user
interfaces will and should stay a part of computing.  The only
convincing argument I have ever heard in favor of GUI's, though,
has absolutely nothing to do with ease of use (much to the chagrin
of all the Mac people around here).  It has to do with representing
parallel processes.  If you have two processes running, each giving
output, you have two options:  either send each output stream to a
different output device, or partition a single device in such a way
that both output streams are represented.  This second idea
immediately suggests windows, and hence GUI's.

Now for a bit more comparison.  I have used several GUI's myself,
and can give you some idea of how they differ and what advantages
each would have from the point of view of screen reading.  In
particular, I have used:  Mac, NextStep (for the NeXT), X Windows
(on a Sun workstation), and SunTools.

First, the Mac.  This is the one I have the most experience with,
and it is the one I hate the most.  From a programmer's
perspective, the interface is impossible to navigate.  For
instance, to do screen reading, you need to be able to find the
text associated with a given window.  This is nearly impossible to
begin with, but once accomplished, you still have problems.  You
have to teach you reader to ignore font changes and such, which
means (at least with the current Mac system) jumping between
entirely disjoint pieces of data as if they were totally seamless.
My hat's off to the OutSpoken people for managing this feat.  Also,
the Mac all too often requires mouse operations.  OutSpoken has
gotten around this problem with an elaborate system of cursor
movements.

The other three all have one thing in common:  they're UNIX based.
This immediately solves the problem of finding the text, because
UNIX is almost entirely text-driven.  Ignoring font changes and
other format issues is also easier, becuase the font changes are
handled within the text file by way of command sequences.  To
ignore a font change, you just have to tell your reader to ignore a
command sequence, which usually means something like ignoring
anything between a backslash and a space.

OK, so the other three all have one other thing in common:  there
are no screen readers for them -- yet.  This leads me into what is
wrong with each, and ultimately into suggestions for how to improve
GUI's in general.

X Windows and SunTools have a common problem:  the mouse.  For
example, in X Windows, in order to type into a text field, the
(mouse-controlled) cursor must be pointing at the field -- often
quite difficult, since the fields are so small.  SunTools has the
nasty habit of "warping" the cursor to where it thinks it should
be, regardless of whether you moved it there.  It also has a more
subtle problem:  in order to load a text file in the editor, you
have to modify the text field -- so it immediately asks you if you
want to save your changes first.

Now for my personal favorite (no, I do not have any connection with
the company):  NextStep.  The mouse use is much closer to the
Mac's, which still has problems but is an improvement over X
Windows.  The whole idea of the Desktop has been rethought, and the
result is much better.  The icons on the desktop represent running
applications, not disks and files.  You find disks and files by
running an application called the Directory Browser.  Icons for
applications you start migrate to the lower left of the display, so
they're easy to find.

Finally, my recommendations for making GUI's more accessible:  1)
Replace the mouse.  Relative motion makes no sense without a
physical point of reference.  I would suggest something along the
lines of a light pen, where the motion is absolute.  It should not
be required to place a cursor using the pointer (like X Windows),
and any required pointer responses should be in easy-to-find
places.  Following up on this:  2)  Make the window and icon
positions "sticky", by default, so that they are easier to find
(using the absolute position pointer above).  3)  If you must use
menus and buttons (and, frankly, I think they can be done away
with), provide key equivalents for *ALL* options, and keep them
consistent.  4)  Keep everything as text-driven as possible.  (UNIX
is a pretty good model.) 5)  Provide a sensible way to get under
the window interface to an entirely command-driven level, if that's
what the user wants.  (This is impossible on a Mac, the default on
X Windows and SunTools, and relatively easy on NextStep.)

My comparison of GUI's is nowhere near complete, I know.  In the
future, I want to use Amiga's interface, MicroSoft Windows on an
IBM, and a couple of others, to get a wider range, but I don't
expect my recommendations to change much.  I welcome any criticisms
or further ideas, as long as you welcome more of these long
articles.

Regards,
Tom Leathrum
moth@dartmouth.edu
member, Mathematicians Against Drunk Deriving