June 26, 2017

The Internet is For Everyone

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.

At least a few times per week — as a regular consumer of modern digital technology — I’m roadblocked. Web applications show blank white screens and won’t render anything at all due do a bug. Slow 4G internet immobilizing the normal web browsing experience. JavaScript errors cause buttons not to function because they are actually <div>s. While loading nothing will appear on the page due to networking waterfall.

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 too. If there’s content on the page that is visually inaccessible, 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:

“JavaScript turned off? They’re used to a bad experience anyway.”

“Slow internet? That only happens in third-world countries.”

“JavaScript errors? Oh well, it works on my machine.”

“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?

The tech industry has consistently created products and experiences for “stickiness” and “disruption”; to change the way our society works. If we are going to do these things lets at least make services, websites, and products that people can actually use. If front-end developers are turning into JavaScript cogs, let’s make sure they know how to create experiences that gracefully degrade and can be used with or without a perfect internet connection and error-free browsing experiences. Let’s put more care and thought about what gets pushed to production. Let’s make sure we vigorously and thoroughly test our experiences and apps as best as we can.

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


Post was originally published on Medium.

Nicole Dominguez

Independent passionate freelance designer/developer. Extroverted introvert. I love code, travel, curls & yoga.

Leave a Reply

Your email address will not be published.