Eh bien, je dois vous demander, si vous avez une forme modale qui est si longue, ne devrait-elle pas être faite dans sa propre page? Je veux dire que tout le but des dialogues modaux est de dire à l'utilisateur ce qu'il doit savoir (qui est généralement ignoré et ennuyeux) ou d'obtenir des informations de l'utilisateur avant de continuer.
Vous dites que votre formulaire est destiné à la collecte des entrées utilisateur. Si c'est quelque chose que l'utilisateur doit entrer avant de procéder (comme dans une partie d'un flux de paiement ou quelque chose comme ça), alors je dirais qu'il est probablement préférable de consacrer une page entière au flux.
Si c'est quelque chose qui ressemble plus à un "se connecter ici avant de faire ce que vous faites", encore une fois, je pense qu'il serait plus logique que ce soit sa propre page qui vous ramène à la la page où vous étiez avant d'y entrer une fois que vous avez terminé de remplir le formulaire. C'est ainsi que fonctionne la page de vérification humaine Stack Overflow. Si c'est quelque chose d'énervant comme "donnez-nous votre avis sur le site", alors il ne devrait pas être modal du tout, mais plutôt une fenêtre pop-up facile à rejeter (oserais-je dire?).
Les dialogues modaux doivent être aussi brefs que possible. Si la brièveté est impossible et que le dialogue doit vraiment être modal, alors je pense qu'il serait plus logique de créer un flux de pages qui doit être rempli avant que l'on puisse accéder au suivant. Comme une caisse: vous devez ajouter des produits à un panier avant d'ajouter des informations d'expédition, et vous avez besoin d'informations d'expédition avant de pouvoir déterminer le coût de l'expédition. Ce genre de chose. Mais sans connaître la nature exacte de votre dialogue modal, je ne peux pas vous dire exactement quel serait le meilleur moyen de le faire.
EDIT: Aha! Vos clients senti cela prenait du temps, hein?C'est le genre de situation où vous devriez faire un test de convivialité en live très rapide et sale pour voir de quelle manière est réellement meilleur. Prenez quelques personnes au bout du couloir, montrez-leur la manière modale (avec le défilement) de le faire et montrez aux autres l'ancienne façon (non modale) de le faire et de voir ce qu'ils ont à dire.
(Idéalement, vous enregistrez la session et l'écran, et assurez-vous de ne pas laisser transparaître vos propres préférences personnelles. Demandez-leur simplement d'utiliser le système pendant que vous regardez pour voir dans quelle mesure ils exécutent la tâche. enregistrer à temps les deux méthodes pour voir si une façon est vraiment plus rapide que l'autre.)
Vous ne devriez jamais prendre une décision d'utilisabilité qui va à l'encontre de la norme (la norme dans ce cas étant "les grandes formes méritent leurs propres pages ") sans s'assurer qu'il est réellement plus utilisable de manière anormale. Quand il s'agit de l'utilisabilité, la norme est généralement la norme parce qu'elle est utilisable (mais pas toujours, c'est pourquoi vous devez tester). Si le client se défend, vous aurez au moins la preuve qu'il va à l'encontre des preuves empiriques que ce qu'il veut est stupide.
En fin de compte, cependant, ce sont les clients qui paient les factures. Si vous ne pouvez pas les amener à voir la raison, alors vous devrez tirer le meilleur parti de ce qu'ils vous disent. Si le formulaire doit être dans un dialogue modal, vous pouvez au moins essayer de cacher les champs non essentiels sous le pli (s'il y a des champs non essentiels) afin que la majorité des utilisateurs n'aura jamais à faire défiler.
Assurez-vous que les boutons pour soumettre le formulaire (ou tout ce que vous devez faire avec le formulaire) sont visibles, peu importe où l'utilisateur a fait défiler. Une très mauvaise idée serait de mettre tous les champs requis en haut et ensuite forcer l'utilisateur à faire défiler vers le bas pour cliquer sur le bouton "soumettre". C'est juste impoli.