📜 ⬆️ ⬇️

How do visually impaired programmers program?


From translator

What is this post? It does not look like an article.


This is really not an article. This is a compilation of the most interesting, in my opinion, answers to the main question: “ How do visually impaired programmers program? "From the discussion on Quora.com.

Why did I do the translation?


People’s responses impressed me a lot. I never thought that people faced such problems and not only did not despair, but courageously and bravely overcome these problems, while maintaining optimism and joy to life. This is amazing.

As a web developer , I, of course, heard of mysterious screen readers and semi-mythical braille displays. Someone there uses them, but this is not all in mine, but in some very different, special, web, where specially trained developers have prepared everything for them and in the evenings they all dance together under the moon.
')
This is not true. Not at all.

There are no specially trained developers.

There is no special web.

The web is one and it is common to all. And there are no other developers besides you and me. And it is we who are responsible for it.

We are the people who make it the way it is. It is from our hands that users get web pages . The developer is the last person to make edits to the web page and determines how accessible it will be for people who have to use the web otherwise — whether they are blind, paralyzed, or their possibilities are somehow otherwise limited. This is a social responsibility, whether we like it or not.

Let's make the web a little bit better, more accessible for everyone, and let no one go offended.


Parham Dauster, PHP Programmer


I am a blind PHP programmer. The way I write code is perhaps different from the methods mentioned in the other answers. Before we begin, let me tell you a little about myself.

I am blind from birth. I have never had the problem of "loss of vision": I never had it. That makes it a lot easier.

Personally, I, unlike many other blind people, use the development environment. We use screen speakers, and development environment interfaces are mostly poorly accessible to them. For example, screen speakers are not available all the development environment of the company JetBrains . This is one of the disadvantages of competition in our society: people are too busy taking care of the majority to listen to the minority.

I use Zend Studio, based on the well-known Eclipse. Eclipse is a pleasant exception: accessibility is very well implemented. It is not fully available, but 80% is enough for me. The blind cannot choose.

The development environment effectively eliminates a routine like memorizing method signatures, documentation, and many other things, leaving me to worry about more pressing things (for example, why the legacy code is such a crap).

I don't use braille keyboard. Using only 6 keys, which also need to be pressed simultaneously for each character - this is too slow. A hundred keys, which can be very quickly pressed one after the other - this is much, much faster.

I don't use the braille display either. Instead, I have a screen announcer tuned to 420 words per minute. This is much faster than reading from a braille display.

The most important thing in my opinion is to be ahead of the competition. For the blind it is in itself difficult. We have to compete without having one of the feelings that most people in the world have. This would not be a big problem if the conflict between the interests of the majority and the minority mentioned above was not mentioned. Being in the minority, you need to find ways to get what many people take for granted. This, I think, is the strength that comes from weakness: you have to improvise, force yourself, achieve the impossible every day just to not remain unemployed.


Tommy McWilliam, mobile engineer at Quora


Have you heard about Python Bee? Now imagine what your typical day looks like.

One of my best friends in high school was diagnosed with Leber's hereditary optic neuropathy when he was in graduation class. NONL constantly reduced his eyesight and in the first year of college my friend was almost completely blind. His specialty was computer science, and the way he programmed was one of the most incredible things I've ever seen in my life.

In college, he used a combination of screen magnifier and screen speaker. The screen magnifier was called MAGic and allowed it to enlarge the text so that only a few characters fit on the monitor. The monitor itself was a huge screen over 30 inches, optimized for the visually impaired. The screen speaker was JAWS , although my friend tried many other programs. He said that existing open source programs look pathetic compared to very expensive programs that he enjoyed thanks to the help of our school.

My friend always put the narrator on the maximum reading speed (probably over 300 words per minute). For comparison, audiobooks usually sound twice as slow. It sounded like a completely different language to me, but he understood it perfectly. My friend preferred to use the absurdly old version of Firefox (3.5 or something like that), because it was best supported by its narrator. Almost all the actions he performed hot keys, moving through the applications and windows with astonishing speed. All this, coupled with a 40-fold increase, made it almost impossible to attempt to follow his actions. At the same time, he worked more efficiently than many programmers I had seen.

About how exactly my friend was programming.

As a code editor, he used Emacs (I think because I got the hang of it with crazy hotkeys). The narrator read the code that he missed. Similarly, the narrator read the output of the terminal, so that any possibility that something would not be announced was excluded. As you might guess, the program code is harder to understand than English words. Although languages ​​that do not abuse characters in syntax are easier to understand. More accessible are those languages ​​that “look” similar to English, like Python, Ruby, and the like. However, the use of indentation instead of brackets rather complicates life - you have to carefully listen to the number of tabs on each line.

So that you have a better idea of ​​the overall picture, I will tell you a funny incident that happened in the second year. We studied OCaml, a functional language with a funny syntax. My friend was forced to listen to nonsense like let rec fib n return match n with return , … and the like. On this day, he worked with a very large piece of code that did not compile. He listened to this ridiculous syntax again and again, but could not find a single error. Nothing changed until he came to the classroom, where a sighted teaching assistant noticed that for some reason the screen announcer pronounced the number “ 0 ” as the letter “ ”. It was a completely new kind of bugs that sighted programmers do not encounter.

