Hi Jonah, I support usability. For a great book on it, read Jakob Nielsen''s "Designing Web Usability: The Practice of Simplicity" and, for a great general book on usability, try "The Design of Everyday Things." You''re right. Drag ''n drop is not the best tool for many things. Unless something offers a 50%+ advantage over an existing method of doing something, it is not worth implementing because of the learning curve. For this reason, I actually wouldn''t recommend using it for a shopping cart (as cool as it may be) since there is not much improvement on the existing interface. In fact, I would say that it hurts the interface. For example, I''d rather click one button to add an item to a shopping cart than click, drag to some shopping cart location, then unclick. The interface is slower. You''ve gone from one quick click to a relatively complicated drag. Also, the end of a drag and drop within a page typically does not signal a page change. In a cart application, the accepted semantic is to go to your shopping cart page after adding the product. In other words, you are messing with the notion of how a shopping cart works. This isn''t necessarily bad except that the drag and drop method does not offer any significant advantages for the typical cart. The way it works now is fine. HOWEVER... A great example for drag and drop is the sortables function. You can use it, for example, to sort a list of articles or a photo album. The current options to that are a multiline select box with buttons at the side indicating up/down/top/bottom. In this case, you receive a greater than 100% improvement (IMHO) in use and the benefits of the interface outweigh the costs of learning the interface. The old way is this: 1. Click an item in the select box 2. Mouse over to the up/down buttons. 3. Hit the up/down buttons (more than once usually) to move it into the new position. Multiply step 3 by, on average, half the items in the list. A 20 item list would probably take, on average, 10 clicks to move into the desired position. As opposed to drag ''n drop: 1. Mouse down over an item 2. Drag to a new location 3. Mouse up The first method takes longer to execute and you don''t get to preview the new location. I know it sounds silly to say learning the interface has a cost, but it does and once you understand that cost, it means making decisions about which interface to use better. Generally speaking, an accepted convention is the way to go (no learning curve) unless the new way offers significant benefits (50%+). I might even argue 100%+ benefit. To end the example, for a strictly drag ''n drop good example, a sortables list is nice but the option to drag an item in the list into a recycle bin is, I think a good use of drag ''n drop too. It lets you add a function without breaking the semantic of the page. Drag and dropping into a recycle bin is a fairly typical thing that a user understands in the context of the desktop and should be easily learnable if you are already dragging and dropping to reposition items. I personally use this sortables+recycle but require a "Save Changes" button click to execute the changes. Some might use AJAX for instant changes but I prefer to give the user a method to cancel and the current web semantic is nothing happens until a page is submitted. Depending on the app, you may wish to break this semantic, but only if it offers a good benefit. In fact, you may disagree with what I say here about the save button (and that''s okay) but I think it''s important that you choose to break an accepted semantic because you think the benefits of changing it outweigh the cost that you break the cognitive flow of the user. Sunny
Thomas Fuchs
2005-Jul-20 11:50 UTC
[Rails-spinoffs] RE: Rails-spinoffs Digest, Vol 2, Issue 22
It''s funny, i do this all the time at the local supermaket. :) In earnest, this can be a way to make a lasting impression on customers (if they are the right market), to say, wow, great idea! I''ll remember your store! But you''re right. It should be given some thoughts _before_ implementing it that way. Thomas Am 20.07.2005 um 17:08 schrieb Sunny:> In other words, you are messing with the notion of how a shopping cart > works. This isn''t necessarily bad except that the drag and drop > method does > not offer any significant advantages for the typical cart. The way > it works > now is fine.