1) Bien choisir le type des champs
Un formulaire est une liste de « champs » à remplir par l’utilisateur. Ceux-ci peuvent être de type Texte (simple ligne), Texte multi-lignes, Case à cocher, Mot de passe, Nombre entier ou Nombre décimal. Le type va impacter la manière dont le champ va s’afficher et comment l’apprenant pourra saisir sa réponse.
Il est important de choisir le type du champ le plus adapté à la réponse que l’on attend de la part de l’apprenant :
• Texte : à utiliser lorsqu’on demande à l’apprenant de saisir quelques mots seulement, le tout sur une seule ligne très courte.
• Texte multi-lignes : à utiliser lorsqu’on attend de l’apprenant qu’il écrive un texte de la taille d’un paragraphe, et pas juste quelques mots.
• Case à cocher : privilégier ce champ lorsqu’on attend une réponse « oui/non ». Si on laisse un champ texte libre, l’utilisateur pourrait saisir n’importe quoi d’autre que « oui » ou « non », ce qui n’est pas ce qu’on souhaite.
• Nombre entier et Nombre décimal : même principe que le type Case à cocher. Ce type permet de s’assurer que l’apprenant saisit bien un nombre, et pas autre chose. Privilégier le type « Nombre entier » lorsqu’on demande un nombre qui doit forcément être entier, comme un âge ou un nombre de personnes par exemple.
Voici comment s’affichent ces différents types de champs :
2) Bien nommer les variables des formulaires
La variable utilisée dans un champ d’un formulaire vous permet de stocker la réponse de l’apprenant, pour la réutiliser plus tard. Vous ne pouvez pas prévoir ce que l’apprenant entrera dans le formulaire, et vous devrez donc adapter votre scénario en fonction des possibilités.
Pour vous y retrouver plus facilement, il est vital de bien nommer vos variables. Par exemple, nous allons habituellement utiliser les nomenclatures suivantes :
– La variable définie dans le bloc Formulaire sera généralement appelée « réponse », car il s’agit de la réponse donnée par l’apprenant.
– Cette variable sera elle-même comparée à une autre variable, qui contient la bonne réponse attendue. Nous pouvons nommer cette deuxième variable « bonneRéponse » ou « résultat ».
Plus loin dans le scénario, ces deux variables « réponse » et « résultat » pourront ainsi être comparées dans un bloc Conditions.
3) Bien utiliser les valeurs par défaut des variables
La réponse donnée par un apprenant peut être stockée dans une variable, pour la réutiliser plus tard dans le scénario. Deux cas sont possibles : soit la variable n’existait pas avant d’être créée dans le Formulaire, soit la variable existait déjà.
Dans le cas où la variable n’existait pas avant le Formulaire, le champ utilisant cette variable n’aura aucune valeur par défaut : il sera laissé vide, à remplir par l’apprenant.
En revanche, dans si cette variable existait déjà avant d’être utilisée dans le bloc Formulaire, sa valeur sera utilisée comme valeur par défaut du champ. C’est-à-dire que le champ sera pré-rempli, ce qui peut donner des indications ou une aide à l’apprenant.
Ce graphe donne l’affichage suivant à l’ouverture du bloc Formulaire :
Ce comportement est utile aussi si le Formulaire ne sert qu’à modifier une variable existante. On retrouve ainsi directement la valeur de la variable, et il devient possible de valider le Formulaire directement pour ne rien modifier.
Ainsi, plusieurs Formulaires successifs ne devraient pas utiliser la même variable pour récupérer la réponse de l’apprenant, car chaque Formulaire afficherait par défaut la réponse saisie dans le précédent Formulaire. C’est rarement ce que l’on souhaite faire.
4) Utiliser les réponses de l’apprenant
Une fois que l’apprenant a saisi sa réponse et validé le Formulaire, il vient le moment de l’utiliser dans la suite du scénario, sinon le Formulaire n’aura servi à rien !
Si le but est uniquement d’afficher la réponse, il est possible d’insérer la variable dans un texte en utilisant des accolades. Par exemple, un bloc Message pourrait contenir le texte : « Vous avez {âge} ans. », pour afficher « Vous avez 35 ans. » selon la valeur rentrée par l’apprenant.
Si la variable est un nombre ou un Flag, il est très facile de l’utiliser directement dans un bloc Conditions par exemple : si âge < 25, alors je choisi tel embranchement, sinon je choisi tel autre.
La procédure est un peu plus subtile lorsque la réponse de l’apprenant est un texte. Plusieurs cas sont possibles. Dans chacun de ces cas, nous allons utiliser des « fonctions ». Celles-ci sont visibles dans les blocs Variables et Conditions en activant le mode « Expert » en haut à droite de ces blocs.
Ignorer les majuscules
Je souhaite valider une réponse quelles que soient les majuscules. Les réponses « PythAgOre » ou « pythagore » (avec un P minuscule) doivent être valides si je demande à l’utilisateur de rentrer le nom « Pythagore ».
Je peux pour cela utiliser la fonction toLower, qui permet de transformer un texte en minuscules.
Je m’assure ainsi qu’après le bloc Variables, la réponse sera totalement en minuscules, ce qui mer permet de la comparer avec « pythagore », plutôt que d’énumérer toutes les possibilités de majuscules dans ce mot.
Ignorer des fautes de frappe ou d’orthographe
Je souhaite maintenant autoriser une faute de frappe dans la réponse. Les réponses « Pytagore » (sans H) ou « Pithagore » (avec un I à la place du Y) doivent donc être valides, même si la réponse exacte est « Pythagore » (avec un H et un Y).
Je peux utiliser la fonction isSimilar pour vérifier si les 2 textes sont identiques à 1 modification près.
Après avoir ignoré les majuscules, je modifie donc ma condition par isSimilar(réponse, « pythagore », 1), ce qui me donne les blocs suivants :
J’ai spécifié que je n’accepte que 1 modification maximum, donc la réponse « Pitagore » par exemple ne sera pas acceptée, car elle nécessite 2 modifications pour retrouver le mot « Pythagore ».
Ignorer les mots en trop
Enfin, je souhaite peut-être vérifier si la réponse donnée contient un mot, plutôt que d’être strictement égale à ce mot.
Par exemple, l’apprenant pourrait répondre « C’est Pythagore ! », et j’aimerais que cette réponse soit valide, sans faute de frappe autorisée.
Pour faire cela, je peux utiliser la fonction contains, qui permet de vérifier si texte en contient un autre. Je modifie donc ma condition de la manière suivante : contains(réponse, « pythagore »). Comprendre : est-ce que la réponse contient le mot « pythagore » ?
Des ressources à votre disposition !
En conclusion, le bloc Variables ouvre vraiment de nouvelles opportunités pour l’apprenant comme pour le concepteur. Il nécessite une réelle méthodologie et l’utilisation de bonnes pratiques afin de simplifier au maximum votre conception. Les tutoriels et le « pack variable » sont des ressources à votre disposition pour vous aider. Si vous souhaitez être accompagné et accélérer votre montée en compétence, des formations de niveau 3 dédiées aux variables et formulaires sont aussi disponibles !