How blind developers code
Ever wondered how blind developers know what they’re typing? How they’re able produce beautiful, working code? We take a look at the tools making this possible and invite you to contribute to the resources for the blind programming community.
We recently came across a blog post on the Free Code Camp site by Florian Beijers, a blind developer who gets asked a lot of questions about his ability to code (and type and dream, etc). His post was a great eye-opener (ahem) into the technology available for the blind and visually impaired coders out there – it’s time for a closer look at the resources available for blind developers.
Using assistive technology
Assistive technology is an umbrella term that describes the types of programs and services available for people with disabilities which promote their greater independence in completing previously difficult tasks. All software created to enable blind developers to code is considered assistive tech.
To be able to ‘read’ what is on his screen, Florian uses the open source NVDA screen reader, which stands for NonVisual Desktop Access. NVDA runs on both 32-bit and 64-bit editions of Microsoft Windows XP or later and is programmed in Python. NVDA runs in the background, monitoring OS activity and alerting the user via synthetic speech or a physical braille display (generally showing somewhere from 20 to 80 characters at a time). This then means a blind person can use any accessible application. If you’re willing to pay for screen reading software, JAWS is a popular choice.
ChromeVox is another free screen reader available to use across various operating systems that works with Google Chrome. The latest update to the software includes a new braille captions panel which shows you the text written to a braille display in both print and braille on-screen. This is activated via key command and enables various forms of navigation.
However, screen readers are programmed to read text, so if a website or program embeds their text in images, this renders the website unreadable by the screen reader and ultimately by the user. As Florian states:
I sadly ran into accessibility issues when working through the by now famous Dash tutorials by General Assembly. The tutorials are undoubtedly good, but were completely unreadable for me because they chose to embed all their text in image slides that lack any textual description or content for screen readers to work with. Recall that screen readers read out textual content of the screen. They aren’t smart enough to interpret graphics.
The computer that Florian uses isn’t specially made for the blind: an ordinary laptop or tower is just adapted by installing screen reader software. This way, mainstream technologies are used by anyone and everyone, including the blind and visually impaired.
Sadly, not every piece of software is going to be compatible with a screen reader, due to it being programmed without taking accessibility guidelines into consideration. Without giving screen readers textual labels or accessibility descriptions to work with, tools such as IntelliJ editor, including PHPStorm, WebStorm and PyCharm, are not available for use by the blind and visually impaired.
An alternative to the IntelliJ editor is Notepad++, which is written in C++ and uses a pure Win32 API and STL to ensure a higher execution speed and smaller program size. However, popups and the lack of an inline spellchecker could mean it’s not ideal for all.
For Java programming, Eclipse is an IDE that has major accessibility features: Microsoft Active Accessibility (MSAA) APIs to render user interface elements, allowing the operation of all functions via keyboard and compatibility with screen reader software such as JAWS.
For any .NET programming, Visual Studio is the go-to choice. It follows best practices for UI design, meaning it enables programmatic access to all UI elements and text. This ensures that all UI elements are labeled, property values are exposed, and appropriate events are raised. User settings, visual UI design, navigation and the multimodal interface are all designed to improve accessibility for those needing to use assistive tech.
User vs. Developer
An issue that has come up often for blind developers is the user vs. coder aspect of software. Being blind is not usually the issue, but companies and development groups often think that accessibility affects final software, rather than development software. Their definition of a blind user is considered to be a client – the user as a developer is still a problematic concept.
By considering accessibility guidelines when you’re building your next project, you’re allowing blind and visually impaired persons the opportunity to use and hack your software, which is pretty cool in our book.
Check out a sample of Florian’s screen reader below and bathe in his extreme awesomeness.