Tuesday, November 09, 2004

God, I hate blogger sometimes... and cautionary notes on web app design

I just wrote a lengthy post about the interesting virtues of JotSpot and XaraOnline, hit the Preview link, and then my browser's Back button to go back to the editor.

Alas, going "Back" in Blogger's editor preview doesn't go back to the editor, it goes back to the previous page. Going forward to get back to the editor then erases all of your work, so the post I wrote is no more. Argh.

I don't feel like rewriting it now, so now you get to read this gripe instead. Blame Blogger, and take these cautionary notes for web application design:
  • "Reload" shouldn't double anything, even on POST forms!
  • "Forward" shouldn't erase anything or redo anything
  • "Back" must always take you back
  • "Back" must never break anything
In other words, you must never ever, ever punish a user for clicking on standard browser navigation buttons. And yet, I regularly go to sites for companies with a $22 billion market cap, that have messages like "Don't hit reload, cause it'll pay your bill twice." Stupid, stupid, stupid.

How hard is it to put a hidden field in the form with a transaction number so you can tell it's the same freaking submission? Or just to check if someone's trying to pay more than they owe, after figuring in all pending payments? The US Postal Service site does this nonsense too. It also gives dire warnings about using the Back button. Couldn't they find anybody who knows better?

(It's probably actually an artifact of how software gets done in large companies, i.e., there was nothing in the requirements about it, nobody listened to the UI group, QA reported a bug, and development fixed it via the path of least resistance: by putting up a message and not actually changing anything. Oh well.)

And now, I'm going to click on "Save as Draft" in the Blogger editor before I use "Preview". You'd think after the other half-dozen times I lost posts to this stupid editor, I'd have learned. Unfortunately, it's just too engrained in my head how links and "back" are supposed to work. And it's probably just as deeply embedded in your users' heads, too.