Sunday, July 20, 2008

Making me think about usability

That's Funny by ehpien from flickr (CC-NC-ND)

I've just finished reading "Don't Make Me Think" by Steve Krug, which claims to be some sort of a web usability classic.

What I liked most about it was the chapter about user testing. The short summary is - test early, test often, 3 randomly selected people with one hour per person is the best cost to benefit ratio for a round of testing, don't bother with detailed written reports, just fix the worst problems and do another round later.

Other than that I didn't like the book that much. I see how it might have been useful in the Web 1.0 days, but its focus just feels wrong. It seems to think that the most important part of a website is its navigation and so spends most of the pages discussing it, but how relevant is navigation when vast majority of users come from Google, or some other kind of search, or direct links, or RSS, or even bookmarks, and people reaching your content by patiently clicking their way though from your homepage are a tiny minority?

Most blogs, wikis, and web apps don't even have real navigation structure, and they're the part of the Web that's growing fastest. Even Amazon which the book glorifies as The Paragon Of Web Usability seems to have mostly given up hierarchical navigation and now exposes search and personalized recommendations as the most prominent means of getting around.

So the book has some useful content but is hopelessly outdated and unfocused. 3 stars out of 5 if you numbers.

Usability



As the review made a rather short blog post I'm going to conclude it with somewhat controversial remarks on Web usability. By the way if what you're saying doesn't cause any controversy then
  • you've just discovered some new universal truth (only happens in maths),
  • or you're just repeating some nicely sounding but ultimately meaningless slogan like "use the best tool for the job",
  • or most likely - nobody reads your blog.

So controversy and exaggeration to get the point across are good.

First, accessibility is overrated. I've seen so many people performing magic rituals supposed to make their websites "accessible", like anal adherence to "web standards" even to the point of using XHTML, making sure the website works without Javascript and/or CSS, making unique text in headers and so on. Two things they never do are measuring how many users are actually going to use accessibility features, and testing accessibility in realistic settings (like with a screen reader or Braille terminal), and these two things seem to me to be the only ones that would matter.

Accessibility zealots also often claim that:
  • websites done in some "right" way are somehow magically accessible,
  • making a website Google-friendly is somehow the same as making it accessible,
  • and that you're legally required to spend as much effort making your website accessible as necessary.

All of which are bollocks.

I think this misguided thinking is caused by a combination of two reasons. The first is the good old web standards zealotry. Seriously, why people get so emotional over some badly written documents without even a reference implementation or a serious test suite? Even FreeBSD vs Gentoo and Emacs vs vim (by the way correct answers are Ubuntu and TextMate, and 2 spaces) flamewars aren't as heated as the ones about web standards.

The second reason is a certain kind of a reality distortion field. There are many kinds of web sites on the Internet. The kind that used to be most popular are "text-based content sites", where users come to read static stuff. The reality distortion field makes people think this kind of websites is still dominant, but it's not. Looking at Alexa's top list it's difficult to find a single text content site other than Wikipedia. Everything is some sort of a web app, or video site, or social networking site, or anything but text content.

Now I mostly agree on one point - making text content site reasonably "accessible" is not very difficult, and to some extend correlates with things you need to do anyway to support Google, mobiles and so on. I will still laugh at people who think they can get "accessible" without genuine testing (if accessibility checklists worked, why won't they write IE6 accessibility checklist, wouldn't that be so much easier?). But the problem is something else - only reality distortion field of epic proportions can make you think most websites are still text content.

In a way it's similar to DBAs being deluded that most SQL databases serve as integration point between multiple independent codebases (and so need stored procedures, triggers, complex constraint enforcement and business logic on database side etc.) when in reality 99% of them are little more than persistent store for a single app and these features are more harmful than helpful.

