// Le code JavaScript pour l’infographie interactive.
// Il ne nécessite aucune API externe, toutes les données sont intégrées directement.
// Données pour l’infographie, en format structuré pour une manipulation aisée.
// Toutes les chaînes de texte sont en français pour une internationalisation facile.
const bacData = {
“annee”: 2025,
“regionPrincipale”: “Antananarivo”, // Région mise en avant dans l’article
“tauxGlobaux”: {
“national”: 50.73,
“antananarivo”: 47.49
},
“tauxParSerie”: [
{ “serie”: “Série A2”, “taux”: 42.60, “categorie”: “Général” },
{ “serie”: “Série D”, “taux”: 40.46, “categorie”: “Général” },
{ “serie”: “Série A1”, “taux”: 50.00, “categorie”: “Général” },
{ “serie”: “Série L”, “taux”: 46.00, “categorie”: “Général” },
{ “serie”: “Série C”, “taux”: 64.00, “categorie”: “Général” },
{ “serie”: “Enseignement Technique”, “taux”: 72.65, “categorie”: “Technique” }
],
“tauxNationauxParCategorie”: {
“Général”: 45.78,
“Technique”: 70.32
},
// Textes pour l’infographie, centralisés pour une édition facile et l’internationalisation.
“textes”: {
“titrePrincipal”: “Baccalauréat {annee} : Taux de Réussite à Madagascar”,
“descriptionAntananarivo”: “Inférieur à 50% des candidats”,
“descriptionNational”: “Supérieur au taux d’Antananarivo”,
“titreSectionSeries”: “Taux de Réussite par Série”,
“titreSectionCategories”: “Taux Nationaux par Catégorie”,
“labelTauxAdmissionGlobal”: “Taux Global d’Admission”,
“labelAntananarivo”: “Antananarivo”,
“labelNational”: “National”,
“sourceInfo”: “Source: Données du Baccalauréat {annee} à Madagascar”
}
};
/**
* Crée un élément de barre de progression visuel pour afficher un taux.
* Cette fonction génère le HTML pour une barre stylisée avec le taux et un libellé.
* @param {string} label Le texte du libellé affiché à gauche de la barre (ex: “Série A1”).
* @param {number} rate Le taux de réussite en pourcentage (ex: 42.60).
* @param {string} colorClass La classe CSS Tailwind pour la couleur de remplissage de la barre (ex: “bg-blue-500”).
* @returns {HTMLElement} L’élément div racine représentant la barre de progression complète.
*/
function createProgressBar(label, rate, colorClass) {
const barContainer = document.createElement(‘div’);
// Styles pour le conteneur de la barre, incluant une transition pour l’interactivité au survol.
barContainer.className = `flex items-center gap-4 bg-white p-3 rounded-lg shadow-sm transition-all duration-300 transform hover:scale-102 border border-blue-200`;
const labelEl = document.createElement(‘div’);
// Le libellé de la barre (ex: “Série A2 (Général)”).
labelEl.className = ‘w-32 flex-shrink-0 text-right text-sm font-medium text-gray-700’;
labelEl.textContent = label;
const progressBarWrapper = document.createElement(‘div’);
// Le conteneur visuel de la barre de progression.
progressBarWrapper.className = ‘relative flex-grow h-6 bg-gray-200 rounded-full overflow-hidden’;
const progressBar = document.createElement(‘div’);
// La barre de progression colorée elle-même.
// La largeur est définie dynamiquement par le taux en pourcentage.
progressBar.className = `h-full rounded-full flex items-center justify-end px-2 text-xs font-bold text-white transition-all duration-700 ease-out ${colorClass}`;
progressBar.style.width = `${rate}%`;
progressBar.textContent = `${rate.toFixed(2).replace(‘.’, ‘,’)}%`; // Formatage du nombre en français (virgule décimale)
// Ajout d’attributs d’accessibilité (ARIA) pour les lecteurs d’écran et de tooltips.
progressBarWrapper.setAttribute(‘title’, `${label}: ${rate.toFixed(2).replace(‘.’, ‘,’)}%`);
progressBarWrapper.setAttribute(‘aria-valuenow’, rate.toFixed(2));
progressBarWrapper.setAttribute(‘aria-valuemin’, ‘0’);
progressBarWrapper.setAttribute(‘aria-valuemax’, ‘100’);
progressBarWrapper.setAttribute(‘role’, ‘progressbar’);
progressBarWrapper.appendChild(progressBar);
barContainer.appendChild(labelEl);
barContainer.appendChild(progressBarWrapper);
return barContainer;
}
/**
* Fonction principale pour rendre l’infographie en injectant toutes les données
* et les éléments interactifs dans le Document Object Model (DOM).
*/
function renderInfographic() {
// 1. Mise à jour du titre principal de l’infographie.
const mainTitleEl = document.querySelector(‘#bac-infographic-container h2’);
if (mainTitleEl) {
mainTitleEl.textContent = bacData.textes.titrePrincipal.replace(‘{annee}’, bacData.annee);
}
// 2. Mise à jour de la section Résumé des Taux Globaux (Antananarivo vs National).
// Taux d’Antananarivo
const tauxAntananarivoEl = document.getElementById(‘taux-antananarivo’);
const descAntananarivoEl = document.getElementById(‘desc-antananarivo’);
if (tauxAntananarivoEl) {
tauxAntananarivoEl.textContent = `${bacData.tauxGlobaux.antananarivo.toFixed(2).replace(‘.’, ‘,’)}%`;
}
if (descAntananarivoEl) {
descAntananarivoEl.textContent = bacData.textes.descriptionAntananarivo;
}
// Taux National
const tauxNationalEl = document.getElementById(‘taux-national’);
const descNationalEl = document.getElementById(‘desc-national’);
if (tauxNationalEl) {
tauxNationalEl.textContent = `${bacData.tauxGlobaux.national.toFixed(2).replace(‘.’, ‘,’)}%`;
}
if (descNationalEl) {
descNationalEl.textContent = bacData.textes.descriptionNational;
}
// 3. Remplissage de la section “Taux de Réussite par Série” avec des barres de progression.
const titreSeriesEl = document.getElementById(‘titre-series’);
if (titreSeriesEl) {
titreSeriesEl.textContent = bacData.textes.titreSectionSeries;
}
const tauxParSerieChart = document.getElementById(‘taux-par-serie-chart’);
if (tauxParSerieChart) {
tauxParSerieChart.innerHTML = ”; // Nettoyer tout contenu précédent
bacData.tauxParSerie.forEach(item => {
let color;
// Définition de la couleur de la barre en fonction du taux pour une meilleure lisibilité.
if (item.taux = 70) {
color = ‘bg-green-600’; // Vert foncé pour les taux très élevés (réussite forte)
} else { // item.taux >= 50 && item.taux < 70
color = 'bg-green-500'; // Vert standard pour les taux réussis (50% et plus)
}
// Création et ajout de la barre de progression pour chaque série.
tauxParSerieChart.appendChild(createProgressBar(`${item.serie} (${item.categorie})`, item.taux, color));
});
}
// 4. Remplissage de la section "Taux Nationaux par Catégorie" avec des barres de progression.
const titreCategoriesEl = document.getElementById('titre-categories');
if (titreCategoriesEl) {
titreCategoriesEl.textContent = bacData.textes.titreSectionCategories;
}
const tauxNationauxCategorieChart = document.getElementById('taux-nationaux-categorie-chart');
if (tauxNationauxCategorieChart) {
tauxNationauxCategorieChart.innerHTML = ''; // Nettoyer tout contenu précédent
for (const categorie in bacData.tauxNationauxParCategorie) {
const taux = bacData.tauxNationauxParCategorie[categorie];
let color;
// Définition de la couleur de la barre en fonction du taux.
if (taux = 70) {
color = ‘bg-green-600’; // Vert foncé si très élevé
} else { // taux >= 50 && taux < 70
color = 'bg-green-500'; // Vert standard
}
// Création et ajout de la barre de progression pour chaque catégorie nationale.
tauxNationauxCategorieChart.appendChild(createProgressBar(categorie, taux, color));
}
}
// 5. Mise à jour du texte de la source d'information.
const sourceTextEl = document.getElementById('source-texte');
if (sourceTextEl) {
sourceTextEl.textContent = bacData.textes.sourceInfo.replace('{annee}', bacData.annee);
}
}
// S'assurer que le DOM (Document Object Model) est complètement chargé avant d'exécuter le script de rendu.
// Ceci garantit que tous les éléments HTML sont disponibles pour être manipulés par JavaScript.
document.addEventListener('DOMContentLoaded', renderInfographic);
{“@context”:”https://schema.org”,”@type”:”FAQPage”,”mainEntity”:[{“@type”:”Question”,”name”:”Pourquoi le taux d’admission du Baccalauru00e9at 2025 u00e0 Antananarivo est-il si bas ? ud83euddd0″,”acceptedAnswer”:{“@type”:”Answer”,”text”:”Le faible taux d’admission du Baccalauru00e9at 2025 u00e0 Antananarivo est la consu00e9quence de plusieurs facteurs, incluant des programmes scolaires potentiellement inadaptu00e9s, un manque de pru00e9paration des u00e9lu00e8ves, des difficultu00e9s u00e9conomiques pesant sur les familles, et des conditions pu00e9dagogiques parfois fragiles. Ces u00e9lu00e9ments combinu00e9s ont cru00e9u00e9 un environnement d’apprentissage difficile pour de nombreux candidats.”}},{“@type”:”Question”,”name”:”Quelles su00e9ries du Baccalauru00e9at ont u00e9tu00e9 les plus affectu00e9es par cette baisse ? ud83dudcc9″,”acceptedAnswer”:{“@type”:”Answer”,”text”:”Les su00e9ries gu00e9nu00e9rales ont u00e9tu00e9 les plus touchu00e9es par la baisse du taux de ru00e9ussite. La su00e9rie A2 a enregistru00e9 un taux de seulement 42,60 %, tandis que la su00e9rie D affichait 40,46 %. Les su00e9ries A1 et L ont u00e9galement connu une ru00e9gression significative, se situant autour de 50 % et en dessous de 46 % respectivement.”}},{“@type”:”Question”,”name”:”Y a-t-il des filiu00e8res qui ont mieux ru00e9sistu00e9 u00e0 cette tendance ? ud83dudcaa”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”Oui, l’enseignement technique a montru00e9 une meilleure ru00e9sistance avec un taux de ru00e9ussite de 72,65 % u00e0 l’u00e9chelle nationale. De mu00eame, la su00e9rie C de l’enseignement gu00e9nu00e9ral a maintenu un taux honorable de pru00e8s de 64 %, bien que lu00e9gu00e8rement infu00e9rieur u00e0 l’annu00e9e pru00e9cu00e9dente. Ces filiu00e8res semblent mieux armu00e9es face aux du00e9fis actuels du systu00e8me u00e9ducatif.”}},{“@type”:”Question”,”name”:”Quelles sont les implications de ces ru00e9sultats pour le systu00e8me u00e9ducatif malgache ? ud83eudd14″,”acceptedAnswer”:{“@type”:”Answer”,”text”:”Ces ru00e9sultats mettent en lumiu00e8re un malaise u00e9ducatif profond nu00e9cessitant des ru00e9formes urgentes. Ils soulignent la nu00e9cessitu00e9 d’amu00e9liorer la qualitu00e9 des programmes, de renforcer la pru00e9paration des candidats, d’investir dans les infrastructures et la formation des enseignants, et de prendre en compte les facteurs socio-u00e9conomiques. L’objectif est d’assurer une meilleure ru00e9ussite scolaire pour les prochaines sessions et de garantir l’accu00e8s u00e0 l’u00e9ducation pour tous.”}},{“@type”:”Question”,”name”:”Comment les candidats non admis peuvent-ils envisager leur avenir ? ud83dude80″,”acceptedAnswer”:{“@type”:”Answer”,”text”:”Les candidats non admis ont plusieurs options. Ils peuvent envisager de redoubler pour retenter leur chance au Baccalauru00e9at 2026 en bu00e9nu00e9ficiant de soutiens adaptu00e9s. D’autres peuvent se tourner vers des formations professionnelles et techniques, qui offrent des du00e9bouchu00e9s concrets et une insertion rapide sur le marchu00e9 du travail. Des dispositifs d’orientation et de ru00e9intu00e9gration devraient u00eatre mis en place pour accompagner ces jeunes vers de nouvelles opportunitu00e9s.”}}]}