Interactions entre l'homme et la machine sur le Web
Une version article du chapitre pour comprendre l'essentiel rapidement, vérifier si le niveau correspond, puis basculer vers Wilo pour la pratique guidée et le suivi.
Lecture
5 chapitres
Un parcours éditorialisé et navigable.
Pratique
12 questions
Quiz et cartes mémoire à ouvrir après la lecture.
Objectif
Première générale
Format rapide pour vérifier si le chapitre correspond.
Chapitre 1
Introduction aux Interfaces Homme-Machine (IHM) Web
Définition et rôle des IHM Web
Une Interface Homme-Machine (IHM), ou Human-Computer Interface (HCI) en anglais, est l'ensemble des moyens et des outils qui permettent à un utilisateur d'interagir avec une machine. Dans le contexte du Web, une IHM Web est spécifiquement l'interface graphique et fonctionnelle via laquelle un utilisateur communique avec un site web ou une application web. C'est ce que vous voyez, cliquez, tapez et utilisez lorsque vous naviguez sur Internet.
Le rôle principal d'une IHM Web est de faciliter l'interaction entre l'utilisateur et l'application sous-jacente. Elle doit traduire les actions de l'utilisateur en commandes compréhensibles par la machine et, inversement, présenter les informations de la machine de manière compréhensible pour l'utilisateur.
Voici les Key Concepts à retenir :
- Interface utilisateur (UI) : C'est la partie visible et interactive de l'IHM. Elle comprend les éléments graphiques (boutons, menus, champs de texte) et la manière dont ils sont organisés.
- Interaction : C'est l'échange bidirectionnel entre l'utilisateur et le système. Cela inclut les clics, les saisies au clavier, les mouvements de souris, etc., et les réponses du système (affichage, données, messages).
- Expérience utilisateur (UX) : C'est l'ensemble des émotions et perceptions d'un utilisateur avant, pendant et après l'utilisation d'un produit, d'un service ou d'un système. Une bonne UX signifie que l'interface est agréable, efficace et facile à utiliser. L'IHM est un composant majeur de l'UX.
- Accessibilité : La capacité d'une interface à être utilisée par le plus grand nombre de personnes possible, y compris celles ayant des handicaps (visuels, auditifs, moteurs, cognitifs). C'est un aspect fondamental de la conception web moderne.
Évolution des IHM Web
L'histoire du Web est relativement courte mais a connu des évolutions fulgurantes, particulièrement en ce qui concerne les IHM.
- Web statique (années 1990) : Au début, les sites web étaient principalement composés de pages HTML fixes. L'interaction était très limitée : on pouvait cliquer sur des liens pour passer d'une page à l'autre, et c'est à peu près tout. Il n'y avait pas de personnalisation ou d'interactivité en temps réel. Les sites étaient comme des brochures en ligne.
- Web dynamique (fin des années 1990 - début 2000) : L'arrivée des langages côté serveur (PHP, ASP, JSP) a permis de générer des pages HTML "à la volée" en fonction des requêtes de l'utilisateur ou des données stockées dans des bases de données. Cela a ouvert la voie aux formulaires, aux systèmes de connexion, aux forums et aux sites e-commerce. L'interaction est devenue plus riche, mais chaque action nécessitait souvent un rechargement complet de la page.
- Applications web riches (RIA - milieu des années 2000) : Des technologies comme Flash ou AJAX (Asynchronous JavaScript and XML) ont permis de créer des interfaces beaucoup plus réactives, ressemblant davantage à des applications de bureau. Les mises à jour de contenu pouvaient se faire sans recharger toute la page, améliorant considérablement la fluidité de l'expérience utilisateur.
- Web 2.0 (milieu des années 2000 et au-delà) : Ce terme désigne moins une technologie qu'une philosophie : le Web devient une plateforme collaborative où les utilisateurs sont aussi des producteurs de contenu. Les interfaces sont plus interactives, personnalisables et axées sur le partage social (blogs, wikis, réseaux sociaux). Les Key Concepts ici sont la participation utilisateur et l'interactivité avancée.
Aujourd'hui, les IHM Web sont de plus en plus complexes, réactives et intégrées, offrant des expériences presque indistinguables des applications natives installées sur un ordinateur ou un smartphone.
Principes fondamentaux de conception d'IHM
Concevoir une bonne IHM Web ne relève pas seulement de la technique, mais aussi de la psychologie et de l'art. Plusieurs principes guident les concepteurs pour créer des interfaces efficaces et agréables.
- Ergonomie : L'ergonomie vise à adapter l'outil à l'homme et non l'inverse. Une IHM ergonomique est facile à apprendre, efficace à utiliser, réduit les erreurs et procure un sentiment de satisfaction à l'utilisateur. Cela inclut la disposition des éléments, la taille des polices, les couleurs, etc.
- Simplicité : Moins, c'est souvent plus. Une interface simple est facile à comprendre et à utiliser. Elle évite la surcharge cognitive en ne présentant que les informations et les actions nécessaires à un moment donné. Évitez les fonctionnalités superflues qui pourraient distraire l'utilisateur de l'objectif principal.
- Cohérence : Les éléments de l'interface doivent se comporter de manière prévisible et uniforme. Si un bouton a une certaine apparence et fonction dans une partie du site, il devrait avoir la même apparence et fonction ailleurs. La cohérence s'applique aussi au langage utilisé, aux icônes et à la navigation. Cela réduit la charge d'apprentissage pour l'utilisateur.
- Feedback (Retour d'information) : L'utilisateur doit toujours savoir ce qui se passe. Quand il clique sur un bouton, le système doit lui indiquer que l'action a été prise en compte (par exemple, un indicateur de chargement, un message de confirmation, un changement visuel du bouton). Un manque de feedback peut laisser l'utilisateur dans l'incertitude et la frustration.
Ces principes sont essentiels pour créer des interfaces qui ne sont pas seulement fonctionnelles, mais aussi intuitives et agréables à utiliser.
Chapitre 2
Les Langages du Web pour l'IHM
HTML : Structure du contenu
HTML (HyperText Markup Language) est le langage fondamental pour définir la structure et le contenu d'une page web. Il ne s'agit pas d'un langage de programmation, mais d'un langage de balisage. Il utilise des balises pour organiser le texte, les images, les liens, les formulaires, etc.
Exemple simple de structure HTML :
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Ma première page</title>
</head>
<body>
<header>
<h1>Bienvenue sur mon site</h1>
</header>
<nav>
<ul>
<li><a href="/">Accueil</a></li>
<li><a href="/a-propos">À propos</a></li>
</ul>
</nav>
<main>
<p>Ceci est un paragraphe de contenu.</p>
<img src="image.jpg" alt="Description de l'image">
<form action="/submit" method="post">
<label for="nom">Nom :</label>
<input type="text" id="nom" name="nom">
<button type="submit">Envoyer</button>
</form>
</main>
<footer>
<p>© 2023 Mon Site</p>
</footer>
</body>
</html>
Key Concepts :
- Balises sémantiques : Des balises comme
<header>,<nav>,<main>,<article>,<section>,<footer>donnent un sens au contenu qu'elles enveloppent. Elles aident les navigateurs et les moteurs de recherche à comprendre la structure de la page, et améliorent l'accessibilité pour les lecteurs d'écran. - Arborescence DOM (Document Object Model) : Le navigateur transforme le code HTML en une structure arborescente appelée DOM. Chaque élément HTML devient un "nœud" dans cette arborescence. Le DOM permet à JavaScript d'accéder et de modifier le contenu, la structure et le style de la page.
- Formulaires : Les balises
<form>,<input>,<label>,<textarea>,<select>,<button>sont essentielles pour permettre aux utilisateurs de saisir des données et de les envoyer au serveur. - Accessibilité HTML : C'est l'utilisation correcte et sémantique des balises HTML. Par exemple, l'attribut
altpour les images fournit une description textuelle pour les utilisateurs malvoyants, et les balises<label>sont cruciales pour les champs de formulaire.
CSS : Présentation et style
CSS (Cascading Style Sheets) est le langage utilisé pour décrire la présentation et le style d'un document HTML. Il permet de contrôler les couleurs, les polices, les marges, la disposition des éléments, les animations, etc. Sans CSS, une page HTML serait simplement du texte noir sur fond blanc.
Exemple de code CSS :
body {
font-family: Arial, sans-serif;
color: #333;
margin: 0;
padding: 20px;
background-color: #f4f4f4;
}
h1 {
color: #0056b3;
text-align: center;
}
nav ul {
list-style: none;
padding: 0;
display: flex; /* Utilisation de flexbox pour la disposition */
justify-content: space-around;
}
nav a {
text-decoration: none;
color: #007bff;
padding: 10px 15px;
border: 1px solid #007bff;
border-radius: 5px;
}
@media (max-width: 768px) { /* Media query pour le design adaptatif */
nav ul {
flex-direction: column;
}
}
Key Concepts :
- Sélecteurs : Permettent de cibler des éléments HTML spécifiques pour leur appliquer des styles (ex:
ppour tous les paragraphes,#idpour un élément avec un ID spécifique,.classepour les éléments avec une classe spécifique). - Propriétés CSS : Ce sont les caractéristiques que l'on souhaite modifier (ex:
color,font-size,margin,background-color). Chaque propriété a une valeur. - Mise en page (Flexbox, Grid) : Ce sont des modules CSS modernes qui facilitent la création de mises en page complexes et réactives.
- Flexbox (Flexible Box Layout) est idéal pour la disposition d'éléments sur une seule dimension (ligne ou colonne).
- CSS Grid (Grid Layout) est parfait pour les mises en page bidimensionnelles (lignes et colonnes), comme une grille de magazine.
- Design adaptatif (Responsive Design) : C'est une approche qui vise à créer des sites web dont la mise en page et le contenu s'adaptent automatiquement à la taille de l'écran de l'appareil utilisé (ordinateur de bureau, tablette, smartphone). Cela est réalisé principalement grâce aux media queries dans CSS. Le responsive design est crucial pour une bonne UX sur tous les appareils.
JavaScript : Interactivité côté client
JavaScript est un langage de programmation qui permet de rendre les pages web interactives et dynamiques côté client (c'est-à-dire directement dans le navigateur de l'utilisateur). C'est le cerveau de l'IHM Web moderne.
Exemple de code JavaScript :
// Sélectionner un bouton par son ID
const monBouton = document.getElementById('monBouton');
const monParagraphe = document.getElementById('monParagraphe');
// Ajouter un écouteur d'événement pour un clic
monBouton.addEventListener('click', function() {
// Modifier le contenu d'un paragraphe
monParagraphe.textContent = 'Le bouton a été cliqué !';
// Changer la couleur du bouton
monBouton.style.backgroundColor = 'lightgreen';
});
// Exemple de requête asynchrone (AJAX simplifié)
async function chargerDonnees() {
try {
const reponse = await fetch('https://api.example.com/data');
const donnees = await reponse.json();
console.log('Données chargées :', donnees);
// Mettre à jour l'interface avec les données
} catch (erreur) {
console.error('Erreur lors du chargement des données :', erreur);
}
}
// Validation de formulaire simple
const formulaire = document.querySelector('form');
formulaire.addEventListener('submit', function(event) {
const champNom = document.getElementById('nom');
if (champNom.value.trim() =<mark> '') {
alert('Le champ Nom ne peut pas être vide !');
event.preventDefault(); // Empêche l'envoi du formulaire
}
});
Key Concepts :
- Manipulation du DOM : JavaScript peut accéder à n'importe quel élément de l'arborescence DOM, le modifier (son contenu, ses attributs), en créer de nouveaux ou en supprimer. C'est ainsi que JavaScript interagit avec la structure HTML.
- Gestion des événements : JavaScript permet de réagir aux actions de l'utilisateur (clics, survol de souris, saisie au clavier, soumission de formulaire) ou à d'autres événements (chargement de page). On attache des "écouteurs d'événements" aux éléments.
- Requêtes asynchrones (AJAX) : AJAX (Asynchronous JavaScript and XML, bien que JSON soit plus courant aujourd'hui) permet d'envoyer et de recevoir des données d'un serveur sans recharger la page entière. Cela rend les applications web beaucoup plus fluides et réactives, car l'utilisateur n'a pas à attendre un rechargement complet pour chaque interaction. C'est la base des applications web modernes.==
- Validation de formulaires : JavaScript est couramment utilisé pour valider les données saisies par l'utilisateur dans un formulaire avant de les envoyer au serveur. Cela permet de donner un feedback immédiat à l'utilisateur et de réduire la charge sur le serveur.
Chapitre 3
Modèles d'Interaction et Composants d'IHM
Éléments interactifs standards
Ce sont les blocs de construction de base de toute interface utilisateur. Leur conception et leur comportement doivent être intuitifs.
- Boutons : Permettent de déclencher une action spécifique (envoyer un formulaire, ouvrir une fenêtre, etc.). Ils doivent être clairement identifiables et leur texte doit indiquer l'action.
- Champs de saisie (inputs) :
<input type="text">,<input type="email">,<input type="password">,<textarea>. Permettent à l'utilisateur de taper du texte, chiffres, etc. Lesplaceholders(texte indicatif dans le champ) et leslabels(étiquettes descriptives) améliorent leur utilisation. - Menus déroulants (select) :
<select>et<option>. Permettent de choisir une option parmi une liste prédéfinie. Utiles quand le nombre d'options est modéré. - Cases à cocher (checkboxes) :
<input type="checkbox">. Permettent de sélectionner une ou plusieurs options dans une liste. - Boutons radio (radio buttons) :
<input type="radio">. Permettent de sélectionner une seule option parmi un groupe d'options mutuellement exclusives.
Il est crucial de bien choisir l'élément interactif le plus approprié pour chaque situation afin d'optimiser l'expérience utilisateur.
Navigation et organisation de l'information
La manière dont l'information est structurée et présentée est essentielle pour que l'utilisateur puisse trouver ce qu'il cherche.
- Barres de navigation (Navbars) : Souvent en haut de la page, elles contiennent les liens principaux vers les différentes sections du site. Elles doivent être claires et cohérentes sur toutes les pages.
- Fil d'Ariane (Breadcrumbs) : Une ligne de liens qui indique la position actuelle de l'utilisateur dans la hiérarchie du site (ex:
Accueil > Catégorie > Produit). C'est un excellent moyen d'aider l'utilisateur à se repérer. - Pagination : Utilisée pour diviser de grandes listes de contenu en plusieurs pages (ex: articles de blog, résultats de recherche). Elle permet de ne pas surcharger la page et de naviguer entre les pages.
- Recherche : Un champ de recherche est indispensable pour les sites avec beaucoup de contenu. Il permet aux utilisateurs de trouver rapidement des informations spécifiques. Une bonne recherche inclut des suggestions automatiques et une gestion des fautes de frappe.
Feedback utilisateur et gestion des erreurs
Un bon feedback est la clé d'une interaction réussie. L'utilisateur doit toujours être informé de l'état du système.
- Messages d'erreur : Quand quelque chose ne va pas (ex: formulaire mal rempli, connexion échouée), des messages d'erreur clairs et concis doivent apparaître. Ils doivent expliquer le problème et proposer une solution.
- Indicateurs de chargement (Loaders) : Lors d'opérations qui prennent du temps (envoi de données, chargement de contenu), un indicateur visuel (roue qui tourne, barre de progression) rassure l'utilisateur et lui montre que le système n'est pas figé.
- Notifications : Petits messages non intrusifs qui informent l'utilisateur d'un événement (ex: "Article ajouté au panier", "Votre message a été envoyé").
- Confirmation d'action : Après une action importante (suppression d'un élément, envoi d'une commande), une confirmation visuelle ou un message explicite est essentiel pour rassurer l'utilisateur.
Chapitre 4
Communication Client-Serveur et Persistance des Données
Le protocole HTTP et les requêtes Web
HTTP (HyperText Transfer Protocol) est le protocole de communication utilisé pour le World Wide Web. C'est le langage que les navigateurs et les serveurs web utilisent pour échanger des informations.
- Requêtes GET/POST : Ce sont les deux méthodes HTTP les plus courantes :
- GET : Utilisée pour demander des données au serveur. Les paramètres sont encodés directement dans l'URL (ex:
site.com/recherche?query=NSI). Les requêtes GET sont idempotentes (plusieurs requêtes identiques n'ont pas d'effet supplémentaire) et peuvent être mises en cache. - POST : Utilisée pour envoyer des données au serveur, généralement pour créer ou modifier des ressources. Les données sont envoyées dans le corps de la requête, ce qui les rend moins visibles et permet d'envoyer de plus grandes quantités d'informations (ex: soumission de formulaire avec un mot de passe). Les requêtes POST ne sont pas idempotentes.
- GET : Utilisée pour demander des données au serveur. Les paramètres sont encodés directement dans l'URL (ex:
- Codes de statut HTTP : Le serveur répond à chaque requête HTTP avec un code de statut à trois chiffres, indiquant le résultat de la requête :
200 OK: La requête a réussi.404 Not Found: La ressource demandée n'existe pas.500 Internal Server Error: Erreur côté serveur.301 Moved Permanently: Redirection permanente.
- En-têtes HTTP : Des informations supplémentaires sont envoyées avec la requête et la réponse (ex: type de contenu, informations d'authentification, préférences linguistiques).
- URL (Uniform Resource Locator) : L'adresse unique d'une ressource sur le Web. Elle se compose du protocole, du nom de domaine, du chemin et éventuellement de paramètres.
Échanges de données : JSON et XML
Lorsque le client et le serveur communiquent, ils échangent souvent des données structurées. Les formats les plus courants sont JSON et XML.
- Format JSON (JavaScript Object Notation) : C'est un format léger et lisible par l'homme pour représenter des données structurées. Il est très proche de la syntaxe des objets JavaScript, ce qui le rend très populaire pour les applications web.
{ "nom": "Dupont", "prenom": "Jean", "age": 30, "estEtudiant": false, "cours": ["NSI", "Maths", "Anglais"] } - Format XML (eXtensible Markup Language) : Un format de balisage plus ancien et plus verbeux que JSON, mais toujours utilisé dans certains contextes, notamment pour les services web (SOAP).
<utilisateur> <nom>Dupont</nom> <prenom>Jean</prenom> <age>30</age> <estEtudiant>false</estEtudiant> <cours> <matiere>NSI</matiere> <matiere>Maths</matiere> <matiere>Anglais</matiere> </cours> </utilisateur> - Sérialisation : Le processus de conversion d'une structure de données (ex: un objet JavaScript) en un format qui peut être stocké ou transmis (ex: une chaîne JSON).
- Désérialisation : Le processus inverse, où une chaîne de caractères (JSON, XML) est convertie en une structure de données utilisable par le programme.
Gestion de l'état et persistance côté client
Les applications web modernes ont souvent besoin de stocker des informations côté client pour améliorer l'expérience utilisateur ou maintenir un état entre les sessions.
- Cookies : Petits fichiers texte stockés par le navigateur sur l'ordinateur de l'utilisateur. Ils sont principalement utilisés pour :
- Garder une session active (se souvenir que l'utilisateur est connecté).
- Personnaliser l'expérience (préférences linguistiques, thème).
- Suivre l'activité de l'utilisateur (pour l'analyse ou la publicité). Les cookies ont une taille limitée (environ 4KB) et sont envoyés avec chaque requête HTTP au serveur.
- LocalStorage : Permet de stocker de grandes quantités de données (environ 5-10 MB) de manière persistante côté client, sans limite de temps. Les données restent même après la fermeture du navigateur. Elles ne sont pas envoyées au serveur avec chaque requête.
localStorage.setItem('nomUtilisateur', 'Alice'); const nom = localStorage.getItem('nomUtilisateur'); // 'Alice' - SessionStorage : Similaire à LocalStorage, mais les données ne sont conservées que pour la durée de la session du navigateur (tant que l'onglet ou la fenêtre est ouvert). Si l'utilisateur ferme l'onglet, les données sont perdues.
sessionStorage.setItem('panierId', 'xyz123'); - Sécurité des données : Le stockage côté client doit être utilisé avec prudence. Les informations sensibles (mots de passe, données personnelles) ne doivent jamais être stockées directement côté client sans chiffrement ou tokenisation. Les cookies peuvent être vulnérables aux attaques XSS s'ils ne sont pas sécurisés (HttpOnly).
Chapitre 5
Sécurité et Accessibilité des IHM Web
Principes de sécurité des IHM Web
Les IHM Web sont souvent le point d'entrée des attaques. Il est crucial de les concevoir en tenant compte des menaces.
- Injection SQL : Consiste à insérer du code SQL malveillant dans les champs de saisie d'un formulaire pour manipuler la base de données du serveur. Par exemple, entrer
' OR '1'='1dans un champ de mot de passe peut contourner l'authentification.- Prévention : Utilisation de requêtes préparées ou d'échappement des caractères spéciaux.
- Cross-Site Scripting (XSS) : Une attaque où du code JavaScript malveillant est injecté dans une page web vue par d'autres utilisateurs. Ce code peut voler des cookies, défigurer le site, ou rediriger les utilisateurs.
- Prévention : Filtrage et échappement des entrées utilisateur avant de les afficher sur la page.
- Authentification : Le processus de vérification de l'identité d'un utilisateur (qui êtes-vous ?). Cela se fait généralement via un nom d'utilisateur et un mot de passe.
- Bonnes pratiques : Hachage des mots de passe avec des algorithmes robustes (ex: Argon2, bcrypt), utilisation de l'authentification multi-facteurs (MFA).
- Autorisation : Le processus de détermination de ce qu'un utilisateur authentifié est autorisé à faire (quelles ressources pouvez-vous accéder ?).
- Bonnes pratiques : Mettre en place des rôles et des permissions, vérifier les droits d'accès côté serveur pour chaque action critique.
La sécurité est une responsabilité partagée entre le client et le serveur, mais l'IHM joue un rôle crucial dans la prévention des vulnérabilités.
Accessibilité numérique (RGAA)
L'accessibilité numérique est la capacité d'une interface à être utilisée par le plus grand nombre de personnes possible, y compris celles qui ont des handicaps. En France, le RGAA (Référentiel Général d'Amélioration de l'Accessibilité) fixe les règles à suivre pour les sites web publics.
- Handicap visuel : Inclut la cécité, la malvoyance, le daltonisme.
- Solutions : Texte alternatif pour les images (
alt), contraste suffisant entre le texte et l'arrière-plan, navigation au clavier, compatibilité avec les lecteurs d'écran.
- Solutions : Texte alternatif pour les images (
- Handicap moteur : Difficulté ou impossibilité d'utiliser une souris ou un clavier standard.
- Solutions : Navigation entièrement au clavier (touche
Tab), zones cliquables suffisamment grandes, compatibilité avec les technologies d'assistance (contacteurs, commandes vocales).
- Solutions : Navigation entièrement au clavier (touche
- Lecteurs d'écran : Logiciels qui lisent à voix haute le contenu des pages web pour les personnes malvoyantes ou aveugles. Ils s'appuient sur la structure sémantique du HTML.
- Contraste des couleurs : Un contraste suffisant entre le texte et son arrière-plan est essentiel pour la lisibilité, notamment pour les personnes malvoyantes ou daltoniennes. Des outils existent pour vérifier les ratios de contraste.
Bonnes pratiques de développement sécurisé et accessible
Intégrer la sécurité et l'accessibilité dès le début du processus de développement est beaucoup plus efficace que d'essayer de les ajouter après coup.
- Validation des entrées : Toujours valider les données saisies par l'utilisateur, à la fois côté client (pour un feedback immédiat) et surtout côté serveur (car la validation côté client peut être contournée). Cela permet de prévenir les injections et les données invalides.
- HTTPS : Utiliser toujours le protocole HTTPS (HTTP Secure) pour chiffrer les communications entre le navigateur et le serveur. Cela protège les données en transit contre l'interception et la falsification.
- ARIA (Accessible Rich Internet Applications) : Un ensemble d'attributs HTML qui permettent d'ajouter des informations sémantiques aux éléments d'interface non standards ou dynamiques. Ces attributs aident les technologies d'assistance (comme les lecteurs d'écran) à mieux comprendre et interagir avec les composants complexes.
- Exemple :
<div role="button" aria-label="Fermer la fenêtre modale">X</div>
- Exemple :
- Tests d'accessibilité : Utiliser des outils automatisés (comme Lighthouse, Axe) et effectuer des tests manuels (navigation au clavier, test avec un lecteur d'écran) pour identifier et corriger les problèmes d'accessibilité. La participation de personnes en situation de handicap aux tests est également très précieuse.
En résumé, la création d'IHM Web efficaces et responsables exige une maîtrise technique des langages du Web, une compréhension des principes de conception centrés sur l'utilisateur, et une vigilance constante en matière de sécurité et d'accessibilité.
Après la lecture
Passe à la pratique avec deux blocs bien visibles
Une fois le cours lu, ouvre soit le quiz pour vérifier la compréhension, soit les flashcards pour mémoriser les idées importantes. Les deux s'ouvrent dans une fenêtre dédiée.
Suite naturelle
Tu veux aller plus loin que l'article ?
Retrouve le même chapitre dans Wilo avec la suite des questions, la répétition espacée, les corrigés complets et une progression suivie dans le temps.