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?

  • 4
    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) May 31 '13 at 19:45
  • 3
    The double-click is a so strange and prone to confusion action that almost anything besides computers use them.
    – sergiol
    Jul 23 '14 at 15:11

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.

  • 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
  • 5
    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
  • 4
    How is this an answer for the question?
    – fiatjaf
    Feb 6 '16 at 19:17
  • 1
    @fiatjaf it doesn't exactly answer the "as written" question, but it does answer question implied by the real problem of "how do I close my shapes when I can't detect people double clicking reliably?"
    – Grant
    Feb 6 '16 at 21:05

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

  • 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

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

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.blit(font.render(str(time), True, (255-color[0],
                                                          255-color[2])), (0, 0))
                print time
                start = None
                start = pygame.time.get_ticks()

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


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 :)

  • 2
    Nice post, especially the research with step-dad. Dec 7 '16 at 0:47

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).

  • 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
  • 4
    A key modifier would be even worse on mobile devices.
    – danijar
    May 31 '13 at 14:59
  • 2
    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
  • 1
    @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. 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.

  • 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. 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. Jun 2 '13 at 15:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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