Ajax Deleting 
January 25th, 2007
The topic of this post is about deletion using Ajax. Truth be told, it’s not really even about Ajax but about the deletion pattern and related user experience in general.
So often it is the case that when a person deletes some data - like a photo tag in Flickr for example - the application insists on confirming that the user really wants to delete the item. This kind of interaction is really annoying when you are deleting several items from a list or even just one when you are a “power user”. In fact, more often than not, the user wants the delete to occur immediately and requires no confirmation. The confirmation dialog is just an over-engineered catch all for those rare cases when the user presses the delete button in error. In the case of Flickr photo tags then who even cares if you accidentally delete one tag?

There are a few good options for Ajax delete that I think one consider when building data intensive web applications.
- Make the delete button smaller but communicate its meaning more clearly.
Using large and unfamiliar buttons for signifying a delete action makes it easier for a person to make a mistake - thus re-inforcing the need for a confirmation dialog. A smaller button means the user has to work a little harder to perform the delete operation, but not quite as hard as confirming the delete, and the more clear the button is for deleting (through a tooltip or whatever) then the fewer inadvertent deletes there will be. - Store all deleted data the client before executing the deletes.
Although it could be a good option, the previous suggestion still provided no way to undo a delete. To that end, rather than having a difficult confirm dialogue the developer can take a different approach to deletions such as batch deletions with a single confirm dialogue or even an easy way to roll back the deletes if they are in error. I imagine the reason for using a confirm dialogue is because it is easiest for the developer, but certainly not the user. - Use a timer on the delete action giving the user the opportunity to cancel the delete.
Finally, an approach that could encompass both of the previous suggestions would be a delete timer. This would be an animation to indicate that the item is pending a delete in say 5 seconds. The key here is that this is ample time for the user to cancel the delete if they want but otherwise the deletion will continue if the user does not take any action to prevent the delete from happening.
At any rate, this is one area where most web application fail miserably and there are great advances to be made with Ajax based applications.
Del.icio.us
This entry was posted on Thursday, January 25th, 2007 at 8:05 pm and is filed under AJAX, DHTML, JavaScript, Web, Web2.0. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

January 25th, 2007 at 8:49 pm
Good thoughts Dave — totally agree w/ the timer approach.
January 26th, 2007 at 8:25 am
Undo is possibly the only true solution for users, the others mentioned sounds like stopgap measures.
Single-level undo might be “good enough” e.g. the feature in Gmail has saved me a couple of times. Multi-level undo will really be godsend - Adobe Photoshop has proven that for years!
I’ve not seen undo history implemented for a web app though.
January 26th, 2007 at 2:49 pm
I think you are probably right choonkeat - I guess that is something most web application developers just don’t have the time to do. very good point though.
January 31st, 2007 at 5:26 pm
Looks like you’ve been reading some of Jef Raskin’s words in “The Humane Interface” - it’s all about habituation and endless undo.
amazon - http://www.amazon.com/Humane-Interface-Directions-Designing-Interactive/dp/0201379376/sr=8-1/qid=1170276957/ref=pd_bbs_sr_1/102-8973219-9793712?ie=UTF8&s=books
web site - http://rchi.raskincenter.org/index.php?title=Home
http://jef.raskincenter.org/humane_interface/index.html
mxt
THINK
think different
Think Open Source
October 19th, 2007 at 1:46 pm
I know, I know, posting to an old article - but there’s a video of undo-delete done pretty well (although with a noticeable lack of animation…weak!).
http://simpable.com/software/ditch-confirmations/
October 19th, 2007 at 3:54 pm
thanks jake.
I need a new post on the subject I think.