web-dev-qa-db-fra.com

Ignorer les modifications non enregistrées dans l'onglet si l'utilisateur passe à un autre onglet?

Nous avons une application Web avec des onglets dont le contenu est en lecture seule. Certains utilisateurs sont autorisés à modifier le contenu; lorsque vous appuyez sur modifier, le contenu de l'onglet peut être modifié.

Sur un onglet modifié dont les modifications n'ont pas été enregistrées, si l'utilisateur passe à un autre onglet, toutes les modifications sont ignorées.

Est-ce une bonne expérience utilisateur? Quels principes heuristiques désobéissent-ils?

14
sushil bharwani

Cela dépend de la structure de votre application, mais en général les onglets sont précisément conçus pour avoir plus d'un ouvert à la fois.

Par conséquent, il serait assez ennuyeux de toujours informer l'utilisateur lorsqu'il change d'onglet.

Une solution courante consisterait à conserver l'état de chaque onglet et à afficher un indicateur "modifié" à l'intérieur du titre de l'onglet. Par exemple. dans IntelliJ, le titre d'un document modifié devient bleu:

Modified tab is blue

Offrez un "enregistrer tout" global et un "enregistrer" pour chaque onglet.

La fenêtre contextuelle "Voulez-vous vraiment supprimer vos modifications" peut-elle maintenant s'ouvrir lorsque l'utilisateur décide de fermer l'intégralité du "document" (par exemple, lorsqu'il décide de fermer/quitter la page).

Vous pouvez également enregistrer les modifications en tant que brouillon et les charger lorsque l'utilisateur entre à nouveau. Cela déplacerait la nécessité du Popup au moment où le brouillon serait annulé.

Comme je l'ai mentionné dans la première phrase: au final, cela dépend de la structure et du contexte. À quelle fréquence les utilisateurs changeront-ils d'onglet? La conception/technologie de votre page Web peut-elle gérer les différents états des onglets?

38
Lovis

Il ne faut jamais rejeter irrévocablement les modifications non enregistrées sans avertir l'utilisateur. Il existe deux solutions possibles à cela:

  • Lorsqu'un utilisateur essaie de changer d'onglet, une boîte de dialogue d'avertissement indique qu'il y a des modifications non enregistrées. Donnez-lui le choix d'annuler ou non les modifications à ce stade (il devrait y avoir une option pour continuer et ignorer le modifications, ainsi qu'une option pour revenir à l'onglet sur lequel ils travaillent. Il peut également y avoir une option pour enregistrer et continuer).
  • N'oubliez pas les modifications non enregistrées de tous les onglets et enregistrez le contenu de tous les onglets modifiés lorsqu'ils choisissent d'enregistrer les modifications. Cela nécessiterait une sorte d'indication persistante sur la page qu'il y a des modifications non enregistrées - sinon, le comportement lors d'un changement d'onglet serait ambigu.

Comme le mentionne L. Möller, autoriser souvent une action, mais donner une option d'annulation, est préférable à demander à l'utilisateur "êtes-vous sûr?". Je ne pense pas qu'une action d'annulation aurait un sens dans ce cas, mais la deuxième suggestion propose une implémentation qui évite les boîtes de dialogue contextuelles ennuyeuses.

7
user31143

Les onglets sont destinés à conserver l'état, qu'ils soient affichés ou non, ce qui signifie que les éléments que vous avez dans l'onglet A devraient être exactement les mêmes, même si vous passez à l'onglet B, puis revenez à A.

Essayez de commencer à écrire un e-mail dans un onglet à l'aide d'un navigateur Web. Ouvrez un autre onglet, puis revenez à la messagerie composer. Vous seriez surpris si ce que vous aviez écrit dans le courrier avait disparu.

7
Henrik Ekblom

Lorsque je conçois un flux et une structure, je fais de mon mieux pour ne pas mettre l'utilisateur dans une telle position pour basculer entre deux onglets au sein d'une opération/transaction/action/objectif. Si je mets l'adresse dans un onglet, j'essaie de mettre un bouton d'enregistrement dans l'onglet. Sinon je travaille en écran pliable et/ou long selon les capacités techniques, le support, l'utilisateur, l'itinérance des données etc ...

Si vous devez travailler dans des onglets et que vous avez les capacités techniques; vous pouvez au moins essayer de donner à l'utilisateur des informations sur les informations modifiées. Par exemple, créez les informations "enregistrées" et les informations "non enregistrées" dans différents visuels. (par exemple, gris foncé sauvegardé et régulier, gris clair non enregistré et gras) C'est le genre de chose que nous utilisons parfois dans les applications bancaires.

