Take the 2-minute tour ×
User Experience Stack Exchange is a question and answer site for user experience researchers and experts. It's 100% free, no registration required.

In the web application, the user draws a polygonal area on a map each click setting a vertex. A double click allows the user to finish the area. Due to technical circumstances, I have to detect double clicks myself in code.

What time span in milliseconds do users subconsciously expect for a double click? What are the default time spans on desktop applications?

share|improve this question
3  
Please consider touchpad users double tapping, which can get close to a second. Also, mobile users are not that used to double tapping. –  BatchyX May 31 '13 at 11:06
4  
this is a user setting on windows see technet.microsoft.com/en-us/library/cc978662.aspx (allows for 100ms to 900ms defaults to 500ms) –  ratchet freak May 31 '13 at 19:45
    
The double-click is a so strange and prone to confusion action that almost anything besides computers use them. –  sergiol Jul 23 at 15:11

5 Answers 5

up vote 16 down vote accepted

Instead of double clicking to finish, you could:

  • Click the starting point to close the shape (assuming all shapes are closed in)
  • Have a button nearby labeled "Finished" or "Close Shape" or "I'm Done" etc. that closes the shape

If you aren't able to use the OS to detect double clicks, I'd avoid them altogether. I've seen people with disabilities have the double click speed in windows set to the slowest setting and still struggle to do it fast enough. And double clicking on tablets or touchscreen computers can be quite difficult.

share|improve this answer
1  
Yes, this might be a suitable fallback route if double-click as the only option isn't appropriate. Perhaps have the 'Finished' button available anyway along with the double-click, which might help cover some bases there. However, one issue I can think of here is that when you're moving your mouse over to the 'Finished' button you'll still be dragging the path with you, which might not feel all that natural to the user. –  JonW May 31 '13 at 14:35
3  
There is already a finished button, the double click is just an alternative. –  danijar May 31 '13 at 15:11
    
If shape creation is an important/common activity in your app, perhaps allow each user to change the double click speed in the app settings. –  frozenkoi May 31 '13 at 17:41
    
Agree, detecting double click without the OS's help can be irritating for users because the timing may be off what they're used to. Another option would be shift-click to exit the mode (or control click, etc.). –  obelia Jun 1 '13 at 1:48

Windows default double-click time is 500 ms (half a second)

Reference http://msdn.microsoft.com/en-us/library/windows/desktop/bb760404(v=vs.85).aspx

share|improve this answer
    
In particular, DoubleClickTime can be called to find out what the current time is, and handle the WM_SETTINGCHANGE Message to check if it's been changed. (Edit: Nevermind, I missed the "web application" part.) –  afrazier May 31 '13 at 15:20

This changes between applications and users, but a typical value is 500ms.

Some people struggle to click fast enough when it's set at 500ms (think people using a touch device), and others find this too slow. So if you really need double click functionality, I would suggest defaulting to 500ms, but offering an option to change it.

I would strongly suggest changing your interaction model so that you don't use double clicking at all, as the concept is not at all part of what users of touch devices expect, and often double tapping on touch devices often has a system level meaning (zoom to area for example).

share|improve this answer
    
Alright, what would you suggest as alternative to double click? It's about drawing a polygon on a map. For now, hovering previews the next point, clicking sets the point and double clicking finishes the polygon. –  danijar May 31 '13 at 13:07
    
What about a key modifier? Ctrl + Left Click -> close polygon or something similar –  SinisterMJ May 31 '13 at 13:14
3  
A key modifier would be even worse on mobile devices. –  danijar May 31 '13 at 14:59
1  
An option would be a click with a secondary button, or tap-and-hold. Or if you provide a way to 'undo' the last point, 2nd button brings up a context menu with 'Undo last point', 'Finish shape', and whatever else. –  frozenkoi May 31 '13 at 17:42
    
@danijar I think the most common behaviour is you close the polygon by clicking again on the first point. A-B-C-D-A. If you're talking about lines, you can terminate the line by clicking on the last point: A-B-C-D-D. No need for double clicking anywhere. –  Steve Bennett Jun 5 '13 at 1:20

As it's up to the user to set the double click speed in most operating systems, there aren't any real defaults. I suggest to simple check at which speed it's still comfortably for you to trigger the event and then double the time span to hit the speed of a non-professional user.

share|improve this answer
2  
How could there not be any defaults? Practically every single OS ever that supported double-click will have had a default value, as opposed to requiring the user to set a value during install, no? –  user50849 May 31 '13 at 13:20
    
Every system has its own defaults, yes. But as every system works different, there's no general standard you can build on. –  Marcel Böttcher May 31 '13 at 13:25
    
What is your reasoning behind doubling it for novice users? –  rk. Jun 2 '13 at 14:47
    
Novice users are less trained in mouse working and have a lower double click rate then experienced users. That's something I always can study when seeing someone's parents first computing attempts. –  Marcel Böttcher Jun 2 '13 at 15:37

Great answers here! I'm developing a card game using Python and Pygame, which has no double-click support, so I stumbled upon the same problem.

Inspired on Marcel Böttcher's answer, to measure your own time and then double it, I've created a small tool to measure the speed of double-clicks, and I'm sharing with you:

import pygame
import random

pygame.init()
screen = pygame.display.set_mode((800, 600))
font = pygame.font.Font(None, 48)
clock = pygame.time.Clock()

start = None
done = False
while not done:
    for event in pygame.event.get():
        if (event.type == pygame.QUIT or
            getattr(event, 'key', None) == pygame.K_ESCAPE):
            done = True
        if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1:
            if start:
                time = pygame.time.get_ticks() - start
                color = (random.randint(0, 255),
                         random.randint(0, 255),
                         random.randint(0, 255))
                screen.fill(color)
                screen.blit(font.render(str(time), True, (255-color[0],
                                                          255-color[1],
                                                          255-color[2])), (0, 0))
                print time
                start = None
            else:
                start = pygame.time.get_ticks()

        if start and pygame.time.get_ticks() - start > 900:
            start = None

    pygame.display.update()
    clock.tick(60)

For the record, I tested with my stepfather, who's 71, very low dexterity (although no disability of any kind) and never used a computer / touch / mouse before in his life!

His results were pretty surprising to me: after a 3 minute training on how to grab and use a mouse (thanks to Solitaire), and what a double click is, he averaged on 250-320 ms for 30+ tries (mine was 140-180). Even when told the test was not about speed (which I guess he assumed to mean "take it easy"), his average was still in the 400-550ms range.

So I guess 500 is a pretty conservative default, and should handle fine most users. Even 350 would not prevent daddy to enjoy my silly game :)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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