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