2

Our application shows a grid of photos. Each photo has a little 'common actions' area at the bottom (like delete, export). In addition, there is a context (right click) menu that shows all available options.

The problem we run into is that users will double click on the menu item in the context menu. But since the menu is a single click event, the second click ends up sometimes performing an undesired action. Like, in the image below, the user might double click on the 'Select All" menu option. This will, in our program do a select all, but then the second click will click on the TrashCan under the menu.

Is there any standard way to avoid this situation?

sample photo

5 Answers 5

0

Short answer is 'no'. And I think there should not be any techniques to avoid this situation.

This is not the type of error you should try to prevent with some special techniques. This is the type of error user should be able to recover from. Provide clear visual feedback on each user action (including highlighting of mouse-hovered menu item), add ways to undo actions and ask confirmation for the actions which can not be reverted.

By trying to add prevention mechanisms for beginners, who most likely double-click things, you will alienate intermediate and expert users. Design for majority.

1

Adding a small timeout after a first click would prevent a second click from firing undesired actions.

If some users are using the app in such a way that they obtain undesirable results it is a good idea to analyse why is this happening. You might detect that the number of users doing a double click is a pattern and not an exception. In that case you might want to step back and reconsider the way the menu is structured.

0

Ideally Select all should be somewhere at the top. From where user can click select all. And a export button and export all or Export can appear after any item from the grid is selected. So this avoids double click miss-conception. Hope this helps.

0

A user is struggling to use the system.

Teach them. As a user of a system, you are expected to some degree to know how to use the system and if you don't, then you should read any FAQ, help manual or documentation available to you in order to learn how it works. That's the point of designing and building something in a certain way.

What can I do if they don't want to read help guides.

Let them use the system in a trial and error based method. Personally, if I did the actions described above, I'm now fully aware that next time, do not double click, and do not do it over the trash icon. There are some things you can take away from people doing this though and learn from them. Like preventing double clicks, although that'd be tricky and have other issues with disabling user interaction. But also, move the trash icon to somewhere more suitable.

Last resort...

Move the select all option or create a button like a checkbox that will do the select all functionality for them without using the context menu. You have designed the system in such a way that they can delete something. Perhaps implement a way to soft delete items first so they're never really gone, but you should focus on user education in the form of tooltips and hints to make sure they know what they're doing.

0

Provide quick alternative shown directly on menu items.

In addition to other answers, make the menu items read

Select All            Ctrl+A
––––––––––––––––––––––––––––
Cut Ctrl+C
Copy Ctrl+X
Paste Ctrl+V
Delete Del

This will remind the users to switch to keyboard shortcuts. One group will switch because using the keyboard is more convenient for them. But some others will switch when seeing that this works for them where double clicking did not. So this is actually quick in-place hint for those unwilling to learn.

The change to menu items is trivial, it does not need any coding, just setting the keyboard shortcut in properties of the menu item.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.