Back to all posts

Software Engineering with a Screen Reader

How blind and visually impaired software engineers read code, navigate tools, and work with development teams.

As a blind software engineer, I do not scan a file visually. I move through it with a screen reader, listen to the code one line at a time, and use keyboard commands to move between the parts I need.

The tools are different, but the work is still software engineering: understand the requirements, read the existing code, make a change, test it, and review the result.

Reading code with a screen reader

A screen reader such as NVDA, JAWS, or VoiceOver reads the text and controls in an application out loud. For code, the details matter. I need to hear symbols, indentation, capital letters, and the names of variables and functions.

Those settings help me understand structure that a sighted developer may notice by looking at the screen. For example, spoken indentation makes it easier to follow a Python block, and hearing every symbol helps me catch a missing parenthesis or brace.

Keyboard navigation is a large part of how I work. I use shortcuts to:

  • open files by name
  • move through headings, lists, and tables
  • jump between errors and search results
  • fold a large file to understand its structure
  • move to a specific line or symbol

This is why good keyboard support matters in an editor. A feature that only works with a mouse is a feature I may not be able to use.

Choosing development tools

Accessibility varies by tool and by version. I use Windows, NVDA, Visual Studio Code, and WSL with Ubuntu because that combination works well for the way I develop.

An accessible tool needs more than readable text. Controls need useful labels, keyboard focus needs to move in a predictable order, and important state changes need to be announced by the screen reader. The only reliable way to know whether a tool works for a specific developer is to test the actual workflow.

Some blind developers also use a braille display to read code through touch. That can be useful for punctuation, spelling, and precise character-level review.

What teams can do

Clear code helps every developer, including developers using screen readers. Useful practices include:

  • descriptive names
  • consistent formatting
  • small functions with one purpose
  • useful command-line output
  • documentation that does not depend only on screenshots
  • tools and workflows that can be completed with the keyboard

Accessibility is not separate from engineering quality. When a codebase and its tools are clear, predictable, and testable, they are easier for the whole team to work with.