Développement web et dispositifs interactifs - produire, expliquer, sécuriser
Le domaine Développement web et dispositifs interactifs vérifie votre maîtrise du socle front-end et de la logique client-serveur : produire un document valide, accessible et responsive, ajouter une interaction, puis expliquer vos choix. Les questions portent souvent sur HTML sémantique, CSS, JavaScript/DOM, HTTP/API, sécurité et Git.
Socle technique
- HTML : structure sémantique (
header,nav,main,footer), titres hiérarchisés,labelassocié à chaque champ,altutile ou vide si décoratif,buttonpour une action etapour une navigation, attributlang. - CSS : cascade (origine, spécificité, ordre), modèle de boîte,
box-sizing, unités relatives, mobile-first, media queries. Éviter!importantcomme solution par défaut. - JavaScript :
const/let, fonctions, sélection DOM,addEventListener,preventDefault,fetchavecasync/await, vérification deresponse.ok, gestion des erreurs. Ne pas mettre la logique métier dans le HTML. - HTTP : méthodes GET, POST, PUT/PATCH, DELETE ; codes 200, 201, 204, 301, 304, 400, 401, 403, 404, 409, 422, 500. Distinguer non authentifié (401) et non autorisé (403).
- Accessibilité : principes POUR, navigation clavier, focus visible, contraste, ARIA seulement si le HTML natif ne suffit pas.
- Sécurité : validation côté serveur, échappement des sorties contre le XSS, requêtes préparées contre l’injection SQL, jeton CSRF, aucun secret dans le code client.
- Git : commits atomiques, branches, fusion, fichier
.gitignore.
Exemple raisonné
Un menu mobile est codé avec <div onclick='toggle()'> et le contenu est masqué par display:none. Le problème n’est pas seulement visuel : un div n’est pas focusable, n’a pas de rôle de bouton et ne réagit pas à Entrée ou Espace. Correction : utiliser <button aria-expanded='false' aria-controls='menu'>, garder un nav avec hidden ou inert quand il est fermé, gérer Échap et le retour du focus. Ensuite, tester au clavier et avec un lecteur d’écran. La justification doit relier chaque choix à un critère : opérabilité, annonce vocale, état perceptible.
Pièges qui coûtent des points
- Cliquer sur
divplutôt quebutton. - Utiliser un
placeholdercomme seule étiquette. - Écrire un
altégal à « image » au lieu de décrire l’information portée. - Croire que la validation HTML dispense de la validation serveur.
- Appeler
fetchsans tester le statut HTTP ni traiter l’échec. - Confondre CORS (contrôle navigateur côté serveur) et authentification.
- Empiler les identifiants et les
!importantau lieu de structurer la cascade.