Ten years ago, I saw first-hand how stifling inaccessibility can be. I had the opportunity to work with blind users trying to use desktop screen readers. It was so frustrating because I could physically see that the tool they were using, had hung. The software they relied on simply wasn’t working, and they didn’t know why. The tool that was meant to enable them to be independent failed, forcing them to rely on someone sighted to get back to independence.
If you have a visual impairment and you rely on an additional app to interact with your device, you have to learn two steps. First, you have to learn how this software and hardware (that you cannot see) actually work. Then you have to learn how to use the additional app that explains the way you’re interacting with the other elements. That doesn’t feel fair to me. It should be more intuitive and flexible—and accessible. In many cases, users also have to pay an instructor to teach them how to use these applications.
So in 2015, I developed the free, open source software project Blind Communicator to help address the problems I had witnessed. This software is operable by a voice guide that explains all the available options on the screen, including what keyboard commands to use to browse between menus and so on. It was really well received and was even covered by local television networks like La Nacion, CNN in Chile, BBC for Latin America, and Magazine 21, and has since been translated to nine languages.
This kind of coverage was exciting, and unexpected, but what I especially loved was how much it impacted the community: A few years ago, a Brazilian user wanted to translate Blind Communicator to Portuguese. Unfortunately, I didn’t have the money to afford the translation, but they said they could translate it for me if I sent them the code. So I did—and they did—and I got a new release set up. They wrote me back saying how excited they were because their visually impaired friend could now use the app. He got pretty emotional, and was so thankful he even sent me an MP3 with a song expressing his gratitude! It was pretty great to see how impactful it was and to connect with someone who also understood the importance of these tools.
Finding a global way to help people
By the time I released Blind Communicator in 2016, I’d already been designing mobile apps for years at that point. One of the earliest ones was called Stock: It allows you to keep track of all the products you have in your store. I was in Argentina, and remember when the project received a review from someone in India—and the global reach of it just amazed me. That’s when I first realized how broad an impact I could have by designing free, open source apps. That experience, combined with the success of Blind Communicator, inspired me to consider other types of accessibility tools.
Using Arduino technology, I designed a proof of concept named MobilityLauncher. If you have a mobility impairment, you can use your smartphone with one finger using this special Arduino-based keypad I designed. You can use it to make and answer calls, play music, manage alarms, search the web, and more.
During a presentation about Blind Communicator, the company I was with mentioned a challenge that some elementary schools were running into while leveraging 3D printers in the classroom. While 3D printer programs were becoming more available in parts of Argentina and South America, the schools still needed the budget to both buy the 3D printer and a high-end CPU to handle the software. From what I learned during this conversation, the teachers either didn’t have the type of equipment they needed, or they lacked the training needed to use them. The opportunity to improve access goes beyond physical ability.
So, in 2019, I designed 3D Object Maker, a web project and Android app that allows you to create a 3D object in your browser without a high-end computer or technical knowledge. This way, elementary schools don’t need expensive equipment. It’s easy enough for teachers to use without extensive training, but powerful enough for 3D hobbyists to enjoy as well.
My current project is called PixelGym, which allows you to do aerobics using your webcam. It has this neat motion detection algorithm so you can use your body to do a bunch of different things on the screen. In fact, one of my friends told me that it was a great mindfulness exercise for his son who has ADHD, because he has to coordinate what he’s actually seeing with the body movements.
Plenty of coffee and zero ad space
Most of the things that I do are free, open source, and leverage the work of other people’s GitHub projects. The community all rises together, and I always make a point to note that, and hope my code helps someone else down the road, too.
I get questions from time to time about how I can afford to continue to develop free apps, but I don’t think people realize that the costs can be nominal—it’s the energy and will to help people that are needed. One time, someone at work suggested placing an ad inside the Blind Communicator app. But that was something I never wanted to do. The app was designed to help people who needed it, not make money off of them.
I try to use my free time to fix or implement new features—coffee is my best friend at these times! I don’t actually see this work as a job or as a task. It’s an effort, yes, but it’s an effort to provide something good for someone else. For the projects I like to work on, there’s not a lot of money required to make it happen, it’s just the idea of making someone else happier. That’s pretty much it.
Making open source accessible to everyone
As app developers, we can always do better by asking ourselves if an app works for everyone. Yes, we have the W3C standard to ensure the visually impaired, or anyone with any kind of impairment, will be able to interact with websites properly. However most people aren’t checking the W3C standards while working on a web project. On the other hand, providing accessibility is optional for Android and iOS apps because there are screen readers like TalkBack and VoiceOver—but those aren’t perfect and we, as developers, should not rely on those without proper testing.
Accessibility is not always easy because, much of the time, you have to refactor and redesign code to work properly with a screen reader. And most companies won’t spend the budget to do that, which is wrong. But if you want to provide a good product, whether it’s on the web or mobile, it should at least meet that standard. If we collectively go beyond the standard for most people, and commit to supporting all people, eventually we won’t need stand-alone accessibility tools.