So how about the vast majority of web sites that are not just about text content? Oh sure, you can make them accessible. It's just going to be long and painful process with very little payoff, and which won't ever end in a full experience parity unless your application is very very simple. And you know what - screw the blind people! The largest discriminated group are people who don't speak English as their first language. It's about 95% of all people, a lot more than 0.6% who are blind. Why don't they care adequate attention? It's an insane misallocation of resources if you care about the blind but don't even have a German version of your website (and versions in at least 50 other languages). Blind people are more or less as important as Welsh localization, and you're probably not caring much about that, are you?

Forget about experience parity, no mater what technology. Vision is the most important of human senses and the only way to make non-visual interface work as well as a visual interface is by horribly dumbing down the visual one, hurting 99.4% of your users who can see. Try getting somewhere with a spoken Wikipedia article about London instead of a map. Or reading long lists of numbers instead of a graph. Or playing Portal with a screen reader. Or for more relevant example using "basic html" version of Gmail instead of the real thing.

My second point, video websites should not autostart their videos. Haven't they heard of tabbed browsing? To open multiple tabs with YouTube videos you need to:
  • open the tabs,
  • go to first tab,
  • wait until the video partially loads and starts playing,
  • click pause (you cannot click pause earlier),
  • then do the same for the all other tabs,
  • and finally go to the tab you want, rewind the video and click play.

Couldn't they at least detect they're in an inactive tab somehow? Firefox seems to be sending onfocus when a new page is opened in a new tab or when you first switch to an inactive tab - not autostarting until you get onfocus sounds like a good start. Making pause button work before the video loads would also help a lot. Or are there perhaps some Firefox plugins or Greasemonkey scripts to get rid of video autostarting? The only thing it's good for is rickrolling people.

The third thing, stop using lowest common denominator fixed width layout. CSS lets you do many things that weren't possible with tables, but some of them are just stupid. More and more people have widescreen these days. Widescreen means wide but short. OS and browser usually take a lot of space on top and bottom of the screen, but not on the left and right, making screen aspect ratios even more extreme. So there's lot of space on the screen but it's mostly horizontal, and what do so many designers do? Completely ignore half of the available space, and then fill the rest with ads and other crap so the useful content is taking a tiny fraction of what it could take. I know making "design" work in multiple sizes is harder, but design isn't what users are interested in. They came to your website for the content, not to revere your mad design skills.

And the last thing, CSS compatibility with IE6 is a waste of time. JS compatibility became an almost non-issue thanks to jQuery and other JS frameworks. So why not use a JavaScript solution like ie7-js and be mostly done with IE6 CSS too? Some people won't like the suggestion of depending on JavaScript, but IE6 does run JavaScript just fine, and no other browser (Google spider, mobiles, text browsers etc.) is going to be affected in any way, so what's the big deal?

OK, if JavaScript dependency on ie7-js still makes you feel uneasy, couldn't we at least somehow use for automated testing? Run the website with and without it, get a list of differences and suggestions based on how ie7-js fixed them. Seems like a lot better way than manual debugging. But I'm not a Windows guy, so don't expect me to code that.

