Skip to main content

Conformité des modules — méthodologie

Cette partie permet de balayer chaque module composant par composant et de vérifier qu'il respecte les normes de qualité d'Open ENT, telles que définies dans le Guide de contribution OPEN ENT NG.

➡️ Ouvrir le tableau de conformité interactif

Le référentiel

Le guide définit deux ensembles d'exigences, chacune typée Obligatoire (à respecter dès lors qu'elle est applicable) ou Recommandation (dérogation possible, à justifier) :

CatégorieRéfExemples
UX/UIU1–U11bonnes pratiques, librairie de composants, thèmes 1D/2D, responsive, accessibilité…
FonctionnelF1–F13notifications, droits, traduction (6 langues), export/import, transition d'année, marquage statistique/DNMA, plan de test…
TechniqueT1–T8timezones, traçabilité, performances, tests de charge, guide d'installation, licence AGPLv3, sécurité…
AccessibilitéA1–A23navigation clavier, focus visible, hiérarchie des titres, langue par défaut…

Le référentiel complet est dans static/conformite-referentiel.json (transcrit du PDF du guide).

Évaluer un module

La page /conformite permet de :

  • sélectionner un module et voir, pour chaque exigence, son statut ;
  • filtrer / mettre à l'avant par catégorie (UX/UI, Fonctionnel, Technique, Accessibilité), par type (Obligatoire / Recommandation) et par statut ;
  • consulter un score de conformité (part des exigences obligatoires conformes) ;
  • ouvrir les tests complémentaires rattachés à une exigence (rapport e2e, recette…).

Statuts d'évaluation

StatutSens
conformeexigence respectée
partielpartiellement respectée
non-conformenon respectée
derogationdérogation justifiée (recommandations uniquement)
nanon applicable au module
a-faireà évaluer (valeur par défaut)

Saisir une évaluation

Les évaluations sont stockées dans static/conformite-modules.json. Pour chaque module, on ajoute dans evaluations les réf évaluées :

{
"name": "blog",
"label": "Blog",
"repo": "open-ent/blog",
"evaluations": {
"F6": {
"statut": "partiel",
"note": "Tracking Matomo via proxy ; vérifier resourceType snake_case",
"tests": ["https://doc.tech.fr/open-ent-test/open-ent/#?q=04_blog"]
}
}
}

Une réf non listée est considérée comme a-faire. Le champ tests reçoit des tests complémentaires (liens vers le dashboard e2e, un rapport de recette, etc.) — c'est ainsi qu'on ajoute des tests à une exigence.

Lien avec les tests E2E

Le dashboard des tests E2E couvre la vérification de l'exigence F11 (plan de test) : on y rattache, par exigence, les specs Playwright pertinentes. La conformité (ce tableau) et l'exécution des tests (dashboard e2e) sont complémentaires.

Audit d'accessibilité automatisé (RGAA / WCAG 2.1 AA)

En complément de la méthodologie RGAA « manuelle », une base d'audit automatisé mesure les écarts d'accessibilité sur les pages clés du portail. Elle s'appuie sur axe-core (moteur de règles WCAG) piloté depuis Playwright.

  • — spec open-ent-mods/tests/rgaa-audit.spec.ts ; règles WCAG 2.1 niveau AA.
  • Ce qu'elle produit — par page auditée, la liste des violations (règle, impact, sélecteur), agrégée en un relevé d'écarts servant de point de départ aux corrections.
  • Portée — l'audit automatisé couvre une partie des critères RGAA (contrastes, libellés de champs, attributs ARIA, ordre des titres, alternatives d'images…). Les critères restants (navigation clavier fine, cohérence de lecture, contenus riches) restent vérifiés manuellement selon la méthodologie ci‑dessus.
  • Statut — il s'agit d'une base de mesure (relevé initial des écarts) ; les corrections sont traitées ensuite écart par écart.
  • Premières corrections — page de connexion ramenée de 5 à 0 règle en échec : <html lang="fr"> (langue par défaut), retrait de maximum-scale sur le viewport (zoom rétabli), labels associés aux champs (for=), contraste du texte (variante foncée AA du thème, identité de marque conservée) et intitulé du bouton d'affichage du mot de passe (aria-label ajouté à la directive input-password du thème — critère button-name). Deux non‑régressions automatisées (rgaa-connexion-contrast, rgaa-connexion-button-name) verrouillent ce résultat.
  • Tableau de bord — 100 % conforme (règles auditées) : la règle list (listes MUI) puis color-contrast ont été éliminées. Pour le contraste, une nuance foncée (contraste ≥ 4.5:1) a été introduite pour les couleurs de catégorie porteuses de texte (bouton « Ouvrir », puces, en‑têtes), l'identité visuelle (teintes des pastilles/bordures) étant conservée — 87 → 0 violations. Une non‑régression automatisée verrouille ce résultat.
  • Réservation de ressources (RBS) — la directive calendar (framework infra-front) a été corrigée : intitulés accessibles sur les boutons icônes (aria-label — critère button-name) et role="presentation" sur un <ul> de mise en page (critère list) → 0 violation.
  • Modules edifice (React) — contraste : le gris et le vert de marque du bootstrap edifice (@open-ent/bootstrap) servaient de couleur de texte en deçà de l'AA. Assombris (gris ≈ 4.7:1, vert e‑primo ≈ 4.9:1) puis publiés dans le paquet et déployés → actualités, blog, wiki, cahier multimédia, réservation, support… = 0 violation de contraste. Non‑régressions automatisées (rgaa-modules-contrast, rgaa-actualites-contrast).
  • Synthèse — sur l'ensemble des pages clés auditées (connexion, tableau de bord, réservation, actualités et modules edifice), l'audit automatisé ne relève plus aucune violation (contrastes, intitulés, listes, langue). L'audit RGAA officiel par un tiers (déclaration de conformité réglementaire) reste, lui, à commander.

Options de personnalisation & accessibilité (utilisateur)

Au‑delà de la conformité technique, le tableau de bord offre un panneau de personnalisation (bouton Paramètres du thème) qui adresse l'accessibilité des jeunes enfants et des publics spécifiques — répondant à l'exigence d'une interface adaptable en couleurs, police et taille. Chaque réglage est mémorisé par usager.

  • Mode clair / sombre.
  • Couleur principale — 7 teintes (bleu, violet, magenta, rouge, orange, jaune, vert) ; couleurs de fond, de bandeau et de menu personnalisables.
  • Taille du texte — du plus petit au plus grand.
  • Police — plusieurs polices dont des polices adaptées : Lexend, Schoolwork, Little Days (cursives « écriture scolaire »), Creativo et OpenDyslexic (dyslexie).
  • Pictogrammes au format SVG (redimensionnables sans perte).

Panneau de personnalisation : mode, couleurs, taille du texte, police

Sélecteur de police : Lexend, Schoolwork, Little Days, OpenDyslexic…