web-dev-qa-db-fra.com

Lorsque l'une des deux entrées doit être mise à jour pour satisfaire un critère de cohérence, laquelle devez-vous mettre à jour (le cas échéant)?

Disons que nous avons trois zones de texte pour les nombres positifs (disons A, B et C) qui doivent satisfaire à la condition que leur produit soit 1. Par exemple, A = 0,5, B = 10, C = 0,2, serait une entrée valide .

Une fois que l'utilisateur a saisi deux des nombres, la zone de texte restante est automatiquement remplie. Donc, si l'utilisateur entre A = 0,5 et C = 0,2, le programme remplira B = 10.

Supposons maintenant que l'utilisateur essaie de taper 5 dans la zone de saisie. Qu'est-ce qui devrait être fait?

  1. Ne laissez pas l'utilisateur modifier B. Le problème est que l'entrée 5 peut être vraiment correcte et que l'un des autres champs est incorrect. L'utilisateur devrait vraisemblablement supprimer l'une de ses autres réponses avant d'être autorisé à saisir B, ce qui ne serait pas pratique.
  2. Informez l'utilisateur que les critères ne sont pas remplis et ne le laissez pas soumettre le formulaire jusqu'à ce qu'il le corrige. Le problème est que l'utilisateur doit s'assurer manuellement que les critères sont remplis, alors qu'il serait plus pratique pour le programme de le garantir pour eux. Peut-être qu'ils ne connaissent que deux des entrées et veulent que le programme calcule la troisième, par exemple.
  3. Modifiez A à 1 ou C à 0,4. C'est l'option que je veux utiliser. Le problème est qu'il n'est pas clair lequel à modifier. Cela dépend de la boîte que l'utilisateur a saisie par erreur. Si A est correct et C est incorrect, nous ne voudrions pas que le programme modifie A.
    1. Une façon de résoudre le problème est de mettre des boutons pour les entrées de "verrouillage". Ensuite, le programme ne modifierait que les entrées déverrouillées. Cela semble cependant trop compliqué.
    2. Mettez à jour l'entrée "la plus ancienne" (c'est-à-dire celle dont la dernière mise à jour est la plus ancienne). Le problème avec cela est que cela pourrait devenir très déroutant pour l'utilisateur sur la façon d'entrer les trois entrées qu'il veut.
    3. Utilisez la solution 2, mais placez un bouton "Mettre à jour" sous chaque entrée qui mettra à jour cette case pour répondre aux critères. C'est ma meilleure solution jusqu'à présent, mais elle semble encore un peu trop compliquée.
  4. Champ de sélection 2D. Le critère définit une surface 2D dans l'espace 3D. Vous pouvez laisser l'utilisateur sélectionner un point dans ce champ, en affichant les axes A, B et C qui lui sont projetés. Le problème, c'est que ce n'est pas précis.
  5. Autre chose?

Laquelle de celles-ci est une interface utilisateur optimale?

2
PyRulez

Modifiez la dernière modification par l'utilisateur.
Cela ne rendra pas tout le monde heureux, car il n'est pas toujours évident de savoir qui sera modifié.

En guise de repère, vous pouvez désactiver celui qui va être modifié, indiquant que celui-ci n'est actuellement pas modifiable.

Cependant, il existe d'autres méthodes:

Normaliser automatiquement - c'est celui sur lequel je me sens le plus en confiance, pour un public général: supprimez la contrainte. Si le produit des valeurs saisies est 12, divisez par 12, sans en informer l'utilisateur.

Normaliser manuellement - rejeter les entrées où le produit n'est pas 1, proposer un bouton Normalize à la place, qui ajuste toutes les valeurs.

Si le formulaire contient uniquement ou principalement cette entrée, vous pouvez utiliser le même emplacement de bouton/bouton: l'utilisateur entre des valeurs, OK se transforme en Normalize, l'utilisateur clique dessus, les valeurs sont normalisées et le bouton se transforme en OK

Verrouillage manuel - étendez l'idée de "désactivation" ci-dessus: ajoutez un symbole de "verrouillage" à chaque entrée. (serrure ouverte - grisée, serrure fermée - noir)

Indiquez qu'il est interactif (tabstop, en survol). Lorsque l'utilisateur active le verrou, c'est l'élément qui ne se modifie pas.

Un seul verrou peut être actif à un moment donné. Lorsqu'une entrée obtient le focus, le verrouillage de cette entrée est désactivé. L'activation d'un verrou lorsque son entrée a le focus doit sélectionner l'entrée suivante.

Option: vous pouvez autoriser la désactivation de tous les verrous et répartir la modification requise entre les deux entrées non focalisées.

1
peterchen

J'irais avec la solution 3.3 (informer l'utilisateur des critères non remplis et fournir des boutons de mise à jour pour définir le bon nombre). Vous pouvez également l'afficher sous forme de liste déroulante (la valeur unique étant le nombre correct).

  1. oblige les utilisateurs à adapter leur flux de travail à l'inflexibilité du programme.
  2. Aviser de manière polie est une bonne idée. Si le calcul est complexe (ce qui, je dirais, s'applique à ce cas), il est difficile pour l'utilisateur de déterminer la bonne entrée. 3.1 Je trouve l'idée de mettre à jour les entrées plus raisonnable. Quand basculez-vous la mise à jour de la troisième valeur? Lorsque deux valeurs ont été verrouillées? Ça me semble bizarre.
0
Nash