
Ask HN: How do blind people code and work with terminals? - CptCodeMonkey
In the space of half a day, vision in my right eye deteriorated to the point that I can't even see an eye exam chart with it.  I've already gone to the hospital and going back tomorrow for another round of tests.  It's not a tumor, no signs of MS, no signs of infection.&#60;p&#62;I know they're are people considered legally blind that still write code, so how do they do it?  Is there an OS that's better geared for accessibility, and are there any tools that can help make life easier?
======
jankins
I used to set-up, deliver, & train blind users on Windows machines. Windows is
the most popular since it has the most user-friendly accessibility solutions.
My dad started the business I worked for, & he's been totally blind since
birth. If you want, I'd be more than happy to put you in touch with him, feel
free to contact me at dave [at] sweetmansystems [dot] com.

The favorite screen-reader for Windows is Jaws, but Window-Eyes is also good.
OSX is great because it comes with a full-featured built-in screen-reader for
free, whereas Jaws can run you $900 -- but the OSX screen-reader (called
VoiceOver) is generally much more difficult to get started with, as they key
combinations are complicated and difficult to remember. If you have enough
useful vision, you could also use a program like ZoomText (on Windows), which
combines screen magnification with voice output.

I've been looking into screen-readers for Linux & especially the command line,
but haven't had enough experience with anything to make a recommendation --
though my dad knows a guy who uses linux & runs servers, if you end up talking
to him ask for contact info for a guy named louis, if you can get a hold of
him he'd be able to steer you in the right direction.

If you're in the US and in California (I think other countries and states have
similar programs), you may want to get in touch with the Department of
Rehabilitation, as they can provide a lot of help and information & will also
purchase training, accessibility equipment, computers & software in order to
get people with visual impairments proficient enough to compete in the
classroom & in the job market.

The thing to be prepared for is that it's a major life adjustment. It's a
totally different way of interacting with the computer, and it will usually
come with a pretty steep learning curve, but it's definitely doable,
especially I think with the hacker mindset.

