July 24, 2024

The blind programmers who created screen readers

The blind programmers who created screen readers

On a night in 1978, Ted Henter was driving a rental car down a dark road in the English countryside. A 27-year-old motorcycle racer from Florida, Henter had just won eighth place in the Venezuelan Grand Prix, the first race of the 1978 World Championships. He was daydreaming about his next race in Spain when he saw the other car driving straight towards him.

Henter had been driving on the right side of the road, just as he did back home. Instinctively, he swerved right. But the other driver, faithful to his own British instincts, swerved left. It was a head-on collision. Henter’s face broke the windshield and glass shards left him with detached retinas and eighty stitches on his face — including thirteen on each eyeball. Lying in the hospital, he thought to himself, Maybe I’ll have to miss the race.

The first operation to reattach his retina was successful, and Henter regained his sight in one eye — he could see light and some colors — but as scar tissue formed, the retina detached again. When he woke up after the second operation, Henter knew things were different this time. After the first operation, everything had been bright. But the second time, everything was dark.

“I had about ten minutes of despair in the hospital when I felt a very calming spirit in the room. Maybe it was an angel,” Henter recalls. “It more or less said to me, ‘Don’t sweat it. Everything is going to be okay.’”

Eh, blind people have been around for millennia, Henter remembers thinking to himself. If they made it, I can make it.

His racing days were over, but Henter wasn’t entirely at a loss. Before his motorcycling career began, Henter had earned a mechanical engineering degree from the University of Florida. He even had a couple of patents.

Blindness made working as a mechanical engineer difficult. When he consulted Florida’s Division of Blind Services, a counselor told him that computer programming was becoming a popular career for people who are blind.

Henter went back to school for a degree in computer science. He learned to program by typing code out on the terminal and having a volunteer read the screen back to him. A local high school student read programming books for him, which he recorded and listened to on tapes. “That was pretty slow and tedious. But I learned how to program computers,” says Henter.

It wasn’t until his first job when Henter got what he calls a “talking computer.” This ancestral screen reader, created by Deane Blazie, could only read one character at a time. (For example, the word “PRINT” would be pronounced not as one syllable but as “P-R-I-N-T.”)

Nonetheless, this was a game changer. Henter could perform his job without any assistance. When the next version — one that could read a word at a time — came out, Henter regularly called the company for tech support and became the most known user. Blazie, the head of the company — who would go down in history as one of the few sighted pioneers of the assistive technology industry — soon offered him a job. Years later, Henter recalls Maryland Computer Services with warmth, remembering a welcoming environment and colleagues who respected him.

Henter was both an engineer and an advocate for the product. He was sent on a trip to Chicago to train a high-profile customer — a businessman named Bill Joyce — on using a screen reader. An explosion in an industrial accident had left Joyce blind and partially deaf. The two men became close friends, bonding over their love of water skiing. (Although Henter had missed the chance of becoming a motorcycling champion, he would win the gold medal as best overall skier in the 1991 World Disabled Water Ski Championships and six national championships.)

While training Joyce, Henter would throw ideas around the features he’d like to add to screen readers. Eventually, Joyce proposed that they create a company together.

In 1987, they founded Henter-Joyce and soon released the first version of their screen reader for DOS. They called it JAWS, which stands for Job Access With Speech, but is also a playful reference to another DOS screen reader called Flipper, like the dolphin in an eponymous 1960s TV show.

JAWS was not the only screen reader in the market, but it had original features like the dual cursor — one application cursor for navigating elements on the page and another that could move freely like how our eyes move around the screen. It also had built-in Braille support and a scripting language for users to customize their workflow.

By then, the computer industry had undergone a sea change: everyone was moving to graphic operating systems like Windows. Henter started getting worried calls from his users: “When is the Windows version coming out? I’m going to lose my job if I can’t use Windows.”

The leap from text to graphics presented a fiendish challenge. The data model behind the concept of the screen reader had to be completely reimagined. Nonetheless, in the winter of 1995, Henter-Joyce released JAWS for Windows months ahead of competitors. JAWS was so good that Microsoft bought the code and built on top of it to create its own native version. Microsoft’s project eventually went nowhere, but JAWS would soon own the majority of market share.

If you are sighted, chances are that you’ve rarely thought about how a software engineer programs while blind. You may have not even given much thought to how people who are blind use computers at all.

If you are a Mac user, you may have regarded VoiceOver — macOS’s native screen reader — as an annoyance that pops up when you inadvertently press a certain combination of keys, only to swiftly turn it off.

A screen reader allows its user to navigate a computer by audio — it’s a primary interface to visual elements of a computer. In other words, screen readers are to blind or partially sighted users what monitors are to sighted users.

The market for screen readers is hardly niche. In 2020, the estimated number of blind people worldwide was 49.1 million — comparable to the population of Spain or South Korea. An additional 255 million people have moderate to severe visual impairment. These millions of people may use magnification tools, Braille support, or screen readers.

