The w3m test

I've managed to avoid writing complaints (or, rather texts which are not quite related to programming) for more than a year now. But everything comes to its end, so a lot of highly subjective criticism will go below.

1 Web standards

It's 2015, and we have formal and non-proprietary web standards supported by all the major browsers now, which is a great thing. Unfortunately, we also have browser-specific features, which are used outside of their experimental playgrounds, and browsers that don't complain much about violations of those standards.

Fun fact: it seems that most of w3c members don't pass their validation tests without warnings, and even some of w3c.org pages don't.

2 A few more problems

2.1 Low quality

There's also lots of poorly designed and poorly developed web pages (not to mention poorly working server-side programs, but it's a subject to a separate complaint), whose developers don't really care about accessibility. The result is that the web is not only ugly, but also slow (and I'm not talking about network or server delays here: only client-side), and glitchy. Turning javascript off helps, yet many sites won't even work properly without it.

2.2 Bloating

Sites are bloated with ads and analytics, and all those "social" buttons ("share", "like"); Ghostery and adblock help to get rid of that, and a rule of thumb could be to avoid such sites, but even nice ones, like xkcd.com, are bloated with them.

Another kind is bloating of a single page with tons of additional content that might be useful to some, usually in author's imagination.

They are also bloated with tons of CSS, JS libraries, images – things that aren't necessary in most cases, and only used to make sites "fancy"; accessibility gets traded for sparkles.

2.3 Clients

Or, in other words, folks who don't know how to do things properly, and who participate nevertheless. To some extent, this group of people includes most of front-end developers, even, and when it comes to software – most of software developers; and the majority of others who are doing anything, when applied to their domain. Which isn't necessary bad (though a bit scary when it comes to medicine), because people have to practice before doing things properly, but severe cases are not rare. That's one more way for those badly overdesigned sites to arise.

2.4 Tablets

More and more sites are being optimized for tablets nowadays, not for desktops. HTTP was abused for years now, and used (and extended) for purposes not related to hypertext transfer at all; the same applies to HTML, CSS and JS (just like to a famous template engine for non-programmers that grew into a monster, to a famous query language for not-only-programmers, and even a famous lightweight interpreted language for nonprofessional programmers; apparently here's the secret of even-wider-than-intended adoption – not a good design or anything of that kind), and now it reached the point where it harms a desktop user web experience.

2.5 And so on

There's a lot of reasons why we don't have nice things in general, and nice web in particular, and lots of points of view: for instance, fsbot would blame monads. But I guess he's just envy, because he has no monads at all.

3 Minimalism to the rescue

Thaaat's right, Dude.  The beauty of 
this is its simplicity. If the plan 
gets too complex something always 
goes wrong.  If there's one thing I 
learned in Nam--

Though there probably is no "silver bullet", elegant solutions are often good, and good solutions tend to be simple, just as with plans. Clean code usually contains less errors, and clean markup – less opportunities for something to go wrong. Simple and elegant code usually doesn't try to be "smart" (to spare a user from thinking and decisions, that is), hence it's predictable; simple markup is usually used for minimalistic sites.

Minimalistic design tends to be accessible, easy to implement and to maintain, which helps to resolve many of the issues mentioned above.

3.1 GNU sites

By the way, though I have been inclined towards minimalistic designs for years, I never managed to understand why the GNU websites are so weird. They have their own guidelines (other GNU guidelines tend to be relatively strict, and to go beyond usual standards and requirements, too), but they don't really explain not-quite-eye-candy designs. Nevertheless, either because the web has changed, or because I have, now I prefer GNU sites' style to random ones, and it's a notable example of accessible design.

3.2 W3C guidelines

There are w3c accessibility guidelines, too. I don't think that many of front-end developers have actually read them though.

4 Introducing the w3m test

For the last few years, when I'm making a site (a hobby site, that is, which is possible to make nicely), I'm checking it with a w3m-alike browser (eww, links, lynx – doesn't really matter). Sometimes checking other sites with it, to sort-of-confirm the quality estimation I've made using a graphical browser, and it even matches most of the time.

If the site is usable in w3m, it doesn't rely on javascript to function – and hence there's a good chance that it's not bloated with javascript. It also probably doesn't rely too much on CSS for things like positioning, if everything isn't messed up in w3m. And it wouldn't be readable in such a browser if there were chunks of various additional content at random positions around.

4.1 Experiments (or examples)

Website My regular browser w3m with images in emacs
gnu.org fine, though not eye-candy better than in a regular browser
idris-lang.org good, maybe a bit overweight good
xkcd.com (same) (same)
Wikipedia, with formulæ (same) (same)
org-mode-generated (same) (same)
hoogle, hackage fine okay, usable
github.com laggy and glitchy crashes emacs
explosm.net designed for tablets, pretty broken horrible, not quite usable
trello.com barely usable, designed for tablets failed to login

5 Conclusion

I consider using w3m to actually browse the web; often it's not really worse than regular browsers (here is a screen), and there's not much sensible use of their advanced features nowadays: often they are used for communication, but there are IRC, XMPP and MLs for that.

Update (2017-07-26): plenty of websites are less broken in w3m than in FF with noscript and colors/fonts overriding nowadays.

Moreover, it looks like the websites that are made without accessibility in mind, and which abuse web technologies, rarely contain any useful information.