web-dev-qa-db-fra.com

Quel est le délai prévu d'un double clic?

Dans l'application Web, l'utilisateur dessine une zone polygonale sur une carte à chaque clic en définissant un sommet. Un double clic permet à l'utilisateur de terminer la zone. En raison de circonstances techniques, je dois détecter moi-même les doubles clics dans le code.

À quel délai en millisecondes les utilisateurs s'attendent-ils inconsciemment à un double-clic? Quels sont les intervalles de temps par défaut sur les applications de bureau?

38
danijar

Au lieu de double-cliquer pour terminer, vous pouvez:

  • Cliquez sur le point de départ pour fermer la forme (en supposant que toutes les formes sont fermées)
  • Avoir un bouton à proximité intitulé "Terminé" ou "Fermer la forme" ou "J'ai terminé", etc. qui ferme la forme

Si vous ne pouvez pas utiliser le système d'exploitation pour détecter les doubles clics, je les éviterais complètement. J'ai vu des personnes handicapées avoir la vitesse de double-clic dans les fenêtres réglée sur le paramètre le plus lent et j'ai encore du mal à le faire assez rapidement. Et double-cliquer sur des tablettes ou des ordinateurs à écran tactile peut être assez difficile.

21
Grant

Le temps de double-clic par défaut de Windows est de 500 ms (une demi-seconde)

Référence http://msdn.Microsoft.com/en-us/library/windows/desktop/bb760404 (v = vs.85) .aspx

23
James Jenkins

Excellentes réponses ici! Je développe un jeu de cartes en utilisant Python et Pygame, qui ne prend pas en charge le double-clic, donc je suis tombé sur le même problème.

Inspiré de la réponse de Marcel Böttcher, pour mesurer votre propre temps puis le doubler, j'ai créé un petit outil pour mesurer la vitesse des double-clics, et je partage avec vous:

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)

Pour mémoire, j'ai testé avec mon beau-père, qui est 71, très faible dextérité (bien qu'il n'y ait aucun handicap d'aucune sorte) et n'a jamais utilisé d'ordinateur/tactile/souris auparavant dans sa vie!

Ses résultats ont été assez surprenants pour moi: après une formation de 3 minutes sur la façon de saisir et d'utiliser une souris (grâce à Solitaire), et ce qu'est un double clic, il a fait la moyenne de 250-320 ms pour 30 + essais (le mien était 140-180). Même quand on lui a dit que le test n'était pas pas sur la vitesse (ce que je suppose qu'il voulait dire "calme-toi"), sa moyenne était toujours dans le - 400-550 ms plage.

Donc, je suppose que 500 est une valeur par défaut assez conservatrice et devrait convenir à la plupart des utilisateurs. Même 350 n'empêcherait pas papa de profiter de mon jeu idiot :)

5
MestreLion

Cela change entre les applications et les utilisateurs, mais une valeur typique est de 500 ms.

Certaines personnes ont du mal à cliquer assez rapidement lorsqu'elle est réglée à 500 ms (pensez aux personnes utilisant un appareil tactile), et d'autres trouvent cela trop lent. Donc, si vous avez vraiment besoin d'une fonctionnalité de double-clic, je suggérerais de passer par défaut à 500 ms, mais en offrant une option pour la changer.

Je suggérerais fortement de changer votre modèle d'interaction afin que vous n'utilisez pas de double clic du tout, car le concept ne fait pas du tout partie de ce à quoi les utilisateurs d'appareils tactiles s'attendent, et souvent en appuyant deux fois sur les appareils tactiles a souvent une signification au niveau du système (zoom sur la zone par exemple).

4
JohnGB

Comme il appartient à l'utilisateur de définir la vitesse de double-clic dans la plupart des systèmes d'exploitation, il n'y a pas de véritables valeurs par défaut. Je suggère de vérifier simplement à quelle vitesse il est encore confortable pour vous de déclencher l'événement, puis doublez la durée pour atteindre la vitesse d'un utilisateur non professionnel.

2
Marcel Otten