Je construis une application où l'utilisateur peut créer des widgets très complexes à l'aide d'un navigateur. Les deux principales approches auxquelles je peux penser pour permettre cela sont l'édition en ligne et les boîtes de dialogue modales.
Contrairement à un simple champ de texte, ces widgets auront probablement plusieurs onglets d'informations qu'ils doivent configurer. L'un des onglets devra être un aperçu du widget, et les autres définiront diverses propriétés et fourniront des données au widget.
En plus de toutes ces options complexes, les utilisateurs peuvent également déplacer les widgets, ce qui signifie à peu près tout sur l'écran est interactif d'une manière ou d'une autre si les widgets permettent des modifications en ligne.
Les fenêtres contextuelles ont l'avantage de permettre à l'utilisateur de gérer un widget à la fois, sans penser aux autres, mais je crains également qu'elles se sentent déconnectées des autres widgets de la page une fois de retour. Cela rend cependant l'aperçu des widgets plus simple ... et la page elle-même ressemblera au produit réel sans que tous les outils d'édition n'encombrent les choses sur la page.
Les fenêtres contextuelles facilitent également la réalisation de plusieurs modifications à la fois, puis renflouent et ne les engagent pas. Les modifications en ligne peuvent également le faire, mais vous devez alors présenter à l'utilisateur une interface utilisateur de suivi incorrecte.
La dernière considération que j'ai est que ces widgets ont une variété de types, et plutôt que de fournir un menu massif avec 30 options, je voulais permettre aux utilisateurs d'affiner le type d'un widget alors qu'il était sur la page. Ainsi, par exemple, ils déposent un widget Media
et peuvent choisir parmi Image, Vidéo, Audio, etc., puis ils seraient autorisés à effectuer la modification en ligne pour ce type de widget. Cependant, cela expose la complication qu'ils peuvent renoncer à sélectionner le type de widget pendant qu'il est encore ajouté à la page ... quelque chose que la boîte de dialogue modale aurait empêché. Je ne pouvais pas non plus valider ce widget sur le serveur, mais cela peut être déroutant car ils l'ont fait sur la page ... mais des widgets non typés invalideraient le modèle de données, ce qui pose également des problèmes.
Je penche en fait vers les boîtes de dialogue, mais je suis curieux de savoir quelle est la meilleure approche. Je ne suis pas un concepteur d'interface utilisateur - juste un codeur.
La modification en ligne doit être préférée à tout moment. L'utilisateur garde le contexte, a la possibilité d'utiliser des informations liées et restreintes à la modification et l'utilisateur n'a pas à se concentrer sur une nouvelle interface utilisateur. Il s'agit du même processus, simple, facile et direct, où le flux de travail peut être conservé.
Le dialogue modal rompt le contexte des utilisateurs et il faut du temps pour que l'utilisateur se concentre sur la nouvelle interface utilisateur. Lors de l'enregistrement, vous revenez à la vue précédente et devez à nouveau vous recentrer. Le déroulement d'un tel processus est très frustrant, surtout si vous effectuez plusieurs de ces modifications en une journée.
Ces commentaires sur les dialogues modaux "interrompant le flux de travail" sont stupides et naïfs. Si vous créez votre écran parent et vos boîtes de dialogue modales en tant que parties symbiotiques du processus de tâche global, il n'y a aucune interruption. Toutes les opérations complexes doivent être décomposées en étapes ou "morceaux de tâche consommables", peu importe la façon dont vous construisez la conception pour plus de simplicité. Les modaux fonctionnent de manière optimale lorsque vous avez quelque chose comme un ensemble d'objets dans une table qui ont des attributs complexes. Le contenu du tableau est principalement pour a) la reconnaissance de la cible dans l'ensemble d'objets; et b) comparaison entre les attributs pertinents entre les objets de l'ensemble. Pour l'édition d'objets ou l'exploration d'attributs détaillés, une boîte de dialogue modale est un excellent modèle pour la réalisation de tâches. La modification en ligne ne serait possible que lorsque les objets sont simples et que tous les attributs sont affichés dans le tableau parent. Tout dépend donc des objets, de leurs attributs, de leurs relations et des tâches/actions que vous devez prendre en charge dans votre interface utilisateur pour savoir si le modal est utile.
Je suis d'accord avec M. Anspach. Dans le passé, les fenêtres modales pouvaient avoir été utilisées abusivement pour des publicités et d'autres contenus non essentiels. Cependant, lorsqu'ils sont utilisés correctement, ils peuvent être le compagnon idéal pour toute application complexe. Personnellement, je préfère les utiliser pour toutes les fenêtres "Créer un enregistrement, Modifier un enregistrement, Confirmation d'action" qui sont déclenchées à partir d'un détail d'enregistrement en ligne ou d'une vue de liste d'enregistrements. Fonctionne comme un charme, en supposant que vous ne surchargez pas vos fenêtres modales avec des tâches qui s'étendent sur plusieurs types d'enregistrement.