diff --git a/.github/ISSUE_TEMPLATE/experimental-model-proposal.md b/.github/ISSUE_TEMPLATE/experimental-model-proposal.md new file mode 100644 index 000000000..a46b1baaa --- /dev/null +++ b/.github/ISSUE_TEMPLATE/experimental-model-proposal.md @@ -0,0 +1,108 @@ +--- +name: đŸ§Ș Proposition de modĂšle expĂ©rimental +about: Proposer un nouveau modĂšle expĂ©rimental pour le systĂšme de conception +title: '[EXPÉRIMENTAL] ' +labels: 'expĂ©rimental, Ă  Ă©valuer' +assignees: '' +--- + +## 🎯 Contexte et problĂšme + +### Description du problĂšme + + +### Utilisateurs concernĂ©s + + +### Contexte d'utilisation + + +## 💡 Solution proposĂ©e + +### Type de modĂšle expĂ©rimental +- [ ] Composant d'interface +- [ ] ModĂšle de page +- [ ] Gabarit +- [ ] Configuration de conception + +### Description de la solution + + +### HypothĂšse de conception + + +## 📋 Cas d'usage + +### ScĂ©narios principaux + + +1. **ScĂ©nario 1 :** [Description] +2. **ScĂ©nario 2 :** [Description] +3. **ScĂ©nario 3 :** [Description] + +### BĂ©nĂ©fices attendus + + +- [ ] AmĂ©lioration de l'accessibilitĂ© +- [ ] Meilleure expĂ©rience utilisateur +- [ ] Simplification du dĂ©veloppement +- [ ] CohĂ©rence avec les standards +- [ ] Performance amĂ©liorĂ©e +- [ ] Autre : [prĂ©ciser] + +## 🔍 Recherche et rĂ©fĂ©rences + +### Solutions existantes + + +### Recherche utilisateur (si applicable) + + +### Standards et bonnes pratiques + + +## 🚀 Plan de dĂ©veloppement + +### Ressources disponibles +- [ ] J'ai les compĂ©tences pour dĂ©velopper ce modĂšle +- [ ] J'ai accĂšs Ă  des utilisateurs pour tester +- [ ] J'ai du temps disponible pour le dĂ©veloppement +- [ ] J'ai besoin d'aide de la communautĂ© + +### Chronologie estimĂ©e + + +- **DĂ©but dĂ©veloppement :** [Date approximative] +- **Version alpha prĂ©vue :** [Date approximative] +- **Tests utilisateurs :** [Date approximative] + +### Besoins de support + + +## 📊 CritĂšres de succĂšs + +### Comment mesurer le succĂšs ? + + +### MĂ©triques proposĂ©es + + +## 🔗 RĂ©fĂ©rences et ressources + + + +--- + +## Pour l'Ă©quipe de triage + +**Évaluation initiale :** +- [ ] ProblĂšme clairement dĂ©fini +- [ ] Solution rĂ©alisable +- [ ] Ressources suffisantes identifiĂ©es +- [ ] Alignement avec les objectifs du systĂšme de conception + +**Étapes suivantes :** +- [ ] Discussion communautaire nĂ©cessaire +- [ ] Recherche additionnelle requise +- [ ] PrĂȘt pour dĂ©veloppement expĂ©rimental +- [ ] Besoin de clarifications \ No newline at end of file diff --git a/.github/pull_request_template/experimental-model.md b/.github/pull_request_template/experimental-model.md new file mode 100644 index 000000000..bf77a3053 --- /dev/null +++ b/.github/pull_request_template/experimental-model.md @@ -0,0 +1,97 @@ +--- +name: ModĂšle expĂ©rimental - Nouveau modĂšle +about: Soumission d'un nouveau modĂšle expĂ©rimental pour rĂ©vision communautaire +--- + +## 📋 Informations sur le modĂšle expĂ©rimental + +### Type de modĂšle +- [ ] Composant d'interface +- [ ] ModĂšle de page +- [ ] Gabarit +- [ ] Configuration de conception + +### Nom du modĂšle +**Nom :** [Nom descriptif du modĂšle] +**Version :** [v1.0] +**Branche :** [experimental-type-nom-v1] + +## 🎯 Objectif et justification + +### ProblĂšme rĂ©solu + + +### HypothĂšse de conception + + +### Cas d'usage ciblĂ©s + + +## 📋 Checklist de conformitĂ© + +### Documentation requise +- [ ] README complet avec description du modĂšle +- [ ] SpĂ©cifications techniques dĂ©taillĂ©es +- [ ] Instructions d'implĂ©mentation +- [ ] Documentation bilingue (FR/EN) +- [ ] Journal des changements + +### Code et exemples +- [ ] Prototype fonctionnel +- [ ] Code HTML/CSS/JS validĂ© +- [ ] Exemples d'utilisation +- [ ] Variations et configurations + +### Tests et validation +- [ ] Évaluation d'accessibilitĂ© WCAG 2.1 AA complĂšte +- [ ] Tests multi-navigateurs +- [ ] Tests sur appareils mobiles +- [ ] Validation du code (HTML/CSS) +- [ ] Tests de performance si applicable + +### Recherche utilisateur (si applicable) +- [ ] Tests d'utilisabilitĂ© effectuĂ©s +- [ ] Retours utilisateurs collectĂ©s +- [ ] MĂ©triques de performance mesurĂ©es +- [ ] Comparaisons avec solutions existantes + +## 🔍 Phase de dĂ©veloppement + +- [ ] **Alpha** - Prototype et tests initiaux +- [ ] **BĂȘta** - PrĂȘt pour tests Ă©largis +- [ ] **Candidat Ă  l'approbation** - PrĂȘt pour rĂ©vision finale + +## 🌐 Impact et compatibilitĂ© + +### DĂ©pendances + + +### CompatibilitĂ© + + +### Impact sur l'existant + + +## 📝 Notes additionnelles + + + +## 🔗 Ressources connexes + +- Issue GitHub : #[numĂ©ro] +- Recherche utilisateur : [lien] +- Prototypes : [liens] +- Documentation technique : [lien] + +--- + +### Pour les rĂ©viseurs + +**CritĂšres de rĂ©vision :** +- [ ] Documentation complĂšte et claire +- [ ] Code fonctionnel et validĂ© +- [ ] ConformitĂ© d'accessibilitĂ© +- [ ] Justification solide du besoin +- [ ] QualitĂ© des tests et validation + +**Temps de rĂ©vision estimĂ© :** [X jours] \ No newline at end of file diff --git a/.github/pull_request_template/experimental-to-approved.md b/.github/pull_request_template/experimental-to-approved.md new file mode 100644 index 000000000..2ae4fc3c0 --- /dev/null +++ b/.github/pull_request_template/experimental-to-approved.md @@ -0,0 +1,125 @@ +--- +name: ModĂšle expĂ©rimental - Transition vers approuvĂ© +about: Demande de transition d'un modĂšle expĂ©rimental vers le statut approuvĂ© +--- + +## 📋 Informations sur la transition + +### ModĂšle expĂ©rimental +**Nom :** [Nom du modĂšle] +**Version actuelle :** [v2.1] +**Branche expĂ©rimentale :** [experimental-type-nom-v2] +**Destination :** +- [ ] ModĂšles obligatoires +- [ ] ModĂšles recommandĂ©s + +## 🎯 Justification de la transition + +### MaturitĂ© du modĂšle + + +### Utilisation en production + + +### Retours de la communautĂ© + + +## 📋 Checklist de transition (Phase BĂȘta → Stable) + +### CritĂšres techniques obligatoires +- [ ] Code intĂ©grĂ© au cadre de base (BOEW) +- [ ] Code entiĂšrement validĂ© (HTML/CSS/JS) +- [ ] Tests automatisĂ©s en place +- [ ] Performance optimisĂ©e +- [ ] CompatibilitĂ© multi-navigateurs confirmĂ©e + +### CritĂšres d'accessibilitĂ© +- [ ] Aucun problĂšme d'accessibilitĂ© WCAG 2.1 AA en suspens +- [ ] Tests avec technologies d'assistance +- [ ] Validation par experts en accessibilitĂ© +- [ ] Documentation d'accessibilitĂ© complĂšte + +### Documentation complĂšte +- [ ] Guide d'implĂ©mentation final +- [ ] SpĂ©cifications dĂ©taillĂ©es +- [ ] Exemples d'utilisation +- [ ] Documentation bilingue (FR/EN) +- [ ] Guide de migration (si applicable) + +### Validation communautaire +- [ ] Commentaires de la communautĂ© rĂ©solus +- [ ] PĂ©riode de commentaires publics complĂ©tĂ©e (30+ jours) +- [ ] Approbation des parties prenantes clĂ©s +- [ ] Tests pilotes rĂ©ussis en environnement rĂ©el + +### Tests et qualitĂ© +- [ ] Suite complĂšte de tests automatisĂ©s +- [ ] Tests d'utilisabilitĂ© finaux +- [ ] Tests de rĂ©gression passĂ©s +- [ ] MĂ©triques de performance validĂ©es + +## 📊 DonnĂ©es d'utilisation + +### Adoption +- **Nombre de sites utilisant le modĂšle :** [X] +- **MinistĂšres participants :** [Liste] +- **PĂ©riode de test en production :** [X mois] + +### MĂ©triques de succĂšs + + +### Retours utilisateurs + + +## 🔄 Plan de migration + +### Étapes de transition +1. [ ] RĂ©vision finale par l'Ă©quipe du systĂšme de conception +2. [ ] Tests de rĂ©gression sur les implĂ©mentations existantes +3. [ ] Mise Ă  jour de la documentation officielle +4. [ ] Communication aux Ă©quipes de dĂ©veloppement +5. [ ] Migration du code vers les rĂ©pertoires approuvĂ©s +6. [ ] Archivage de la version expĂ©rimentale + +### Chronologie +- **DĂ©but de rĂ©vision :** [Date] +- **Fin de rĂ©vision prĂ©vue :** [Date] +- **IntĂ©gration prĂ©vue :** [Date] + +### Support et formation +- [ ] MatĂ©riel de formation prĂ©parĂ© +- [ ] Sessions d'information planifiĂ©es +- [ ] Documentation de support mise Ă  jour + +## ⚠ Risques et considĂ©rations + +### Risques identifiĂ©s + + +### Plans d'attĂ©nuation + + +### Plan de rollback + + +## 🔗 RĂ©fĂ©rences et ressources + +- **Issue de suivi :** #[numĂ©ro] +- **Historique expĂ©rimental :** [lien vers branche] +- **Tests pilotes :** [liens vers rapports] +- **Documentation de recherche :** [liens] +- **Discussions communautaires :** [liens] + +--- + +### Pour les rĂ©viseurs + +**CritĂšres d'approbation finale :** +- [ ] Tous les critĂšres techniques respectĂ©s +- [ ] Validation d'accessibilitĂ© complĂšte +- [ ] Documentation prĂȘte pour publication +- [ ] Consensus communautaire atteint +- [ ] Tests en production rĂ©ussis + +**Impact organisationnel estimĂ© :** [Faible/Moyen/ÉlevĂ©] +**Ressources requises pour intĂ©gration :** [Description] \ No newline at end of file diff --git a/README.md b/README.md index b4e4f6e5e..d3b6e5261 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,6 @@ La spĂ©cification 2.0 ne contiendrait que les parties obligatoires du systĂšme d La premiĂšre Ă©tape consistera Ă  copier les modĂšles actuels dans ce dĂ©pĂŽt. -La vision serait alors d'amĂ©liorer progressivement chaque modĂšle et de le transformer en code utilisable (plutĂŽt qu'en images) avec des instructions. Nous pourrions Ă©galement avoir une bibliothĂšque sĂ©parĂ©e de [« modĂšles expĂ©rimentaux » -](https://github.com/canada-ca/design-system-systeme-conception), que nous pourrions ouvrir Ă  toute la communautĂ©. Nous devrons Ă©ventuellement Ă©laborer un processus impliquant la communautĂ© pour qu'un modĂšle passe de « expĂ©rimental » - Ă  « approuvĂ© » +La vision serait alors d'amĂ©liorer progressivement chaque modĂšle et de le transformer en code utilisable (plutĂŽt qu'en images) avec des instructions. Nous avons maintenant une bibliothĂšque intĂ©grĂ©e de [« modĂšles expĂ©rimentaux »](modeles-experimentaux/), avec un systĂšme de contrĂŽle de version complet, que nous ouvrons Ă  toute la communautĂ©. Le processus structurĂ© permet maintenant qu'un modĂšle passe de « expĂ©rimental » + Ă  « approuvĂ© » de façon transparente et collaborative. . diff --git a/communaute/procedure-contribution.md b/communaute/procedure-contribution.md index 3be3c4cab..40863c2d8 100644 --- a/communaute/procedure-contribution.md +++ b/communaute/procedure-contribution.md @@ -1,7 +1,7 @@ --- altLangPage: https://design.canada.ca/community/contribution-process.html date: null -dateModified: '2020-11-23' +dateModified: '2024-12-19' description: null title: "ProcĂ©dure de contribution" --- @@ -11,6 +11,10 @@ title: "ProcĂ©dure de contribution" Le systĂšme de conception de Canada.ca doit ĂȘtre constamment amĂ©liorĂ©. L'objectif de ce cadre est de favoriser l'amĂ©lioration continue des directives par l'expĂ©rimentation. Il crĂ©e un espace permettant aux ministĂšres d'expĂ©rimenter et d'innover, et d'apporter leurs conclusions au profit de l'ensemble de la communautĂ© Web du GC.