1
Esin

Réponse courte:

99% du temps, ce ne sera pas une bonne UX.

Mon choix serait de informer l'utilisateur:

  • Pasivement en quittant l'onglet et
  • Activement en quittant la page

Réponse longue inutile:

Pourquoi? Voici quelques réflexions et recommandations qui me viennent à l'esprit:

Qu'est-ce que l'utilisateur attend? Vous devez penser à quels types de programmes les utilisateurs de l'application pourraient être familiarisés avec, et suivre une approche similaire ou essayer quelque chose qui pourrait être mieux (plus facile, plus clair, plus intuitif, etc.).

Pour sûr et comme mentionné dans les réponses précédentes, ce que vous ne devriez pas faire est de faire des actions implicites non intuitives qui tendent à rendre l'utilisateur fou ou désorienté. Annuler inutilement les actions que l'utilisateur peut vouloir conserver pour une sauvegarde/confirmation ultérieure est définitivement une chose à éviter.

Quelques solutions possibles:

1) Informer sur le comportement de l'application (avant l'action des utilisateurs): Le comportement devrait avoir tendance à être intuitif et sans avoir besoin de notes d'utilisation, mais dans certains cas, il est nécessaire ou au moins un agrégat qui a plus d'avantages que d'inconvénients sur l'UX. Quelque chose comme "Le contenu modifié sera supprimé lorsque vous quittez les onglets sans enregistrer"
Dans ce cas, je ne le trouve pas du tout approprié.

2) Informez-les qu'il y a du contenu modifié non enregistré (après l'action des utilisateurs):

Quand?:

  • a) En quittant l'onglet
  • b) Lorsque vous quittez/changez de page

Comment?

  • a) Activement: Ne laisser d'autre choix que de choisir au moment où ils quittent l'onglet/la page.

  • b) Pasivement: Avec un avertissement qui en informe les utilisateurs "constamment" mais sans exiger une réponse instantanée. En fonction de la conception et de l'application de votre interface utilisateur, vous pouvez faire plusieurs choses: changer le style de l'onglet non enregistré (en fait, je ne pense pas qu'un * soit toujours suffisant pour les utilisateurs non développeurs), par exemple, une couleur ou tout autre un signe plus reconfigurable serait un agrégat bénéfique, encore plus si vous avez une "barre de référence" avec celle qui dit "Onglets non enregistrés" avec une référence de la couleur des onglets non enregistrés (cette dernière chose, si la quantité d'onglets modifiables est considérable, non juste un ou deux).

Autres choses qui peuvent aider dans certains cas particuliers:

  • Les critères actuels de division du contenu en onglets sont-ils appropriés? Comment chaque onglet est lié?:

    En tant qu'utilisateur, si je modifie quelque chose dans un onglet, je ne voudrais pas avoir besoin d'aller dans un autre onglet pour trouver des informations pour terminer mon action (comme garder la cohérence entre deux paramètres qui sont placés dans différents onglets). Donc moins les onglets sont couplés, mieux c'est. Ce faisant, l'existence de contenu non enregistré pourrait être réduite. La tendance de l'utilisateur à se déplacer entre les onglets afin de terminer une action peut être une bonne raison de réanalyser la distribution d'informations en leur sein.

"D'accord, j'ai fait de mon mieux, mais si c'est mal?"

Testez-le, apprenez-en et améliorez-le. Vous pouvez suivre le comportement des utilisateurs pour essayer de trouver un indice sur ce qu'ils ont tendance à faire et modifier votre application en fonction de cela.

1
Alejandro Veltri

Tout d'abord, il y a toujours quelque chose de mal à simplement rejeter les modifications (c'est-à-dire sans préavis).

Deuxièmement, empêcher un utilisateur de changer d'onglet sauf s'il enregistre ou perd des modifications n'est pas très bon. Si vous avez plusieurs onglets, c'est pour pouvoir passer de l'un à l'autre. Ou vous devez changer la conception pour que l'onglet en cours de modification devienne l'élément supérieur (par exemple, sous forme de popup sur un bg grisé)

Enfin, avoir modifié les onglets tout en pouvant aller sur un autre peut être dangereux. Vous pouvez informer l'utilisateur (un * est toujours bon, une couleur différente sur l'en-tête de l'onglet ...), et aussi, pour boucler avec le premier point, vous ne devez pas laisser l'entrée être perdue si l'utilisateur ferme l'application. Soit utiliser une alerte (voir gmail par exemple), enregistrer le brouillon en arrière-plan, ou les deux.

0
njzk2