Skip to content

Commit 95b18ba

Browse files
feat: add legal pages (mentions légales, données personnelles, cookies, accessibilité, plan du site) (#2883)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 92313a4 commit 95b18ba

18 files changed

Lines changed: 895 additions & 2 deletions

File tree

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import type { Metadata } from "next";
2+
3+
import { AccessibilityPage } from "~/modules/legal";
4+
5+
export const metadata: Metadata = {
6+
title: "Déclaration d'accessibilité",
7+
description:
8+
"Déclaration d'accessibilité d'Index Egapro : état de conformité RGAA, résultats des tests et voies de recours.",
9+
};
10+
11+
export default function Page() {
12+
return <AccessibilityPage />;
13+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import type { Metadata } from "next";
2+
3+
import { PrivacyPolicyPage } from "~/modules/legal";
4+
5+
export const metadata: Metadata = {
6+
title: "Données personnelles",
7+
description:
8+
"Politique de confidentialité d'Index Egapro : données collectées, finalités, droits des utilisateurs et cookies.",
9+
};
10+
11+
export default function Page() {
12+
return <PrivacyPolicyPage />;
13+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import type { Metadata } from "next";
2+
3+
import { CookiesPage } from "~/modules/legal";
4+
5+
export const metadata: Metadata = {
6+
title: "Gestion des cookies",
7+
description:
8+
"Informations sur les cookies utilisés par Index Egapro et comment les gérer.",
9+
};
10+
11+
export default function Page() {
12+
return <CookiesPage />;
13+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import type { Metadata } from "next";
2+
3+
import { LegalNoticePage } from "~/modules/legal";
4+
5+
export const metadata: Metadata = {
6+
title: "Mentions légales",
7+
description:
8+
"Mentions légales du site Index Egapro : éditeur, directeur de la publication, hébergement, accessibilité et sécurité.",
9+
};
10+
11+
export default function Page() {
12+
return <LegalNoticePage />;
13+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import type { Metadata } from "next";
2+
3+
import { SitemapPage } from "~/modules/legal";
4+
5+
export const metadata: Metadata = {
6+
title: "Plan du site",
7+
description:
8+
"Plan du site Index Egapro : liste de toutes les pages accessibles.",
9+
};
10+
11+
export default function Page() {
12+
return <SitemapPage />;
13+
}

packages/app/src/modules/layout/Footer/FooterBottom.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ export function FooterBottom() {
2020
</Link>
2121
</li>
2222
<li className="fr-footer__bottom-item">
23-
<Link className="fr-footer__bottom-link" href="/cgu">
24-
CGU
23+
<Link className="fr-footer__bottom-link" href="/donnees-personnelles">
24+
Données personnelles
2525
</Link>
2626
</li>
2727
<li className="fr-footer__bottom-item">
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/** Compliance status, test results, and non-accessible content. */
2+
export function AccessibilityCompliance() {
3+
return (
4+
<>
5+
<h2 className="fr-h4">État de conformité</h2>
6+
<p>
7+
Index Egapro est <strong>partiellement conforme</strong> avec le
8+
référentiel général d'amélioration de l'accessibilité (RGAA), version
9+
4.1, en raison des non-conformités et des dérogations énumérées
10+
ci-dessous.
11+
</p>
12+
13+
<h2 className="fr-h4">Résultats des tests</h2>
14+
<p>
15+
L'audit de conformité réalisé par la Direction générale du travail
16+
révèle que le site est conforme à 75 % au RGAA version 4.1.
17+
</p>
18+
19+
<h2 className="fr-h4">Contenus non accessibles</h2>
20+
<p>
21+
Les contenus listés ci-dessous ne sont pas accessibles pour les raisons
22+
suivantes :
23+
</p>
24+
<h3 className="fr-h6">Non-conformités</h3>
25+
<ul>
26+
<li>
27+
Certaines images porteuses d'information n'ont pas d'alternative
28+
textuelle suffisamment détaillée ;
29+
</li>
30+
<li>
31+
Certains contrastes de couleurs sont insuffisants pour les textes de
32+
petite taille ;
33+
</li>
34+
<li>
35+
Certains formulaires n'ont pas de labels explicitement associés à
36+
leurs champs.
37+
</li>
38+
</ul>
39+
<h3 className="fr-h6">Dérogations pour charge disproportionnée</h3>
40+
<p>Aucune dérogation n'est revendiquée.</p>
41+
<h3 className="fr-h6">
42+
Contenus non soumis à l'obligation d'accessibilité
43+
</h3>
44+
<p>Aucun contenu n'est exclu.</p>
45+
</>
46+
);
47+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
import { NewTabNotice } from "~/modules/layout";
2+
3+
/** Feedback, contact, and recourse information. */
4+
export function AccessibilityContact() {
5+
return (
6+
<>
7+
<h2 className="fr-h4">Retour d'information et contact</h2>
8+
<p>
9+
Si vous n'arrivez pas à accéder à un contenu ou à un service, vous
10+
pouvez contacter le responsable du site pour être orienté vers une
11+
alternative accessible ou obtenir le contenu sous une autre forme.
12+
</p>
13+
<p>
14+
Contactez-nous à :{" "}
15+
<a href="mailto:index@travail.gouv.fr">index@travail.gouv.fr</a>
16+
</p>
17+
18+
<h2 className="fr-h4">Voie de recours</h2>
19+
<p>
20+
Cette procédure est à utiliser dans le cas suivant : vous avez signalé
21+
au responsable du site un défaut d'accessibilité qui vous empêche
22+
d'accéder à un contenu ou à un des services du portail et vous n'avez
23+
pas obtenu de réponse satisfaisante.
24+
</p>
25+
<p>Vous pouvez :</p>
26+
<ul>
27+
<li>
28+
Écrire un message au{" "}
29+
<a
30+
href="https://formulaire.defenseurdesdroits.fr/"
31+
rel="noopener noreferrer"
32+
target="_blank"
33+
>
34+
Défenseur des droits
35+
<NewTabNotice />
36+
</a>
37+
</li>
38+
<li>
39+
Contacter le délégué du{" "}
40+
<a
41+
href="https://www.defenseurdesdroits.fr/saisir/delegues"
42+
rel="noopener noreferrer"
43+
target="_blank"
44+
>
45+
Défenseur des droits dans votre région
46+
<NewTabNotice />
47+
</a>
48+
</li>
49+
<li>
50+
Envoyer un courrier par la poste (gratuit, ne pas mettre de timbre) à
51+
l'adresse suivante : Défenseur des droits, Libre réponse 71120, 75342
52+
Paris CEDEX 07
53+
</li>
54+
</ul>
55+
</>
56+
);
57+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/** Declaration establishment details: dates, technologies, and testing. */
2+
export function AccessibilityEstablishment() {
3+
return (
4+
<>
5+
<h2 className="fr-h4">Établissement de cette déclaration</h2>
6+
<p>
7+
Cette déclaration a été établie le{" "}
8+
<time dateTime="2024-03-01">1er mars 2024</time>. Elle a été mise à jour
9+
le <time dateTime="2025-03-01">1er mars 2025</time>.
10+
</p>
11+
<p>Technologies utilisées pour la réalisation du site :</p>
12+
<ul>
13+
<li>HTML5</li>
14+
<li>CSS</li>
15+
<li>JavaScript</li>
16+
</ul>
17+
<p>
18+
Environnement de test : les tests ont été effectués avec les
19+
combinaisons de navigateurs et technologies d'assistance suivantes :
20+
</p>
21+
<ul>
22+
<li>Firefox et NVDA</li>
23+
<li>Safari et VoiceOver</li>
24+
</ul>
25+
<p>Outils utilisés pour vérifier l'accessibilité :</p>
26+
<ul>
27+
<li>Axe DevTools</li>
28+
<li>Lighthouse</li>
29+
<li>WAVE</li>
30+
</ul>
31+
</>
32+
);
33+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import { AccessibilityCompliance } from "./AccessibilityCompliance";
2+
import { AccessibilityContact } from "./AccessibilityContact";
3+
import { AccessibilityEstablishment } from "./AccessibilityEstablishment";
4+
5+
/** Déclaration d'accessibilité page (RGAA). */
6+
export function AccessibilityPage() {
7+
return (
8+
<main id="content" tabIndex={-1}>
9+
<div className="fr-container fr-py-6w">
10+
<nav aria-label="vous êtes ici :" className="fr-breadcrumb">
11+
<button
12+
aria-controls="breadcrumb-accessibility"
13+
aria-expanded="false"
14+
className="fr-breadcrumb__button"
15+
type="button"
16+
>
17+
Voir le fil d'Ariane
18+
</button>
19+
<div className="fr-collapse" id="breadcrumb-accessibility">
20+
<ol className="fr-breadcrumb__list">
21+
<li>
22+
<a className="fr-breadcrumb__link" href="/">
23+
Accueil
24+
</a>
25+
</li>
26+
<li>
27+
<a
28+
aria-current="page"
29+
className="fr-breadcrumb__link"
30+
href="/declaration-accessibilite"
31+
>
32+
Déclaration d'accessibilité
33+
</a>
34+
</li>
35+
</ol>
36+
</div>
37+
</nav>
38+
39+
<h1 className="fr-h1 fr-mt-4w">Déclaration d'accessibilité</h1>
40+
41+
<p>
42+
La Direction générale du travail s'engage à rendre son service
43+
accessible, conformément à l'article 47 de la loi n° 2005-102 du 11
44+
février 2005.
45+
</p>
46+
47+
<AccessibilityCompliance />
48+
<AccessibilityEstablishment />
49+
<AccessibilityContact />
50+
</div>
51+
</main>
52+
);
53+
}

0 commit comments

Comments
 (0)