Skip to content

Commit

Permalink
feat(accessibily): add accessibility page
Browse files Browse the repository at this point in the history
  • Loading branch information
Mihoub2 committed Apr 3, 2024
1 parent 982b84c commit 32d6bfe
Show file tree
Hide file tree
Showing 6 changed files with 194 additions and 6 deletions.
13 changes: 9 additions & 4 deletions client/src/layout/components/footer/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -286,12 +286,12 @@ export default function MainFooter() {
{intl.formatMessage({
id: "layout.footer.personal-data",
})}
</Link>
<Link className="fr-footer__bottom-link" href="#">
</Link> */}
<Link className="fr-footer__bottom-link" href="/about/accessibility">
{intl.formatMessage({
id: "layout.footer.accessibility",
})}
</Link> */}
</Link>
<Link className="fr-footer__bottom-link" href="/about/legal-notices">
{intl.formatMessage({
id: "layout.footer.legals",
Expand All @@ -315,7 +315,12 @@ export default function MainFooter() {
id: "layout.footer.switch-theme",
})}
</button>
<Link target="_blank" rel="noreferer noopenner" className="fr-footer__bottom-link" href={`https://github.com/dataesr/scanr-next-gen/releases/tag/v${version}`}>
<Link
target="_blank"
rel="noreferer noopenner"
className="fr-footer__bottom-link"
href={`https://github.com/dataesr/scanr-next-gen/releases/tag/v${version}`}
>
{intl.formatMessage({ id: "layout.footer.version" }, { version })}
</Link>
</FooterBottom>
Expand Down
2 changes: 1 addition & 1 deletion client/src/layout/components/footer/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"layout.footer.legal-notice": "Legal notice",
"layout.footer.personal-data": "Personal data",
"layout.footer.cookies": "Cookies",
"layout.footer.accessibility": "Accessibility",
"layout.footer.accessibility": "Accessibility: currently being optimized.",
"layout.footer.legals": "Legal notices",
"layout.footer.version": "App version v{version}",
"layout.footer.switch-theme": "Theme"
Expand Down
2 changes: 1 addition & 1 deletion client/src/layout/components/footer/locales/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"layout.footer.legal-notice": "Mentions légales",
"layout.footer.personal-data": "Données personnelles",
"layout.footer.cookies": "Cookies",
"layout.footer.accessibility": "Accessibilité",
"layout.footer.accessibility": "Accessibilité : en cours d'optimisations",
"layout.footer.legals": "Mentions légales",
"layout.footer.version": "Version de l'application v{version}",
"layout.footer.switch-theme": "Thème"
Expand Down
163 changes: 163 additions & 0 deletions client/src/pages/about/accessibility/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
import {
Breadcrumb,
Col,
Container,
Link,
Row,
Text,
Title,
useDSFRConfig,
} from "@dataesr/dsfr-plus";
import { RawIntlProvider, createIntl } from "react-intl";

const modules = import.meta.glob("./locales/*.json", {
eager: true,
import: "default",
});
const messages = Object.keys(modules).reduce((acc, key) => {
const locale = key.match(/\.\/locales\/(.+)\.json$/)?.[1];
if (locale) {
return { ...acc, [locale]: modules[key] };
}
return acc;
}, {});

const formating = {
br: () => <br />,
ul: (chunks: any) => <ul>{chunks}</ul>,
li: (chunks: any) => <li>{chunks}</li>,
aC: (chunks) => (
<a href="contact" target="_blank" rel="noopener noreferrer">
{chunks}
</a>
),
aDef: (chunks) => (
<a
href="https://www.defenseurdesdroits.fr/carte-des-delegues"
target="_blank"
rel="noopener noreferrer"
>
{chunks}
</a>
),
aSp: (chunks) => (
<a
href="https://lannuaire.service-public.fr/autorites-independantes/1867f065-c823-4362-8d0f-8ca6b011a10f"
target="_blank"
rel="noopener noreferrer"
>
{chunks}
</a>
),
};

export default function Accessibility() {
const { locale } = useDSFRConfig();
const intl = createIntl({ locale, messages: messages[locale] });

return (
<RawIntlProvider value={intl}>
<Container>
<Breadcrumb className="fr-pt-4w fr-mt-0 fr-mb-2w">
<Link href="/">
{intl.formatMessage({ id: "app.accessibility.breadcrumb.home" })}
</Link>
<Link>
{intl.formatMessage({ id: "app.accessibility.breadcrumb.current" })}
</Link>
</Breadcrumb>
<Row className="fr-mt-6w">
<Title as="h1">
{intl.formatMessage({ id: "app.accessibility.title" })}
</Title>
</Row>
</Container>
<Container className="fr-mb-15w">
<Row>
<Col xs="12" md="8">
<section className="fr-py-3w">
<Title as="h2" look="h5">
{intl.formatMessage({ id: "app.accessibility.declaration" })}
</Title>
<Text>
<Text as="span">
{intl.formatMessage({
id: "app.accessibility.declaration.text",
})}
</Text>
</Text>
</section>
<section className="fr-py-3w">
<Title as="h2" look="h5">
{intl.formatMessage({
id: "app.accessibility.compliance.title",
})}
</Title>
<Text as="span">
{intl.formatMessage({
id: "app.accessibility.compliance.status",
})}
</Text>
</section>
<section className="fr-py-3w">
<Title as="h2" look="h5">
{intl.formatMessage(
{ id: "app.accessibility.tech.title" },
formating
)}
</Title>
<Text>
{intl.formatMessage(
{ id: "app.accessibility.tech" },
formating
)}
</Text>
</section>
<section className="fr-py-3w">
<Title as="h2" look="h5">
{intl.formatMessage(
{ id: "app.accessibility.utils.title" },
formating
)}
</Title>
<Text>
{intl.formatMessage(
{ id: "app.accessibility.utils" },
formating
)}
</Text>
</section>
<section className="fr-py-3w">
<Title as="h2" look="h5">
{intl.formatMessage(
{ id: "app.accessibility.contactUs" },
formating
)}
</Title>
<Text>
{intl.formatMessage(
{ id: "app.accessibility.contactUs.text" },
formating
)}
</Text>
</section>
<section className="fr-py-3w">
<Title as="h2" look="h5">
{intl.formatMessage(
{ id: "app.accessibility.recourse.title" },
formating
)}
</Title>
<Text>
{intl.formatMessage(
{ id: "app.accessibility.recourse.text" },
formating
)}
</Text>
</section>
</Col>
</Row>
</Container>
</RawIntlProvider>
);
}
18 changes: 18 additions & 0 deletions client/src/pages/about/accessibility/locales/fr.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"app.accessibility.breadcrumb.home": "Accueil",
"app.accessibility.breadcrumb.current": "Accessibilité",
"app.accessibility.title": "Accessibilité",
"app.accessibility.declaration": "Déclaration d'accessibilité",
"app.accessibility.declaration.text": "Le Ministère de l'Enseignement Supérieur et de la Recherche s’engage à rendre son site « scanR » accessible conformément à l’article 47 de la loi n° 2005-102 du 11 février 2005.",
"app.accessibility.compliance.title": "État de conformité",
"app.accessibility.compliance.status": "Actuellement, scanR est en cours d'évaluation pour assurer sa conformité avec le référentiel général d'amélioration de l'accessibilité RGAA version 4.1. Nous reconnaissons qu'il peut exister des aspects où notre site n'est pas encore pleinement conforme. Les détails de non-conformité seront répertoriés dès que l'évaluation sera complète.",
"app.accessibility.tech.title": "Technologies utilisées pour la réalisation du site",
"app.accessibility.tech": "<ul><li>Le site est développé en Typescript, HTML5, CSS.</li><li>Le site est compatible avec les navigateurs suivants : Chrome, Firefox, Safari, Edge.</li><li>Le site est responsive design.</li></ul>",
"app.accessibility.utils.title": "Outils pour évaluer l'accessibilité",
"app.accessibility.utils": "<ul><li>Colour Contrast Analyser </li><li>Extension « Web Developer » </li><li>Extension « Assistant RGAA » </li><li>Extension « WCAG Contrast checker » </li><li>Extension « ARC Toolkit » </li><li>Extension « HeadingsMap » </li><li>Outils pour développeurs intégrés au navigateur Firefox</li><li>Validateur HTML du W3C.</li></ul>",
"app.accessibility.contactUs": "Retour d'information et contact",
"app.accessibility.contactUs.text": "Si vous n’arrivez pas à accéder à un contenu ou à un service, vous pouvez contacter le responsable du site internet pour être orienté vers une alternative accessible ou obtenir le contenu sous une autre forme. <br></br> <aC> Contactez nous</aC> ",
"app.accessibility.recourse.title": "Voies de recours",
"app.accessibility.recourse.text": "Si vous constatez un défaut d’accessibilité vous empêchant d’accéder à un contenu ou une fonctionnalité du site, que vous nous le signalez et que vous ne parvenez pas à obtenir une réponse rapide de notre part, vous êtes en droit de faire parvenir vos doléances ou une demande de saisine au Défenseur des droits. Plusieurs moyens sont à votre disposition : <ul><li> <aC>un formulaire de contact </aC></li> <li><aDef>la liste des délégués de votre région avec leurs informations de contact directs</aDef></li><li> un numéro de téléphone : +33 (0) 9 69 39 00 00 du lundi au vendredi de 8h30 à 19h30 (coût d’un appel local) </li><li>une adresse postale dans <aSp> l’annuaire de l’administration </aSp> </li></ul>",
"app.accessibility.help": "Nous apprécions grandement vos retours, car ils nous aident à améliorer continuellement l'accessibilité de notre site pour tous les utilisateurs."
}
2 changes: 2 additions & 0 deletions client/src/router.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import ScanrPublicationsDocs from "./pages/docs/objects/publications";
import { DocsLayout } from "./pages/docs/layout";
import ProjectsDocs from "./pages/docs/objects/projects";
import LegalNotices from "./pages/about/legal-notices";
import Accessibility from "./pages/about/accessibility";

function ScrollToTopOnLocationChange() {
const { pathname } = useLocation();
Expand Down Expand Up @@ -57,6 +58,7 @@ export default function Router() {
<Route path="overview" element={<div>Overview</div>} />
</Route>
<Route path="/about/legal-notices" element={<LegalNotices />} />
<Route path="/about/accessibility" element={<Accessibility />} />
<Route path="/about/faq" element={<FAQ />} />
<Route path="/about/team" element={<Team />} />
<Route path="/about/resources" element={<Resources />} />
Expand Down

0 comments on commit 32d6bfe

Please sign in to comment.