Skip to content

Instantly share code, notes, and snippets.

@zersiax
Created January 19, 2015 22:00
Show Gist options
  • Save zersiax/1c7057704774f18f5df0 to your computer and use it in GitHub Desktop.
Save zersiax/1c7057704774f18f5df0 to your computer and use it in GitHub Desktop.
blog post for FreeCodeCamp
###A vision of coding, without opening your eyes
The title of this blog post may look a little odd. Don't worry, it will all make sense
soon. And by the end of this article, you'll likely be groaning about the plentiful puns
regarding eyes, looking, and other such vocabulary.
Why is this, you may ask? This is actually quite simple. I am blind, as a bat you might
say. I was born this way, just like lady Gaga likes to make us believe she was born quite
...gaga. :)
When I mention this to my fellow human beings, the ones who have never had any form of
visual impairment tend to look at me somewhat oddly. Usually, a small pause ensues,
followed by either one or several of the following questions:
* Then, how do you even know what I'm saying? (in chatrooms, IM etc)
* Wow. How do you code? (fellow coders, fellow students etc)
* ......Do you dream? (the rest of the human populace)
Ok ok, granted, these aren't the only questions I receive but these three are a common
subset of what I get asked about again and again. Therefore, let me answer these three
questions in this blog post and sketch an image for you guys, the readers who are
wondering about accessibility and how blind people use a computer to code or do any kind
of work in the 21st century.
####How do you even know what I am saying?
I like this question because it allows me to immediately explain how blind computer users
....actually use computers.
A lot of people are under the impression that you need a "specially adapted computer" of
some kind to be able to use it as a blind or visually impaired person. Even some of my
fellow VIPs tend to think this.
**VIP ...that is visually impaired person. I did warn about the puns, didn't I?**
Anyway, let me debunk this myth right here and now. I am currently typing this on a normal
Dell Inspiron 15r SE notebook, which can be bought in any laptop store that has somewhat
less recent machines for sale. The machine runs windows 8, which wasn't my personal choice
but UEFI is too much of a pain to downgrade it, and all I did to adapt it was install an
open-source screenreader called[NVDA](www.nvaccess.org).
What a screenreader basically does, at its most basic level, is ...wait for it ...read the
screen.
It tells you the **textual** content of the screen in a synthesized text-to-speech voice
(Siri anyone?) and also allows for the use of a braille display, which is a device that
consists of a line of refreshable braille cells which can form letters according to what
content is highlighted on the screen.
This is really all the adaptation a blind computer user needs. Using this program, I can
do some things you can probably not imagine doing with your eyes closed, including but not
limited to:
* Browsing the web using Firefox
* Writing up and marking up reports that stand up to a college teacher's stringent layout
demands using Microsoft Word
- Writing up snazzy blog posts like this one
* Recording, editing, mixing and publishing audio (I sing and make music for a hobby)
using Reaper, Goldwave, Audacity and Sonar
* coding websites and applications using Eclipse, Visual Studio (now isn't that one
ironic?) and good old NotePad++
I could go on for a while, but ...I'd better not. The reason I put so much emphasis on
what programs I use is to show that I use mainstream technology, just like people who are
not ocularly challenged.
If you are writing the next big application, with a stunning UI and a great workflow, I
therefore humbly ask you to consider accessibility as part of the equation. In this day
and age, there really is no reason not to and in a lot of UI toolkits it's a lot easier
tha you may think. Yes, that includes the Android activities, iOS NsViews and HTML5
widgets you might be thinking of right now.
I joined FreeCodeCamp a few weeks back and really loved the concept. I have been pursuing
a degree in Computer Science for the last few years and failed a semester that involved a
lot of work with the MEAN stack. I was really happy to find such an amazing community to
be a part of and learn with and I am sure I will pass my semester with flying colors this
time. Although I sadly did run into an accessibility glitch when working through the by
now famous [Dash tutorials](http://dash.generalassemb.ly) by General Assembly.
The tutorials are undoubtedly very good, but were completely unreadable for me because the
slides that are being used lack any textual description or content for screenreaders to
work with. Recall that I said screenreaders read out *textual* content of the screen, they
are not smart enough to interpret graphics.
Some people in the FreeCodeCamp were sympathetic towards my plight and completely
voluntarily offered to transcribe these slides for me. I will freely admit this offer left
me 'flabbergasted' as our dear western neighbors across the sea would say, and I am still
very grateful for the work these people have done just to further my studying. You know
who you are guys, thanks a lot. :)
####But ...how do you code?
> If left paren x equals five right paren left brace print left paren quote hello world
exclaim quote right paren right brace
This is how a typical if-block in a Java-ish programming language would be read to me. You
can see that is rather verbose, which is why I tend to turn off the notifications for
parens and brackets until I find I need to match brackets while debugging, to not go crazy
by the rather wordy descriptions of these signs. Others have solved this problem by
substituting the default (left brace) for something like (lace) or (begin) just to save
some milliseconds. The speech rate also is deemed to be extremely fast by people who are
not used to it, let me give you an [example]
(https://dl.dropboxusercontent.com/u/6643494/example.mp3).
For those who cannot follow this, it is my computer reading out the first bit of this very
blog post I am writing in NotePad++.
So, how I code doesn't actually differ all that much from how others code. I've learned
how to touch type (getting sick of the puns yet?), mentally conceptualize my code and work
with it just like you guys do. The only difference is that I barely ever use a mouse for
anything and I tend to go for hotkeys or the commandline instead.
Sadly though, in this field it's not all good. Premier tools coders use every day like the
IntelliJ editor as well as all its offshoots (PhpStorm, WebStorm, PyCharm etc) are
completely inaccessible, simply due to the fact that the developers of these programs have
not adhered to the accessibility guidelines and gave screenreaders no textual labels or
accessibilityDescriptions to work with. The same goes for an application like SourceTree,
which is slowly getting better but still a pain to use.
I therefore have to keep looking for tutorials, programs , tools etc. that are accessible
and cannot simply pick up any off-the-shelf IDE.
####How do you dream?
Yeah ...I did promise to answer all three questions so I'll keep that promise. Don't
expect much though. :)
I dream just like you guys do, my mind translates experiences and impulses I have received
during the day into dreams I have at night. The difference being that I don't actually see
anything but hear, smell and feel everything just like in real life. The reason for this
is simple: Dreams based on visual imagery pull from your already stored visual knowledge
to construct that visual imagery. Since I have been blind since birth, I have no visual
frame of reference so the visual portion of my dreams run into a big fat 404 error:
**image not found**
####Conclusion
I was asked to write this blog post for FreeCodeCamp. After the welcome I have received
into this community, I was all too happy to do this and I really hope you guys have
learned something from it. I could talk about this for hours and the article has already
grown far longer than I initially wanted to make it, so I think this is a good place to
end the Markdown. If you have questions, come find me in the chatroom. I am Zersiax there,
and I can be found by that name on twitter as well.
Alright, thanks all for reading and ....**see you later**. Sorry ...I really couldn't
resist. :) *runs off screen*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment