Skip to content

Commit

Permalink
fix: retour review
Browse files Browse the repository at this point in the history
  • Loading branch information
Naorid committed Jul 26, 2023
1 parent 2fcdc37 commit 3fa28c0
Show file tree
Hide file tree
Showing 49 changed files with 330 additions and 168 deletions.
118 changes: 114 additions & 4 deletions src/pages/accessibilite/index.page.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,132 @@
* @jest-environment jsdom
*/

import '~/test-utils';

import { render } from '@testing-library/react';

import { DependenciesProvider } from '~/client/context/dependenciesContainer.context';
import { anAnalyticsService } from '~/client/services/analytics/analytics.service.fixture';
import Accessibilite from '~/pages/accessibilite/index.page';
import { checkA11y } from '~/test-utils';

describe('<Accessibilite />', () => {
it('n‘a pas de défaut d‘accessibilité', async () => {
const titre = 'titre';
const contenu = 'contenu';
const titre = 'Accessibilité';
const contenu = `# Déclaration d'accessibilité
06/10/2022
1 jeune 1 solution s’engage à rendre ses sites internet accessibles conformément à l’article 47 de la loi n°2005-102 du 11 février 2005.
Cette déclaration d'accessibilité s'applique à [1 jeune 1 solution](www.1jeune1solution.gouv.fr).
## État de conformité
Le site [1 jeune 1 solution](www.1jeune1solution.gouv.fr) est en conformité partielle avec le référentiel général d’amélioration de l’accessibilité (RGAA), version 4.1 en raison des non-conformités et des dérogations énumérées ci-dessous.
### Résultats des tests
L’audit de conformité réalisé par Urbilog révèle que **61 %** des critères du RGAA version 4.1 sont respectés.
Le taux moyen de conformité du site s’élève à **75 %**.
Vous pouvez consulter le rapport d'audit détaillé au format PDF.
On compte 54 critères applicables sur 106 parmi lesquels :
- 33 critères conformes
- 21 critères non-conformes
### Contenus non-accessibles
Les contenus listés ci-dessous ne sont pas accessibles pour les raisons suivantes :
#### Non conformité
- Présence d’alternatives non vide sur des images décoratives.
- Des alternatives textuelles non pertinente sur des image informatives.
- Un titre de cadre non pertinent.
- Des liens non pertinents
- Des éléments non compatibles avec les technologies d’assistance
- Des éléments non compatibles avec la navigation au clavier
- Des changements de contexte non renseignés
- Des messages de statut qui ne sont pas restitués.
8. éléments obligatoires
Un titre de la page n’est pas présent.
Des éléments HTML utilisés à des fins de présentation.
9. structuration de l'information
Plan de titrage absent ou ne respectant pas la hiérarchie des titres.
Structure du document non cohérente.
Énumération à coder comme une liste.
10. présentation de l'information
Lien non visible par rapport au texte environnant.
Prise de focus non perceptible.
Prise de focus pas assez perceptible.
11. formulaires
Champ de saisie sans étiquette.
Intitulé incomplet sur les boutons.
12. navigation
Absence de deux systèmes de navigation.
Lien d'accès rapide non fonctionnel
Ordre de tabulation non cohérent
13. consultation
### Dérogation pour charge disproportionnée
●\tRAS
### Contenus non-soumis à l'obligation d'accessibilité
●\tSolution externe de gestion des offres emploi, de stage et d’alternance
### Établissement de cette déclaration d'accessibilité
Cette déclaration d'accessibilité a été établie le 06.10.2022
Technologies utilisées pour la réalisation du site du ministère des Solidarités et de la Santé - [1 jeune 1 solution](www.1jeune1solution.gouv.fr)
●\tHTML 5
●\tCSS
●\tJavascript
### Environnement de test
Les vérifications de restitution de contenus ont été réalisées sur la base de la combinaison fournie par la base de référence du RGAA 4.1, avec les versions suivantes :
●\tNVDA 2019.2.1 et Firefox
●\tJAWS 2018 et Internet Edge
●\tVoiceOver Mac OS 10.14 et Safari : 13.0.3
### Outils pour évaluer l'accessibilité
●\tContrast Color Analyser
●\tAssistant RGAA V4.1
●\tWeb Developer toolbar
●\tInspecteur du navigateur
### Pages du site ayant fait l'objet de la vérification de conformité
Accueil : https://www.1jeune1solution.gouv.fr ;
Mentions légales : https://www.1jeune1solution.gouv.fr/mentions-legales ;
Accessibilité : https://www.1jeune1solution.gouv.fr/accessibilite ;
Emplois : https://www.1jeune1solution.gouv.fr/emplois ;
Offre (redirection vers le détail de l’offre au clic sur une offre) ;
Formation : https://www.1jeune1solution.gouv.fr/formations ;
Contrat d’engagement jeune : https://www.1jeune1solution.gouv.fr/contrat-engagement-jeune ;
Les entreprises s'engagent : https://www.1jeune1solution.gouv.fr/les-entreprises-s-engagent ;
Mes aides : https://www.1jeune1solution.gouv.fr/mes-aides ;
Les mesures jeunes : https://www.1jeune1solution.gouv.fr/espace-jeune ;
Article : (redirection vers les différents articles au clic sur « En savoir plus ») ;
Stage : https://www.1jeune1solution.gouv.fr/stages ;
Alternance : https://www.1jeune1solution.gouv.fr/apprentissage.
### Retour d'information et contact
Si vous n’arrivez pas à accéder à un contenu ou à un service, vous pouvez contacter 1 jeunes 1 pour être orienté vers une alternative accessible ou obtenir le contenu sous une autre forme.
Envoyez un message à [email protected].
### Voies de recours
Cette procédure est à utiliser dans le cas suivant. Vous avez signalé au responsable du site internet un défaut d’accessibilité qui vous empêche d’accéder à un contenu ou à un des services du portail et vous n’avez pas obtenu de réponse satisfaisante.
- Écrire un message au Défenseur des droits - [https://formulaire.defenseurdesdroits.fr/]
- Contacter le délégué du Défenseur des droits dans votre région - [https://www.defenseurdesdroits.fr/saisir/delegues]
- Envoyer un courrier par la poste (gratuit, ne pas mettre de timbre) : Défenseur des droits Libre réponse 71120 75342 Paris`;

const { container } = render(
<DependenciesProvider analyticsService={anAnalyticsService()}>
<Accessibilite titre={titre} contenu={contenu}/>);
</DependenciesProvider>);

await checkA11y(container);
expect(container).toBeAccessible();
});
});
11 changes: 6 additions & 5 deletions src/pages/apprentissage-entreprises/index.page.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
* @jest-environment jsdom
*/

