The web sucks because of us

Most of the web sucks today, and the reason for that are the people who actually create it, web developers. With sucks I mean: bad UX, bad performance, bad accessibility. We, the developers forgot ( or maybe we never learned ) the fundamentals of the web. <h1> is not the same as <div>, not every page requires React, but most important we are building for people not for ourselves, no one from your users cares which framework you use. I wish we put more energy into delivering better UX than fighting react vs angular vs vue. I wish we spent more time learning how to improve performance than how to use redux-saga. I wish talked about inclusive design instead CSS-in-JS. But I know my wishes are different from yours.

Performance

Let me give you an example, why the performance is important: When I want to buy something, I google it, click on the link but the site doesn’t open fast enough, so I close it and go to the next one. Pretty simple. Your customers will not wait for a page to load, they will close the tab and click on the next google result.

Start with defining your goal: reading an article, buying a product, booking a hotel room. Strip everything and show only the most critical and relevant information to the users. Sending less code to the users means faster loading. Nobody will appreciate your beautiful animations and transitions if they never managed to open your page. Some researches show that people just close the page if doesn’t not load under 5 seconds on mobile.

No all users have fast internet (metro, train, busy network, or just on vacation in a country without good 4g/3g), no all users have the latest and greatest hardware. Parsing 500kb of JS on the newest iPhone is a few times slower than an average mid-range phone.

We need to measure the time for which user achieve their goals, not how much time they spend on the page. Maybe they spend more time because your page is loading slow or your UI is confusing. Everyone will be happy if the users enter and do their tasks without wasting their time and energy.

Are you ready to lose a certain percentage of your potential customers just because you want this fancy animated banner ( which btw everyone thing is super annoying and distracting )

Also, page speed is one of the ranking factors for Google’s mobile search.

And don’t forget: mobile web is a THING!


Accessibility

Another super underrated topic, again we can check the world statistics and see that X per cent of the world has some kind of disability. What if we can convert this percentage of people into our customers. Can we make our page more inclusive?

Most of the accessibility problems are solved at the design stage. To design for accessibility means to be inclusive to the needs of your users. The topic is so huge: taking into account things like contrast, font size, letter spacing, animations, long text. People can have different disabilities, or maybe they don’t have, maybe they are just tired at the end of a long working day and have difficulties to focus, or they are handling a baby in one hand and trying to do some task on your page with another one, or even simpler example with sitting in a noisy office space. So many stuff to care about…

Try to avoid things like mouse-only navigation, don’t remove focus style, make big tab areas, use HTML semantics, don’t use long forms when is possible.

Don’t forget: we all are getting older and soon or later we will experience this terribly inaccessible web.


Progressive enhancement

Is like 10 years old term, by today every developer must know what that means and how to apply it, unfortunately, that is not the case.
We should ask ourselves: What happens when a specific browser feature is not supported? Is there a way to support it? How many people use this browser? What is the cost to support it?

Can we convert those people into customers?
There are too many browsers out there, you can’t test all of them, try to fallow web standards.

Example: use payment request API for collecting user address and payment instead showing a long checkout form, and fallback to the form when the browser does not support the API.


We forgot too often, what our users/customers want and do what we as developers and designers want to do and see.

In the end, it is all about users, and if you don’t care about them you must care about the business; otherwise you will not have a salary at the end of the month.