Lost Your Sight? How to Code as a Blind or Visually-Impaired Python Developer

I’m a developer who is blind. I’ve been blind since very shortly after birth. I’ve never gone through losing my sight. I wanted to see if my perspective lined up with that of others who are blind, but have lost their sight later on in life. Here is what I found out:

I reached out to parts of the blindness community in my network to see if anyone wanted to sit down and talk to me about their experiences. Six people replied to my query for interviews. I interviewed three of them for this article, and I plan on talking to the others after this writing.

I run an email group where other people who are blind hang out called Pythonvis. Anyone else can join. I sent one query there. Another group I hang out on is called Program-l. That group is broader in scope. Both groups cater to the unique needs of those of us who are looking for both programming help and help using the tools necessary to use our computers.

Blind Developer Survey — Stories

Before he lost his sight, Jeff Thompson learned to program while in college, using punch cards. He went on to have a career in the insurance industry. It wasn’t until much older that he lost his sight. Jeff is a member of Pythonvis and runs a weekly Python coaching session on a site called Out-of-site.

Taylor Arndt studies Computer Science at Western Michigan University in the United States.

Vaibhav Saraf is a software developer from India who lost his sight a little over a year ago.

All three told me that they went through a period where they were despondent about being unable to use their computer, but reached out and learned that they had a way out.

How They Use Their Computer

All three developers use software called screen readers. Screen readers speak what the user types into the computer and read what they want to know about the code they write.

Interestingly, the original IBM screen reader software was invented by Jim Thatcher, who was not blind, but was influenced by his blind thesis advisor. Ted Henter, who lost his sight in a car accident, invented the most popular screen reading software, JAWS, after he lost his site and went on to co-found FreedomScientific (https://www.freedomscientific.com/), which has since become part of the Vispero group of companies. They also all use NVDA, which was created by two blind developers.

NVDA is mostly written in Python and is open-source. One of the reasons I am learning Python is to contribute to that project.

Programming Tools

Jeff uses EdSharp, written in C# by Jamal Mazrui, himself a blind software developer, who works for Amazon.

Taylor and I use Visual Studio Code, which has very strong support for those of us who use screen readers.

Vaibhav uses Eclipse, which IBM contributed much code to enhance its ability to work with screen reading software.

[Resources] How They Learned Python

When I asked how they learned Python, they pointed me to resources, such as:

  • Bookshare, a site that houses many books on both fiction and non-fiction subjects, including Python development.
  • Professors and team leads who provided them with material in HTML or PDF tagged so that it is able to communicate with screen reading software through accessibility tags similar to HTML, which communicates information about the structure of the documents, such as which elements are headings, tables, form fields, and so on.
  • FreeCodeCamp.org which is a non-profit group that teaches full-stack web development, which has recently branched out into a section on Python.
  • W3Schools, which also has a Python curriculum.
  • The official Python tutorial
  • Various other free resources on the web, some books, others forums.

All of the above have in common that they are written in a form easy to consume by screen readers: HTML, DAISY, or EPub.

How They Communicate On Projects

All three said that email is something that is easy to use with screen reading software. They also all use Skype, Microsoft Teams, Zoom, or other communication software. All of these packages work with screen reading software.

Taylor and Vaibhav use Microsoft Word, so any specifications or instructions written as Word documents that have adequate text descriptions can serve as specifications for projects. Taylor and Vaibhav told me that wen professors or team members present course materials live that when they point to something on the board or when screen sharing that it helps to say the name of the thing they are pointing too, rather than “this,” or “Click this.”

It also helps to give directions on where to find something or perform an action to help build a mental model of the thing they are describing. At this point, screen reader users can share screens as presenters in communication software, but screen readers cannot communicate to the user the screens shared by others who are presenters. One way to off-set this disadvantage is to get the material before the presentation so they can read it over and become familiar with it.

How They Understand Program Structure

All three told me that they use their screen reader’s ability to communicate the number of tab characters appear at the beginnings of lines coupled with the colon characters at the beginnings of conditional expressions, loops, classes, and methods to gain a mental model of the code they work with. As we talked about this, Vaibhav said that he depends on his memory a great deal to understand code flow.

Screen readers can read a line at a time, a word at a time, and a character at a time, and if a developer is able to obtain a Braille display, they can read and follow indentation by using their fingers to feel the dots.

Another helpful tool to gain the understanding of program structure is the previews in Eclipse and Visual Studio Code that list symbols in outline form.

These conveniences for people who are sighted are essential for screen reader users in gaining efficiency, because they cannot glance down through a screen all at once and gain a quick overview of what the code or reading material may communicate. EdSharp also has a way to jump among symbols.

What It’s Like Working With Other Team Members

All three said that once those around them become familiar with their disability that they have no issues communicating and working efficiently with others.

They said that others are generally very willing to adapt their working style.

All three say that they are able to pull their own weight as equal contributors to projects. When it comes to working on open-source projects or any that involve using Git and sites like GitHub, command line Git works well with screen readers, because it uses pure text and screen readers and command line environments are good friends.

Advice For Would-Be Programmers

I asked all three what advice they would give to anyone who is blind who would like to go into programming. Points mentioned were:

  • This is something you can do if you really want to. You can reach out to forums such as Quora, Stack Exchange, Reddit, etc. and find others in your situation. There are email groups, such as Python-vis, Blind Programming, and other lists that specialize in one language or another where blind people hang out.
  • You need to learn to use your screen reader to the fullest extent possible and to do all you can to make yourself as efficient as possible using the keyboard and the tools at your disposal.
  • Take advantage of the communities around your chosen screen reader.
  • You may need to use alternative tools or methods to do your job more efficiently. Speak up when you need to do this.
  • Keep looking for more efficient ways to accomplish tasks.
  • There is enough reading material on the web to enable you to get good at Python.
  • Don’t get hung up because someone gives you material you cannot read or understand. Find material on the same subject from somewhere else.
  • You will often find yourself in a situation in which you cannot read something or use some aspect of a piece of software. When reporting bugs, stick to the facts, be tactful, keep your emotions out of the conversation. Most people want to help, once they understand where you are coming from.
  • You will need to work harder than the people around you and be patient while they come to grips with your disability. This is a given.
  • Rely on your network of supporters, your faith, meditation, or whatever helps you gain positive energy.
  • There will always be well-meaning people in your life who will tell you that you cannot do this. Smile and do it anyway.

To that I say Amen.

About the Author

Jim Homme is a former professional musician, father of three, husband, and a 32-year veteran in Information Technology. He loves to read and play chess. He leads a team of accessibility testers at Bender Consulting Services. He is the owner of jimhomme.com, where he writes about Python and related technologies.