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. ================================================= */ 7 Plat Été Frais Et Gourmands Pour Régaler Toute La Famille Sans Canicule En Cuisine 7 plats d’été frais et gourmands pour régaler toute la famille sans chauffer la maison : des recettes rapides, peu de cuisson et une fraîcheur maximale pour des repas conviviaux cet été 🌞. Choisissez un plat unique et gagnez du… Cette Tarte Aux Prunes De Grand-Mère Va Devenir Votre Dessert De Fin D’Été Cette tarte aux prunes de grand-mère est la solution rapide et inratable pour clore un repas d’été : une pâte dorée, des prunes juteuses et une touche d’amande qui garantit la gourmandise. Voici la méthode claire et actionnable pour la… Une salade copieuse aux saveurs audacieuses du Sud-Ouest Obtenez une salade copieuse aux saveurs audacieuses du Sud-Ouest : poulet grillé fumé, maïs légèrement brûlé, avocat crémeux, magret ou copeaux de chèvre, noix croquantes et une vinaigrette acidulée pour lier le tout — prête en environ 25 minutes pour… Cette Confiture Abricot Maison Va Ruiner Toutes Les Versions Industrielles Pour Toujours Obtenez une confiture abricot maison au goût authentique et à la saveur naturelle qui écrasera toutes les versions industrielles : suivez cette méthode claire et testée pas à pas. Cette recette transforme des abricots mûrs en un produit fait maison,… 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.
7 Plat Été Frais Et Gourmands Pour Régaler Toute La Famille Sans Canicule En Cuisine
7 plats d’été frais et gourmands pour régaler toute la famille sans chauffer la maison : des recettes rapides, peu de cuisson et une fraîcheur maximale pour des repas conviviaux cet été 🌞. Choisissez un plat unique et gagnez du…
Cette Tarte Aux Prunes De Grand-Mère Va Devenir Votre Dessert De Fin D’Été
Cette tarte aux prunes de grand-mère est la solution rapide et inratable pour clore un repas d’été : une pâte dorée, des prunes juteuses et une touche d’amande qui garantit la gourmandise. Voici la méthode claire et actionnable pour la…
Une salade copieuse aux saveurs audacieuses du Sud-Ouest
Obtenez une salade copieuse aux saveurs audacieuses du Sud-Ouest : poulet grillé fumé, maïs légèrement brûlé, avocat crémeux, magret ou copeaux de chèvre, noix croquantes et une vinaigrette acidulée pour lier le tout — prête en environ 25 minutes pour…
À lire Ces Courgettes Farcies Fondantes Vont Devenir Votre Plat D’Été Préféré Cette Année
Cette Confiture Abricot Maison Va Ruiner Toutes Les Versions Industrielles Pour Toujours
Obtenez une confiture abricot maison au goût authentique et à la saveur naturelle qui écrasera toutes les versions industrielles : suivez cette méthode claire et testée pas à pas. Cette recette transforme des abricots mûrs en un produit fait maison,…
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. 🍽️
7 Figues Recette Sucrées Et Salées Pour Profiter À Fond De La Saison Éphémère
Profitez à fond de la saison éphémère : sept recettes précises et faciles pour transformer les figues en recette sucrée ou recette salée, à préparer en quelques étapes pour des repas de saison pleins de gourmandise 🍯. Brief : chaque…
À lire Ce Gratin De Courgettes Ultra Fondant Va Écouler Toute Votre Récolte Sans Lassitude
Une salade copieuse aux saveurs audacieuses du Sud-Ouest
Objectif : réussir une salade copieuse aux saveurs audacieuses du Sud-Ouest en 30–40 minutes, avec foie gras, magret de canard, noix et fromage de chèvre — prête à épater sur Pinterest 🎯. Ingrédients clés pour une salade copieuse du Sud-Ouest…
Cet Ice Tea Maison Rafraîchissant Va Ruiner Vos Versions Industrielles En 10 Minutes
Cet Ice Tea maison rafraîchissant se réalise en 10 minutes et détrône instantanément les versions industrielles grâce à une préparation rapide, naturelle et sans conservateurs. Goûter une boisson plus saine et plus savoureuse est immédiat : suivez la recette et…
Cette French Blanche Amande Chic Et Tendance Va Devenir Votre Manucure De L’Été
Résumé : Adoptez la French Blanche en version Amande pour un look Chic et Tendance cet Été — élégant, simple à réaliser et parfait pour compléter une garde-robe mode raffinée. 🌿 Brief : Instructions précises pour réaliser, personnaliser et entretenir…