application programming interface application software assistive technology blindness dolphin computer access emacspeak freedom scientific gnome gnopernicus graphical user interface hooking javascript learning disability linux ms-dos mac os x microsoft active accessibility microsoft ui automation nonvisual desktop access open source operating system oralux punctuation refreshable braille display screen magnifier self-voicing speech processing speech recognition standard streams visual display unit visual impairment voiceover window-eyes