It is also worth noting that he is keen on the HTML accessibility specification, especially ARIA . Most sites on the Internet completely ignore it, despite the fact that it is very easy to implement. The way he uses sites with ARIA attributes and without them is heaven and earth.

He now works as a full-time software developer.


Steve doni


Ron Morford is one of the most talented programmers I have worked with. He had something called “ Marfan syndrome ”, because of which he completely lost his sight when he was a little more than twenty. I worked for him in the early 90s , developing a screen reader for Windows 3.1. Ron owned the company Automated Functions, Inc., which developed programs and hardware for the blind. One of his first products was VERT . It was a box the size of an ordinary PC , designed as an intermediary between the computer and the terminal. He tracked the traffic passing between them and converted it into speech. VERT could say up to 400 words per minute, and Ron remembered them.

Ron had an incredible memory. One of the first projects I did for him right after college was a screen announcer for DOS . Sometimes I fumbled with him for half a day and, if I couldn't do anything, I went to Ron and asked, “What does this function do?”. Ron remembered her line by line, although he might not have looked at her for several months.

Before Ron founded AFI , he was a computer security specialist at NASA . He told great stories about how local programmers constantly tried to hack each other to find holes in early versions of Unix.

I worked in the field of accessibility for about 8 years, then I got a job at Microsoft and worked on the implementation of accessibility in Windows. During this time I have seen many blind programmers. They used a variety of different techniques and tools, but mostly it was a standard keyboard and voice output. There were braille keyboards, but few used them daily. There are nine main keys on the Braille keyboard - four for each hand and a space; letters are entered using the key combinations that make up the braille alphabet. As other participants have mentioned, there is still a braille display, with retractable and retractable plastic sticks. But such displays are incredibly expensive: the 80-column display sold for $ 8,000, although I think it could be cheaper in the last 20 years.


Lukas radelli


I am absolutely blind. I work for Google, participate in the development of a ranking algorithm. In my experience and in what I have heard from many other blind programmers, our way of programming is not much different from the way our sighted colleagues. I use mainly a text editor (Emacs with the Emacspeak extension, which speaks text) and a browser to view Google internal pages with documentation and other things.

The main difference is that we either listen to what is on the screen, or read on the display of Braille. I can not say anything about the use of this display, because I have never had it (too expensive), but I can share some thoughts about how to program by ear.

The hardest thing in programming by ear is to memorize a bunch of things. You move from line to line, listening to them entirely. You can listen to the code word by word or character by character. The difference, as you can see, is that at the same time only a small part of the code is available. You cannot start programming by looking at the names of the incoming function arguments. You remember them. If you need to check the function declaration, then you bookmark, go to the ad, read it and go back to the bookmark. As you can see, this is not an instant process at all, so memory training becomes an essential skill.

I like programming with Emacspeak because it is well suited for programming in C ++ . For example, this program has voice styles: it reads variables, functions, and other parts of a language with different intonations. It helps to understand what is what. You can think of this as an audio code light.

Finally, from the interesting

Blind programmers do not use code alignment. Usually we indent after writing. They do us no good.

You may ask: what about Python?

I am very much in favor of Python and even the need to align the code does not change this. I came up with some techniques: for example, moving a line to the end of each block of indents — this is how I can very quickly find out where the block ends. When reading someone else's code, you can configure the announcer to pronounce the depth of indents, but I am slightly annoyed to hear how many spaces are on each line.


Florian bagers


I came here from the Slack notice in the Free Code Camp community and I see that my blog post is mentioned twice. Thank. I appreciate it and am very glad that it turned out to be useful for so many people. Unfortunately, due to some accessibility issues, I cannot read the comments with its mention. However, I ask everyone who has questions to hit me on Twitter Zersiax . I usually answer right away if I am not sleeping :-) This discussion shows that blind people also write programs and some even like it.

Returning to some of the questions that are specifically mentioned in this discussion:

As I mentioned in my blog, I try to use the development environment. These are mostly environments based on Eclipse and Visual Studio, which, by ironic coincidence, is quite well suited for visually limited people, while Microsoft Access is not accessible at all (English, “accessible”, translator's note) . Isn't it ironic? :)

Using the old browser (Firefox 3.5) is simply stupid if you are at least a little code for the web. This may be rude of me, but it's still better than IE . Things like this are the reason that I now strive to work with the open source NVDA speaker. It works just fine with the latest Firefox.

Although I would love to learn how to work in Vim and Emacs, I have no time to do this. In addition, I try to work in an environment where sighted developers (mostly students) can interact with me. As a rule, Linux scares them, “Vim” for them is a cleansing agent, and “Emas” sounds like some kind of magic. Therefore, I have to work in editors with a graphical interface, even if the command line would be more efficient.

Ok, enough for this time :) Thanks for reading.


A more detailed answer Floriana

Source: https://habr.com/ru/post/262363/


All Articles