📜 ⬆️ ⬇️

Development at a speed of 450 words per minute

"Something is missing here." I bet this thought will come to your head first if you see my workplace in the office. There is no monitor and mouse. There is only a guy who threshes on the keyboard, looking as if into a void.



This is just me, and my colleagues guarantee you that I am usually not dangerous. I am a programmer at the Vincit office in Tampere (Finland). And I'm blind. In this article I want to tell you a little about how I work.

Are you blind in the sense of being blind?
')
Right. I can perceive sunlight and some very bright lights, but that's about it. In essence, nothing useful for work.

What are you doing then?

Same as everyone else: I make soft and make fun of my colleagues if time allows. I worked on full-stack web projects with a focus on the backend. I also took on the role of a project consultant on the general availability of projects for people with disabilities - or the role of the police; depending on how you look.

How do you use a computer?

I have a completely ordinary laptop under Windows 10. All the "magic" in the software. To access the computer, I use a program called a screen reader. He intercepts the picture from the screen and presents the information in Braille alphabet (through a separate Braille display) or speech synthesis. And this is not the synthetic speech you hear from current digital assistants. I use a robotic voice that speaks about 450 words per minute. For comparison, native English speakers usually pronounce 120-150 words per minute. There is one peculiarity in my system: since I need to read regularly in both Finnish and English, I read English with a Finnish speech synthesizer. In the old days, screen readers were not smart enough to automatically switch between languages, so I was used to such reading. Here is an example of this paragraph as I hear it . But the same text through an English speech synthesizer .

Naturally, the mouse is not particularly useful to me, so I only work with the keyboard. My keyboard commands should be familiar to anyone reading this article: arrows, Tab key for navigating inside windows, Alt + Tab for switching between windows, etc. Screen readers also have many of their own “hot keys”, for example, to read different parts of the active window, turn on / off some of their own functions.

Everything becomes a little more interesting when reading web pages and other formatted documents. The screen reader gives this information in chunks. This piece is most often a string, but can be a word, symbol, or other arbitrary piece of text. For example, if I press the "down" key on a web page, I will hear the following line of text. This type of reading means that I can’t just scan the screen in the same way that a sighted person does. I have to read everything piece by piece or skip pieces that I don't need.

Speech or Braille alone do not allow to convey exactly what the page looks like. All information is given to me in a linear fashion. If you copy the webpage and paste it into Notepad, you will get a general impression of what it looks like for me. It's just a bunch of strings on top of each other with almost no formatting. However, a screen reader can pick up semantics from HTML, so links, headers, form fields, etc., are correctly announced to me. It’s like this: I don’t know that the checkbox is a checkbox if its style is not registered in this way. However, we'll talk more about this later; I will dedicate a whole article to this topic. Just remember that the example I gave is a crime against humanity.

I spend most of my time on the command line. In fact, I rarely use any graphics applications other than a web browser and editor. I found that it is often much faster to perform a task manually on the command line than to use an interface that is designed with the thought of mouse users.

So, given my love for the command line, why am I stuck on Windows, an operating system that is not famous for its command line tools? The answer is simple: Windows is the most accessible system [for people with disabilities - approx. trans.]. My favorite NVDA screen reader is free software, it is supported more actively than any other screen reader. If I had a choice, I would use Mac OS, in my opinion, there is a neat balance between convenience and functionality. Unfortunately, the screen reader for this VoiceOver system suffers from long releases and general neglect, and its navigation models are not very compatible with my particular work style. There is also a screen reader for the Gnome desktop, and although it is superbly supported for such a small audience of users, there are still sharp corners, which is why it does not suit me for constant use. So only Windows. I compensate for the inherent flaws of this OS by living inside Git Bash, which comes with an excellent set of GNU and other command line utilities right out of the box.

How can you encode?

It took me quite a long time to understand why this question is so important for many people. Remember that I used to talk about reading text line by line? So I read the code. I skip unnecessary lines or I can only listen to half for the sake of context, but if I really need to figure it out, then I read everything as a novel. Naturally, I can not read this way a giant code base. In these cases, it is necessary to abstract parts of the code in the mind: this component takes x at the input and returns y, no matter what it actually does.

This type of reading forces me to perform some tasks differently than my sighted colleagues. For example, in the code inspection process, I prefer to look at the raw diff output whenever possible. Side-by-side diffs are not very useful to me, in fact, they even distract. The “plus” and “minus” signs are also a much better indicator of modified lines than color highlighting. Not because I can not read the names of the colors. Simply “plus” is pronounced faster than the name of some convoluted shade of red, which is used for the added line. (I look at you, Gerrit).

You may think that indents and other formatting will remain completely invisible to me, since this is a visual highlight. Wrong: the right indents help me the same way as a sighted programmer. If I read the code in Braille (by the way, it is much more efficient than speech), then it gives a good visual key, where I am, just like a sighted programmer. I also receive voice messages if I enter a text block with or without indentation. This information helps to draw a code card in the head. In fact, the first true programming language I had was Python (PHP does not count), since indents have never been a problem. I strongly advocate a clean and consistent programming style for many reasons, but mainly because it does not complicate my life to the limit.

Which editor do you prefer?

Spoiler: the answer to this question does not begin with the letter V, or with E. (Of course, I use Vim to compile messages about git commits and other quick notes on the command line. I maintain neutrality on this particular minefield). A year ago I would choose Notepad ++ among all editors. This is a lightweight, well-designed text editor that does the job. However, a year ago I was not working on a large-scale Java project. When it did happen, it was time to choose between Notepad ++ and common sense. In the end, I leaned toward the second (at the time I could) and left Notepad ++ for the sake of IntelliJ IDEA. Since then, this is my chosen editor. I have a deep-seated disgust for all IDEs, because most of them are either impossible or inefficient to use only from the keyboard. Most likely, I would have switched to IDE much earlier if I had been able to see.

You may ask why I chose Notepad ++. There are more advanced lightweight editors, such as Sublime Text or Atom. The answer is simple: none of them is available for screen readers. Text editors like Vim are also not an option, because my screen reader has some problems with supporting console applications, because of which these editors cannot be used for something larger than the commit message. Unfortunately, accessibility [for the blind] - approx. lane.] - This is the main factor for my tools. If I cannot use the tool effectively, then it is no longer considered.

Have you ever worked with the frontend code?

You might think that front-end development is so visual in nature that there is no place for a blind developer, and for the most part it is. I myself do not create basic concepts, because in these projects, you basically need to create the right look, and functionality is added later.

However, I also have a piece of work in Angular and React. How so? In many modern web applications, much of the work is done under the hood in the browser. For example, once a couple of weeks I implemented internationalization support in a rather complex Angular application. There was no visual work at all.

I discovered that libraries like Bootstrap are a real find for me. Thanks to the grid system, I can make the basic version of the user interface myself. Despite this, all the interface changes I have prepared go through a couple of eyes before being delivered to production. So, to summarize: I can work with the front-end to a certain extent, at least, not really touching the presentation level.

What about things you didn't tell about?

Certainly, many things had to be left outside the scope of this article. As promised, I will dedicate the article to the art of making web pages more accessible, since the lack of proper semantics is my favorite callus. But there is a high probability that I will not stop there. We will be in touch!

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


All Articles