I've tried many solutions to deal with inputting into the computer, since I have problems typing.
The simplest and most successful solution has been the foot pedal that I obtained from Bilbo Solutions. Each pedal can be bound to any sequence of keystrokes. The pedals are unfortunately rather cheaply constructed, and the software for programming them is flaky and only runs under Windows. Once programmed, however, the pedals are basically reliable and don't require any hardware driver to work, meaning that they can be used under any operating system. (You just daisy chain them along with the keyboard.) I have twelve pedals, which are bolted together horizontally in two groups of six. The main group of six is bound (left to right) to Enter, Backspace (also doubles as "scroll a web page backwards" in Netscape), Tab-Pageup-Shift-Tab (an awful kludge (that means "scroll a mail message backwards" in Netscape), Delete, Space (also means "scroll a web page forwards" and "scroll a mail message forwards" in Netscape), and n (means "next unread message" in Netscape). These bindings make it possible to read mail almost entirely using only the foot pedal. The second group of six is bound (left to right) Alt-Space-n (minimize window), Pageup, Pagedown, Alt-Space-c (close window), Alt-Space-x (maximize window), and Alt-Left ("go back in Netscape").
I also have a pair of foot mice. These are called the NoHands Mouse and they are produced by Hunter Digital (1-800-57-MOUSE). The foot mouse substitutes for the two button hand mouse. One pedal clicks forward for the left button and back for the right button. The other pedal handles motion. They have worked decently well, are well constructed and so far (about one year's worth of use with them) no significant leg problems. However, mouse motion in this scheme is very awkward and basically poorly designed. The pedal works like a joystick in that pushing down on the pedal controls the speed and the direction of the mouse pointer, where as with a regular mouse you control the position of the mouse pointer directly. Pressing the top edge of the pedal causes motion upwards, similarly from the bottom edge, the left edge, and the right edge. Unfortunately, pressing the left or right edge of the pedal involves rotating your foot or more like rolling the foot from left to right, often requiring you to move your whole leg in order to achieve this. Other tactics have been tried, involving using your toes to control the left-right part of the pedal with ankle movements controlling the toes. Other people have tried simply moving the foot to different parts of the pedal in order to press the pedal correctly. All of these different attempts are somewhat awkward. The biggest problem, however, is that there is no resting space anywhere on the pedal. If you want to not move the pedal you basically have to take your foot off the pedal and put it somewhere else. If you simply leave your foot on the pedal then it will start drifting off in some direction. There is software in place that attempts to sense the fact that you're doing this and after a while it stops the mouse and resets its frame of reference so that if you want to go up you have to move up from whatever position your foot was in at that point and down is from wherever your foot was in so if you were leaning basically forward then you would have to go forward from that to go forward a little bit and you might not be able to go forward a lot at all, whereas to go back you have a much greater range of going back than you normally do. I found this system completely aggravating and way too frustrating to use. Since then I ended up sitting in a chair with my left leg pulled in and crossed under my right leg for support for my right leg which hovered over both of the pedals of the foot mouse and alternately would click and move and click and move as necessary. If that foot had to come to rest it would always come to rest on the clicking pedal which did have a resting point between the two clicks. This system, although usable, is still a little annoying, considering the amount of dancing that my right foot has to do and also considering the fact that I have difficulty doing drags. Either I have to disentangle myself and use both feet to do a drag which is very unbalanced, or I have to do the drag entirely using the mouse. I have tried moving with the mouse and clicking with the foot mouse or alternately moving the foot mouse and clicking with the mouse and a combination like this might make drags easier. Unfortunately, the "Y" adapter on the footmouse that allows both the foot mouse and the regular mouse to be used at the same time does not allow both of the mice to both be active at the same time. This means that you can alternately move the mouse, click, move the mouse, click, etc. but you can't be for example initiating a drag with the foot mouse button then using the mouse to drag and select the text out, then releasing the button on the foot mouse (what you would find, in fact, is that once you've pressed down button 1 on the foot mouse, moving your hand mouse does nothing until you've let the button up.) I have heard of "Y" mouse adapters that are available for sale as a separate device, and I may consider buying one of these to see if it handles this problem in any different and more sensible way.
In October of 1996, I started using Dragon Dictate 2.51 for
Windows, a product of
Dragon Systems.
The goal was to use a Windows box running this piece of software as an
elaborate control mechanism for my primary machine which was a Linux
box under which I did all of my development work. One of the former
and initial members of the X consortium, who did much of the core work
on the X protocol and Windows system development, developed a small
program called a2x when he started to lose the use of his
hands. A2x is specifically designed to allow voice recognition
programs to interface to X windows which is the windowing system run
on Linux and most other versions of Unix. It was a bit ad hoc but it
was an effective setup: the Windows machine, which was running Dragon
Dictate 2.51, dictated text into a telnet window which was a session
connecting to the main Linux machine. This telnet connection was
previously set up so that the a2x program was running and
was basically reading ASCII text that was sent to it converted into
keystrokes and button press and button release events and motion
events and other sorts of things, basically driving the X console. So
what ends up happening is that the commands spoken into Dragon Dictate
are recognized as commands and the definition of the commands is to
spit out this odd looking language of sorts of letters and control
characters which is sent into a telnet window and which is telnetted
to the other machine which is running a2x and thus what
is sent into the telnet window is interpreted by a2x and
causes the appropriate thing to happen on the machine on the other
side of the connection. It did work, but it was frustrating and slow.
After a few weeks of doing this and feeling rather constantly
frustrated the whole time, I started to lose my voice. It started to
become more and more painful to talk just normally and this point is
when I decided that I had to quit the company I was working at because
I did not want to destroy my voice as well as destroying my hands.
Later on I tried continuous speech recognition which has only recently become available. The difference between continuous and discrete speech recognition is that in the latter you have to pause between each word when you say the words, otherwise it won't recognize them. Continuous speech promised to be a generational step above discrete speech, although the continuous speech products were geared mostly for people who were doing English text, not so much for computer programs. The mass market versions for the continuous speech products are much less programmable and so some people have found themselves using discrete speech programs to do Command and Control, basically any sort of thing that you have previously done using the mouse a lot and programming and other such things where you have text that isn't much like spoken regular language text, and they use continuous speech programs for doing English text generally and if you have a data base that you are editing for example and the database contains mostly data fields and a certain amount of descriptive fields; then as you are going around and giving operations that cut rows and paste rows elsewhere and reformat rows you would be doing that using commands that are generally something coming out of a discrete speech program and then when you finally get down to the descriptions you might switch to running temporarily the continuous speech program and use it to enter a description and then switch back to the discrete speech program. This is all using Dragon products by the way. Eventually Dragon hopes to have merged the discrete and continuous products into a single continuous speech product with Command and Control and programmability and all these other features but it may not be out for a long time. My experience with continuous speech (I used Naturally Speaking Preferred V2) was that is was not as obviously problematic as discrete speech, but it was still extremely frustrating and required you to speak in an unnatural way in order to get the maximum recognition, and ended up causing me vocal strain also. It seems that you really need to be coached on how to speak with these sorts of things, and I haven't had this training. Perhaps if I got this training my experiences would be less negative.
At some point, I was forced to switch from my trusty Linux machine
to running a Windows 95 machine. This originally grew out of the fact
that the voice recognition programs that I was using--Dragon Dictate
and Naturally Speaking--only ran on Windows 95. The previously
discussed a2x could be used to connect such a
machine to my trusted Linux machine, but this worked only for discrete
speech. I wanted to do continuous speech because I thought that I had
less of a chance of causing vocal strain, and the continuous speech
programs are really not set up well to allow you to do this a2x style
connection to drive another machine. So I started doing my email on
Windows. By this point, however, I had abandoned voice recognition for
the time being, and I began considering other options. One is them is
to have people type stuff for you. This is always an option certainly,
but in general it is inconvenient, time consuming, and expensive. I
was looking for some way of communicating with people that was more
direct. For a while I just tried making phone calls to many of the
people I wanted to communicate with, even thought they were scattered
all over the world. I had not so many problems calling people in VA
or elsewhere in California or even in England and I made a number of
calls to Croatia although even at the extremely low price that I
managed to get out of AT&T, still cost $.55/minute, which is not
exactly cheap. Calls to Russia were completely out of the question.
I needed something else, and I hit upon the idea of sending voice
clips through email.