And while good statistics on blind programmers are hard to come by, in a recent Stackoverflow survey of developers, 1,142 people — approximately 1.7{18fa003f91e59da06650ea58ab756635467abbb80a253ef708fe12b10efb8add} of total participants — replied, “I am blind / have difficulty seeing.”

Nearly three decades have passed since JAWS for Windows was released, during which possibly tens of thousands of blind and partially sighted programmers entered software development. Just as it was in Henter’s time, it’s a field that is relatively inclusive for people who are blind, as the accessibility barriers are lower than in many hands-on jobs. These days, this is in no small part thanks to JAWS, a piece of software pioneered by a blind programmer.

Very few pieces of software survive this long. JAWS dates back to the same generation of software as Internet Explorer 1.0, which officially retired last month after 27 years. The fact that JAWS has retained its usage share makes it an even greater rarity. The browser Mosaic, heralded in 1994 as the “world’s standard interface,” lasted only two years at the top before Netscape took over the market. Three years later, the majority of users were using Internet Explorer, which was overshadowed by Chrome just in twelve years. Chrome has reigned supreme for about a decade. JAWS has been the gold standard of screen readers for almost three times as long of a period.

To return to the monitor analogy: a brand new top-of-the-line monitor and an older, lower-resolution model do more or less the same job. The high-resolution display is better, but a display with low resolution is still a display. However, a bad screen reader isn’t bad the way that an outdated display is. Imagine a monitor with islands of dead pixels, incapable of displaying certain objects on the screen, incorrectly rendering or even outright inverting colors, or showing elements several pixels off from where they should be. In other words, bad screen readers aren’t just mediocre; they lie. There’s a good reason why JAWS has remained so popular, even with its hefty price tag.

That said, the price of JAWS is no small barrier. One home license currently costs $1,000 ($1,285 for a professional license), and future updates cost extra. Annual licenses that cost $95 ($90 for students) are available only in the U.S. 89{18fa003f91e59da06650ea58ab756635467abbb80a253ef708fe12b10efb8add} of people with vision loss come from low-income and middle-income countries. For a long time, a good, reliable screen reader was simply not an option for the majority of blind or partially sighted people around the world.

It was only in 2019 that an open-source alternative — NonVisual Desktop Access (NVDA) — finally overtook JAWS in popularity. (JAWS took back its dominant market share in 2020, but just barely). This revolution in accessibility began in an unlikely place: a music camp for teens in the small Australian town of Mittagong.

In 1994, a 10-year-old Michael Curran met nine-year-old Jamie Teh at a weeklong music camp for young Braille-reading students around Australia. Each boy saw something of himself in the other and quickly bonded over their mutual interest in computers.

Teh had been interested in programming ever since he got his first computer, a Commodore 64. Because the Commodore 64 did not have a screen reader, Teh, like Henter, had to get other people to read the screen for him. When a seven-year-old Teh finally got an Apple II, which did have a screen reader, he could at last access everything on the computer on his own.

“But my dad would have to read programming books to me because ebooks weren’t a thing back then,” says Teh. “So my poor dad would come into my room and read these books, which were the most boring thing in the world for him. But I just loved it.”

A few years later, Curran and Teh started making both music and software together. (Their interests often blended; one of their projects added accessibility in audio engineering software, enabling people who are blind to do music production and sound engineering.) They often spent nights in each other’s houses, engrossed in late-night philosophical conversations. The same question came up time and time again: Why isn’t there a free screen reader for people who are blind? Why does it have to cost thousands of dollars?

In 2006, Curran took a break from university. With free time on his hands, he started to put his ideas into practice, hacking together the prototype of what would become NVDA.

“There were many people, even in the blindness community, way more qualified than me back then. In fact, there were even people who used to talk about creating a free screen reader,” says Curran. “The one difference between me and them is that I wrote the first line of code.”

Teh had a full-time job but he joined a few months later. “I didn’t know how serious it was going to be, but it was fun and interesting,” says Curran. “Because we both very strongly believed in the concept of open source, we made NVDA completely open source.”

A year later, Mozilla approached the duo and funded Curran to attend the CSUN Assistive Technology Conference, the largest conference of its kind hosted by the Center on Disabilities at California State University, Northridge. There, Curran met like-minded enthusiasts from across the world. That was when they realized NVDA had reached escape velocity. It was no longer their pet project. Shortly thereafter, Curran and Teh founded NV Access, a nonprofit with a governance structure to take the project long-term.

In its early years, users considered NVDA good enough for home use but unsuited for professional tasks. The fact that it was free gave people the impression that its quality wasn’t on par with commercial screen readers. But that began to change as the project grew. The number of contributors ballooned, and NVDA expanded to more than 60 languages. Accessibility teams at Google, Microsoft, and Mozilla wanted to work together to make NVDA integrate well with their platforms and browsers.