All of these programs have demo versions from their websites: Jaws for
Windows: [http://www.freedomscientific.com/products/fs/jaws-product-
pa...](http://www.freedomscientific.com/products/fs/jaws-product-page.asp)
Window-Eyes: <http://www.gwmicro.com/Window-Eyes/> ZoomText:
<http://www.aisquared.com/zoomtext/>

Info about Apple's VoiceOver: <http://www.apple.com/accessibility/voiceover/>
(oh, the other good news is that VoiceOver is also included on all iPhones &
iPads!)

~~~
jareds
I've been a jaws user for around 15 ears, and have very limited experience
with VoiceOver on the mac. The advantage VoiceOver has over Jaws is the fact
that VoiceOver has a comprehensive tutorial that can be brought up with one
keystroke. If you are trying to teach your self how to use a screen reader the
built in tutorial makes VoiceOver a lot easier to learn then Jaws.

------
varunkho
Old thread on this topic: <http://news.ycombinator.com/item?id=4058761>

SO discussion (linked in thread above as well):
[http://stackoverflow.com/questions/118984/how-can-you-
progra...](http://stackoverflow.com/questions/118984/how-can-you-program-if-
youre-blind)

In my experience, programming, in general, has nothing to do with sight – its
more about how you load the entire application (architecture/design/flow –
whatever you may call it) in your head. Great description by PG on this
particular phenomenon [0].

As far as accessibility goes, there are blind developers for all the 3 major
OS – Mac/Linux/Windows. Basically you use a screen reading application to get
speech output and rely on keyboard shortcuts heavily (in GUI environments).

[0]: <http://paulgraham.com/head.html>

Edit: Ok, let me give you a more realistic picture: yes, every other day could
prove to be a challenge especially if you are programming in a gui environment
– UIs are designed primarily for visual and pointer interaction; however,
being a programmer, you have more tools and techniques at your disposal to
find alternative ways of doing things than a basic blind computer user. You
should always be exploring and shouldn't give up. That's my learning after
having been working as a developer in .NET (web/windows) for 5 years and you
know, with every new major release/product, Visual Studio and Windows
constantly change and break accessibility support in one way or the other.

------
jareds
I've been blind since birth and have been programming for the last 12 years,
with the last three being professional programming. I use Windows with Jaws as
my screen reading software. I've found Linux accessibility to be a hassle to
get set up and the web browsing experience on Linux as a blind individual was
very poor the last time I checked. Instead of dealing with Linux I use Cygwin
for most of my terminal work. While it's not perfect it does at least 90% of
what I want. If you have any questions feel free to email me at stofflet (at)
gmail dot com

------
cowsaysoink
Most people use screen readers because it is much much faster than braille
displays. Especially since most blind users speed up the screen reader speech
rate very high.

If you are an emacs user check out emacspeak:
<http://emacspeak.sourceforge.net/>

Windows there are many options.

NVDA is the most used free one: <http://www.nvda-project.org/>

JAWS is highly used but expensive:
[http://www.freedomscientific.com/products/fs/jaws-product-
pa...](http://www.freedomscientific.com/products/fs/jaws-product-page.asp)

For mac there is voiceover (included in OSX):
<http://www.apple.com/accessibility/voiceover/>

Chrome and ChromeOS have chromvox: <http://www.chromevox.com/> but that is
more for web.

Linux the most popular is orca for gnome desktop:
<http://projects.gnome.org/orca/>

------
bbthrowaway100
Sorry to be "off topic" but if your problem is a retinal detachment (since its
happening so fast) you have to not move around (seriously!) and get it checked
by an good eye specialist immediately!! Once it's completely detached you are
unfortunately out of options! All the best of luck and wishes to you!

------
jcr
The two most common methods are "Screen Readers" (audio) [1] and "Braille
Displays" (touch) [2]. Depending on the exact vision impairment, other
alternatives also exist (magnifiers, customized color/brightness, and so
forth).

[1] <http://en.wikipedia.org/wiki/Screen_reader>

[2] <http://en.wikipedia.org/wiki/Refreshable_braille_display>

Good Luck with your situation!

------
Aardwolf
I know a blind programmer who uses an 80 column braille display. He also uses
a lot of Linux command line tools with it that he has made himself afaik, for
example for email. He can program incredibly fast with it, he uses an editor
in text mode (he has no graphical desktop), but I'm not sure if it's emacs or
vim or something else. The command line seems well suited for this braille
display for him, but I think all of this requires a huge learning time
starting from childhood.

------
4ad
BSDTalk episode with a blind BSD user[1]. It's about many things, not how
blind people deal with computers, but it offers some great insights
nevertheless.

[1] [http://bsdtalk.blogspot.co.at/2008/03/bsdtalk143-bsd-
hobbies...](http://bsdtalk.blogspot.co.at/2008/03/bsdtalk143-bsd-hobbiest-
deborah-norling.html)

------
10dpd
Through the use of screen readers and braille displays.

In terms of OS's: OSX has a built in screen reader - Press Command-F5 to
activate it, and follow the tutorial for more details.

Chrome has a screen reader called ChromeVox (<http://www.chromevox.com>)

Windows users have access to NVDA (free), JAWS (paid) or WindowEyes (paid).

EmacSpeak is available for emacs users.

However you'll find that each of these screen readers have a slightly
different model that you'll have to learn.

What OS are you currently using? Being able to apply your existing mental
model of how the OS works will reduce your learning time exponentially.

------
whichdan
Previous discussion & link to an excellent StackOverflow article. -
<http://news.ycombinator.com/item?id=5210648>

------
merinid
There was a very interesting article last week about Josh Miele in the New
York Times: [http://www.nytimes.com/2013/03/03/nyregion/40-years-after-
an...](http://www.nytimes.com/2013/03/03/nyregion/40-years-after-an-acid-
attack-a-life-well-lived.html?pagewanted=all)

Someone threw acid on his face as a child, and the story narrates how he
eventually overcame these challenges to go on to do great things, like work on
NASA software for Mars Observer.

------
svenk
Klaus Knopper, the maintainer of the Knoppix distribution has a blind wife.
She uses Knoppix with some extra modules and it works very well. A synthetic
speaker reads everything whats important on the screen. You should definitely
checkout <http://www.knoppix.org/>

~~~
svenk
The project for blind people is called ADRIANE - Audio Desktop Reference
Implementation and Networking Environment <http://www.knopper.net/knoppix-
adriane/index-en.html>

------
kurt_
Hi, when i was in training some time ago, my IT manager was totally blind and
use a braille tablet to read its screen. Characters was translated into
braille and 'printed' to it's tablet. He has no need for a screen and use a
regular keyboard. He also use a screen reader app for emails, internet and
documents.

------
anigbrowl
Sorry to hear about your sudden disability. I hope it yields to treatment, and
that you'll bring us up to date when you've learned more. I have poor eyesight
and have thought a lot about blindness since childhood, but have never had to
deal with such a fast and drastic change. Best of luck.

------
stevetrewick
I'm one of those people. I code with 3/60 vision. Here's what I do.

I use an articulated arm for my monitor which holds it much closer to my face
than any stand could while not forcing me to hunch over my desk to see.

I use larger font sizes, and spend a _lot_ of time selecting the most
comfortable available font, size, and syntax highlighting options possible.
Personally, I have a lot of difficulty with contrast, so standard 'high
contrast' schemes make me stabby. I tend toward darkish backgrounds with just
off primary colours. This may not work for you. Be prepared to spend a lot of
time experimenting. This can be frustrating, and you have my sympathy.

I use a backlit keyboard.

I probably format my code a bit differently to most people, I like to leave a
lot of whitespace. Between lines, on the inside of brackets, between operators
and operands, etc.

I generally have my monitor brightness set a bit lower than most people, and I
also bias light.

For web browsing, I use browser plugins that allow me to zoom the text,
currently zooWheel in Chrome since Firefox's kamikaze update schedule
continually breaks my accessibility plugins. I used to use an FF plugin called
greasemonkey to reformat frequently visited sites with custom CSS, but this
turned out to be more trouble than it was worth.

I work with OS X a lot, but find it to be the most hostile environment for low
- as opposed to zero - vision due to the complete lack of ability to change
the colors of UI elements. There are third party hacks, but they are patchy
and irritating. Apple's solution is to allow you to invert the color pallete.
As the saying goes, now you have two problems. Also their cursor tends to get
lost against dark backgrounds. I'm sporadically working on a software solution
for this.

Linux obviously offers the ultimate in customisation, but will suck massive
amounts of time if you allow it to.

You may have noticed that these are all pretty much the same kinds of things
you'd do (or should do) and consider when setting up your working environment.

This is good news. As a coder, you are going to find that a lt of stuff that's
severely challenging to many people with low vision is simply not a big
obstacle for you. You are already well equipped to modify your tools and
environment around your needs.

Hold on to that thought, because the most important thing is that much of the
advice that anyone gives you, quite possibly including most of the above,
simply won't be right for you. As an articulate, technically aware individual,
you are in a position to try out solutions and decide what works for _you_.
Reject anything which doesn't. Go custom where there are gaps.

Most importantly, be stubborn. You have some scary shit happening and it's
going to present you with new challenges. Own them. Some days are going to be
really frustrating, and you'll feel like you're losing. Go get some rest, come
back, and just own the ass off them.

~~~
duaneb
> I work with OS X a lot, but find it to be the most hostile environment for
> low - as opposed to zero - vision due to the complete lack of ability to
> change the colors of UI elements. There are third party hacks, but they are
> patchy and irritating. Apple's solution is to allow you to invert the color
> pallete. As the saying goes, now you have two problems. Also their cursor
> tends to get lost against dark backgrounds. I'm sporadically working on a
> software solution for this.

It must be easier to change the mouse pointer sprite to be higher contrast
with inverted colors.

------
andrewcooke
good luck. i can imagine how you are feeling - hopefully it's something simple
/ physical, but if it _is_ ms and you want a programmer to talk to, feel free
to contact me (andrew@acooke.org). although i have ok vision so won't be much
help with this particular issue (when first diagnosed, i did try to get emacs
working with audio output, terrified i would be blind in days, but ms isn't
necessarily that bad, and the attempt fizzled with it only half-working...)
(there is a linux distro for blind people - i didn't install it, but my
impression was it was pretty out-of-date and it would be better to try get
emacs-speak working on what i already had).

------
codenut
Theres a stackoverflow discussion regarding that.
[http://stackoverflow.com/questions/118984/how-can-you-
progra...](http://stackoverflow.com/questions/118984/how-can-you-program-if-
youre-blind)

------
devonbarrett
I know this is not about programming, but from what I know the same principal
could be applied. <http://www.youtube.com/watch?v=tVuLGrab9JA>

