A picture of the author standing at a desk. There's a keyboard and a
laptop with its lid closed.
"Something's a little bit off here." That's what I predict your first
thought to be upon seeing my cubicle for the first time. There's no
screen or mouse in sight. Instead there's a guy hammering away on a
keyboard, staring at seemingly nothing.
A picture of the author standing at a desk. There's a keyboard and a
laptop with its lid closed.
It's only me, and my colleagues can assure you that I'm mostly
harmless. I'm a software developer working at Vincit offices in
Tampere. I'm also blind. In this blog post I'm going to shed some
light on the way I work.
Are you blind as in actually blind?
Correct. I can perceive sunlight and some other really bright lights
but that's about it. In essence, nothing that would be useful for me
at work.
What are you doing there, then?
The same as almost everyone else, that is: making software and
bantering with my colleagues whenever the time permits. I have worked
in full stack web projects with a focus on the backend. I have also
taken up the role of a general accessibility consultant – or police;
depends on how you look at it.
How do you use the computer?
The computer I use is a perfectly normal laptop running Windows 10.
It's in the software where the "magic happens". I use a program called
a screen reader to access the computer. A screen reader intercepts
what's happening on the screen and presents that information via
braille (through a separate braille display) or synthetic speech. And
it's not the kind of synthetic speech you hear in today's smart
assistants. I use a robotic-sounding voice which speaks at around 450
words per minute. For comparison, English is commonly spoken at around
120-150 words per minute. There's one additional quirk in my setup:
Since I need to read both Finnish and English regularly I'm reading
English with a Finnish speech synthesizer. Back in the old days screen
readers weren't smart enough to switch between languages
automatically, so this was what I got used to. Here's a sample of this
paragraph being read as I would read it:
Audio Player
Audio Player
And here's the same text spoken by an English speech synthesizer:
Audio Player
Audio Player
A mouse is naturally not very useful to me so I work exclusively at
the keyboard. The commands I use should be familiar to anyone reading
this post: Arrow keys and the tab key move you around inside a window,
alt+tab changes between windows etc. Screen readers also have a whole
lot of shortcuts of their own, such as reading various parts of the
active window or turning some of their features on or off.
It's when reading web pages and other formatted documents that things
get a little interesting. You see, a screen reader presents its
information in chunks. That chunk is most often a line but it may also
be a word, a character or any other arbitrary piece of text. For
example, if I press the down arrow key on a web page I hear the next
line of the page. This type of reading means that I can't just scan
the contents of my screen the same way a sighted person would do with
their eyes. Instead, I have to read through everything chunk by chunk,
or skip over those chunks I don't care about.
Speech or braille alone can't paint an accurate representation of how
a window is laid out visually. All the information is presented to me
in a linear fashion. If you copy a web page and paste it into notepad
you get a rough idea of how web pages look to me. It's just a bunch of
lines stacked on top of another with most of the formatting stripped
out. However, a screen reader can pick up on the semantics used in the
HTML of the web page, so that links, headings, form fields etc. are
announced to me correctly. That's right: I don't know that a check box
is a check box if it's only styled to look like one. However, more on
that later; I'll be devoting an entire post to this subject. Just
remember that the example I just gave is a crime against humanity.
I spend a good deal of my time working at the command line. In fact I
rarely use any other graphical applications than a web browser and an
editor. I've found that it's often much quicker to do the task at hand
on the command line than to use an interface which was primarily
designed with mouse users in mind.
So, given my love of the command line, why am I sticking with Windows,
the operating system not known for its elegant command line tools? The
answer is simple: Windows is the most accessible operating system
there is. NVDA, my screen reader of choice is open source and
maintained more actively than any other screen reader out there. If I
had the choice I would use Mac OS since in my opinion it strikes a
neat balance between usability and functionality. Unfortunately
VoiceOver, the screen reader built in to Mac OS, suffers from long
release cycles and general neglect, and its navigation models aren't
really compatible with my particular way of working. There's also a
screen reader for the Gnome desktop and, while excellently maintained
for such a minor user base, there are still rough edges that make it
unsuitable for my daily use. So, Windows it is. I've been compensating
for Windows' inherent deficiencies by living inside Git Bash which
comes with an excellent set of GNU and other command line utilities
out of the box.
How can you code?
It took me quite a long time to figure out why this question was such
a big deal for so many people. Remember what I said earlier about
reading text line by line? That's how I read code. I do skip over the
lines that aren't useful to me, or maybe listen only halfway through
them just for context, but whenever I actually need to know what's
going on I have to read everything as if I were reading a novel.
Naturally I can't just read through a huge codebase like that. In
those cases I have to abstract some parts of the code in my mind: this
component takes x as its input and returns y, never mind what it
actually does.
This type of reading makes me do some coding tasks a little bit
differently than my sighted colleagues. For example, when doing a code
review I prefer to look at the raw diff output whenever I can.
Side-by-side diffs are not useful to me, in fact they are a
distraction if anything. The + and - signs are also a far better
indicator of modified lines than background colours, not because I
couldn't get the names of those colours, but because "plus" takes far
less time to say than some convoluted shade of red that is used for
highlighting an added line. (I am looking at you, Gerrit.)
You might think that indentation and other code formatting would be
totally irrelevant to me since those are primarily visual concerns.
This is not true: proper indentation helps me just as much as it does
a sighted programmer. Whenever I'm reading code in braille (which, by
the way, is a lot more efficient than with speech) it gives me a good
visual clue of where I am, just like it does for a sighted programmer.
I also get verbal announcements whenever I enter an indented or
unindented block of text. This information helps me to paint a map of
the code in my head. In fact Python was the first real programming
language I picked up (Php doesn't count) and its forced indentation
never posed a problem for me. I'm a strong advocate of a clean and
consistent coding style for a number of reasons, but mostly because
not having one makes my life much more difficult
Which editor do you prefer?
Spoiler alert: The answer to this question doesn't start with either V
or E. (Granted, I do use Vim for crafting git commit messages and
other quick notes on the command line. I consider myself neutral on
this particular minefield.) A year ago my answer would have been, of
all things, Notepad++. It's a lightweight, well-made text editor that
gets the job done. However, a year ago I hadn't worked in a
large-scale Java project. When that eventually happened it was time to
pick between Notepad++ and my sanity. I ended up clinging to the
latter (as long as I can, anyway) and ditching Notepad++ in favour of
IntelliJ IDEA. It has been my editor of choice ever since. I have a
deeply-rooted aversion towards IDEs since most of them are either
inaccessible or inefficient to work with solely on the keyboard.
Chances are that I would have switched to using an IDE a lot sooner if
I was sighted.
But why Notepad++, you might ask. There are more advanced lightweight
editors out there like Sublime text or Atom. The answer is simple:
neither of them is accessible to screen readers. Text-mode editors
like Vim aren't an option either, since the screen reader I use has
some problems in its support of console applications that prevent
those editors from being used for anything longer than a commit
message. Sadly, accessibility is the one thing that has the last word
on the tools I use. If it's not workable enough that I can use it
efficiently, it's out of the question.
Do you ever work with frontend code?
You would think that frontend development was so inherently visual
that it would be no place for a blind developer, and for the most part
that is true. You won't find me doing a basic Proof-of-Concept on my
own, since those projects tend to be mostly about getting the looks
right and adding the real functionality later.
However, I've had my fair share of Angular and React work too. How's
that? Many web apps of today have a lot going on under the hood in the
browser. For example, I once worked a couple of weeks adding
internationalization support to a somewhat complex Angular app. I
didn't need to do any visual changes at all.
I've found that libraries like Bootstrap are a godsend for people like
me. Because of the grid system I can lay out a rough version of the
user interface on my own. Despite this all the interface-related
changes I'm doing are going through a pair of eyes before shipping to
the customer. So, to sum up: I can do frontend development up to a
point, at least while not touching the presentation layer too much.
How about all the things you didn't mention?
There are certainly a lot of things I had to leave out of this blog
post. As promised I'll be devoting a post to the art of making web
pages more accessible, since the lack of proper semantics is one of my
pet peeves. However, there's a good chance I won't leave it at that.
Stay tuned!
Tuukka Ojala
Tuukka Ojala
SOFTWARE DEVELOPER, ACCESSIBILITY POLICE, AVID TEA DRINKER.
https://www.vincit.fi/en/blog/software-development-450-words-per-minute/
With warm regards
Solomon S
teachs...@gmail.com
Disclaimer:
1. Contents of the mails, factual, or otherwise, reflect the thinking of the 
person sending the mail and AI in no way relates itself to its veracity;

2. AI cannot be held liable for any commission/omission based on the mails sent 
through this mailing list..



To check if the post reached the list or to search for old posting, reach:
https://www.mail-archive.com/ai@accessindia.inclusivehabitat.in/maillist.html
_______________________________________________


Ai mailing list
Ai@accessindia.inclusivehabitat.in
http://accessindia.inclusivehabitat.in/mailman/listinfo/ai

Reply via email to