New coding tool could aid computer programmers who are blind or have low vision
A new tool could help make code reading, navigating and editing more accessible and efficient for blind and low-vision computer programmers, according to Penn State researchers.
The tool, called Grid Editor, serves as a modification to traditional code editors that programmers use to add lines of code when updating features and functions in software. Prior work has focused on making different parts of the coding process more accessible for blind and low-vision users, such as reading or navigating code. Grid Editor is the first to place emphasis on code editing—an important step in making continuous updates to software, in which programmers edit and update existing code that was previously written by other programmers.
"One of the main parts of programming is reading others' code to understand what is currently implemented," said Md Ehtesham-Ul-Haque, doctoral student at the Penn State College of Information Sciences and Technology (IST) and first author on the team's paper. "Then you have to write your own code, new code, to build new features in the software. No existing editor supports this type of structured editing for blind or low-vision programmers."
Existing code editors use visual cues such as highlighted keywords and indented lines that enable sighted programmers to visually navigate their way through extensive code. While blind and low-vision programmers can use adaptive tools like screen readers to audibly navigate the code, those tools aren't built to navigate lengthy codebases. Screen readers could occasionally miss individual characters or pieces of code, increasing the programmer's time spent and the potential for error.
"Blind and low-vision coders have a difficult time keeping pace with sighted programmers," said Syed Billah, assistant professor of information sciences and technology and principal investigator on the project. "Less than one percent of blind users or students learn programming because of this unreasonable burden they have to climb. We developed Grid Editor to help blind and low-vision students overcome these challenges."
The Grid Editor interface resembles a spreadsheet, incorporating rows and columns to localize a piece of code within the two-dimensional space. A blind or low-vision programmer can extract lines of code from an existing codebase and import it into Grid Editor, then use the tool's structure and audible cues to more easily navigate the numerous lines of code. In Grid Editor, the number of rows in the grid are equal to the number of lines in the code being updated, and the number of columns in the grid aligns with the number of levels in the code, helping users easily create a mental map and navigate within the grid using keyboard shortcuts and arrows combined with audible cues.
According to Billah, this is especially useful for blind and low-vision users when navigating empty space or making sense of special symbols—such as indentations or parentheses—which hold meaning in the code and serve as visual markers for sighted programmers in traditional code editors. When used with Grid Editor, a screen reader will audibly state that a cell is blank, indicating to a blind or low-vision programmer that an indentation exists and helps them to perceive their cursor's location in the code.
Grid Editor also uses other audible cues to guide the user, such as announcing in which cell the cursor is currently located, stating whether or buzzing when the user reaches the boundary of the grid. Additionally, Grid Editor applies brightly colored highlights to certain cells, mimicking colors used in traditional code editors to further direct low-vision users.
After building their initial prototype, the researchers solicited feedback from the online communities of blind or low-vision programmers for two months. Then, to test the functionality of their final prototype, they recruited 12 blind or low-vision programmers for a controlled lab study. Participants used both a plain text editor and Grid Editor to complete various coding tasks. The researchers observed the programmers' activity and measured accuracy and efficiency. On average, the participants were faster, navigated more accurately and made fewer errors when using Grid Editor compared to the traditional code editor.
"Think about coding as walking a road; for a sighted person, he can see the road, but for a blind person, the road is dark and as a result he may fall," one study participant stated. "But if I have something to hold on to while walking, it will help me walk the road more easily. The way I see it, Grid Editor gives me that structure I can hold on to [while coding], as I always know which line and level I am in."
Billah, whose expertise lies in accessible computing, hopes that tools like Grid Editor will help encourage more blind and low-vision individuals to explore computer programming—a high paying field—as a career choice.
"Blind individuals are already at an economic disadvantage, and many of them pursue careers in the music and audio transcription industries," said Billah. "However, computer programming can be a rewarding career choice for them because programming is a text-based activity suitable for their assistive technologies such as screen readers or refreshable Braille displays. Therefore, if enough resources and tools are available to them to learn computer programming easily and quickly, they can make a better living for themselves."
Billah and Ehtesham-Ul-Haque collaborated with Syed Mostofa Monsur, Bangladesh University of Engineering and Technology, on the work, which was presented this week at the ACM Symposium on User Interface Software and Technology (UIST), the premier venue for innovations in human-computer interfaces. The paper has received the conference's 2022 Best Paper Award.
Grid Editor is free to use and is publicly available online. It works best with Chrome Browser with NVDA screen reader. It currently supports Python programming language, but support for other languages is underway.