Tâche Questionnaire
Version : v1 (actuelle)
Un outil flexible d'enquête et d'évaluation pour collecter des données autodéclarées, des informations démographiques et des réponses structurées auprès des participants.
Vue d'ensemble
La tâche Questionnaire fournit un système complet pour administrer des enquêtes, des évaluations psychologiques, des formulaires démographiques et toute collecte structurée de réponses des participants. Elle prend en charge plusieurs types de questions (choix multiples, échelles, saisie de texte, etc.), la logique conditionnelle, les règles de validation et le branchement.
Contrairement aux tâches comportementales qui mesurent la performance, les questionnaires capturent les expériences subjectives, les informations personnelles, les attitudes, les symptômes et les caractéristiques autodéclarées. Ils sont essentiels pour corréler les données comportementales avec les différences individuelles, filtrer les participants et collecter des informations contextuelles.
La tâche est couramment utilisée pour :
- Enquêtes démographiques : Âge, éducation, langue, antécédents médicaux
- Évaluations psychologiques : Dépression (BDI), anxiété (GAD-7), personnalité (Big Five)
- Évaluations de tâche : Difficulté, effort, motivation, utilisation de stratégies
- Filtrage : Critères d'éligibilité, facteurs d'exclusion
- Vérifications de manipulation : Vérifier que les manipulations expérimentales ont fonctionné
- Debriefing : Expérience et commentaires post-étude
Pourquoi les chercheurs utilisent cette tâche
- Différences individuelles : Corréler la performance aux tâches avec les traits, les symptômes, les données démographiques
- Caractérisation des participants : Décrire les caractéristiques de l'échantillon
- Filtrage : Déterminer l'éligibilité ou l'assignation à un groupe
- Expérience subjective : Capturer les évaluations de difficulté, de confiance, d'engagement
- Échelles validées : Administrer des évaluations psychologiques standardisées
- Méthodes mixtes : Combiner le comportement quantitatif avec l'autodéclaration qualitative
État actuel de l'implémentation
Entièrement implémenté :
- ✅ 12 types de questions (QCM, échelle, texte, sélection multiple, curseur/EAV, matrice/grille, classement, choix par image, dichotomique, date, numérique, zone de texte)
- ✅ Questions obligatoires et optionnelles
- ✅ Règles de validation (min/max, min_length/max_length, expressions régulières)
- ✅ Logique d'affichage conditionnel (schémas de saut avec opérateur 'eq')
- ✅ Questionnaires multi-pages avec questions_per_page
- ✅ Suivi de la progression (show_progress, show_question_numbers)
- ✅ Ordre aléatoire des questions (randomize_questions)
- ✅ Support RTL pour les langues de droite à gauche
- ✅ Exportation des données en format structuré (JSON complet + CSV aplati)
- ✅ Temps de réponse (latency_ms, display_duration_ms)
- ✅ Options avec image_url pour choix par image
- ✅ Items de matrice et de classement
- ✅ Modèles de questionnaires (templates)
- ✅ Importation/Exportation de configurations
- ✅ Clés de méta-traduction personnalisables
Paramètres de configuration
Structure du questionnaire
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
title | string | '' | Titre du questionnaire |
description | string | '' | Description/instructions optionnelles |
questions | array | [] | Tableau d'objets de questions |
show_progress | boolean | true | Afficher la barre de progression |
show_question_numbers | boolean | true | Afficher les numéros de questions |
questions_per_page | number | 0 | Questions par page (0 = toutes sur une page) |
randomize_questions | boolean | false | Ordre aléatoire des questions |
Structure de l'objet Question
{
id: "q1", // Identifiant unique
type: "mcq", // Type de question
text: "Quelle est votre tranche d'âge ?", // Texte de la question
options: ["18-25", "26-35", ...], // Pour QCM/sélection multiple
required: true, // Doit être répondu
min: 1, // Min pour scale/numeric
max: 7, // Max pour scale/numeric
scale_labels: ["Pas du tout", ...], // Étiquettes pour échelle (array)
min_length: 10, // Longueur min pour text/textarea
max_length: 500, // Longueur max pour text/textarea
items: ["Item 1", "Item 2"], // Items pour matrix/ranking
condition: { // Logique conditionnelle
question_id: "q0",
operator: "eq",
value: "Yes"
}
}
Types de questions
| Type | Description | Format de réponse |
|---|---|---|
scale | Échelle Likert ou de notation numérique | Nombre |
numeric | Saisie numérique | Nombre |
text | Saisie de texte libre (court) | Chaîne |
textarea | Texte long | Chaîne |
mcq | Choix multiples (sélection unique) | Chaîne (option sélectionnée) |
multi | Cocher plusieurs options | Tableau de chaînes |
dichotomous | Question oui/non | Chaîne ("Yes"/"No") |
date | Sélecteur de date | Chaîne de date |
slider | Curseur / Échelle analogique visuelle (EAV) | Nombre |
matrix | Matrice / Grille de questions | Objet {item: valeur} |
ranking | Classement d'items | Tableau de chaînes (ordre de classement) |
image_choice | Choix par image | Chaîne (option sélectionnée) |
Options avec images
Pour les questions de type image_choice, les options peuvent inclure des URLs d'images :
{
id: "q1",
type: "image_choice",
text: "Quelle image vous plaît le plus ?",
options: [
{ text: "Option A", image_url: "https://..." },
{ text: "Option B", image_url: "https://..." }
]
}
Paramètres de présentation
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
show_progress | boolean | true | Afficher la barre de progression |
show_question_numbers | boolean | true | Afficher les numéros de questions |
questions_per_page | number | 0 | Questions par page (0 = toutes) |
randomize_questions | boolean | false | Ordre aléatoire des questions |
Clés de méta-traduction
Les textes de l'interface utilisateur peuvent être personnalisés via les clés de méta-traduction :
| Clé | Défaut (EN) | Défaut (FR) | Utilisation |
|---|---|---|---|
questionnaire_submit | "Submit" | "Soumettre" | Bouton de soumission |
questionnaire_previous | "Previous" | "Précédent" | Bouton page précédente |
questionnaire_required_indicator | "* Required" | "* Obligatoire" | Indicateur de champ obligatoire |
questionnaire_yes | "Yes" | "Oui" | Option oui (dichotomous) |
questionnaire_no | "No" | "Non" | Option non (dichotomous) |
questionnaire_required_fields_error | "Please answer all required questions" | "Veuillez répondre à toutes les questions obligatoires" | Message d'erreur |
questionnaire_progress | "Question {current} of {total}" | "Question {current} sur {total}" | Barre de progression |
Données en sortie
Marqueurs et Réponses
La tâche enregistre plusieurs marqueurs pendant le questionnaire et un objet de réponse par question lors de la soumission.
Marqueurs (questionnaire_order) :
{
"type": "questionnaire_order",
"ts": "2024-01-01T00:00:01.000Z",
"hr": 1234.56,
"data": {
"order": ["q1", "q2", "q3"]
}
}
Marqueurs (stimulus_shown) :
{
"type": "stimulus_shown",
"ts": "2024-01-01T00:00:01.000Z",
"hr": 1234.56,
"data": {
"order": ["q1", "q2", "q3"]
}
}
Marqueurs additionnels enregistrés via la base de marqueurs de la tâche :
{task}_q{N}-- Participant a interagi avec la question N (base 1){task}_q{N}_o{M}-- Participant a sélectionné l'option M (base 1) à la question N (pour les types de questions à options)
Marqueurs (questionnaire_submitted) :
{
"type": "questionnaire_submitted",
"ts": "2024-01-01T00:00:30.000Z",
"hr": 30234.56
}
Données de réponse (une par question lors de la soumission) :
{
"id": "q1",
"marker": "task_0_q1",
"index": 0,
"type": "scale",
"value": 4,
"latency_ms": 3450,
"display_duration_ms": 3450
}
| Champ | Type | Description |
|---|---|---|
id | string | Identifiant de question (ex: "q1") |
marker | string | Chaîne de marqueur de question |
index | number | Index d'affichage de la question (base 0) |
type | string | Type de question ("scale", "mcq", "multi", "text", "textarea", "numeric", "dichotomous", "slider", "matrix", "ranking", "image_choice", "date") |
value | varies | Réponse du participant (nombre pour scale, chaîne pour mcq/text, tableau de chaînes pour multi, objet pour matrix) |
latency_ms | number | Temps de réponse en millisecondes |
display_duration_ms | number | Durée d'affichage de la question en millisecondes |
Artefacts de synthèse
Artefact complet (questionnaire_{index}.json) avec toutes les données du questionnaire :
{
"title": "Titre de l'enquête",
"answers": {
"q1": 4,
"q2": "Yes",
"q3": ["Option A", "Option B"]
},
"questions": [],
"order": ["q1", "q2", "q3"]
}
Artefact CSV aplati (questionnaire_flat_{index}.json) prêt pour l'exportation CSV :
{
"q1": 4,
"q2": "Yes",
"q3": "Option A;Option B",
"q1_latency_ms": 3450,
"q2_latency_ms": 2100,
"q3_latency_ms": 4200
}
Exemples de questionnaires
Enquête démographique
{
title: "Informations de base",
questions: [
{
id: "age",
type: "numeric",
text: "Quel est votre âge ?",
required: true,
min: 18,
max: 100
},
{
id: "gender",
type: "mcq",
text: "Genre",
options: ["Homme", "Femme", "Non-binaire", "Préfère ne pas répondre"],
required: true
},
{
id: "education",
type: "mcq",
text: "Niveau d'éducation le plus élevé complété",
options: [
"Moins que le secondaire",
"Diplôme d'études secondaires",
"Études collégiales partielles",
"Diplôme d'associé",
"Baccalauréat",
"Maîtrise",
"Doctorat"
],
required: true
},
{
id: "handedness",
type: "mcq",
text: "Quelle main utilisez-vous principalement pour écrire ?",
options: ["Droite", "Gauche", "Les deux également"],
required: true
}
]
}
Évaluations post-tâche
{
title: "Expérience de la tâche",
description: "Veuillez évaluer votre expérience avec la tâche que vous venez de compléter.",
questions: [
{
id: "difficulty",
type: "scale",
text: "Comment avez-vous trouvé la tâche difficile ?",
min: 1,
max: 7,
scale_labels: ["Très facile", "", "", "", "", "", "Très difficile"],
required: true
},
{
id: "effort",
type: "scale",
text: "Combien d'effort avez-vous mis dans la tâche ?",
min: 1,
max: 7,
scale_labels: ["Effort minimal", "", "", "", "", "", "Effort maximal"],
required: true
},
{
id: "strategy",
type: "textarea",
text: "Veuillez décrire toute stratégie que vous avez utilisée pour compléter la tâche.",
required: false,
placeholder: "Tapez votre réponse ici...",
min_length: 10,
max_length: 500
}
]
}
Questionnaire de filtrage avec logique conditionnelle
{
title: "Filtrage d'éligibilité",
questions: [
{
id: "color_vision",
type: "dichotomous",
text: "Avez-vous une vision des couleurs normale ou corrigée à la normale ?",
required: true
},
{
id: "color_deficiency_type",
type: "mcq",
text: "Quel type de déficience de vision des couleurs avez-vous ?",
options: ["Rouge-vert", "Bleu-jaune", "Daltonisme complet", "Incertain"],
required: true,
condition: {
question_id: "color_vision",
operator: "eq",
value: "No"
}
},
{
id: "vision_correction",
type: "dichotomous",
text: "Portez-vous des lunettes ou des lentilles de contact ?",
required: true
},
{
id: "wearing_correction",
type: "dichotomous",
text: "Portez-vous vos lunettes/lentilles en ce moment ?",
required: true,
condition: {
question_id: "vision_correction",
operator: "eq",
value: "Yes"
}
}
]
}
Échelle psychologique validée (GAD-7 simplifié)
{
title: "Échelle de trouble d'anxiété généralisée à 7 items (GAD-7)",
description: "Au cours des 2 dernières semaines, à quelle fréquence avez-vous été dérangé(e) par les problèmes suivants ?",
questions: [
{
id: "gad1",
type: "scale",
text: "Se sentir nerveux(se), anxieux(se) ou à cran",
min: 0,
max: 3,
scale_labels: ["Pas du tout", "Plusieurs jours", "Plus de la moitié des jours", "Presque tous les jours"],
required: true
},
{
id: "gad2",
type: "scale",
text: "Ne pas pouvoir arrêter ou contrôler l'inquiétude",
min: 0,
max: 3,
scale_labels: ["Pas du tout", "Plusieurs jours", "Plus de la moitié des jours", "Presque tous les jours"],
required: true
}
// ... items GAD-7 restants
]
}
Exemple de matrice/grille
{
title: "Évaluation de satisfaction",
questions: [
{
id: "satisfaction",
type: "matrix",
text: "Veuillez évaluer votre satisfaction pour chaque aspect :",
items: [
"Qualité du contenu",
"Facilité d'utilisation",
"Support technique",
"Rapport qualité-prix"
],
min: 1,
max: 5,
scale_labels: ["Très insatisfait", "Insatisfait", "Neutre", "Satisfait", "Très satisfait"],
required: true
}
]
}
Exemple de classement
{
title: "Préférences",
questions: [
{
id: "priorities",
type: "ranking",
text: "Classez les éléments suivants par ordre d'importance (1 = le plus important) :",
items: [
"Salaire",
"Équilibre travail-vie",
"Opportunités d'avancement",
"Culture d'entreprise",
"Lieu de travail"
],
required: true
}
]
}
Exemple de choix par image
{
title: "Reconnaissance d'émotions",
questions: [
{
id: "emotion",
type: "image_choice",
text: "Quelle émotion cette personne exprime-t-elle ?",
options: [
{ text: "Joie", image_url: "https://exemple.com/joie.jpg" },
{ text: "Tristesse", image_url: "https://exemple.com/tristesse.jpg" },
{ text: "Colère", image_url: "https://exemple.com/colere.jpg" },
{ text: "Surprise", image_url: "https://exemple.com/surprise.jpg" }
],
required: true
}
]
}
Recommandations de conception
Conception des questions
- Clarté : Utiliser un langage simple et sans ambiguïté
- Neutralité : Éviter les questions orientées ou suggestives
- Concept unique : Une seule question par item (éviter les questions à double sens)
- Options de réponse : Mutuellement exclusives et exhaustives
- Sujets sensibles : Inclure l'option "Préfère ne pas répondre"
Conception des échelles
- Impair vs. pair : Les échelles impaires permettent un point neutre central ; les paires forcent une direction
- Ancres : Étiqueter clairement les extrémités ; optionnellement étiqueter tous les points
- Étendue : 5-7 points typique pour Likert ; 0-10 pour les échelles de douleur/difficulté
- Directionnalité : Maintenir une direction cohérente (élevé = plus du construit)
Longueur du questionnaire
- Temps de complétion : Viser <10 minutes pour les échantillons non cliniques
- Nombre de questions : 15-30 questions typique ; >50 risque la fatigue
- Pages : Diviser en 3-5 pages pour une meilleure expérience
- Barre de progression : Aide les taux de complétion, particulièrement pour les enquêtes longues
Obligatoire vs. optionnel
- Données démographiques : L'âge et le genre sont souvent obligatoires pour l'analyse
- Filtrage : Les critères d'éligibilité doivent être obligatoires
- Expérience : Les évaluations post-tâche peuvent être optionnelles
- Sensible : La santé et les revenus sont souvent préférables en optionnel
Problèmes courants et solutions
| Problème | Solution |
|---|---|
| Faibles taux de complétion | Raccourcir le questionnaire ; rendre les questions optionnelles vraiment optionnelles |
| Réponses linéaires (même réponse répétée) | Inverser le codage de certains items ; inclure des vérifications d'attention |
| Données manquantes sur les variables clés | Rendre les questions critiques obligatoires avec des instructions claires |
| Biais de réponse (désirabilité sociale) | Assurer l'anonymat ; utiliser des échelles validées ; envisager des formats à choix forcé |
| Les participants répondent trop vite | Ajouter des horodatages ; signaler les complétions suspectes (<2 s/question) |
| Confusion sur les échelles | Fournir des ancres et des exemples clairs |
Intégration d'échelles validées
Lors de l'utilisation d'échelles psychologiques validées :
- Permission : S'assurer d'avoir les droits d'utilisation de l'échelle
- Formulation exacte : Utiliser le texte verbatim des questions et des options de réponse
- Notation : Suivre les algorithmes de notation publiés
- Interprétation : Utiliser les normes et les seuils publiés
- Citation : Citer l'article original de développement de l'échelle
Échelles validées courantes :
- Dépression : PHQ-9, BDI-II, CES-D
- Anxiété : GAD-7, STAI, BAI
- Personnalité : Big Five Inventory (BFI), HEXACO
- Plaintes cognitives : Cognitive Failures Questionnaire (CFQ)
- Sommeil : Pittsburgh Sleep Quality Index (PSQI)
Considérations pour l'analyse des données
Quantitatif :
- Calculer les scores d'échelle (somme, moyenne ou pondérée)
- Tester la cohérence interne (alpha de Cronbach)
- Corréler avec les mesures comportementales
- Différences entre groupes (tests t, ANOVA)
Qualitatif (questions ouvertes) :
- Analyse thématique des réponses textuelles
- Codage de contenu
- Analyse de fréquence de mots / analyse de sentiment
Données manquantes :
- Rapporter les taux de manquant
- Utiliser une imputation appropriée si nécessaire (moyenne, régression, imputation multiple)
- Considérer la suppression par liste vs. par paire
Références
Les questionnaires sont des outils généraux ; les références dépendent des échelles spécifiques utilisées. Pour la conception de questionnaires :
-
Krosnick, J. A., & Presser, S. (2010). Question and questionnaire design. In P. V. Marsden & J. D. Wright (Eds.), Handbook of Survey Research (2nd ed., pp. 263-313). Emerald Group Publishing.
-
DeVellis, R. F. (2016). Scale Development: Theory and Applications (4th ed.). SAGE Publications.
Pour les échelles validées spécifiques, citer l'article de développement original (p. ex., Spitzer et al., 2006 pour le GAD-7).
Voir aussi
- Instructions - Pour présenter des informations sans collecter de réponses