According to the bi-annual survey of screen reader users conducted by WebAIM— a Utah-based organization that provides web accessibility solutions — JAWS had been the most popular primary screen reader since the survey began in 2009. But since 2019, NVDA has rivaled JAWS in popularity.

The NVDA community is enthusiastic, even passionate about the software. Discussions comparing one screen reader to another — very much like the iPhone vs. Android or Chrome vs. Firefox debates — can become religious. (“I realize I’m opening up a can of worms,” wrote one user to the NVDA community’s mailing list, asking how three different screen readers compare.)

Some community members are young — Curran can remember “kids who got interested in NVDA” when they were “like 13 or just starting high school.” Some of these young users would go on to study computer science, becoming developers themselves. Three generations of blind programmers have been writing software for each other since Henter began JAWS in the 80s.

Tuukka Ojala, a blind software developer based in Finland, is one of those kids that Curran speaks of.

Ojala had always been curious about technology and computers, but the first computer he used at school had no screen reader installed. “When other kids were learning handwriting, I spent the same time learning touch typing,” Ojala says. “It was more or less a fancy typewriter.” Things changed when he got his own computer for the first time, a machine that came with a demo version of JAWS. “It would run for like 40 or 45 minutes at a time, and I had to reboot the computer,” says Ojala. He couldn’t afford the license, let alone the price of future upgrades. Still, in less than a year, while running the JAWS demo in those short increments, he’d learned to program.

In 2011, Ojala made a bet with a friend on how long he could stick with NVDA, which was still in its early stages. “Back then, the primary reason for using NVDA was not that it was actually better than JAWS in significant ways,” Ojala tells me. The bet was supposed to last a month. More than a decade later, Ojala is still using NVDA even though price is no longer an issue. “The features NVDA has or chooses to develop are more tailored to what I need,” says Ojala. Upgrades are quick and add-ons — like optical character recognition (OCR) — are extensive. “I’ve used NVDA for most of the time I’ve used computers.”

At his company, Ojala primarily works on backend systems. “I often describe myself as someone who is interested in backend but still cares about the whole software, so I do usability testing as well,” says Ojala. “I like to understand how the end users use it even though I don’t work with the front end as much.”

But only a handful of software tools give Ojala a frictionless experience. For most companies, accessibility isn’t a priority, or worse, something that they pay lip service to while doing the bare minimum to meet regulatory compliance. Ojala’s pet peeve is people thinking that accessibility is a feature, a nice-to-have addition to your product. When they tack on accessibility later, without thinking about it from the very beginning, Ojala can tell — it feels haphazard. (Imagine first creating a product with a colorless UI, then to add colors later as an afterthought, only to use the wrong color combination.)

Accessibility screw-ups, technological or not, are massively scalable. Take for example, how US dollar bills are identically sized for every denomination. Before smartphones, blind Americans would have had to carry around a separate — and costly — device just for identifying the bills, or otherwise place trust in every cashier they met. (Many other currencies use differently sized bills for exactly this reason). When systems don’t build in accessibility, the burden passes to individuals with disabilities to make up for it on their own, often by buying expensive technologies. Makeshift solutions are only necessary because of the thoughtlessness of the people who designed the system.

As a sighted programmer, I’d been oblivious to the world of screen readers until I came across a post titled “I’m a software engineer going blind, how should I prepare?” One recent evening, I tried navigating my personal website, eyes closed, with macOS’ native screen reader VoiceOver. I was soon mortified to learn that underneath the ostensibly clean interface was a chimeric HTML structure. As I made ad hoc changes to my website — mainly written in a language called Go — over the years, I had mangled the HTML hierarchy so much that it was rendered inaccessible even to myself.

The history of screen readers is as much a transcendent achievement for the blind programmers who pioneered the field as it is a rebuke to sighted programmers, without whose neglect non-native screen readers might not have to exist. “As a blind person, I want to go to the local computer store, buy a computer and just use it. I shouldn’t have to go and buy or even have to download another screen reader,” Curran says. Blind programmers shouldn’t have to be the ones writing tools for blind people.

But nevertheless, they’ve done exactly that. They have built — sometimes on top of each other, sometimes chaotically and in parallel — software that is life-changing in the literal sense. And their legacies endure, not just in the operating systems that have adopted their products, but in the programmers who have come after them.

Henter relied on volunteers to read screens out loud for him; Teh’s father read programming books to him as a child. For Ojala, screen readers have been part of his life as a programmer from the start.

It took Ojala quite a long time to figure out why sighted people kept asking, “How can you code?” It seemed like a big deal to them, but he couldn’t make out why.

“My way of working is the only way I know,” Ojala says. “I don’t know of any other ways to code.”