15 February 2017

11 things to consider when designing for everyone

The web has been around long enough for us to know about its powers and its constraints. We particularly know about the latter because we’ve bent them as much as we can over the years.

For example, before CSS, we used tables and spacer gifs for layout. And before border-radius, we used background images for rounded corners.

Understandably, we use pre-existing mediums as a guide for how a new medium should work. We take our preconceptions and apply them as best we can.

We’re better now at embracing the web than we were but we still make plenty of assumptions. And those assumptions are wrong.

For example, we used to think that all viewports were 640px wide. And we used to think that all computers had a keyboard and mouse.

More recently, we thought that small screens means that you can swipe, and big screens are used with a mouse. These are also assumptions. And they’re also wrong.

The truth is, we don’t always know what users are doing. We don’t know their capability and we don’t know their preferences. We don’t know much. And that’s okay.

That said, we can still design simple and accessible experiences that embrace all of these constraints.

And there’s no creativity without constraint. Only by embracing these constraints can we design something that meets user needs.

Here are the constraints we need to consider.

1. Outlook, culture and understanding #

Everyone is different. How people think and see the world is unique to the individual. We’re influenced by where we live, our upbringing and the people we spend time with.

2. Disabilities #

My left eye won’t move left so I have to turn my head to the left to use it properly. My dad is colour blind.

An estimated 48.9 million people suffer from disabilities that affect mobility, hearing and eyesight.

Some disabilities are temporary. For example, a mother holding a baby is temporarily only able to use one of her arms.

3. Preferences #

People have preferences that change depending on the situation.

For example, my 2 year old can’t understand why the Macbook screen fails to respond when touching it. Whereas I prefer interacting by keyboard.

People use screen readers in different ways too. Some navigate by heading. Some by landmark. Some use braille displays. Some use keyboards.

Some people print web pages, some people don’t.

4. Internet speed and connectivity #

People who work in digital often have fast connections. But many people don’t. Aim to make the slow fast and the fast, lightning.

5. Screen size #

People use multiple different devices from watches to TVs. Responsive design isn’t about 3 different media queries. It’s about fixing content where it breaks.

6. Browsers #

Different browsers have different functionality and support for APIs. This impacts what can be done in each browser.

Deliver a solid baseline experience and use progressive enhancement. Everything but content is an enhancement.

7. Data cost #

While you and I may have expensive data contracts, many people don’t. Even if data is cheap, it can run out. Let’s keep our interfaces and interactions lightweight. Breaking up content across pages gives users the choice to load it.

8. Environment #

People’s experiences are affected by their environment. For example, low lighting, screen glare from the sun or being outside in the cold wearing gloves. We need to consider the things we make in these contexts.

9. Standards and conventions #

Try and use the same patterns to solve the same problems. This makes things intuitive. You can break convention but you need a good reason to do that.

10. Interoperability #

Some people use Safari’s reading mode or a feed reader to access the web. And people rely on how Google displays search results. We need to consider the experience outside of UIs and design for where people are.

11. Configuration #

We cannot assume that people use their devices in factory settings. People add plugins and adjust the font size. We need to consider this too.

Summary #

Embracing these constraints elevate the needs of users to the top. They influence everything from content, interaction to the code that underpins it all.

Inaccessible experiences ignore people. And there’s a lot be said for design that ignores people. People ignore it.

Let’s not ignore people. Let’s embrace these constraints. It’s challenging, fun and very much part of what it means to be a designer.