21 comments:

  1. Better YouTube Greasemonkey Firefox extension has option of disabling YouTube video autostart. Unfortunately it only works with the main YouTube, not all other similar websites, nor even YouTube channels or embeds.

    ReplyDelete
  2. Anonymous21:54

    Try the FlashBlock Firefox extension. It prevents any Flash content from auto-loading, so it works for all the video sites, as well as annoying Flash intros, etc.

    ReplyDelete
  3. FlashBlock is not exactly what I want, as I would very much want them to preload the videos so I won't have to wait when I finally want to watch them, but it's probably better than the current situation.

    ReplyDelete
  4. Anonymous08:07

    web standards are hard. Lets go shopping.

    ReplyDelete
  5. Anonymous20:47

    Here's a thought. Yes, the Internet is accessed through visual means, but then you go into a diatribe about YouTube. That's not completely visual - I am going to go on a limb and assume I'm not the only person who will open a YouTube video and listen to it without actually watching the visuals.

    The question I'm thinking about: Is the internet only a visual medium?

    ReplyDelete
  6. Anonymous09:51

    Next time you design a site from scratch and then present it to the client having read through all your code and decided it's clean, marked up well and 'just works' but you didn't bother to actually use a web browser to see what it looks like, then come back to this post and reiterate what you said about accessibility testing.
    FFS.

    ReplyDelete
  7. Anonymous16:15

    Lets Talk:

    Accessibility is overrated:

    Yup. XHTML/HTML4 - JAWS reads 'em both.

    Screw the blind people:

    You know, a Spanish-speaking person can learn English - A blind person can't learn to see, and a deaf person can't learn to hear.
    Not the same thing!

    video websites should not utostart their videos,stop using lowest common denominator fixed width layout,CSS compatibility with IE6 is a waste of time.


    Yah Baby!

    ReplyDelete
  8. It's possible for Spanish-speaking person to learn English, but to get close to native level it will take about two years of their lives. Most people cannot afford to spend two years doing that. And a blind person can hire someone to help them with the Internet or something. It's actually much easier than learning English.

    ReplyDelete
  9. Anonymous19:12

    "And a blind person can hire someone to help them with the Internet or something. It's actually much easier than learning English."

    I didn't have enough time to learn English so I blinded myself and hired someone to help me out instead.

    ReplyDelete
  10. Anonymous18:52

    You wrote:

    'Accessibility zealots also often claim that:
    (1) websites done in some "right" way are somehow magically accessible,
    (2) making a website Google-friendly is somehow the same as making it accessible,
    (3) and that you're legally required to spend as much effort making your website accessible as necessary.'

    Do you have examples?

    (1) I have seen many statements from accessibility advocates saying that accessibility can't be addressed with only checklists. Only accessibility charlatans would say that there is a magic solution.
    (2) I have seen many statements saying that making a website accessible can have benefits for search engines, but I have never seen statements saying that search engine optimization makes your site accessible. (Some SEO practices actually conflict with accessibility.)
    (3) In countries with legislation regarding web accessibility, accessibility advocates may point this out, but many countries don't have such legislation and it usually only applies to public websites (in some countries also to higher education). However, legislation is not usually presented as the first argument for accessibility.

    So could it be that you're wearing your pants back to front?

    You wrote:
    "The largest discriminated group are people who don't speak English as their first language."

    That is neither here nor there. Government websites need to serve all citizens, regardless of disability. What's the benefit of translating, say, the White House website into German or Welsh?
    You also seem to overlook that blindness, like many other disabilities, is not necessarily something that a person is born with; it can be acquired gradually through a disease or through ageing, or in other ways, such as an accident or even wrong treatment in hospital. It can happen to anyone. That's why design for all is sometimes described as "designing for our future selves". When you say "screw [people with disability X]", you also say "screw me if I acquire disability X".

    In the comments you wrote:
    "And a blind person can hire someone to help them with the Internet or something. It's actually much easier than learning English."

    People with disabilities are twice as likely to live in poverty as people without disabilities. If they have a job, they earn about 10% less than people without disabilities. How would hiring someone be "easy" for them?

    ReplyDelete
  11. Christophe Strobbe: Get some perspective, 10% less money is a big deal? People who speak a very wrong language (like some Bantu language) must live on less than one dollar a day, have half the life expectancy, no human rights, and high chances of dying of malaria, HIV or even diarrhea.

    Even limiting the data to a single country, people of Spanish speaking background earn 1/3 less money, are more than twice as likely to live in poverty than people of English background, and 28% of them are barred from voting (something that never happens to people with disabilities, even if their disability caused severe mental deterioration). The real situation is probably even worse than the statistics say as half of the "Hispanics" are native English speakers and they dilute the problem in statistics.

    ReplyDelete
  12. Anonymous21:13

    "Get some perspective, 10% less money is a big deal?"

    The 10% less money is if they have a job. You seem to have missed the part about "twice as likely to live in poverty".

    ReplyDelete
  13. Anonymous19:14

    532 errors on your W3C validation is frightening, even if you don't acknowledge the need for it.

    More frightening is your complete lack of effort in terms of aesthetics, even Nielsen does it better: http://www.useit.com/

    Google rating of 5 (well done), ignore rating of 10.

    ReplyDelete
  14. Anonymous03:00

    Sorry, it's difficult to take such poorly considered ideas seriously.

    ReplyDelete
  15. Anonymous16:50

    Stick to cats.

    ReplyDelete
  16. Anonymous10:07

    The greatest mistake is assuming that doing things "right" and taking care of usability and accessibility necessarily means more work and more complexity. It's usually the opposite, although it might require more knowledge and thinking.

    ReplyDelete
  17. That's my point - unless your website is pure text content it is more work to make it accessible, and you're very unlikely to have pure text content website these days.

    ReplyDelete
  18. Anonymous05:25

    TAW, these types of generalisations are misleading and show that you haven’t really thought this through. To start with, you've narrowed accessibility considerations to screen reader users only. Pure text content may be accessible to screen readers (if written well and marked up properly) but it may not be accessible to people with cognitive disabilities. So, enhancing sites with multimedia and JavaScript/Ajax is actually good for accessibility and usability. However, it has to be done thoughtfully and for good reasons, not because 'you can', plus the site shouldn’t shut people out completely when these technologies for whatever reason won’t work (and particular disability you’ve focussed on is only one of the potential reasons).

    "...unless your website is pure text content it is more work to make it accessible, and you're very unlikely to have pure text content website these days."

    It seems to me that you are the one suffering from "reality distortion field of epic proportions". You've based your comments on the top 500 websites but how many websites are there? Well, it is in fact difficult to say but according to netcraft’s July '08 figures, there are 175,480,931 servers so the number of sites must be ‘slightly’ larger. We can make an educated guess that quite a few of these sites are still very much text rich and used heavily by many - from students, researchers, academics and business people. In fact, ask any university library how much they pay to provide access to text rich sites. So, I think it is safe to say that text rich sites are not on an endangered species list as you’ve implied.

    Finally, saying that you won't do accessible design because it is "more work" and that it is "long and painful process with very little payoff" shows you are either immature or lazy (or both) but definitely unwilling to give your creativity and skills a good workout. I’m wondering how many people would like to hire someone with your attitude… I definitely wouldn’t.

    See accessibility as a challenge not constraint and you might be amazed how much you (and ALL users of your websites) will benefit from that change of attitude.

    "The only disability in life is a bad attitude" Scott Hamilton

    ReplyDelete
  19. Iza: Not doing useless work is very very important. If your application only does the minimum of what's needed you can quickly change its direction, implement features faster, it will have fewer bugs and so on. More work will not only cost you more work, but it will have a lot of extra costs further down the line when you want to change stuff.

    Read this book for a good introduction to this thinking.

    ReplyDelete
  20. Anonymous10:19

    TAW, unless your applications are more of a 'quick and dirty' variety rather than 'lean and mean', I don't believe that your approach to development has to exclude accessibility as a consideration. In fact, one of the benefits of accessible design is simplicity, flexibility, ease of maintenance and scalability because you have to use clean code and follow best practice for universal design. If you want bells and whistles, you add them at the end as an enhancement and only if they are going to add value rather than complexity to your product. I can't believe that if you're serious about designing for people (i.e. you have their needs, requirements and abilities under consideration throughout the development cycle), you can think of accessible design as 'useless work'!
    I have some reading recommendations for you too. The first one is Understanding Web Accessibility and here's a book by the same author Just Ask: Integrating Accessibility Throughout Design. I thought that you will find this quote from 'What people say about this book' section particularly of interest: "Just Ask is to accessibility what Getting Real is to project management." :) Use the two together and we may have a winner!

    However, before getting stuck into the above, check out Build Half a Product: Is Ajax accessible? At all?.

    ReplyDelete
  21. Although web translation tools aren't perfect, they're not too bad either. Using text not only helps make things easier for blind people, but for people using another language.

    ReplyDelete