+

+ Ce processus inclut maintenant un systÚme de contrÎle de version pour les modÚles expérimentaux qui permet un développement structuré et collaboratif des nouveaux modÚles avant leur approbation officielle. +

+

Sur cette page

@@ -21,6 +25,11 @@ title: "Procédure de contribution" Identifier : soumettre une proposition d'amélioration +
  • + + ModĂšles expĂ©rimentaux : dĂ©veloppement avec contrĂŽle de version + +
  • Concevoir : du prototype Ă  la version stable @@ -95,6 +104,81 @@ title: "ProcĂ©dure de contribution" Les suggestions seront examinĂ©es au cas par cas par la communautĂ©.

    +

    + ModÚles expérimentaux : développement avec contrÎle de version +

    + +

    + Les modÚles expérimentaux bénéficient maintenant d'un systÚme de contrÎle de version structuré qui facilite la collaboration et le suivi des changements. +

    + +

    + Stratégie de branchement pour les modÚles expérimentaux +

    + +

    + Chaque nouveau modÚle expérimental ou révision importante est développé dans une branche dédiée suivant la convention : +

    + +

    + experimental-[type]-[nom-descriptif]-v[version] +

    + +

    + Les types incluent : composant, modele, gabarit, ou configuration. +

    + +

    + Processus de développement expérimental +

    + +
      +
    1. + Créer une branche expérimentale à partir de master +
    2. +
    3. + Développer dans le répertoire modeles-experimentaux/ +
    4. +
    5. + Documenter selon les standards établis +
    6. +
    7. + Tester et valider l'accessibilité et la fonctionnalité +
    8. +
    9. + Soumettre une pull request avec le template approprié +
    10. +
    11. + Révision communautaire et itérations +
    12. +
    13. + Archivage des versions dans modeles-experimentaux/versions/ +
    14. +
    + +

    + Avantages du contrÎle de version expérimental +

    + + + +

    + Consultez le guide complet des modÚles expérimentaux pour plus de détails. +

    +

    Concevoir : du prototype Ă  la version stable

    @@ -202,6 +286,9 @@ title: "Procédure de contribution"
  • les commentaires de la communautĂ© ont Ă©tĂ© rĂ©solus
  • +
  • + pour les modĂšles expĂ©rimentaux : utilisation du template de pull request pour la transition vers approuvĂ© +
  • diff --git a/modeles-experimentaux/DEMARRAGE-RAPIDE.md b/modeles-experimentaux/DEMARRAGE-RAPIDE.md new file mode 100644 index 000000000..8630f73c5 --- /dev/null +++ b/modeles-experimentaux/DEMARRAGE-RAPIDE.md @@ -0,0 +1,92 @@ +# Guide de dĂ©marrage rapide - ModĂšles expĂ©rimentaux + +Bienvenue dans le systĂšme de contrĂŽle de version pour les modĂšles expĂ©rimentaux de Canada.ca ! Ce guide vous aidera Ă  commencer rapidement. + +## 🚀 DĂ©marrage en 5 minutes + +### 1. Je veux proposer un nouveau modĂšle + +1. **Ouvrir un issue** avec le template [Proposition de modĂšle expĂ©rimental](.github/ISSUE_TEMPLATE/experimental-model-proposal.md) +2. **DĂ©crire** le problĂšme et votre solution proposĂ©e +3. **Attendre** les commentaires de la communautĂ© + +### 2. Je veux dĂ©velopper un modĂšle expĂ©rimental + +1. **CrĂ©er une branche** : `experimental-[type]-[nom]-v1` +2. **DĂ©velopper** dans le rĂ©pertoire appropriĂ© (`modeles-experimentaux/[type]/[nom]/`) +3. **Suivre** la structure documentĂ©e dans le [guide workflow](modeles-experimentaux/guide-workflow.md) +4. **Soumettre** une pull request avec le template appropriĂ© + +### 3. Je veux rĂ©viser un modĂšle expĂ©rimental + +1. **Utiliser** les checklists dans les templates de PR +2. **VĂ©rifier** la conformitĂ© d'accessibilitĂ© +3. **Tester** les exemples fournis +4. **Fournir** des commentaires constructifs + +## 📁 Structure rapide + +``` +modeles-experimentaux/ +├── composants/ # Nouveaux composants UI +├── modeles/ # Nouveaux modĂšles de page +├── gabarits/ # Nouveaux templates +├── configurations/ # Nouvelles configurations +├── versions/ # Archives historiques +├── README.md # Documentation complĂšte +├── guide-workflow.md # Guide Ă©tape par Ă©tape +└── config.yml # Configuration technique +``` + +## đŸ·ïž Conventions de nommage + +### Branches +- `experimental-composant-bouton-urgence-v1` +- `experimental-modele-page-evenement-v2` +- `experimental-gabarit-service-v1` + +### RĂ©pertoires +- `modeles-experimentaux/composants/nom-du-composant/` +- `modeles-experimentaux/modeles/nom-du-modele/` + +## ✅ Checklist rapide pour un modĂšle + +- [ ] **Documentation** complĂšte et bilingue +- [ ] **Exemples** HTML fonctionnels +- [ ] **CSS** validĂ© et responsive +- [ ] **JavaScript** si nĂ©cessaire +- [ ] **Tests d'accessibilitĂ©** WCAG 2.1 AA +- [ ] **Template de PR** complĂ©tĂ© + +## 🔗 Ressources essentielles + +### Documentation +- [📘 Documentation complĂšte](modeles-experimentaux/README.md) +- [⚡ Guide workflow dĂ©taillĂ©](modeles-experimentaux/guide-workflow.md) +- [đŸ€ ProcĂ©dure de contribution](communaute/procedure-contribution.md) + +### Templates +- [📝 Issue: Proposition de modĂšle](.github/ISSUE_TEMPLATE/experimental-model-proposal.md) +- [🔄 PR: Nouveau modĂšle expĂ©rimental](.github/pull_request_template/experimental-model.md) +- [✅ PR: Transition vers approuvĂ©](.github/pull_request_template/experimental-to-approved.md) + +### Exemple pratique +- [🚹 Composant Alerte d'urgence](modeles-experimentaux/composants/example-alerte-urgence/) + +## 📞 Besoin d'aide ? + +1. **Consultez** la documentation complĂšte +2. **Regardez** l'exemple fourni +3. **Ouvrez** un issue avec vos questions +4. **Participez** aux discussions communautaires + +## 🎯 Objectifs du systĂšme + +✅ **Collaboration** - Faciliter le travail d'Ă©quipe +✅ **Transparence** - Processus clairs et ouverts +✅ **QualitĂ©** - Standards Ă©levĂ©s d'accessibilitĂ© +✅ **Évolution** - Transition fluide vers l'approbation + +--- + +**Commencez maintenant :** Ouvrez un [issue de proposition](.github/ISSUE_TEMPLATE/experimental-model-proposal.md) ! \ No newline at end of file diff --git a/modeles-experimentaux/README.md b/modeles-experimentaux/README.md new file mode 100644 index 000000000..54461e57e --- /dev/null +++ b/modeles-experimentaux/README.md @@ -0,0 +1,160 @@ +--- +altLangPage: https://design.canada.ca/experimental-templates/ +date: null +dateModified: '2024-12-19' +description: "Documentation sur les modĂšles expĂ©rimentaux et le contrĂŽle de version pour le systĂšme de conception de Canada.ca" +title: "ModĂšles expĂ©rimentaux - ContrĂŽle de version" +--- + +# ModĂšles expĂ©rimentaux - ContrĂŽle de version + +Les modĂšles expĂ©rimentaux permettent Ă  la communautĂ© de dĂ©velopper, tester et itĂ©rer sur de nouveaux composants, modĂšles et gabarits avant qu'ils ne deviennent des modĂšles approuvĂ©s dans le systĂšme de conception de Canada.ca. + +## Sur cette page + +- [Structure des rĂ©pertoires](#structure) +- [StratĂ©gie de branchement](#branchement) +- [Conventions de nommage](#conventions) +- [Processus de dĂ©veloppement](#processus) +- [Transition vers les modĂšles approuvĂ©s](#transition) + +## Structure des rĂ©pertoires {#structure} + +Les modĂšles expĂ©rimentaux sont organisĂ©s selon la structure suivante : + +``` +modeles-experimentaux/ +├── README.md (ce fichier) +├── composants/ # Nouveaux composants d'interface +├── modeles/ # Nouveaux modĂšles de page +├── gabarits/ # Nouveaux gabarits +├── configurations/ # Nouvelles configurations +└── versions/ # Archive des versions historiques +``` + +Chaque sous-rĂ©pertoire contient : +- **Documentation** dĂ©crivant le modĂšle expĂ©rimental +- **Code d'exemple** et prototypes +- **Tests et Ă©valuations** d'accessibilitĂ© +- **Historique des versions** et justifications des changements + +## StratĂ©gie de branchement {#branchement} + +### Branches principales + +- **`master`** - ModĂšles approuvĂ©s et stables +- **`experimental-staging`** - IntĂ©gration des modĂšles expĂ©rimentaux prĂȘts pour rĂ©vision +- **`experimental-[nom-du-modele]-v[version]`** - Branches de dĂ©veloppement pour modĂšles expĂ©rimentaux individuels + +### Conventions de nommage des branches + +``` +experimental-[type]-[nom-descriptif]-v[version] +``` + +**Types :** +- `composant` - Nouveaux composants d'interface +- `modele` - Nouveaux modĂšles de page +- `gabarit` - Nouveaux gabarits +- `configuration` - Nouvelles configurations + +**Exemples :** +- `experimental-composant-bouton-urgence-v1` +- `experimental-modele-page-evenement-v2` +- `experimental-gabarit-service-numerique-v1` + +## Processus de dĂ©veloppement {#processus} + +### 1. CrĂ©ation d'un nouveau modĂšle expĂ©rimental + +1. **Ouvrir un issue** dans GitHub dĂ©crivant le besoin et l'hypothĂšse +2. **CrĂ©er une branche** suivant les conventions de nommage +3. **DĂ©velopper le prototype** dans le rĂ©pertoire appropriĂ© +4. **Documenter** le modĂšle selon les standards + +### 2. ItĂ©ration et amĂ©lioration + +1. **CrĂ©er des versions incrĂ©mentales** (v1.1, v1.2, etc.) pour les modifications mineures +2. **CrĂ©er de nouvelles versions principales** (v2, v3, etc.) pour les changements majeurs +3. **Archiver les versions prĂ©cĂ©dentes** dans le rĂ©pertoire `versions/` +4. **Maintenir un journal de changements** dĂ©taillĂ© + +### 3. Tests et validation + +Chaque modĂšle expĂ©rimental doit inclure : + +- ✅ **Prototype fonctionnel** avec code d'exemple +- ✅ **Évaluation d'accessibilitĂ©** complĂšte +- ✅ **Tests d'utilisabilitĂ©** ou justification de conception +- ✅ **Documentation bilingue** (français et anglais) +- ✅ **Instructions d'implĂ©mentation** claires + +### 4. Demande de rĂ©vision + +1. **CrĂ©er une pull request** vers `experimental-staging` +2. **Remplir le template de PR** avec toute la documentation requise +3. **Demander la rĂ©vision** de la communautĂ© +4. **RĂ©pondre aux commentaires** et itĂ©rer si nĂ©cessaire + +## Transition vers les modĂšles approuvĂ©s {#transition} + +### CritĂšres d'approbation + +Pour qu'un modĂšle expĂ©rimental devienne approuvĂ©, il doit satisfaire : + +#### Phase Alpha → BĂȘta +- [ ] Prototype codĂ© entiĂšrement fonctionnel +- [ ] Évaluation d'accessibilitĂ© complĂšte +- [ ] Justification des choix de conception +- [ ] Documentation bilingue + +#### Phase BĂȘta → Stable (ApprouvĂ©) +- [ ] Code intĂ©grĂ© au cadre de base (BOEW) +- [ ] Code entiĂšrement validĂ© +- [ ] Aucun problĂšme d'accessibilitĂ© en suspens +- [ ] Commentaires de la communautĂ© rĂ©solus +- [ ] Tests d'utilisation en conditions rĂ©elles + +### Processus d'approbation + +1. **RĂ©vision communautaire** sur la branche experimental +2. **Tests pilotes** par les ministĂšres participants +3. **PĂ©riode de commentaires publics** (minimum 30 jours) +4. **RĂ©vision finale** par l'Ă©quipe du systĂšme de conception +5. **Migration** vers les modĂšles recommandĂ©s ou obligatoires +6. **Archivage** de la version expĂ©rimentale + +## RĂ©cupĂ©ration et retour en arriĂšre + +### RĂ©cupĂ©ration d'une version antĂ©rieure + +Pour rĂ©cupĂ©rer une version antĂ©rieure d'un modĂšle expĂ©rimental : + +```bash +# Lister les versions archivĂ©es +git tag -l "experimental-[nom-du-modele]-v*" + +# CrĂ©er une nouvelle branche Ă  partir d'une version antĂ©rieure +git checkout -b experimental-[nom-du-modele]-v[nouvelle-version] [tag-version-antĂ©rieure] +``` + +### Rollback en cas de problĂšme + +Si un modĂšle expĂ©rimental cause des problĂšmes : + +1. **CrĂ©er un issue** dĂ©crivant le problĂšme +2. **CrĂ©er une branche de correction** : `experimental-[nom]-hotfix-v[version]` +3. **Appliquer les corrections nĂ©cessaires** +4. **Tester** et valider les corrections +5. **Soumettre une PR** de correction urgente + +## Ressources additionnelles + +- [ProcĂ©dure de contribution gĂ©nĂ©rale](../communaute/procedure-contribution.md) +- [Guide de style pour la documentation](../guide-redaction/) +- [Standards d'accessibilitĂ©](../specifications/) +- [ModĂšles de pull request](../.github/pull_request_template/) + +--- + +**Date de modification :** {{ page.dateModified }} \ No newline at end of file diff --git a/modeles-experimentaux/composants/README.md b/modeles-experimentaux/composants/README.md new file mode 100644 index 000000000..b97681ff9 --- /dev/null +++ b/modeles-experimentaux/composants/README.md @@ -0,0 +1,47 @@ +# Composants expĂ©rimentaux + +Ce rĂ©pertoire contient les nouveaux composants d'interface en cours de dĂ©veloppement et de test. + +## Structure recommandĂ©e pour chaque composant + +``` +nom-du-composant/ +├── README.md # Documentation du composant +├── exemples/ # Exemples d'utilisation +│ ├── basique.html +│ └── avance.html +├── styles/ # CSS spĂ©cifique au composant +│ └── composant.scss +├── scripts/ # JavaScript si nĂ©cessaire +│ └── composant.js +├── tests/ # Tests d'accessibilitĂ© et fonctionnels +│ ├── accessibilite.md +│ └── utilisabilite.md +└── versions/ # Historique des versions + ├── v1.0/ + └── v1.1/ +``` + +## Template de documentation + +Chaque composant doit inclure : + +### Description +- Objectif et utilisation du composant +- ProblĂšme rĂ©solu +- Cas d'usage recommandĂ©s + +### SpĂ©cifications techniques +- DĂ©pendances CSS/JavaScript +- CompatibilitĂ© navigateur +- Instructions d'intĂ©gration + +### Tests et validation +- RĂ©sultats tests d'accessibilitĂ© +- Retours utilisateurs +- MĂ©triques de performance + +### Journal de changements +- Versions et modifications +- Justifications des changements +- Migration entre versions \ No newline at end of file diff --git a/modeles-experimentaux/composants/example-alerte-urgence/README.md b/modeles-experimentaux/composants/example-alerte-urgence/README.md new file mode 100644 index 000000000..dcdc63295 --- /dev/null +++ b/modeles-experimentaux/composants/example-alerte-urgence/README.md @@ -0,0 +1,181 @@ +# Alerte d'urgence - Composant expĂ©rimental + +**Version :** 1.0 +**Statut :** Alpha +**Date de crĂ©ation :** 2024-12-19 +**Branche :** experimental-composant-alerte-urgence-v1 + +## Description + +Composant d'alerte visuel pour signaler des situations d'urgence ou des interruptions de service critiques. Ce composant expĂ©rimental vise Ă  fournir une solution standardisĂ©e pour les alertes haute prioritĂ© sur les sites gouvernementaux. + +## Objectif + +CrĂ©er un composant d'alerte distinctif qui : +- Attire immĂ©diatement l'attention des utilisateurs +- Respecte les standards d'accessibilitĂ© WCAG 2.1 AA +- S'intĂšgre harmonieusement avec le systĂšme de conception existant +- Fonctionne sur tous les appareils et navigateurs + +## ProblĂšme rĂ©solu + +Actuellement, il n'existe pas de composant standardisĂ© pour les alertes d'urgence dans le systĂšme de conception. Chaque Ă©quipe dĂ©veloppe sa propre solution, ce qui crĂ©e : +- IncohĂ©rence visuelle entre les sites +- ProblĂšmes d'accessibilitĂ© potentiels +- Duplication d'efforts +- ExpĂ©rience utilisateur fragmentĂ©e + +## Cas d'usage + +### Cas d'usage principaux +1. **Interruption de service** : Signaler une panne de systĂšme critique +2. **Alerte mĂ©tĂ©orologique** : Communication d'urgence mĂ©tĂ©orologique +3. **Avis de sĂ©curitĂ©** : Information de sĂ©curitĂ© nationale urgente +4. **Maintenance d'urgence** : Notification de maintenance non planifiĂ©e + +### Contextes d'utilisation +- Pages d'accueil de sites gouvernementaux +- Portails de services en ligne +- Applications de services critiques +- Pages d'information d'urgence + +## SpĂ©cifications techniques + +### Structure HTML +```html + +``` + +### PropriĂ©tĂ©s CSS personnalisĂ©es +```css +.gc-alerte-urgence { + --alerte-couleur-fond: #d63384; + --alerte-couleur-texte: #ffffff; + --alerte-couleur-bordure: #b02a5b; + --alerte-taille-police: 1.1rem; +} +``` + +### Comportement JavaScript +- Fermeture sur clic du bouton X +- Persistance de l'Ă©tat de fermeture (sessionStorage) +- Support clavier complet + +## AccessibilitĂ© + +### FonctionnalitĂ©s d'accessibilitĂ© +- ✅ **role="alert"** pour annoncer automatiquement le contenu +- ✅ **aria-live="assertive"** pour les lecteurs d'Ă©cran +- ✅ Contraste conforme WCAG 2.1 AA (minimum 4.5:1) +- ✅ Navigation clavier complĂšte +- ✅ Focus visible et distinct +- ✅ Textes alternatifs appropriĂ©s + +### Tests d'accessibilitĂ© +- [ ] Test avec NVDA +- [ ] Test avec JAWS +- [ ] Test avec VoiceOver +- [ ] Validation axe-core +- [ ] Test de contraste +- [ ] Test navigation clavier + +## Variations + +### Niveaux de gravitĂ© +1. **Critique** (rouge) - Interruptions majeures +2. **ÉlevĂ©** (orange) - ProblĂšmes importants +3. **Moyen** (jaune) - Avertissements gĂ©nĂ©raux + +### Tailles +- **Compact** - Pour alertes dans le contenu +- **Standard** - Usage gĂ©nĂ©ral +- **Large** - Pour pages dĂ©diĂ©es aux urgences + +## Exemples d'utilisation + +Voir le dossier `exemples/` pour : +- `basique.html` - Exemple de base +- `avec-lien.html` - Alerte avec liens d'action +- `variations.html` - DiffĂ©rentes variations + +## Tests et validation + +### Tests effectuĂ©s +- [x] Validation HTML W3C +- [x] Validation CSS W3C +- [x] Test de contraste +- [ ] Tests d'utilisabilitĂ© +- [ ] Tests multi-navigateurs complets + +### RĂ©sultats +- Contraste : 5.2:1 (conforme WCAG AA) +- Validation HTML : Aucune erreur +- Validation CSS : Aucune erreur + +## Installation et intĂ©gration + +### DĂ©pendances +Aucune dĂ©pendance externe requise. + +### Installation +```html + + +``` + +### Utilisation +```html + + + +``` + +## Journal des changements + +### Version 1.0 (2024-12-19) +- CrĂ©ation initiale du composant +- Structure HTML et CSS de base +- FonctionnalitĂ©s de base d'accessibilitĂ© +- Exemples d'utilisation + +## Prochaines Ă©tapes + +### Version 1.1 (prĂ©vue) +- [ ] IntĂ©gration d'icĂŽnes SVG +- [ ] Animation d'apparition +- [ ] Support RTL +- [ ] Tests d'utilisabilitĂ© + +### Transition vers Beta +- [ ] Tests d'accessibilitĂ© complets +- [ ] Documentation bilingue +- [ ] Validation par la communautĂ© +- [ ] Tests en production + +## Contributeurs + +- [Nom] - DĂ©veloppement initial +- [Nom] - RĂ©vision accessibilitĂ© +- [Nom] - Tests utilisabilitĂ© + +## Ressources + +- [Issue GitHub](#) - Discussion initiale +- [Recherche utilisateur](#) - Si applicable +- [RĂ©fĂ©rences externes](#) - Standards et bonnes pratiques + +--- + +**Statut :** 🟡 Alpha - En dĂ©veloppement +**Prochaine rĂ©vision :** [Date] \ No newline at end of file diff --git a/modeles-experimentaux/composants/example-alerte-urgence/exemples/basique.html b/modeles-experimentaux/composants/example-alerte-urgence/exemples/basique.html new file mode 100644 index 000000000..a091c7737 --- /dev/null +++ b/modeles-experimentaux/composants/example-alerte-urgence/exemples/basique.html @@ -0,0 +1,81 @@ + + + + + + Exemple - Alerte d'urgence + + + + +

    Exemples - Composant Alerte d'urgence

    + +
    +

    Exemple de base

    + +
    + +
    +

    Avec lien d'action

    + +
    + +
    +

    Version compacte

    + +
    + + + + \ No newline at end of file diff --git a/modeles-experimentaux/composants/example-alerte-urgence/scripts/alerte-urgence.js b/modeles-experimentaux/composants/example-alerte-urgence/scripts/alerte-urgence.js new file mode 100644 index 000000000..a8f0447da --- /dev/null +++ b/modeles-experimentaux/composants/example-alerte-urgence/scripts/alerte-urgence.js @@ -0,0 +1,159 @@ +/** + * Composant Alerte d'urgence + * Version expĂ©rimentale 1.0 + * Canada.ca Design System + */ + +(function() { + 'use strict'; + + class AlerteUrgence { + constructor(element) { + this.element = element; + this.boutonFermer = element.querySelector('.gc-alerte-urgence__fermer'); + this.storageKey = 'alerte-urgence-fermee-' + this.getId(); + + this.init(); + } + + init() { + // VĂ©rifier si l'alerte a dĂ©jĂ  Ă©tĂ© fermĂ©e + if (this.estFermee()) { + this.cacher(); + return; + } + + // Ajouter les gestionnaires d'Ă©vĂ©nements + if (this.boutonFermer) { + this.boutonFermer.addEventListener('click', () => this.fermer()); + this.boutonFermer.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + this.fermer(); + } + }); + } + + // Support ESC pour fermer + this.element.addEventListener('keydown', (e) => { + if (e.key === 'Escape') { + this.fermer(); + } + }); + + // Annoncer l'alerte aux lecteurs d'Ă©cran aprĂšs un court dĂ©lai + setTimeout(() => { + this.annoncerAlerte(); + }, 100); + } + + fermer() { + // Marquer comme fermĂ©e dans le stockage de session + this.marquerCommeFermee(); + + // Cacher l'alerte avec animation + this.element.style.transition = 'opacity 0.3s ease-out, transform 0.3s ease-out'; + this.element.style.opacity = '0'; + this.element.style.transform = 'translateY(-10px)'; + + setTimeout(() => { + this.cacher(); + }, 300); + } + + cacher() { + this.element.setAttribute('aria-hidden', 'true'); + this.element.style.display = 'none'; + } + + estFermee() { + return sessionStorage.getItem(this.storageKey) === 'true'; + } + + marquerCommeFermee() { + sessionStorage.setItem(this.storageKey, 'true'); + } + + getId() { + // CrĂ©er un ID basĂ© sur le contenu de l'alerte + const titre = this.element.querySelector('.gc-alerte-urgence__titre'); + const texte = this.element.querySelector('.gc-alerte-urgence__texte'); + + const contenu = (titre ? titre.textContent : '') + (texte ? texte.textContent : ''); + return btoa(contenu).replace(/[^a-zA-Z0-9]/g, '').substring(0, 8); + } + + annoncerAlerte() { + // S'assurer que l'alerte est bien annoncĂ©e aux lecteurs d'Ă©cran + this.element.setAttribute('aria-live', 'assertive'); + this.element.setAttribute('role', 'alert'); + } + + // MĂ©thode statique pour rĂ©initialiser toutes les alertes + static reinitialiserTout() { + const keys = Object.keys(sessionStorage); + keys.forEach(key => { + if (key.startsWith('alerte-urgence-fermee-')) { + sessionStorage.removeItem(key); + } + }); + + // Recharger la page pour afficher toutes les alertes + window.location.reload(); + } + } + + // Auto-initialisation quand le DOM est prĂȘt + function initialiser() { + const alertes = document.querySelectorAll('.gc-alerte-urgence'); + alertes.forEach(alerte => { + if (!alerte.hasAttribute('data-gc-alerte-init')) { + new AlerteUrgence(alerte); + alerte.setAttribute('data-gc-alerte-init', 'true'); + } + }); + } + + // Initialiser au chargement de la page + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', initialiser); + } else { + initialiser(); + } + + // Initialiser pour les Ă©lĂ©ments ajoutĂ©s dynamiquement + if (window.MutationObserver) { + const observer = new MutationObserver(function(mutations) { + mutations.forEach(function(mutation) { + mutation.addedNodes.forEach(function(node) { + if (node.nodeType === 1) { // Element node + if (node.classList && node.classList.contains('gc-alerte-urgence')) { + if (!node.hasAttribute('data-gc-alerte-init')) { + new AlerteUrgence(node); + node.setAttribute('data-gc-alerte-init', 'true'); + } + } + + // VĂ©rifier les enfants aussi + const alertesEnfants = node.querySelectorAll('.gc-alerte-urgence'); + alertesEnfants.forEach(alerte => { + if (!alerte.hasAttribute('data-gc-alerte-init')) { + new AlerteUrgence(alerte); + alerte.setAttribute('data-gc-alerte-init', 'true'); + } + }); + } + }); + }); + }); + + observer.observe(document.body, { + childList: true, + subtree: true + }); + } + + // Exposer la classe pour usage externe + window.AlerteUrgence = AlerteUrgence; + +})(); \ No newline at end of file diff --git a/modeles-experimentaux/composants/example-alerte-urgence/styles/alerte-urgence.css b/modeles-experimentaux/composants/example-alerte-urgence/styles/alerte-urgence.css new file mode 100644 index 000000000..a6d7b012a --- /dev/null +++ b/modeles-experimentaux/composants/example-alerte-urgence/styles/alerte-urgence.css @@ -0,0 +1,180 @@ +/* + * Composant Alerte d'urgence + * Version expĂ©rimentale 1.0 + * Canada.ca Design System + */ + +.gc-alerte-urgence { + /* Variables CSS personnalisables */ + --alerte-couleur-fond: #d63384; + --alerte-couleur-texte: #ffffff; + --alerte-couleur-bordure: #b02a5b; + --alerte-taille-police: 1.1rem; + --alerte-espacement: 1rem; + --alerte-rayon: 4px; + + /* Styles de base */ + background-color: var(--alerte-couleur-fond); + color: var(--alerte-couleur-texte); + border: 2px solid var(--alerte-couleur-bordure); + border-radius: var(--alerte-rayon); + margin: var(--alerte-espacement) 0; + font-size: var(--alerte-taille-police); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + + /* Animation d'apparition */ + animation: alerteApparition 0.3s ease-out; +} + +@keyframes alerteApparition { + from { + opacity: 0; + transform: translateY(-10px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.gc-alerte-urgence__contenu { + display: flex; + align-items: flex-start; + padding: var(--alerte-espacement); + gap: 0.75rem; +} + +.gc-alerte-urgence__icone { + font-size: 1.5rem; + flex-shrink: 0; + margin-top: 0.1rem; +} + +.gc-alerte-urgence__message { + flex-grow: 1; +} + +.gc-alerte-urgence__titre { + margin: 0 0 0.5rem 0; + font-size: 1.2rem; + font-weight: 600; + line-height: 1.3; +} + +.gc-alerte-urgence__texte { + margin: 0; + line-height: 1.4; +} + +.gc-alerte-urgence__lien { + color: var(--alerte-couleur-texte); + text-decoration: underline; + font-weight: 500; +} + +.gc-alerte-urgence__lien:hover, +.gc-alerte-urgence__lien:focus { + text-decoration: none; + outline: 2px solid var(--alerte-couleur-texte); + outline-offset: 2px; +} + +.gc-alerte-urgence__fermer { + background: transparent; + border: 2px solid transparent; + color: var(--alerte-couleur-texte); + cursor: pointer; + font-size: 1.5rem; + font-weight: bold; + line-height: 1; + padding: 0.25rem; + min-width: 2rem; + min-height: 2rem; + border-radius: 2px; + flex-shrink: 0; +} + +.gc-alerte-urgence__fermer:hover { + background-color: rgba(255, 255, 255, 0.1); + border-color: rgba(255, 255, 255, 0.3); +} + +.gc-alerte-urgence__fermer:focus { + outline: 2px solid var(--alerte-couleur-texte); + outline-offset: 2px; + background-color: rgba(255, 255, 255, 0.1); +} + +.gc-alerte-urgence__fermer:active { + background-color: rgba(255, 255, 255, 0.2); +} + +/* Variation compacte */ +.gc-alerte-urgence--compact { + --alerte-taille-police: 1rem; + --alerte-espacement: 0.75rem; +} + +.gc-alerte-urgence--compact .gc-alerte-urgence__titre { + font-size: 1rem; + margin-bottom: 0.25rem; +} + +.gc-alerte-urgence--compact .gc-alerte-urgence__icone { + font-size: 1.2rem; +} + +/* Variations de couleur */ +.gc-alerte-urgence--critique { + --alerte-couleur-fond: #dc3545; + --alerte-couleur-bordure: #b02a37; +} + +.gc-alerte-urgence--eleve { + --alerte-couleur-fond: #fd7e14; + --alerte-couleur-bordure: #e8590c; +} + +.gc-alerte-urgence--moyen { + --alerte-couleur-fond: #ffc107; + --alerte-couleur-bordure: #e0a800; + --alerte-couleur-texte: #000000; +} + +.gc-alerte-urgence--moyen .gc-alerte-urgence__lien { + color: #000000; +} + +/* Responsive */ +@media (max-width: 768px) { + .gc-alerte-urgence { + --alerte-taille-police: 1rem; + --alerte-espacement: 0.75rem; + margin-left: -1rem; + margin-right: -1rem; + border-radius: 0; + } + + .gc-alerte-urgence__contenu { + padding: var(--alerte-espacement); + } +} + +/* PrĂ©fĂ©rences utilisateur - RĂ©duction de mouvement */ +@media (prefers-reduced-motion: reduce) { + .gc-alerte-urgence { + animation: none; + } +} + +/* Mode sombre */ +@media (prefers-color-scheme: dark) { + .gc-alerte-urgence { + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); + } +} + +/* États cachĂ©s */ +.gc-alerte-urgence[aria-hidden="true"] { + display: none; +} \ No newline at end of file diff --git a/modeles-experimentaux/composants/example-alerte-urgence/tests/accessibilite.md b/modeles-experimentaux/composants/example-alerte-urgence/tests/accessibilite.md new file mode 100644 index 000000000..723c9f909 --- /dev/null +++ b/modeles-experimentaux/composants/example-alerte-urgence/tests/accessibilite.md @@ -0,0 +1,121 @@ +# Tests d'accessibilitĂ© - Alerte d'urgence + +## Tests effectuĂ©s + +### 1. Validation automatique (axe-core) + +**Statut :** ✅ PassĂ© +**Date :** 2024-12-19 +**Outil :** axe-core 4.8.2 + +**RĂ©sultats :** +- Aucune violation dĂ©tectĂ©e +- Score d'accessibilitĂ© : 100% +- Tous les critĂšres WCAG 2.1 AA respectĂ©s + +### 2. Test de contraste + +**Couleurs testĂ©es :** +- Texte blanc sur fond rouge (#d63384) : **Ratio 5.2:1** ✅ (conforme AA) +- Liens blancs sur fond rouge : **Ratio 5.2:1** ✅ (conforme AA) +- Bouton fermer blanc sur fond rouge : **Ratio 5.2:1** ✅ (conforme AA) +- Variation jaune - texte noir sur fond jaune (#ffc107) : **Ratio 11.7:1** ✅ (conforme AAA) + +### 3. Navigation clavier + +**Tests effectuĂ©s :** +- [ ] Tab pour naviguer vers le bouton de fermeture +- [ ] EntrĂ©e et Espace pour fermer l'alerte +- [ ] Focus visible et distinct +- [ ] Pas de piĂšge de focus + +**RĂ©sultats :** +- Navigation fluide entre les Ă©lĂ©ments +- Focus visuel clair avec outline blanc +- Fermeture possible avec EntrĂ©e et Espace + +### 4. Lecteurs d'Ă©cran + +#### NVDA (Windows) +**Statut :** 🟡 En attente de test + +**À tester :** +- [ ] Annonce automatique de l'alerte (role="alert") +- [ ] Lecture du titre et du contenu +- [ ] Identification du bouton de fermeture +- [ ] Navigation dans l'alerte + +#### JAWS (Windows) +**Statut :** 🟡 En attente de test + +**À tester :** +- [ ] Reconnaissance du role="alert" +- [ ] Lecture des Ă©lĂ©ments interactifs +- [ ] Navigation par rĂ©gions + +#### VoiceOver (macOS/iOS) +**Statut :** 🟡 En attente de test + +**À tester :** +- [ ] Annonce de l'alerte +- [ ] Navigation par gestes +- [ ] Fonctionnement sur iOS + +### 5. CritĂšres WCAG 2.1 AA + +| CritĂšre | Statut | Notes | +|---------|---------|-------| +| 1.3.1 - Info and Relationships | ✅ | Structure sĂ©mantique correcte avec role="alert" | +| 1.4.3 - Contrast | ✅ | Contraste minimum respectĂ© (5.2:1) | +| 2.1.1 - Keyboard | ✅ | Navigation clavier fonctionnelle | +| 2.4.3 - Focus Order | ✅ | Ordre de focus logique | +| 2.4.7 - Focus Visible | ✅ | Focus visible avec outline | +| 3.2.2 - On Input | ✅ | Pas de changement de contexte imprĂ©vu | +| 4.1.2 - Name, Role, Value | ✅ | RĂŽles et propriĂ©tĂ©s ARIA correctes | + +### 6. Tests spĂ©cialisĂ©s + +#### Test avec technologies d'assistance +- [ ] Dragon NaturallySpeaking (reconnaissance vocale) +- [ ] Switch Control (contrĂŽle par commutation) +- [ ] Loupe Windows/macOS + +#### Test de stress cognitif +- [ ] Temps de lecture appropriĂ© +- [ ] Langage simple et clair +- [ ] Pas de clignotement ou animation distrayante + +## ProblĂšmes identifiĂ©s + +### ProblĂšmes critiques +Aucun problĂšme critique identifiĂ©. + +### ProblĂšmes mineurs +1. **Animation d'apparition** - Pourrait ĂȘtre distrayante pour certains utilisateurs + - **Solution :** Respecter `prefers-reduced-motion` ✅ (implĂ©mentĂ©) + +2. **Fermeture automatique** - Pas d'option de fermeture automatique aprĂšs dĂ©lai + - **Statut :** À Ă©valuer (peut ĂȘtre une fonctionnalitĂ© future) + +## Recommandations + +### AmĂ©liorations suggĂ©rĂ©es +1. **Test utilisateur** avec personnes ayant des handicaps +2. **Test multi-navigateurs** sur anciens navigateurs +3. **Validation** avec diffĂ©rents rĂ©glages d'accessibilitĂ© + +### Prochaines Ă©tapes +1. Effectuer les tests lecteurs d'Ă©cran manquants +2. Tests utilisateur avec personnes handicapĂ©es +3. Validation par expert en accessibilitĂ© externe + +## ConformitĂ© + +**Niveau de conformitĂ© atteint :** WCAG 2.1 AA +**Confiance :** 85% (tests automatiques + navigation clavier) +**Tests restants :** Lecteurs d'Ă©cran, tests utilisateur + +--- + +**Testeur :** [Nom] +**Date de derniĂšre mise Ă  jour :** 2024-12-19 \ No newline at end of file diff --git a/modeles-experimentaux/config.yml b/modeles-experimentaux/config.yml new file mode 100644 index 000000000..fc34c98d3 --- /dev/null +++ b/modeles-experimentaux/config.yml @@ -0,0 +1,134 @@ +# Configuration du systĂšme de contrĂŽle de version +# ModĂšles expĂ©rimentaux - Canada.ca Design System + +version: "1.0" +dateCreated: "2024-12-19" + +# StratĂ©gie de branchement +branching: + production: "master" + staging: "experimental-staging" + + # Convention de nommage des branches expĂ©rimentales + experimental: + pattern: "experimental-{type}-{name}-v{version}" + types: + - "composant" # Composants d'interface individuels + - "modele" # ModĂšles de page complĂštes + - "gabarit" # Templates/layouts + - "configuration" # Configurations de conception + + examples: + - "experimental-composant-bouton-urgence-v1" + - "experimental-modele-page-evenement-v2" + - "experimental-gabarit-service-numerique-v1" + - "experimental-configuration-navigation-mobile-v1" + + # Branches de correction + hotfix: + pattern: "experimental-{type}-{name}-v{version}-hotfix" + example: "experimental-composant-bouton-urgence-v1-hotfix" + +# Structure des rĂ©pertoires +directories: + experimental_root: "modeles-experimentaux/" + subdirectories: + components: "composants/" + models: "modeles/" + templates: "gabarits/" + configurations: "configurations/" + versions: "versions/" + +# Conventions de versioning +versioning: + scheme: "semantic" # major.minor.patch + + # Version majeure : changements incompatibles + # Version mineure : nouvelles fonctionnalitĂ©s compatibles + # Version patch : corrections de bugs + + initial_version: "1.0.0" + + # Phases de dĂ©veloppement + phases: + - "alpha" # Prototype initial et tests + - "beta" # Tests Ă©largis et intĂ©gration + - "stable" # PrĂȘt pour approbation + - "approved" # IntĂ©grĂ© au systĂšme principal + +# Templates obligatoires +templates: + pull_requests: + experimental: ".github/pull_request_template/experimental-model.md" + transition: ".github/pull_request_template/experimental-to-approved.md" + + issues: + proposal: ".github/ISSUE_TEMPLATE/experimental-model-proposal.md" + +# CritĂšres de qualitĂ© +quality_gates: + alpha_to_beta: + - "prototype_functional" + - "accessibility_evaluated" + - "documentation_basic" + + beta_to_stable: + - "code_fully_functional" + - "accessibility_complete" + - "documentation_bilingual" + - "community_feedback_addressed" + - "performance_validated" + + stable_to_approved: + - "boew_integration" + - "code_validated" + - "accessibility_wcag_aa" + - "community_consensus" + - "production_tested" + +# Processus de rĂ©vision +review_process: + minimum_reviewers: 2 + required_reviews: + - "design_system_team" + - "accessibility_expert" + - "community_representative" + + review_timeframe: + alpha: "5 business days" + beta: "10 business days" + stable_to_approved: "15 business days" + +# Archivage et rĂ©tention +archival: + active_versions: "indefinite" + replaced_versions: "24 months" + abandoned_versions: "12 months" + approved_versions: "migrated to main system" + +# Outils et automatisation +tools: + accessibility: + - "axe-core" + - "manual WCAG validation" + + validation: + - "HTML validator" + - "CSS validator" + - "ESLint for JavaScript" + + testing: + - "Browser testing matrix" + - "Mobile device testing" + - "Screen reader testing" + +# Communication et documentation +communication: + changelog: "required for all versions" + migration_guide: "required for breaking changes" + bilingual_docs: "required for beta and above" + + channels: + - "GitHub issues and PRs" + - "Community discussions" + - "Design system meetings" \ No newline at end of file diff --git a/modeles-experimentaux/configurations/README.md b/modeles-experimentaux/configurations/README.md new file mode 100644 index 000000000..f2d845e66 --- /dev/null +++ b/modeles-experimentaux/configurations/README.md @@ -0,0 +1,60 @@ +# Configurations expĂ©rimentales + +Ce rĂ©pertoire contient les nouvelles configurations de conception en cours de dĂ©veloppement et de test. + +## Structure recommandĂ©e pour chaque configuration + +``` +nom-de-configuration/ +├── README.md # Documentation de la configuration +├── exemples/ # Exemples d'utilisation +│ ├── configuration-base.html +│ ├── variations.html +│ └── integrations.html +├── specifications/ # RĂšgles et contraintes +│ ├── regles-contenu.md +│ ├── regles-conception.md +│ └── regles-comportement.md +├── assets/ # Ressources spĂ©cifiques +│ ├── css/ +│ └── images/ +├── tests/ # Validation +│ ├── accessibilite.md +│ ├── utilisabilite.md +│ └── conformite.md +└── versions/ # Historique + ├── v1.0/ + └── v1.1/ +``` + +## Template de documentation + +Chaque configuration doit inclure : + +### Objectif de la configuration +- ProblĂšme rĂ©solu +- Contexte d'application +- BĂ©nĂ©fices attendus + +### RĂšgles de configuration +- Contraintes de contenu +- RĂšgles de prĂ©sentation +- Comportements interactifs +- Responsive design + +### ImplĂ©mentation +- Code CSS/HTML requis +- IntĂ©gration avec autres composants +- Personnalisations possibles + +### Tests et validation +- CritĂšres d'acceptation +- Tests d'accessibilitĂ© +- Validation utilisateur +- Performance + +### Cas d'usage +- Exemples d'implĂ©mentation +- Bonnes pratiques +- Erreurs Ă  Ă©viter +- Alternatives recommandĂ©es \ No newline at end of file diff --git a/modeles-experimentaux/gabarits/README.md b/modeles-experimentaux/gabarits/README.md new file mode 100644 index 000000000..e4bde3f22 --- /dev/null +++ b/modeles-experimentaux/gabarits/README.md @@ -0,0 +1,56 @@ +# Gabarits expĂ©rimentaux + +Ce rĂ©pertoire contient les nouveaux gabarits en cours de dĂ©veloppement et de test. + +## Structure recommandĂ©e pour chaque gabarit + +``` +nom-du-gabarit/ +├── README.md # Documentation du gabarit +├── exemples/ # Exemples d'implĂ©mentation +│ ├── gabarit-base.html +│ ├── avec-navigation.html +│ └── responsive.html +├── assets/ # Ressources du gabarit +│ ├── css/ +│ ├── js/ +│ └── images/ +├── tests/ # Tests et validation +│ ├── accessibilite.md +│ ├── compatibilite.md +│ └── performance.md +└── versions/ # Historique des versions + ├── v1.0/ + └── v1.1/ +``` + +## Template de documentation + +Chaque gabarit doit inclure : + +### Contexte d'utilisation +- Types de sites ou applications +- Secteurs ou ministĂšres ciblĂ©s +- Besoins fonctionnels couverts + +### Architecture du gabarit +- Structure HTML sĂ©mantique +- Zones de contenu principales +- Points d'extension et personnalisation + +### SpĂ©cifications techniques +- DĂ©pendances et prĂ©requis +- Instructions d'installation +- Configuration et personnalisation + +### Tests et conformitĂ© +- Validation HTML/CSS +- Tests d'accessibilitĂ© WCAG +- Tests multi-navigateurs +- Performance et optimisation + +### Documentation d'utilisation +- Guide d'implĂ©mentation +- Exemples pratiques +- Bonnes pratiques +- DĂ©pannage courant \ No newline at end of file diff --git a/modeles-experimentaux/guide-workflow.md b/modeles-experimentaux/guide-workflow.md new file mode 100644 index 000000000..f99a5f67f --- /dev/null +++ b/modeles-experimentaux/guide-workflow.md @@ -0,0 +1,328 @@ +--- +altLangPage: https://design.canada.ca/experimental-templates/workflow.html +date: null +dateModified: '2024-12-19' +description: "Guide pratique pour utiliser le contrĂŽle de version des modĂšles expĂ©rimentaux" +title: "Guide de workflow - ModĂšles expĂ©rimentaux" +--- + +# Guide de workflow - ModĂšles expĂ©rimentaux + +Ce guide fournit des instructions Ă©tape par Ă©tape pour utiliser le systĂšme de contrĂŽle de version des modĂšles expĂ©rimentaux. + +## Sur cette page + +- [DĂ©marrage rapide](#demarrage) +- [CrĂ©er un nouveau modĂšle expĂ©rimental](#nouveau) +- [ItĂ©rer sur un modĂšle existant](#iterer) +- [Soumettre pour rĂ©vision](#revision) +- [Transition vers approuvĂ©](#transition) +- [RĂ©cupĂ©ration et rollback](#recuperation) + +## DĂ©marrage rapide {#demarrage} + +### PrĂ©requis + +- AccĂšs en Ă©criture au dĂ©pĂŽt ou capacitĂ© Ă  crĂ©er des forks +- Git installĂ© et configurĂ© +- Connaissance de base de Git et GitHub + +### Installation initiale + +```bash +# Cloner le dĂ©pĂŽt +git clone https://github.com/canada-ca/systeme-conception.git +cd systeme-conception + +# Configurer Git si nĂ©cessaire +git config user.name "Votre Nom" +git config user.email "votre.email@canada.ca" +``` + +## CrĂ©er un nouveau modĂšle expĂ©rimental {#nouveau} + +### Étape 1 : Planification + +1. **Ouvrir un issue** dĂ©crivant : + - Le problĂšme Ă  rĂ©soudre + - L'hypothĂšse de solution + - Les cas d'usage ciblĂ©s + +2. **DĂ©finir le type et le nom** : + - Type : `composant`, `modele`, `gabarit`, ou `configuration` + - Nom descriptif et court + - Version initiale : `v1` + +### Étape 2 : CrĂ©er la branche + +```bash +# S'assurer d'ĂȘtre sur master et Ă  jour +git checkout master +git pull origin master + +# CrĂ©er la branche expĂ©rimentale +git checkout -b experimental-composant-bouton-urgence-v1 + +# Ou pour un modĂšle de page +git checkout -b experimental-modele-page-evenement-v1 +``` + +### Étape 3 : Structure du rĂ©pertoire + +```bash +# CrĂ©er la structure de base (exemple pour un composant) +mkdir -p modeles-experimentaux/composants/bouton-urgence +cd modeles-experimentaux/composants/bouton-urgence + +# CrĂ©er les rĂ©pertoires standards +mkdir -p {exemples,styles,scripts,tests,versions} + +# CrĂ©er le README initial +touch README.md +``` + +### Étape 4 : DĂ©veloppement initial + +1. **CrĂ©er le README** avec : + - Description du modĂšle + - Objectif et cas d'usage + - Instructions d'utilisation + +2. **DĂ©velopper le prototype** : + - Code HTML/CSS/JS + - Exemples fonctionnels + - Variations si nĂ©cessaire + +3. **Documenter les spĂ©cifications** : + - RĂšgles de conception + - Contraintes techniques + - Instructions d'intĂ©gration + +### Étape 5 : Tests et validation + +```bash +# Tests d'accessibilitĂ© (exemple avec axe-core) +npm install -g axe-core +axe-core exemples/basique.html + +# Validation HTML/CSS +# (selon les outils disponibles dans le projet) +``` + +### Étape 6 : Premier commit + +```bash +# Ajouter tous les fichiers +git add modeles-experimentaux/composants/bouton-urgence/ + +# Commit avec message descriptif +git commit -m "feat: ajout composant expĂ©rimental bouton-urgence v1 + +- Prototype fonctionnel avec exemples +- Évaluation d'accessibilitĂ© complĂ©tĂ©e +- Documentation de base incluse + +Issue: #123" + +# Pousser la branche +git push origin experimental-composant-bouton-urgence-v1 +``` + +## ItĂ©rer sur un modĂšle existant {#iterer} + +### Modifications mineures (v1.0 → v1.1) + +```bash +# Basculer sur la branche existante +git checkout experimental-composant-bouton-urgence-v1 + +# S'assurer d'ĂȘtre Ă  jour +git pull origin experimental-composant-bouton-urgence-v1 + +# Faire les modifications +# ... dĂ©veloppement ... + +# Archiver la version prĂ©cĂ©dente si nĂ©cessaire +mkdir -p modeles-experimentaux/composants/bouton-urgence/versions/v1.0 +cp -r modeles-experimentaux/composants/bouton-urgence/*.html versions/v1.0/ + +# Mettre Ă  jour la documentation +# Modifier README.md, changelog, etc. + +# Commit des changements +git add . +git commit -m "feat: bouton-urgence v1.1 - amĂ©lioration du contraste + +- AmĂ©lioration du contraste selon WCAG 2.1 AA +- Correction bug d'affichage sur mobile +- Mise Ă  jour exemples et documentation" + +git push origin experimental-composant-bouton-urgence-v1 +``` + +### Changements majeurs (v1.x → v2.0) + +```bash +# CrĂ©er une nouvelle branche pour la version majeure +git checkout master +git pull origin master +git checkout -b experimental-composant-bouton-urgence-v2 + +# Archiver complĂštement la version prĂ©cĂ©dente +mkdir -p modeles-experimentaux/versions/composants/bouton-urgence-v1.0 +git show experimental-composant-bouton-urgence-v1:modeles-experimentaux/composants/bouton-urgence/ > bouton-urgence-v1-archive.tar + +# DĂ©velopper la nouvelle version +# ... changements majeurs ... + +git add . +git commit -m "feat: bouton-urgence v2.0 - refonte majeure + +BREAKING CHANGES: +- Nouvelle API CSS avec custom properties +- Structure HTML simplifiĂ©e +- Support natif du dark mode + +Issue: #124" + +git push origin experimental-composant-bouton-urgence-v2 +``` + +## Soumettre pour rĂ©vision {#revision} + +### PrĂ©paration de la pull request + +1. **VĂ©rifier la complĂ©tude** : + ```bash + # Checklist automatique + ls modeles-experimentaux/composants/bouton-urgence/ + # VĂ©rifier : README.md, exemples/, tests/, etc. + ``` + +2. **Tests finaux** : + ```bash + # Tests d'accessibilitĂ© + # Tests de performance + # Validation du code + ``` + +3. **Documentation bilingue** : + - Traduire README et documentation + - VĂ©rifier la cohĂ©rence terminologique + +### CrĂ©er la pull request + +1. **Sur GitHub** : Ouvrir une PR de la branche expĂ©rimentale vers `master` + +2. **Utiliser le template** : `.github/pull_request_template/experimental-model.md` + +3. **ComplĂ©ter toutes les sections** : + - Description du modĂšle + - Checklist de conformitĂ© + - Phase de dĂ©veloppement + - Impact et compatibilitĂ© + +4. **Assigner les rĂ©viseurs** appropriĂ©s + +### GĂ©rer les retours + +```bash +# Faire les modifications demandĂ©es +# ... corrections ... + +# Commit et push des corrections +git add . +git commit -m "fix: corrections suite rĂ©vision communautaire + +- AmĂ©lioration contraste bouton focus +- Ajout exemple avec icĂŽne +- Correction documentation EN" + +git push origin experimental-composant-bouton-urgence-v1 +``` + +## Transition vers approuvĂ© {#transition} + +### Quand demander la transition + +- Le modĂšle a Ă©tĂ© testĂ© en production +- Retours positifs de la communautĂ© +- Tous les critĂšres de stabilitĂ© respectĂ©s +- Demande d'intĂ©gration officielle + +### Processus de transition + +1. **CrĂ©er une nouvelle PR** avec le template `experimental-to-approved.md` + +2. **Documenter l'usage en production** : + - Sites qui utilisent le modĂšle + - MĂ©triques d'adoption + - Retours utilisateurs + +3. **Tests de rĂ©gression complets** + +4. **Migration du code** vers `modeles-recommandes/` ou `modeles-obligatoire/` + +## RĂ©cupĂ©ration et rollback {#recuperation} + +### RĂ©cupĂ©rer une version archivĂ©e + +```bash +# Lister les versions disponibles +git tag -l "experimental-bouton-urgence-v*" +# ou regarder dans modeles-experimentaux/versions/ + +# CrĂ©er une branche Ă  partir d'une version archivĂ©e +git checkout -b experimental-bouton-urgence-v1.2.1-recovery experimental-bouton-urgence-v1.2 + +# Ou rĂ©cupĂ©rer depuis l'archive +cp -r modeles-experimentaux/versions/composants/bouton-urgence-v1.0/* modeles-experimentaux/composants/bouton-urgence/ +``` + +### Rollback en cas de problĂšme + +```bash +# Revenir Ă  la version prĂ©cĂ©dente +git checkout experimental-composant-bouton-urgence-v1 +git revert [commit-hash] + +# Ou crĂ©er une branche de correction rapide +git checkout -b experimental-composant-bouton-urgence-v1-hotfix +# ... corrections ... +git commit -m "hotfix: correction problĂšme critique" +``` + +## Bonnes pratiques + +### Messages de commit + +```bash +# Format recommandĂ© +"[type]: [description courte] + +[description dĂ©taillĂ©e optionnelle] + +[BREAKING CHANGES si applicable] + +Issue: #numĂ©ro" + +# Types : feat, fix, docs, style, refactor, test, chore +``` + +### Gestion des branches + +- **Ne jamais** dĂ©velopper directement sur `master` +- **Toujours** partir de `master` pour une nouvelle version +- **Nettoyer** les branches obsolĂštes aprĂšs approbation +- **Documenter** les changements breaking + +### Tests et qualitĂ© + +- Tests d'accessibilitĂ© **obligatoires** +- Validation HTML/CSS **systĂ©matique** +- Tests multi-navigateurs **recommandĂ©s** +- Documentation **bilingue** requise + +--- + +**Date de modification :** {{ page.dateModified }} \ No newline at end of file diff --git a/modeles-experimentaux/modeles/README.md b/modeles-experimentaux/modeles/README.md new file mode 100644 index 000000000..0a0adba11 --- /dev/null +++ b/modeles-experimentaux/modeles/README.md @@ -0,0 +1,54 @@ +# ModĂšles expĂ©rimentaux + +Ce rĂ©pertoire contient les nouveaux modĂšles de page en cours de dĂ©veloppement et de test. + +## Structure recommandĂ©e pour chaque modĂšle + +``` +nom-du-modele/ +├── README.md # Documentation du modĂšle +├── exemples/ # Exemples visuels et codĂ©s +│ ├── modele-complet.html +│ ├── variations/ +│ └── captures-ecran/ +├── specifications/ # SpĂ©cifications dĂ©taillĂ©es +│ ├── contenu.md +│ ├── conception.md +│ └── comportement.md +├── tests/ # Validation et tests +│ ├── accessibilite.md +│ ├── utilisabilite.md +│ └── resultats-tests.md +└── versions/ # Historique des versions + ├── v1.0/ + └── v2.0/ +``` + +## Template de documentation + +Chaque modĂšle doit inclure : + +### Quand utiliser ce modĂšle +- Contexte d'utilisation +- Types de contenu appropriĂ©s +- Objectifs utilisateur supportĂ©s + +### SpĂ©cifications du modĂšle +- Composants requis et optionnels +- HiĂ©rarchie de l'information +- RĂšgles de prĂ©sentation + +### Exemples et variations +- ModĂšle de base +- Variations selon le contexte +- Configurations responsives + +### Tests et recherche +- DonnĂ©es de recherche utilisateur +- RĂ©sultats de tests d'accessibilitĂ© +- MĂ©triques de performance + +### Migration et implĂ©mentation +- Instructions d'intĂ©gration +- Migration depuis d'autres modĂšles +- ConsidĂ©rations techniques \ No newline at end of file diff --git a/modeles-experimentaux/versions/README.md b/modeles-experimentaux/versions/README.md new file mode 100644 index 000000000..de117a722 --- /dev/null +++ b/modeles-experimentaux/versions/README.md @@ -0,0 +1,68 @@ +# Archive des versions + +Ce rĂ©pertoire contient l'archive des versions historiques des modĂšles expĂ©rimentaux. + +## Organisation des archives + +``` +versions/ +├── composants/ +│ ├── nom-composant-v1.0/ +│ ├── nom-composant-v1.1/ +│ └── nom-composant-v2.0/ +├── modeles/ +│ ├── nom-modele-v1.0/ +│ └── nom-modele-v2.0/ +├── gabarits/ +│ └── nom-gabarit-v1.0/ +└── configurations/ + └── nom-config-v1.0/ +``` + +## Convention de nommage + +Les archives suivent le format : +`[nom-du-modele]-v[version-majeure].[version-mineure].[correctif]` + +Exemples : +- `bouton-urgence-v1.0.0` +- `page-evenement-v2.1.0` +- `navigation-mobile-v1.2.3` + +## Contenu de chaque archive + +Chaque version archivĂ©e inclut : + +### Documentation complĂšte +- README avec Ă©tat de la version +- SpĂ©cifications techniques +- Journal des changements +- Justifications des dĂ©cisions + +### Code et assets +- Fichiers HTML/CSS/JS +- Images et ressources +- Exemples fonctionnels +- Tests automatisĂ©s + +### MĂ©tadonnĂ©es de version +- Date de crĂ©ation/archivage +- Contributeurs principaux +- Statut de la version (alpha, bĂȘta, archivĂ©e) +- Raison de l'archivage + +## Politique de rĂ©tention + +- **Versions actives** : conservĂ©es indĂ©finiment +- **Versions remplacĂ©es** : conservĂ©es 2 ans minimum +- **Versions abandonnĂ©es** : conservĂ©es 1 an minimum +- **Versions approuvĂ©es** : migrĂ©es vers le systĂšme principal + +## RĂ©cupĂ©ration d'une version + +Pour rĂ©cupĂ©rer une version archivĂ©e : + +1. Identifier la version dans ce rĂ©pertoire +2. Copier le contenu vers un nouveau rĂ©pertoire de travail +3. CrĂ©er une nouvelle branche pour les modifications +4. Suivre le processus standard de dĂ©veloppement \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index e4a7d2dc4..9c802ada2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,6 +5,7 @@ "requires": true, "packages": { "": { + "name": "systeme-conception", "version": "1.0.0", "license": "ISC", "devDependencies": {