Rien ne dit où l'on est
Quatre dialogues au même endroit de l'écran, mêmes coins arrondis, même bouton « Sauvegarder » en bas à droite. Le seul indice de niveau est une largeur qui diminue de 7 %.
La refonte du 6 août a réglé le vocabulaire : trois questions en français à la place de neuf booléens. Elle n'a pas touché à la forme — et la forme, c'est une popup qui en ouvre une, qui en ouvre une. Voici la mesure du problème et deux façons d'en sortir.
Pour poser une question sur la deuxième étape d'un parcours, et l'écrire en néerlandais, il faut ouvrir cinq surfaces l'une par-dessus l'autre. Chacune existe pour de bonnes raisons ; c'est leur empilement qui n'a été décidé par personne.
Chaque niveau fait screenWidth × 0,82 puis 0,75 puis 0,65 — les
fenêtres rétrécissent à mesure qu'on descend, ce qui est le seul repère visuel de profondeur.
Quatre dialogues au même endroit de l'écran, mêmes coins arrondis, même bouton « Sauvegarder » en bas à droite. Le seul indice de niveau est une largeur qui diminue de 7 %.
Chaque popup travaille sur une copie JSON profonde et ne remonte qu'à la fermeture. Fermer la fenêtre du parcours par la croix jette les trois questions saisies dessous, sans avertissement.
Impossible de voir la liste des étapes pendant qu'on en configure une. Comparer l'étape 2 et l'étape 3, c'est fermer, rouvrir, refermer, rouvrir.
La popup reste : le client sait qu'il « entre » configurer un parcours et qu'il en ressort. Ce qui disparaît, c'est l'empilement. Les étapes deviennent un rail à gauche, toujours visible ; le détail s'affiche à droite ; la question s'ouvre dans le flux, sans nouvelle fenêtre. C'est cliquable — essayez le rail.
Ce que le visiteur voit avant de commencer.
Le rail reste à gauche : passer à l'étape 2 est un clic, plus un aller-retour.
La question s'ouvre ici, pas dans une quatrième fenêtre.
Une étape vierge : les trois blocs attendent, rien n'est obligatoire.
Trois changements portent tout le reste. Le rail — la liste des étapes ne disparaît jamais. Le fil en haut à gauche — on sait où on est sans compter les fenêtres. « Enregistré » en bas à gauche remplace « Sauvegarder » : chaque champ part au serveur en sortant du champ, il n'y a plus rien à perdre en fermant.
Le parcours quitte la popup et devient un écran à part entière, sur le modèle des éditeurs de contenu. Trois colonnes : les parcours de la section, les étapes du parcours choisi, le détail de l'étape choisie. Rien n'est jamais recouvert.
Le gain réel de B n'est pas la place : c'est la troisième colonne libre, où loger un aperçu visiteur en direct. Le coût réel n'est pas le code de l'écran — c'est que le parcours devient le seul type de section à ne pas se configurer comme les douze autres.
| Critère | A — fenêtre unique + rail | B — atelier plein écran |
|---|---|---|
| Profondeur maximale | 2 — la fenêtre, puis la traduction | 1 — plus la traduction |
| Cohérence avec les 12 autres sections | Intacte — même geste : j'ouvre, je règle, je ferme | Rompue — le parcours devient l'exception |
| Ce qu'il faut réécrire | Les trois show… fusionnés en un widget à panneaux. Les blocs de champs se déplacent sans changer |
Idem, plus une route, un écran, et sa place dans le menu latéral |
| Aperçu visiteur en direct | À l'étroit — il faudrait un troisième volet dans une fenêtre déjà large | Naturel — la colonne est libre |
| Sauvegarde au fil de l'eau | Nécessaire dans les deux cas, et indépendante du choix — c'est le vrai chantier | |
Non pas parce que la popup serait meilleure en soi, mais parce que le client a déjà appris le geste sur douze autres types de section. Faire du parcours le seul écran plein cadre lui demande d'apprendre une deuxième grammaire pour le type le plus compliqué du produit — le pire endroit où placer la nouveauté.
Et surtout : ce qui fait mal aujourd'hui n'est pas la popup, c'est l'empilement et
la sauvegarde en cascade. A traite les deux. B traite les deux aussi, pour plus cher, en
ajoutant un risque d'incohérence. Si l'aperçu en direct devient un jour prioritaire, B redevient le
bon choix — et le travail fait pour A (un widget à panneaux, indépendant du Dialog qui
l'entoure) se déplace tel quel dans un écran plein.
Écrire dix langues est une tâche à part, avec son éditeur riche et son bouton IA. Un niveau de profondeur pour ça est justifié. Les langues restent listées verticalement — pas d'onglets.
Ce qui casse les alignements, ce n'est pas leur conception : c'est
size.width × 0.2 dans NumberInputContainer et des tailles de label qui
vont de 16 à 25 px selon le composant. Deux corrections, pas une bibliothèque à refaire.
Où se déroule le parcours, quelle ambiance, comment on progresse. Le vocabulaire du 6 août est bon ; c'est son contenant qu'on change.
jsonEncode/jsonDecode et ne
remontent qu'à la fermeture.
show… en widgets autonomes
(ParcoursFields, EtapeFields, QuestionFields). Cette étape
sert A et B à l'identique — c'est le travail à faire en premier une fois le choix posé.
Dialog pour A, un écran routé pour B.
§19.13 cas 0 — les 7 lignes ajoutées le 9 août couvrent
déjà cet écran.