Afficher la table des matières Masquer la table des matières
- Recette simple de tarte tomate moutarde pour l’été — ingrédients et timing
- Étapes claires pour réussir la pâte et éviter qu’elle ne se détrempe
- Quizz : Cette Tarte à la Tomate et Moutarde
- Résultat
- ${q.text} Choisissez une réponse puis appuyez sur Entrée ou cliquez sur une option. ${q.options.map(opt => ` ${opt.text} Sélectionner `).join("")} `; // Activer/désactiver boutons de navigation prevBtn.disabled = currentIndex === 0; nextBtn.textContent = (currentIndex === questions.length - 1) ? "Terminer" : TEXTS.NEXT; // Réinitialiser summary si visible summary.classList.add("hidden"); // Attacher gestionnaires aux options attachOptionHandlers(); // Mettre le focus sur la liste pour navigation clavier const optionsList = document.getElementById("options-list"); optionsList.focus(); } /* Attache click + keyboard aux boutons d'option */ function attachOptionHandlers() { const optionButtons = Array.from(document.querySelectorAll(".option-btn")); const optionsList = document.getElementById("options-list"); let focusedIndex = 0; // Si l'utilisateur avait déjà répondu, afficher le feedback const prevChoice = userAnswers[currentIndex]; if (prevChoice) { // Affiche le feedback enregistré const chosenEl = optionButtons.find(b => b.dataset.option === prevChoice); if (chosenEl) showFeedbackForChoice(chosenEl); } optionButtons.forEach((btn, idx) => { // Clic sur option btn.addEventListener("click", () => { handleChoice(btn); // rendre focus clair btn.focus(); }); // Styles d'état sélectionné pour ARIA btn.setAttribute("tabindex", "-1"); }); // Navigation clavier : flèches pour se déplacer, Entrée pour valider optionsList.addEventListener("keydown", (ev) => { const max = optionButtons.length - 1; if (ev.key === "ArrowDown") { ev.preventDefault(); focusedIndex = Math.min(max, focusedIndex + 1); optionButtons[focusedIndex].focus(); } else if (ev.key === "ArrowUp") { ev.preventDefault(); focusedIndex = Math.max(0, focusedIndex - 1); optionButtons[focusedIndex].focus(); } else if (ev.key === "Enter" || ev.key === " ") { ev.preventDefault(); // Trouver celui qui a le focus const active = document.activeElement; if (active && active.classList.contains("option-btn")) { handleChoice(active); } else { // Si focus sur liste mais pas sur option, valider l'option 0 optionButtons[focusedIndex].click(); } } }); } /* Gère le choix de l'utilisateur pour une option */ function handleChoice(btn) { const optionId = btn.dataset.option; const q = questions[currentIndex]; // Trouver l'objet option const opt = q.options.find(o => o.id === optionId); // Enregistrer la réponse (remplace si l'utilisateur modifie) const prevAnswer = userAnswers[currentIndex]; userAnswers[currentIndex] = optionId; // Mettre à jour le score uniquement si la réponse est corrigée maintenant // Pour simplifier, on récompense une question une seule fois : si la réponse change, on recalcule le score complet recalcScore(); // Afficher feedback visuel showFeedbackForChoice(btn, opt); } /* Affiche le feedback (correct/incorrect) et l'explication */ function showFeedbackForChoice(btn, opt) { const q = questions[currentIndex]; // Marquer visuellement toutes les options limité pour éviter multiples choix falses const optionButtons = Array.from(document.querySelectorAll(".option-btn")); optionButtons.forEach(b => { b.disabled = true; b.classList.remove("option-correct", "option-wrong"); b.setAttribute("aria-disabled", "true"); }); // Trouver l'option correcte pour indiquer const correctOpt = q.options.find(o => o.correct); optionButtons.forEach(b => { const id = b.dataset.option; if (id === correctOpt.id) { b.classList.add("option-correct", "border-2"); } if (userAnswers[currentIndex] && id === userAnswers[currentIndex] && id !== correctOpt.id) { b.classList.add("option-wrong", "border-2"); } }); // Feedback textuel et explication const feedbackEl = document.getElementById("feedback"); const chosen = q.options.find(o => o.id === userAnswers[currentIndex]); const isCorrect = chosen && chosen.correct; feedbackEl.innerHTML = ` ${isCorrect ? 'Bonne réponse !' : 'Ce n’est pas tout à fait ça.'} ${chosen ? chosen.explication : ''} Indice : réponse correcte — ${correctOpt.text} `; // Mettre à jour progression visuelle et score progressBar.style.width = `${Math.round(((currentIndex + 1) / questions.length) * 100)}%`; scoreText.textContent = `${TEXTS.SCORE_PREFIX}${score}`; } /* Recalcule le score total selon userAnswers */ function recalcScore() { let s = 0; userAnswers.forEach((ans, idx) => { if (!ans) return; const q = questions[idx]; const chosen = q.options.find(o => o.id === ans); if (chosen && chosen.correct) s++; }); score = s; } /* Affiche le résumé final détaillé */ function showSummary() { recalcScore(); finalScore.textContent = TEXTS.FINAL(score); detailedAnswers.innerHTML = ""; questions.forEach((q, idx) => { const userAns = userAnswers[idx]; const chosen = q.options.find(o => o.id === userAns); const correct = q.options.find(o => o.correct); const ok = chosen && chosen.correct; const entry = document.createElement("div"); entry.className = "p-2 rounded explication"; entry.innerHTML = ` ${q.text} ${ok ? '✔️ Réponse correcte' : '❌ Réponse incorrecte'} ${ok ? '✅' : '➡️'} Votre réponse : ${chosen ? chosen.text : 'Aucune réponse'} Bonne réponse : ${correct.text} ${correct.explication} `; detailedAnswers.appendChild(entry); }); // Afficher la section résumé et masquer la zone question si vous le souhaitez summary.classList.remove("hidden"); } /* ========== Événements navigation ========== */ nextBtn.addEventListener("click", () => { if (currentIndex < questions.length - 1) { currentIndex++; renderQuestion(); } else { // Fin du quizz : afficher résumé // Assurer que les utilisateurs qui n'ont pas répondu voient le score progressBar.style.width = `100%`; progressText.textContent = TEXTS.PROGRESS(questions.length, questions.length); showSummary(); } }); prevBtn.addEventListener("click", () => { if (currentIndex > 0) { currentIndex--; renderQuestion(); } }); revealBtn.addEventListener("click", () => { // Affiche toutes les réponses sans compter comme "terminé" showSummary(); }); restartBtn.addEventListener("click", () => { // Reset complet currentIndex = 0; userAnswers = Array(questions.length).fill(null); score = 0; renderQuestion(); progressBar.style.width = `0%`; progressText.textContent = TEXTS.PROGRESS(1, questions.length); scoreText.textContent = `${TEXTS.SCORE_PREFIX}${score}`; }); retakeBtn.addEventListener("click", () => { // Reprendre depuis le début restartBtn.click(); // Scroller vers le haut du composant pour l'utilisateur document.getElementById("quiz-tarte").scrollIntoView({ behavior: 'smooth' }); }); tipsBtn.addEventListener("click", () => { // Affiche une boîte d'astuces sous forme accessible const box = document.createElement("div"); box.className = "mt-3 p-3 rounded border bg-amber-50"; box.innerHTML = `${TEXTS.CHEF_TIP_TITLE} ${TEXTS.CHEF_TIPS.map(p => `• ${p}`).join("")} `; // Insérer après le résumé summary.appendChild(box); box.scrollIntoView({ behavior: 'smooth' }); }); /* ========== Accessibilité additionnelle : gestion du focus global ========== */ // Permettre navigation clavier entre Prev/Next avec Tab naturellement. // Ajout : touche 'r' pour recommencer (raccourci convivial) document.addEventListener("keydown", (e) => { if (e.key.toLowerCase() === "r" && (e.ctrlKey || e.metaKey)) { // Ctrl/Cmd + R - ici on évite d'interférer avec reload du navigateur return; } if (e.key.toLowerCase() === "r") { // simple 'r' pour recommencer si l'utilisateur veut un raccourci restartBtn.focus(); } }); /* ========== Notes développeur ========== - Pas d'API externe utilisée (données embarquées). - Pour personnaliser les questions : modifier le tableau `questions` plus haut. - Pour traduire : ajuster les chaînes dans `TEXTS`. - Performance : manipulation DOM simple, aucun chargement bloquant. - Tests rapides : vérifier au clavier (flèches haut/bas, Entrée) et à la souris. ================================================= */ La soirée pizza maison démarre avec cette pâte ultra simple à réaliser La soirée pizza maison démarre avec cette pâte ultra simple à réaliser : en moins d’1h20, préparez une base moelleuse et dorée qui permet de garnir deux pizzas, congeler une portion et improviser un repas convivial en un clin d’œil.… Le secret du mijoteur pour une cuisson de steak parfaitement tendre Le secret pour obtenir un steak parfaitement tendre au mijoteur : maîtriser le slow cooking avec des étapes simples et un temps de repos adapté. Claire, prof de yoga et adepte d’une cuisine saine, a transformé des steaks abordables en… Une Soupe Taco Réconfortante pour les Soirées Pressées Une soupe taco réconfortante, prête en moins de 45 minutes, pour transformer une soirée pressée en un repas chaud savoureux et rassasiant. 🔥 Ce bol unique combine viande assaisonnée, haricots, maïs et tomates épicées pour offrir une expérience inspirée du… Plan de Repas Hebdomadaire du 7 Septembre 2026 Plan de repas hebdomadaire prêt à suivre pour la semaine du 7 septembre 2026 : gagnez du temps, maîtrisez votre budget et adoptez une alimentation équilibrée sans stress. Commencez la semaine avec un menu clair, des étapes de préparation des… Variantes estivales : fromages, herbes et présentations pour tous les repas Ajouter du parmesan, des copeaux de chèvre ou une boule de burrata change le profil en profondeur : le fromage apporte onctuosité tandis que le thym frais ou les herbes de Provence marquent les saveurs méditerranéennes. Pour des idées visuelles et adaptations très simples, la version colorée avec tomates anciennes se trouve aussi chez une déclinaison ultra simple, et pour des inspirations rapides à préparer, voir les recettes estivales tomates. Ces variantes rendent la tarte adaptée à un apéro, un pique-nique ou un dîner léger. 🧀🌿 Simplifier pour un plat rapide ou transformer en entrée fraîche
Cette tarte à la tomate et moutarde est ultra simple et devient rapidement la star de l’été : prête en moins de 40 minutes, elle combine tomate, moutarde et pâte croustillante pour un résultat à la fois frais et réconfortant. Ce plat polyvalent fonctionne comme entrée fraîche, plat rapide ou bouchée d’apéritif, parfait pour la cuisine estivale. À la clef : une recette simple, goûteuse et facile à préparer qui sublime les saveurs méditerranéennes. 🍅✨
Recette simple de tarte tomate moutarde pour l’été — ingrédients et timing
Ingrédients essentiels : il faut 1 pâte feuilletée, 3 à 4 tomates bien mûres, 2 c. à soupe de moutarde à l’ancienne, un filet d’huile d’olive et du sel et poivre. Temps total : préparation 10 min et cuisson 25–30 min, ce qui en fait une option idéale quand le temps manque. Suivre ces proportions garantit une tarte équilibrée entre acidité et pep’s ; c’est une recette simple qui marche à tous les coups. 🔥
Étapes claires pour réussir la pâte et éviter qu’elle ne se détrempe
Préchauffer le four à 200°C, dérouler la pâte et la piquer, puis étaler la moutarde à l’ancienne en laissant un bord visible : la moutarde forme une barrière qui protège la pâte. Disposer des tranches de tomate égouttées, assaisonner et ajouter un filet d’huile d’olive avant d’enfourner 25–30 minutes. Cette méthode simple empêche la tarte de s’alourdir et garantit une pâte croustillante tandis que les tomates restent fondantes. 🧑🍳
Pour approfondir les astuces anti-humidité et variantes de cuisson, consulter une fiche pratique qui détaille la technique de saupoudrage de chapelure et le choix de la pâte : astuce anti-humidité et recette classique. Cette référence montre comment quelques gestes simples transforment une tarte ordinaire en pièce maîtresse estivale. 🌿
Quizz : Cette Tarte à la Tomate et Moutarde
Testez vos connaissances et découvrez des astuces pour réussir la star de l’été !
Accessible au clavier — utilisez les flèches pour naviguer entre les options et Entrée pour valider.
La soirée pizza maison démarre avec cette pâte ultra simple à réaliser
La soirée pizza maison démarre avec cette pâte ultra simple à réaliser : en moins d’1h20, préparez une base moelleuse et dorée qui permet de garnir deux pizzas, congeler une portion et improviser un repas convivial en un clin d’œil.…
Le secret du mijoteur pour une cuisson de steak parfaitement tendre
Le secret pour obtenir un steak parfaitement tendre au mijoteur : maîtriser le slow cooking avec des étapes simples et un temps de repos adapté. Claire, prof de yoga et adepte d’une cuisine saine, a transformé des steaks abordables en…
Une Soupe Taco Réconfortante pour les Soirées Pressées
Une soupe taco réconfortante, prête en moins de 45 minutes, pour transformer une soirée pressée en un repas chaud savoureux et rassasiant. 🔥 Ce bol unique combine viande assaisonnée, haricots, maïs et tomates épicées pour offrir une expérience inspirée du…
À lire Compote de pommes ultra simple avec seulement quatre ingrédients, dont… de l’eau !
Plan de Repas Hebdomadaire du 7 Septembre 2026
Plan de repas hebdomadaire prêt à suivre pour la semaine du 7 septembre 2026 : gagnez du temps, maîtrisez votre budget et adoptez une alimentation équilibrée sans stress. Commencez la semaine avec un menu clair, des étapes de préparation des…
Variantes estivales : fromages, herbes et présentations pour tous les repas
Ajouter du parmesan, des copeaux de chèvre ou une boule de burrata change le profil en profondeur : le fromage apporte onctuosité tandis que le thym frais ou les herbes de Provence marquent les saveurs méditerranéennes. Pour des idées visuelles et adaptations très simples, la version colorée avec tomates anciennes se trouve aussi chez une déclinaison ultra simple, et pour des inspirations rapides à préparer, voir les recettes estivales tomates. Ces variantes rendent la tarte adaptée à un apéro, un pique-nique ou un dîner léger. 🧀🌿
Simplifier pour un plat rapide ou transformer en entrée fraîche
Pour transformer la tarte en entrée fraîche ou en bouchées d’apéritif, cuire en grand format puis découper en carrés; elle se sert aussi parfaitement froide. Si l’urgence est de mise, la recette est prête en 40 minutes avec des ingrédients du placard — voir une version express qui mise sur la pâte prête à l’emploi pour aller encore plus vite : version express prête en 15 minutes. L’astuce clé : préparer les tomates en amont pour gagner du temps sans perdre en qualité. ⏱️
Pour obtenir la tarte tomate parfaite au rendu croustillant et présentation soignée, s’inspirer de recommandations ciblées comme tarte tomate parfaite qui détaille le choix des tomates et la cuisson. Tester une variante autour de la mozzarella ou d’une pâte brisée crée un résultat plus rustique et tout aussi savoureux. Le point final : choisir de bonnes tomates et ne pas saturer la pâte garantissent une tarte à la fois esthétique et gourmande — lancez-vous et transformez vos soirées d’été en petits festins. 🍽️
Un Dîner Convivial au Biscuits Dorés, Préparé en Une Seule Poêle
Obtenez un dîner convivial en moins de 30 minutes : un plat unique qui combine une garniture crémeuse et des biscuits dorés cuits dans une seule poêle, pour une préparation rapide et un nettoyage minimal. Ce format transforme la cuisine…
À lire Le Dîner du Dimanche : Prêt à l’Avance et Savoureux sans Effort
Compote de pommes ultra simple avec seulement quatre ingrédients, dont… de l’eau !
Compote de pommes ultra simple, prête en moins d’une heure : voici une recette simple à quatre ingrédients (oui, de l’eau est l’un d’eux) pour une gourmandise saine à partager. 🍏 Cette préparation allie rapidité et saveur pour un dessert…
Coupes fajitas au bœuf haché : un délice coloré et savoureux
Coupes fajitas au bœuf haché : le plat convivial et ultra rapide à adopter 🍽️ Point principal : Les coupes fajitas préparées avec du bœuf haché offrent un délice coloré et savoureux qui se prépare en moins de 35 minutes,…
Améliorez vos soirées pâtes grâce à cette sauce compatible congélation
Transformez vos soirées pâtes en repas rapides et réconfortants grâce à une sauce maison compatible congélation : une recette facile, une préparation rapide (10 min de préparation, 30 min de cuisson) et des portions prêtes à sortir du congélateur pour…