import { render, waitFor } from '@testing-library/react';
import '~/test-utils';

import { render,screen } from '@testing-library/react';
import * as process from 'process';

import { mockUseRouter } from '~/client/components/useRouter.mock';
Expand All @@ -14,7 +16,6 @@ import { aVideoCampagneApprentissageList } from '~/server/cms/domain/videoCampag
import { createFailure, createSuccess } from '~/server/errors/either';
import { ErreurMétier } from '~/server/errors/erreurMétier.types';
import { dependencies } from '~/server/start';
import { checkA11y } from '~/test-utils';

import ApprentissageEntreprises, { getServerSideProps } from './index.page';

Expand Down Expand Up @@ -42,9 +43,9 @@ describe('<ApprentissageEntreprises />', () => {
<ApprentissageEntreprises videos={videos} />);
</DependenciesProvider>);

await waitFor(async () => {
await checkA11y(container);
});
await screen.findByText('5 bonnes raisons de choisir l’apprentissage :');

expect(container).toBeAccessible();
});

describe('getServerSideProps', () => {
Expand Down
5 changes: 3 additions & 2 deletions src/pages/apprentissage/[id].page.test.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
/**
* @jest-environment jsdom
*/
import '~/test-utils';

import { render, screen } from '@testing-library/react';
import React from 'react';

Expand All @@ -10,7 +12,6 @@ import { DependenciesProvider } from '~/client/context/dependenciesContainer.con
import { anAnalyticsService } from '~/client/services/analytics/analytics.service.fixture';
import AnnonceAlternancePage, { AlternanceSerialized } from '~/pages/apprentissage/[id].page';
import { Alternance } from '~/server/alternances/domain/alternance';
import { checkA11y } from '~/test-utils';

const alternanceSerialized: AlternanceSerialized = {
compétences: ['savoir faire'],
Expand Down Expand Up @@ -45,7 +46,7 @@ describe('<AnnonceAlternancePage />', () => {
<AnnonceAlternancePage alternanceSerialized={alternanceSerialized} />
</DependenciesProvider>);

await checkA11y(container);
expect(container).toBeAccessible();
});

it('ajoute le nom de l’annonce au titre du document', async () => {
Expand Down
5 changes: 3 additions & 2 deletions src/pages/apprentissage/deposer-offre/index.page.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@
* @jest-environment jsdom
*/

import '~/test-utils';

import { render, screen } from '@testing-library/react';

import { DependenciesProvider } from '~/client/context/dependenciesContainer.context';
import { anAnalyticsService } from '~/client/services/analytics/analytics.service.fixture';
import DeposerOffrePage from '~/pages/apprentissage/deposer-offre/index.page';
import { checkA11y } from '~/test-utils';


describe('deposer-offre', () => {
Expand All @@ -21,7 +22,7 @@ describe('deposer-offre', () => {
</DependenciesProvider>,
);

await checkA11y(container);
expect(container).toBeAccessible();
});
it('contient un titre', () => {
const analyticsService = anAnalyticsService();
Expand Down
5 changes: 3 additions & 2 deletions src/pages/apprentissage/entreprise/[id].page.test.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
/**
* @jest-environment jsdom
*/
import '~/test-utils';

import { render, screen } from '@testing-library/react';
import React from 'react';
import ReactDOM from 'react-dom';
Expand All @@ -9,7 +11,6 @@ import { mockUseRouter } from '~/client/components/useRouter.mock';
import { DependenciesProvider } from '~/client/context/dependenciesContainer.context';
import { anAnalyticsService } from '~/client/services/analytics/analytics.service.fixture';
import AnnonceAlternanceEntreprisePage from '~/pages/apprentissage/entreprise/[id].page';
import { checkA11y } from '~/test-utils';

const siret = '123';

Expand All @@ -32,7 +33,7 @@ describe('<AnnonceAlternanceEntreprisePage />', () => {
</DependenciesProvider>,
);

await checkA11y(container);
expect(container).toBeAccessible();
});

it('le titre du document est correct', async () => {
Expand Down
11 changes: 6 additions & 5 deletions src/pages/apprentissage/index.page.test.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
/**
* @jest-environment jsdom
*/
import { render, screen, waitFor } from '@testing-library/react';
import '~/test-utils';

import { render, screen } from '@testing-library/react';

import { mockUseRouter } from '~/client/components/useRouter.mock';
import { mockSmallScreen } from '~/client/components/window.mock';
Expand All @@ -11,7 +13,6 @@ import { anAnalyticsService } from '~/client/services/analytics/analytics.servic
import { aLocalisationService } from '~/client/services/localisation/localisationService.fixture';
import { aMétierService } from '~/client/services/métiers/métier.fixture';
import RechercherAlternancePage from '~/pages/apprentissage/index.page';
import { checkA11y } from '~/test-utils';

describe('Page rechercher une alternance', () => {
beforeEach(() => {
Expand Down Expand Up @@ -71,9 +72,9 @@ describe('Page rechercher une alternance', () => {
</DependenciesProvider>,
);

await waitFor(async () => {
await checkA11y(container);
});
await screen.findByRole('heading', { level: 1 });

expect(container).toBeAccessible();
});

it('affiche le titre propre à la bonne alternance', async () => {
Expand Down
5 changes: 3 additions & 2 deletions src/pages/apprentissage/simulation/index.page.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@
* @jest-environment jsdom
*/

import '~/test-utils';

import { render, screen } from '@testing-library/react';

import { mockUseRouter } from '~/client/components/useRouter.mock';
import { mockSmallScreen } from '~/client/components/window.mock';
import { checkA11y } from '~/test-utils';

import SimulateurOffreAlternant from './index.page';

Expand All @@ -19,7 +20,7 @@ describe('Apprentissage / Simulateur de rémunération en apprentissage', () =>
it('n‘a pas de défaut d‘accessibilité', async () => {
const { container } = render(<SimulateurOffreAlternant />);

await checkA11y(container);
expect(container).toBeAccessible();
});

it('affiche un sous-titre de page', () => {
Expand Down
15 changes: 10 additions & 5 deletions src/pages/articles/[id].page.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@
* @jest-environment jsdom
*/

import '~/test-utils';

import { render } from '@testing-library/react';

import { mockUseRouter } from '~/client/components/useRouter.mock';
import { mockSmallScreen } from '~/client/components/window.mock';
import { DependenciesProvider } from '~/client/context/dependenciesContainer.context';
import { anAnalyticsService } from '~/client/services/analytics/analytics.service.fixture';
import ConsulterArticlePage from '~/pages/articles/[id].page';
import { checkA11y } from '~/test-utils';

describe('<ConsulterArticlePage />', () => {
it('n‘a pas de défaut d‘accessibilité', async () => {
Expand All @@ -18,9 +19,13 @@ describe('<ConsulterArticlePage />', () => {
alt: 'alt',
src: 'url',
},
contenu: 'contenu',
slug: 'slug',
titre: 'titre',
contenu: 'Retrouvez ici une liste d\'interviews qui pourraient vous intéresser ! \n' +
'\n' +
'Interview Engie : [https://recette.1jeune1solution.gouv.fr/articles/interview-engie-par-canaljob](https://recette.1jeune1solution.gouv.fr/articles/interview-engie-par-canaljob)\n' +
'\n' +
'Interview test : [https://recette.1jeune1solution.gouv.fr/articles/test-canal-job](https://recette.1jeune1solution.gouv.fr/articles/test-canal-job)',
slug: 'plein-d-interviews-pour-presenter-des-entreprises',
titre: 'Plein d\'interviews pour présenter des entreprises',
};
mockUseRouter({});
mockSmallScreen();
Expand All @@ -32,6 +37,6 @@ describe('<ConsulterArticlePage />', () => {
<ConsulterArticlePage article={article} />);
</DependenciesProvider>);

await checkA11y(container);
expect(container).toBeAccessible();
});
});
5 changes: 3 additions & 2 deletions src/pages/benevolat/[id].page.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
* @jest-environment jsdom
*/

import '~/test-utils';

import { render } from '@testing-library/react';

import { mockUseRouter } from '~/client/components/useRouter.mock';
Expand All @@ -11,7 +13,6 @@ import { anAnalyticsService } from '~/client/services/analytics/analytics.servic
import { aLocalisationService } from '~/client/services/localisation/localisationService.fixture';
import { aMissionEngagementService } from '~/client/services/missionEngagement/missionEngagementService.fixture';
import ConsulterMissionEngagementPage from '~/pages/benevolat/[id].page';
import { checkA11y } from '~/test-utils';

describe('<ConsulterMissionEngagementPage />', () => {
it('n‘a pas de défaut d‘accessibilité', async () => {
Expand Down Expand Up @@ -40,6 +41,6 @@ describe('<ConsulterMissionEngagementPage />', () => {
<ConsulterMissionEngagementPage missionEngagement={mission} />);
</DependenciesProvider>);

await checkA11y(container);
expect(container).toBeAccessible();
});
});
5 changes: 3 additions & 2 deletions src/pages/cgu/index.page.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@
* @jest-environment jsdom
*/

import '~/test-utils';

import { render } from '@testing-library/react';

import { mockUseRouter } from '~/client/components/useRouter.mock';
import { mockSmallScreen } from '~/client/components/window.mock';
import { DependenciesProvider } from '~/client/context/dependenciesContainer.context';
import { anAnalyticsService } from '~/client/services/analytics/analytics.service.fixture';
import Cgu from '~/pages/cgu/index.page';
import { checkA11y } from '~/test-utils';

describe('<Cgu />', () => {
it('n‘a pas de défaut d‘accessibilité', async () => {
Expand All @@ -23,6 +24,6 @@ describe('<Cgu />', () => {
<Cgu titre={'titre'} contenu={'contenu'} />);
</DependenciesProvider>);

await checkA11y(container);
expect(container).toBeAccessible();
});
});
Loading

0 comments on commit 3fa28c0

Please sign in to comment.