I am a web developer.
I am not disabled.
I live in the United States.
I use modern technology and devices on a daily basis.
Yet, often I can’t use modern sites and web apps the way they were intended to be used.
Trying to interact with a broken interface becomes stressful and frustrating, knowing there’s nothing I can do; yet I know exactly why these errors and issues occur. The rest of the world — those who aren’t web developers — don’t have this kind of insight. If a web page loads incorrectly or not at all, most likely someone is going to give up on interacting with that app or go to the next competitor.
What happens when someone is in an emergency, and your service is something they rely upon? Think about accessing online banking from a foreign country when your bank card gets stolen on a bad internet connection. Think about accessing health insurance information on a mobile phone while heading to an emergency room. Think about letting someone know you’re okay after an attack or emergency happens nearby. Think about setting up two-factor authentication after an online account gets compromised.
As a web developer, I have the benefit of knowing how the web gets built, if a web app completely fails to render anything on the page, I know how to find out the reason why. If I’m on a slow internet connection, I can recognize where developers failed to optimize for performance. If I find a bug, I can probably find the right developer or repository to submit an issue to. If there’s content on the page that is visually unaccessible, I can use developer tools to read the source or modify the DOM.
Most of the time, we developers fail to realize just how often these “edge cases” occur for our users. How many times have you pushed to production without considering how well your web app is going to render on average devices, with average speed internet? Without considering how third-party scripts could create errors? Without ensuring you’re delivering the smallest, most performant resources possible?
We create excuses that make up for ignorant behavior:
“Slow internet? That only happens in third-world countries.”
“Forget media queries — the product is not meant to be used on mobile.”
Generally developers are privileged to be working with top of the line equipment, in bright fancy offices, with high speed enterprise internet. How often do your users ever encounter a situation like that?
Code aside, are we designing responsibly? Are we considering how our designs are performing for color-blindness and non-conventional devices? Do web designers know how to create designs that can scale responsively and appropriately?
If you work creating for the web, you’ve probably heard some or all of this before. I’m not here to scold you or invent some new way of thinking about the way we work. If anything, let these thoughts be a reminder to act as responsibly and empathetically as we can when it comes to our work. Many of us think of accessibility, performance, testing and responsive design as “optional”. We need to approach these concepts as required to do right by the users we are serving––whether we think we know what that user might look like or not.
There are literally billions of people out there that rely on the work we do collectively. It’s our obligation to make sure that what we build is usable, accessible, and actually works. We have to build responsibly, proactively, and with empathy.
By design, the web is for everyone; so let’s make sure everyone can experience it.