@cnamts/synapse 0.0.5-alpha → 0.0.7-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/design-system-v3.d.ts +487 -415
- package/dist/design-system-v3.js +2954 -2203
- package/dist/design-system-v3.umd.cjs +6 -6
- package/dist/style.css +1 -1
- package/package.json +17 -17
- package/src/assets/settings.scss +3 -0
- package/src/assets/tokens.scss +16 -16
- package/src/components/BackBtn/AccessibiliteItems.ts +0 -30
- package/src/components/BackBtn/BackBtn.mdx +1 -1
- package/src/components/BackBtn/BackBtn.stories.ts +12 -9
- package/src/components/BackBtn/BackBtn.vue +0 -1
- package/src/components/BackToTopBtn/AccessibiliteItems.ts +0 -30
- package/src/components/BackToTopBtn/BackToTopBtn.mdx +1 -1
- package/src/components/BackToTopBtn/BackToTopBtn.stories.ts +3 -3
- package/src/components/CollapsibleList/Accessibilite.stories.ts +4 -0
- package/src/components/CollapsibleList/AccessibiliteItems.ts +55 -62
- package/src/components/CollapsibleList/CollapsibleList.stories.ts +1 -1
- package/src/components/CookieBanner/Accessibilite.stories.ts +219 -0
- package/src/components/CookieBanner/AccessibiliteItems.ts +356 -0
- package/src/components/CookieBanner/CookieBanner.mdx +219 -0
- package/src/components/CookieBanner/CookieBanner.stories.ts +680 -0
- package/src/components/CookieBanner/CookieBanner.vue +225 -0
- package/src/components/CookieBanner/config.ts +38 -0
- package/src/components/CookieBanner/locales.ts +12 -0
- package/src/components/CookieBanner/tests/CookieBanner.spec.ts +129 -0
- package/src/components/CookieBanner/tests/__snapshots__/CookieBanner.spec.ts.snap +197 -0
- package/src/components/CookiesSelection/CookiesInformation/CookiesInformation.vue +123 -0
- package/src/components/CookiesSelection/CookiesInformation/locales.ts +21 -0
- package/src/components/CookiesSelection/CookiesInformation/tests/CookiesInformation.spec.ts +121 -0
- package/src/components/CookiesSelection/CookiesSelection.vue +127 -0
- package/src/components/CookiesSelection/CookiesTable/CookiesTable.vue +47 -0
- package/src/components/CookiesSelection/CookiesTable/headers.ts +14 -0
- package/src/components/CookiesSelection/CookiesTable/tests/CookiesTable.spec.ts +30 -0
- package/src/components/CookiesSelection/CookiesTable/tests/__snapshots__/CookiesTable.spec.ts.snap +3 -0
- package/src/components/CookiesSelection/locales.ts +10 -0
- package/src/components/CookiesSelection/tests/CookiesSelection.spec.ts +184 -0
- package/src/components/CookiesSelection/tests/__snapshots__/CookiesSelection.spec.ts.snap +192 -0
- package/src/components/CookiesSelection/types.ts +15 -0
- package/src/components/CopyBtn/AccessibiliteItems.ts +0 -30
- package/src/components/CopyBtn/CopyBtn.mdx +1 -1
- package/src/components/CopyBtn/CopyBtn.stories.ts +9 -6
- package/src/components/CopyBtn/CopyBtn.vue +0 -1
- package/src/components/Customs/SyBtnSelect/Accessibilite.mdx +14 -0
- package/src/components/Customs/SyBtnSelect/Accessibilite.stories.ts +193 -0
- package/src/components/Customs/SyBtnSelect/AccessibiliteItems.ts +139 -0
- package/src/components/Customs/SyBtnSelect/SyBtnSelect.mdx +3 -2
- package/src/components/Customs/SyBtnSelect/SyBtnSelect.stories.ts +30 -14
- package/src/components/Customs/SyBtnSelect/SyBtnSelect.vue +21 -13
- package/src/components/Customs/SyBtnSelect/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/Customs/SyInputSelect/Accessibilite.mdx +14 -0
- package/src/components/Customs/SyInputSelect/Accessibilite.stories.ts +166 -0
- package/src/components/Customs/SyInputSelect/AccessibiliteItems.ts +96 -0
- package/src/components/Customs/SyInputSelect/SyInputSelect.mdx +7 -3
- package/src/components/Customs/SyInputSelect/SyInputSelect.stories.ts +24 -65
- package/src/components/Customs/SyInputSelect/SyInputSelect.vue +36 -4
- package/src/components/Customs/SyInputSelect/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/Customs/SySelect/Accessibilite.mdx +14 -0
- package/src/components/Customs/SySelect/Accessibilite.stories.ts +217 -0
- package/src/components/Customs/SySelect/AccessibiliteItems.ts +173 -0
- package/src/components/Customs/SySelect/SySelect.mdx +4 -4
- package/src/components/Customs/SySelect/SySelect.stories.ts +4 -60
- package/src/components/Customs/SySelect/SySelect.vue +35 -8
- package/src/components/Customs/SySelect/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/Customs/SyTextField/Accessibilite.mdx +14 -0
- package/src/components/Customs/SyTextField/Accessibilite.stories.ts +224 -0
- package/src/components/Customs/SyTextField/AccessibiliteItems.ts +198 -0
- package/src/components/Customs/SyTextField/SyTextField.mdx +1 -1
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +118 -7
- package/src/components/Customs/SyTextField/SyTextField.vue +27 -7
- package/src/components/Customs/SyTextField/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/Customs/SyTextField/tests/__snapshots__/SyTextField.spec.ts.snap +2 -1
- package/src/components/DataList/Accessibilite.mdx +14 -0
- package/src/components/DataList/Accessibilite.stories.ts +166 -0
- package/src/components/DataList/AccessibiliteItems.ts +47 -0
- package/src/components/DataList/DataList.mdx +1 -1
- package/src/components/DataList/DataList.stories.ts +10 -10
- package/src/components/DataList/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/DataListGroup/Accessibilite.mdx +14 -0
- package/src/components/DataListGroup/Accessibilite.stories.ts +225 -0
- package/src/components/DataListGroup/AccessibiliteItems.ts +79 -0
- package/src/components/DataListGroup/DataListGroup.mdx +1 -1
- package/src/components/DataListGroup/DataListGroup.stories.ts +7 -7
- package/src/components/DataListGroup/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/DialogBox/Accessibilite.mdx +14 -0
- package/src/components/DialogBox/Accessibilite.stories.ts +189 -0
- package/src/components/DialogBox/AccessibiliteItems.ts +167 -0
- package/src/components/DialogBox/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/DownloadBtn/AccessibiliteItems.ts +1 -31
- package/src/components/DownloadBtn/DownloadBtn.mdx +5 -6
- package/src/components/DownloadBtn/DownloadBtn.stories.ts +25 -26
- package/src/components/ErrorPage/Accessibilite.mdx +14 -0
- package/src/components/ErrorPage/Accessibilite.stories.ts +189 -0
- package/src/components/ErrorPage/AccessibiliteItems.ts +205 -0
- package/src/components/ErrorPage/ErrorPage.vue +1 -1
- package/src/components/ErrorPage/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +4 -4
- package/src/components/FooterBar/Accessibilite.mdx +14 -0
- package/src/components/FooterBar/Accessibilite.stories.ts +223 -0
- package/src/components/FooterBar/AccessibiliteItems.ts +257 -0
- package/src/components/FooterBar/FooterBar.mdx +2 -2
- package/src/components/FooterBar/FooterBar.stories.ts +14 -14
- package/src/components/FooterBar/FooterBar.vue +86 -75
- package/src/components/FooterBar/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/FooterBar/tests/__snapshots__/FooterBar.spec.ts.snap +22 -20
- package/src/components/FranceConnectBtn/AccessibiliteItems.ts +0 -30
- package/src/components/FranceConnectBtn/FranceConnectBtn.mdx +1 -1
- package/src/components/FranceConnectBtn/FranceConnectBtn.stories.ts +5 -4
- package/src/components/HeaderBar/Accessibilite.mdx +14 -0
- package/src/components/HeaderBar/Accessibilite.stories.ts +223 -0
- package/src/components/HeaderBar/AccessibiliteItems.ts +194 -0
- package/src/components/HeaderBar/HeaderBar.stories.ts +19 -12
- package/src/components/HeaderBar/HeaderBar.vue +9 -12
- package/src/components/HeaderBar/HeaderBurgerMenu/Accessibilite.mdx +14 -0
- package/src/components/HeaderBar/HeaderBurgerMenu/Accessibilite.stories.ts +223 -0
- package/src/components/HeaderBar/HeaderBurgerMenu/AccessibiliteItems.ts +174 -0
- package/src/components/HeaderBar/HeaderBurgerMenu/HeaderBurgerMenu.vue +1 -0
- package/src/components/HeaderBar/HeaderBurgerMenu/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/HeaderBar/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/HeaderBar/tests/__snapshots__/HeaderBar.spec.ts.snap +1 -1
- package/src/components/HeaderLoading/Accessibilite.mdx +14 -0
- package/src/components/HeaderLoading/Accessibilite.stories.ts +167 -0
- package/src/components/HeaderLoading/AccessibiliteItems.ts +29 -0
- package/src/components/HeaderLoading/HeaderLoading.mdx +1 -1
- package/src/components/HeaderLoading/HeaderLoading.stories.ts +1 -1
- package/src/components/HeaderLoading/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/HeaderNavigationBar/HeaderNavigationBar.stories.ts +104 -32
- package/src/components/HeaderNavigationBar/HorizontalNavbar/HorizontalNavbar.vue +35 -33
- package/src/components/HeaderToolbar/Accessibilite.mdx +14 -0
- package/src/components/HeaderToolbar/Accessibilite.stories.ts +203 -0
- package/src/components/HeaderToolbar/AccessibiliteItems.ts +200 -0
- package/src/components/HeaderToolbar/HeaderToolbar.mdx +1 -1
- package/src/components/HeaderToolbar/HeaderToolbar.stories.ts +2 -2
- package/src/components/HeaderToolbar/HeaderToolbar.vue +24 -1
- package/src/components/HeaderToolbar/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/LangBtn/Accessibilite.stories.ts +3 -1
- package/src/components/LangBtn/AccessibiliteItems.ts +0 -31
- package/src/components/LangBtn/LangBtn.mdx +1 -1
- package/src/components/LangBtn/LangBtn.stories.ts +4 -4
- package/src/components/LangBtn/LangBtn.vue +3 -2
- package/src/components/Logo/Accessibilite.mdx +14 -0
- package/src/components/Logo/Accessibilite.stories.ts +223 -0
- package/src/components/Logo/AccessibiliteItems.ts +155 -0
- package/src/components/Logo/Logo.mdx +1 -1
- package/src/components/Logo/Logo.stories.ts +8 -8
- package/src/components/Logo/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/LogoBrandSection/Accessibilite.mdx +14 -0
- package/src/components/LogoBrandSection/Accessibilite.stories.ts +223 -0
- package/src/components/LogoBrandSection/AccessibiliteItems.ts +194 -0
- package/src/components/LogoBrandSection/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/MaintenancePage/Accessibilite.mdx +14 -0
- package/src/components/MaintenancePage/Accessibilite.stories.ts +189 -0
- package/src/components/MaintenancePage/AccessibiliteItems.ts +173 -0
- package/src/components/MaintenancePage/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/NirField/Accessibilite.mdx +14 -0
- package/src/components/NirField/Accessibilite.stories.ts +214 -0
- package/src/components/NirField/AccessibiliteItems.ts +243 -0
- package/src/components/NirField/NirField.mdx +213 -0
- package/src/components/NirField/NirField.stories.ts +412 -0
- package/src/components/NirField/NirField.vue +453 -0
- package/src/components/NirField/config.ts +16 -0
- package/src/components/NirField/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/NirField/locales.ts +12 -0
- package/src/components/NirField/nirValidation.ts +42 -0
- package/src/components/NirField/tests/NirField.spec.ts +120 -0
- package/src/components/NotFoundPage/Accessibilite.mdx +14 -0
- package/src/components/NotFoundPage/Accessibilite.stories.ts +190 -0
- package/src/components/NotFoundPage/AccessibiliteItems.ts +205 -0
- package/src/components/NotFoundPage/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +4 -4
- package/src/components/NotificationBar/AccessibiliteItems.ts +0 -30
- package/src/components/NotificationBar/NotificationBar.mdx +1 -1
- package/src/components/PageContainer/PageContainer.mdx +1 -1
- package/src/components/PageContainer/PageContainer.stories.ts +9 -9
- package/src/components/PageContainer/PageContainer.vue +24 -18
- package/src/components/PageContainer/tests/PageContainer.spec.ts +2 -2
- package/src/components/PageContainer/tests/__snapshots__/PageContainer.spec.ts.snap +2 -2
- package/src/components/PhoneField/Accessibilite.mdx +14 -0
- package/src/components/PhoneField/Accessibilite.stories.ts +216 -0
- package/src/components/PhoneField/AccessibiliteItems.ts +238 -0
- package/src/components/PhoneField/PhoneField.mdx +1 -1
- package/src/components/PhoneField/PhoneField.stories.ts +2 -2
- package/src/components/PhoneField/PhoneField.vue +0 -1
- package/src/components/PhoneField/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/SkipLink/Accessibilite.stories.ts +1 -1
- package/src/components/SkipLink/SkipLink.stories.ts +2 -2
- package/src/components/SocialMediaLinks/Accessibilite.mdx +14 -0
- package/src/components/SocialMediaLinks/Accessibilite.stories.ts +170 -0
- package/src/components/SocialMediaLinks/AccessibiliteItems.ts +160 -0
- package/src/components/SocialMediaLinks/SocialMediaLinks.mdx +1 -1
- package/src/components/SocialMediaLinks/SocialMediaLinks.stories.ts +1 -1
- package/src/components/SocialMediaLinks/SocialMediaLinks.vue +7 -1
- package/src/components/SocialMediaLinks/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/SocialMediaLinks/tests/__snapshots__/SocialMediaLinks.spec.ts.snap +2 -2
- package/src/components/SubHeader/Accessibilite.mdx +14 -0
- package/src/components/SubHeader/Accessibilite.stories.ts +166 -0
- package/src/components/SubHeader/AccessibiliteItems.ts +146 -0
- package/src/components/SubHeader/SubHeader.mdx +1 -1
- package/src/components/SubHeader/SubHeader.stories.ts +17 -14
- package/src/components/SubHeader/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/SyAlert/Accessibilite.mdx +14 -0
- package/src/components/{Alert → SyAlert}/Accessibilite.stories.ts +1 -1
- package/src/components/{Alert → SyAlert}/AccessibiliteItems.ts +2 -32
- package/src/components/{Alert/Alert.mdx → SyAlert/SyAlert.mdx} +9 -9
- package/src/components/{Alert/Alert.stories.ts → SyAlert/SyAlert.stories.ts} +22 -22
- package/src/components/{Alert/Alert.vue → SyAlert/SyAlert.vue} +7 -0
- package/src/components/SyAlert/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/{Alert/tests/Alert.spec.ts → SyAlert/tests/SyAlert.spec.ts} +5 -5
- package/src/components/{Alert/tests/__snapshots__/Alert.spec.ts.snap → SyAlert/tests/__snapshots__/SyAlert.spec.ts.snap} +2 -2
- package/src/components/UserMenuBtn/Accessibilite.mdx +14 -0
- package/src/components/UserMenuBtn/Accessibilite.stories.ts +189 -0
- package/src/components/UserMenuBtn/AccessibiliteItems.ts +155 -0
- package/src/components/UserMenuBtn/UserMenuBtn.mdx +17 -17
- package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +121 -19
- package/src/components/UserMenuBtn/UserMenuBtn.vue +25 -29
- package/src/components/UserMenuBtn/config.ts +1 -1
- package/src/components/UserMenuBtn/constants/ExpertiseLevelEnum.ts +4 -0
- package/src/components/index.ts +11 -4
- package/src/composables/rules/tests/useFieldValidation.spec.ts +60 -58
- package/src/composables/rules/useFieldValidation.ts +65 -28
- package/src/main.ts +1 -0
- package/src/stories/GuideDuDev/CommentUtiliserLesRules.mdx +67 -79
- package/src/stories/GuideDuDev/components.stories.ts +5 -5
- package/src/stories/GuideDuDev/moduleDeNotification.mdx +1 -1
- package/src/stories/Guidelines/Vuetify/Vuetify.mdx +11 -0
- package/src/stories/Guidelines/Vuetify/Vuetify.stories.ts +138 -0
- package/src/stories/Guidelines/Vuetify/VuetifyItems.ts +350 -0
- /package/src/components/{Alert → CookieBanner}/Accessibilite.mdx +0 -0
- /package/src/components/{Alert → CookieBanner}/constants/ExpertiseLevelEnum.ts +0 -0
- /package/src/components/{Alert → SyAlert}/locales.ts +0 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { ExpertiseLevelEnum } from './constants/ExpertiseLevelEnum'
|
|
2
|
+
|
|
3
|
+
export const AccessibiliteItemsIndeterminate = [
|
|
4
|
+
{
|
|
5
|
+
title: 'Catégorie 10 : Présentation de l’information',
|
|
6
|
+
subtitle: '10.1 Dans le site web, des feuilles de styles sont-elles utilisées pour contrôler la présentation de l’information ? ?',
|
|
7
|
+
items: [
|
|
8
|
+
|
|
9
|
+
{
|
|
10
|
+
precision: '10.1.1 Dans chaque page web, les balises servant à la présentation de l’information ne doivent pas être présentes dans le code source généré des pages. Cette règle est-elle respectée ? ',
|
|
11
|
+
link: 'https://accessibilite.numerique.gouv.fr/methode/criteres-et-tests/#10.1.1',
|
|
12
|
+
solution: [{
|
|
13
|
+
info1: '1. Vérifier l’absence des éléments de présentation <basefont>, <big>, <blink>, <center>, <font>, <marquee>, <s>, <strike>, <tt> ; ',
|
|
14
|
+
info2: '2. Vérifier l’absence de l’élément <u> uniquement si le DOCTYPE du document ne correspond pas à HTML 5 ; ',
|
|
15
|
+
info3: '3. Si c’est le cas, le test est validé',
|
|
16
|
+
}],
|
|
17
|
+
expertise: ExpertiseLevelEnum.DEV,
|
|
18
|
+
|
|
19
|
+
},
|
|
20
|
+
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
export const AccessibiliteItemsValidated = [
|
|
27
|
+
{
|
|
28
|
+
title: 'Catégorie 1 : Images',
|
|
29
|
+
subtitle: '1.2 Chaque image de décoration est-elle correctement ignorée par les technologies d’assistance ?',
|
|
30
|
+
items: [
|
|
31
|
+
|
|
32
|
+
{
|
|
33
|
+
precision: '1.2.4 Chaque image vectorielle (balise <svg>) de décoration, sans légende, vérifie-t-elle ces conditions ?'
|
|
34
|
+
+ ' La balise <svg> possède un attribut WAI-ARIA aria-hidden="true" ;'
|
|
35
|
+
+ ' La balise <svg> et ses enfants sont dépourvus d’alternative textuelle ;'
|
|
36
|
+
+ ' Les balises <title> et <desc> sont absentes ou vides ;'
|
|
37
|
+
+ ' La balise <svg> et ses enfants sont dépourvus d’attribut title.',
|
|
38
|
+
link: 'https://accessibilite.numerique.gouv.fr/methode/criteres-et-tests/#1.2.4',
|
|
39
|
+
solution: [{
|
|
40
|
+
info1: '1. Retrouver dans le document les images décoratives dépourvues de légende structurées au moyen d’un élément <svg> ;',
|
|
41
|
+
info2: '2. Pour chaque image, vérifier que l’élément <svg> ne possède pas d’attributs aria-labelledby ou aria-label et qu’il :'
|
|
42
|
+
+ ' Possède un attribut WAI-ARIA aria-hidden="true" ;'
|
|
43
|
+
+ ' Et est dépourvu d’alternative textuelle (ainsi que ses éléments enfants) ;'
|
|
44
|
+
+ ' Et ne contient pas d’éléments <title> et <desc> à moins que vides de contenu ;'
|
|
45
|
+
+ ' Et est dépourvu d’attribut title (ainsi que ses éléments enfants).',
|
|
46
|
+
info3: '3. Si c’est le cas pour chaque image, le test est validé',
|
|
47
|
+
}],
|
|
48
|
+
expertise: ExpertiseLevelEnum.DESIGN,
|
|
49
|
+
|
|
50
|
+
},
|
|
51
|
+
|
|
52
|
+
],
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
title: 'Catégorie 3 : Couleurs',
|
|
56
|
+
subtitle: '3.2 Dans chaque page web, le contraste entre la couleur du texte et la couleur de son arrière-plan est-il suffisamment élevé?',
|
|
57
|
+
items: [
|
|
58
|
+
{
|
|
59
|
+
|
|
60
|
+
precision: '3.2.1 Dans chaque page web, le texte et le texte en image sans effet de graisse d’une taille restituée inférieure à 24px vérifient-ils une de ces conditions? Le rapport de contraste entre le texte et son arrière-plan est de 4.5:1, au moins; Un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 4.5:1, au moins.',
|
|
61
|
+
link: 'https://accessibilite.numerique.gouv.fr/methode/criteres-et-tests/#3.2.1',
|
|
62
|
+
solution: [{
|
|
63
|
+
info1: '1. Retrouver dans le document les textes et les textes en image sans effet de graisse d’une taille restituée inférieure à 24px qui pourraient poser des problèmes de contraste ;',
|
|
64
|
+
info2: '2. Pour chacun de ces textes, vérifier que : Soit le rapport de contraste entre le texte et son arrière-plan est de 4.5:1, au moins; Soit un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 4.5:1, au moins.',
|
|
65
|
+
info3: '3. Si c’est le cas pour chaque texte, le test est validé',
|
|
66
|
+
}],
|
|
67
|
+
expertise: ExpertiseLevelEnum.DESIGN,
|
|
68
|
+
|
|
69
|
+
},
|
|
70
|
+
|
|
71
|
+
],
|
|
72
|
+
},
|
|
73
|
+
|
|
74
|
+
{
|
|
75
|
+
title: 'Catégorie 8 : Eléments Obligatoires',
|
|
76
|
+
subtitle: '8.9 Dans chaque page web, les balises ne doivent pas être utilisées uniquement à des fins de présentation',
|
|
77
|
+
items: [
|
|
78
|
+
|
|
79
|
+
{
|
|
80
|
+
precision: ' 8.9.1 Dans chaque page web les balises (à l’exception de <div>, <span> et <table>) ne doivent pas être utilisées uniquement à des fins de présentation. Cette règle est-elle respectée',
|
|
81
|
+
link: 'https://accessibilite.numerique.gouv.fr/methode/criteres-et-tests/#8.9.1',
|
|
82
|
+
solution: [{
|
|
83
|
+
info1: '1. Retrouver dans le document l’ensemble des éléments sémantiques utilisés à des fins de présentation ;',
|
|
84
|
+
info2: '2. Pour chacun de ces éléments, vérifier que :'
|
|
85
|
+
+ 'L’élément est pourvu d’un attribut role=“presentation” ;'
|
|
86
|
+
+ 'L’utilisation de cet élément à des fins de présentation reste justifée',
|
|
87
|
+
info3: '3. Si c’est le cas, le test est validé',
|
|
88
|
+
}],
|
|
89
|
+
expertise: ExpertiseLevelEnum.DESIGN,
|
|
90
|
+
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
],
|
|
94
|
+
},
|
|
95
|
+
|
|
96
|
+
]
|
|
@@ -5,7 +5,8 @@ import * as SyInputSelectStories from "./SyInputSelect.stories";
|
|
|
5
5
|
|
|
6
6
|
# SyInputSelect
|
|
7
7
|
|
|
8
|
-
Le composant `SyInputSelect` est utilisé pour proposer une alternative au `v-select` de Vuetify qui ne respecte pas les règles RGAA
|
|
8
|
+
Le composant `SyInputSelect` est utilisé pour proposer une alternative au `v-select` de Vuetify qui ne respecte pas les règles RGAA.<br/>
|
|
9
|
+
Il est basé sur un `v-input`.
|
|
9
10
|
|
|
10
11
|
<Canvas of={SyInputSelectStories.Default} />
|
|
11
12
|
|
|
@@ -19,12 +20,15 @@ Le composant `SyInputSelect` est utilisé pour proposer une alternative au `v-se
|
|
|
19
20
|
|
|
20
21
|
<Source dark code={`
|
|
21
22
|
<script setup lang="ts">
|
|
22
|
-
import SyInputSelect from '@cnamts/synapse'
|
|
23
|
+
import { SyInputSelect } from '@cnamts/synapse'
|
|
24
|
+
import { ref } from 'vue'
|
|
23
25
|
|
|
24
26
|
const items = [
|
|
25
27
|
{ text: 'Option 1', value: '1' },
|
|
26
28
|
{ text: 'Option 2', value: '2' },
|
|
27
|
-
]
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
const value = ref(undefined)
|
|
28
32
|
</script>
|
|
29
33
|
|
|
30
34
|
<template>
|
|
@@ -2,7 +2,7 @@ import type { Meta, StoryObj } from '@storybook/vue3'
|
|
|
2
2
|
import SyInputSelect from './SyInputSelect.vue'
|
|
3
3
|
import { VBtn, VMenu, VList, VListItem, VListItemTitle } from 'vuetify/components'
|
|
4
4
|
import { ref } from 'vue'
|
|
5
|
-
import
|
|
5
|
+
import SyAlert from '@/components/SyAlert/SyAlert.vue'
|
|
6
6
|
|
|
7
7
|
const meta = {
|
|
8
8
|
title: 'Composants/Formulaires/SyInputSelect',
|
|
@@ -16,6 +16,7 @@ const meta = {
|
|
|
16
16
|
items: { control: 'object' },
|
|
17
17
|
errorMessages: { control: 'object' },
|
|
18
18
|
required: { control: 'boolean' },
|
|
19
|
+
outlined: { control: 'boolean' },
|
|
19
20
|
textKey: { control: 'text' },
|
|
20
21
|
valueKey: { control: 'text' },
|
|
21
22
|
vuetifyOptions: { control: 'object' },
|
|
@@ -43,12 +44,15 @@ export const Default: Story = {
|
|
|
43
44
|
name: 'Script',
|
|
44
45
|
code: `
|
|
45
46
|
<script setup lang="ts">
|
|
46
|
-
import SyInputSelect from '@cnamts/
|
|
47
|
+
import SyInputSelect from '@cnamts/synapse'
|
|
48
|
+
import { ref } from 'vue'
|
|
47
49
|
|
|
48
50
|
const items = [
|
|
49
51
|
{ text: 'Option 1', value: '1' },
|
|
50
52
|
{ text: 'Option 2', value: '2' },
|
|
51
53
|
],
|
|
54
|
+
|
|
55
|
+
const value = ref(undefined)
|
|
52
56
|
</script>
|
|
53
57
|
`,
|
|
54
58
|
},
|
|
@@ -87,60 +91,6 @@ export const Default: Story = {
|
|
|
87
91
|
},
|
|
88
92
|
}
|
|
89
93
|
|
|
90
|
-
export const Outlined: Story = {
|
|
91
|
-
parameters: {
|
|
92
|
-
sourceCode: [
|
|
93
|
-
{
|
|
94
|
-
name: 'Template',
|
|
95
|
-
code: `
|
|
96
|
-
<template>
|
|
97
|
-
<SyInputSelect
|
|
98
|
-
v-model="value"
|
|
99
|
-
:items="items"
|
|
100
|
-
outlined
|
|
101
|
-
/>
|
|
102
|
-
</template>
|
|
103
|
-
`,
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
name: 'Script',
|
|
107
|
-
code: `
|
|
108
|
-
<script setup lang="ts">
|
|
109
|
-
import SyInputSelect from '@cnamts/SyInputSelect'
|
|
110
|
-
|
|
111
|
-
const items = [
|
|
112
|
-
{ text: 'Option 1', value: '1' },
|
|
113
|
-
{ text: 'Option 2', value: '2' },
|
|
114
|
-
],
|
|
115
|
-
</script>
|
|
116
|
-
`,
|
|
117
|
-
},
|
|
118
|
-
],
|
|
119
|
-
},
|
|
120
|
-
args: {
|
|
121
|
-
items: [
|
|
122
|
-
{ text: 'Option 1', value: '1' },
|
|
123
|
-
{ text: 'Option 2', value: '2' },
|
|
124
|
-
],
|
|
125
|
-
},
|
|
126
|
-
render: (args) => {
|
|
127
|
-
return {
|
|
128
|
-
components: { SyInputSelect, VBtn, VMenu, VList, VListItem, VListItemTitle },
|
|
129
|
-
setup() {
|
|
130
|
-
return { args }
|
|
131
|
-
},
|
|
132
|
-
template: `
|
|
133
|
-
<div class="d-flex flex-wrap align-center pa-4">
|
|
134
|
-
<SyInputSelect
|
|
135
|
-
v-bind="args"
|
|
136
|
-
outlined
|
|
137
|
-
/>
|
|
138
|
-
</div>
|
|
139
|
-
`,
|
|
140
|
-
}
|
|
141
|
-
},
|
|
142
|
-
}
|
|
143
|
-
|
|
144
94
|
export const Required: Story = {
|
|
145
95
|
parameters: {
|
|
146
96
|
sourceCode: [
|
|
@@ -160,12 +110,15 @@ export const Required: Story = {
|
|
|
160
110
|
name: 'Script',
|
|
161
111
|
code: `
|
|
162
112
|
<script setup lang="ts">
|
|
163
|
-
import SyInputSelect from '@cnamts/
|
|
113
|
+
import SyInputSelect from '@cnamts/synapse'
|
|
114
|
+
import { ref } from 'vue'
|
|
164
115
|
|
|
165
116
|
const items = [
|
|
166
117
|
{ text: 'Option 1', value: '1' },
|
|
167
118
|
{ text: 'Option 2', value: '2' },
|
|
168
119
|
],
|
|
120
|
+
|
|
121
|
+
const value = ref(undefined)
|
|
169
122
|
</script>
|
|
170
123
|
`,
|
|
171
124
|
},
|
|
@@ -218,7 +171,7 @@ export const withCustomError: Story = {
|
|
|
218
171
|
name: 'Script',
|
|
219
172
|
code: `
|
|
220
173
|
<script setup lang="ts">
|
|
221
|
-
import SyInputSelect from '@cnamts/
|
|
174
|
+
import SyInputSelect from '@cnamts/synapse'
|
|
222
175
|
import { ref } from 'vue'
|
|
223
176
|
|
|
224
177
|
const items = [
|
|
@@ -231,6 +184,8 @@ export const withCustomError: Story = {
|
|
|
231
184
|
const triggerError = () => {
|
|
232
185
|
errorMessages.value = ['This is a test error message']
|
|
233
186
|
}
|
|
187
|
+
|
|
188
|
+
const value = ref(undefined)
|
|
234
189
|
</script>
|
|
235
190
|
`,
|
|
236
191
|
},
|
|
@@ -279,7 +234,6 @@ export const withCustomKey: Story = {
|
|
|
279
234
|
v-model="value"
|
|
280
235
|
:items="items"
|
|
281
236
|
text-key="customKey"
|
|
282
|
-
outlined
|
|
283
237
|
/>
|
|
284
238
|
</template>
|
|
285
239
|
`,
|
|
@@ -288,12 +242,15 @@ export const withCustomKey: Story = {
|
|
|
288
242
|
name: 'Script',
|
|
289
243
|
code: `
|
|
290
244
|
<script setup lang="ts">
|
|
291
|
-
import SyInputSelect from '@cnamts/
|
|
245
|
+
import SyInputSelect from '@cnamts/synapse'
|
|
246
|
+
import { ref } from 'vue'
|
|
292
247
|
|
|
293
248
|
const items = [
|
|
294
249
|
{ customKey: 'Choix 1', value: '1' },
|
|
295
250
|
{ customKey: 'Choix 2', value: '2' }
|
|
296
251
|
]
|
|
252
|
+
|
|
253
|
+
const value = ref(undefined)
|
|
297
254
|
</script>
|
|
298
255
|
`,
|
|
299
256
|
},
|
|
@@ -315,7 +272,6 @@ export const withCustomKey: Story = {
|
|
|
315
272
|
<div class="d-flex flex-wrap align-center pa-4">
|
|
316
273
|
<SyInputSelect
|
|
317
274
|
v-bind="args"
|
|
318
|
-
outlined
|
|
319
275
|
text-key="customKey"
|
|
320
276
|
/>
|
|
321
277
|
</div>
|
|
@@ -343,7 +299,8 @@ export const withCustomStyles: Story = {
|
|
|
343
299
|
name: 'Script',
|
|
344
300
|
code: `
|
|
345
301
|
<script setup lang="ts">
|
|
346
|
-
import SyInputSelect from '@cnamts/
|
|
302
|
+
import SyInputSelect from '@cnamts/synapse'
|
|
303
|
+
import { ref } from 'vue'
|
|
347
304
|
|
|
348
305
|
const items = [
|
|
349
306
|
{ text: 'Option 1', value: '1' },
|
|
@@ -358,6 +315,8 @@ export const withCustomStyles: Story = {
|
|
|
358
315
|
color: 'secondary',
|
|
359
316
|
},
|
|
360
317
|
}
|
|
318
|
+
|
|
319
|
+
const value = ref(undefined)
|
|
361
320
|
</script>
|
|
362
321
|
`,
|
|
363
322
|
},
|
|
@@ -399,12 +358,12 @@ export const withCustomStyles: Story = {
|
|
|
399
358
|
export const Info: Story = {
|
|
400
359
|
render: (args) => {
|
|
401
360
|
return {
|
|
402
|
-
components: {
|
|
361
|
+
components: { SyAlert },
|
|
403
362
|
setup() {
|
|
404
363
|
return { args }
|
|
405
364
|
},
|
|
406
365
|
template: `
|
|
407
|
-
<
|
|
366
|
+
<SyAlert v-model="args.modelValue" :type="args.type" :variant="tonal" :closable="false">
|
|
408
367
|
<template #default>
|
|
409
368
|
<b>Format des items :</b>
|
|
410
369
|
<ul>
|
|
@@ -412,7 +371,7 @@ export const Info: Story = {
|
|
|
412
371
|
<li>- Si les items sont un tableau de string, le composant les utilisera directement.</li>
|
|
413
372
|
</ul>
|
|
414
373
|
</template>
|
|
415
|
-
</
|
|
374
|
+
</SyAlert>
|
|
416
375
|
`,
|
|
417
376
|
}
|
|
418
377
|
},
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import { mdiChevronDown } from '@mdi/js'
|
|
2
|
+
import { mdiChevronDown, mdiInformation } from '@mdi/js'
|
|
3
3
|
import { computed, onMounted, ref, watch } from 'vue'
|
|
4
|
-
import { VIcon, VList, VListItem, VListItemTitle } from 'vuetify/components'
|
|
5
|
-
|
|
6
4
|
import useCustomizableOptions, { type CustomizableOptions } from '@/composables/useCustomizableOptions'
|
|
7
5
|
import defaultOptions from './config'
|
|
8
6
|
|
|
@@ -22,7 +20,7 @@
|
|
|
22
20
|
textKey: 'text',
|
|
23
21
|
valueKey: 'value',
|
|
24
22
|
label: 'Sélectionnez une option',
|
|
25
|
-
outlined:
|
|
23
|
+
outlined: true,
|
|
26
24
|
required: false,
|
|
27
25
|
errorMessages: () => [],
|
|
28
26
|
isHeaderToolbar: false,
|
|
@@ -34,6 +32,7 @@
|
|
|
34
32
|
|
|
35
33
|
const isOpen = ref(false)
|
|
36
34
|
const selectedItem = ref<Record<string, unknown> | string | null>(props.modelValue)
|
|
35
|
+
const hasError = ref(false)
|
|
37
36
|
|
|
38
37
|
const toggleMenu = () => {
|
|
39
38
|
isOpen.value = !isOpen.value
|
|
@@ -43,6 +42,10 @@
|
|
|
43
42
|
isOpen.value = false
|
|
44
43
|
}
|
|
45
44
|
|
|
45
|
+
const isRequired = computed(() => {
|
|
46
|
+
return (props.required || props.errorMessages.length > 0) && !selectedItem.value
|
|
47
|
+
})
|
|
48
|
+
|
|
46
49
|
const inputId = ref(`sy-input-select-${Math.random().toString(36).substring(7)}`)
|
|
47
50
|
|
|
48
51
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- This is a generic type
|
|
@@ -69,8 +72,18 @@
|
|
|
69
72
|
selectedItem.value = newValue
|
|
70
73
|
})
|
|
71
74
|
|
|
75
|
+
watch([isOpen, hasError], ([newIsOpen, newHasError]) => {
|
|
76
|
+
if (!newIsOpen) {
|
|
77
|
+
hasError.value = (!selectedItem.value && isRequired.value) || props.errorMessages.length > 0
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
hasError.value = newHasError
|
|
81
|
+
}
|
|
82
|
+
})
|
|
83
|
+
|
|
72
84
|
watch(() => props.errorMessages, (newValue) => {
|
|
73
85
|
localErrorMessages.value = newValue
|
|
86
|
+
hasError.value = newValue.length > 0
|
|
74
87
|
})
|
|
75
88
|
|
|
76
89
|
const menu = ref<HTMLElement | null>(null)
|
|
@@ -88,6 +101,9 @@
|
|
|
88
101
|
})
|
|
89
102
|
|
|
90
103
|
const buttonClass = computed(() => {
|
|
104
|
+
if (props.outlined && hasError.value) {
|
|
105
|
+
return 'v-btn v-btn--density-default v-btn--size-default v-btn--variant-outlined error text-error'
|
|
106
|
+
}
|
|
91
107
|
return props.outlined ? 'v-btn v-btn--density-default v-btn--size-default v-btn--variant-outlined' : 'text-color'
|
|
92
108
|
})
|
|
93
109
|
|
|
@@ -144,6 +160,13 @@
|
|
|
144
160
|
@keydown.space.prevent="toggleMenu"
|
|
145
161
|
>
|
|
146
162
|
<span>{{ selectedItemText }}</span>
|
|
163
|
+
<VIcon
|
|
164
|
+
v-if="hasError"
|
|
165
|
+
class="ml-2"
|
|
166
|
+
color="error"
|
|
167
|
+
>
|
|
168
|
+
{{ mdiInformation }}
|
|
169
|
+
</VIcon>
|
|
147
170
|
<VIcon> {{ mdiChevronDown }}</VIcon>
|
|
148
171
|
</div>
|
|
149
172
|
<VList
|
|
@@ -179,6 +202,11 @@
|
|
|
179
202
|
<style lang="scss" scoped>
|
|
180
203
|
@use '@/assets/tokens.scss';
|
|
181
204
|
|
|
205
|
+
.sy-input-select {
|
|
206
|
+
text-transform: none !important;
|
|
207
|
+
font-size: 16px;
|
|
208
|
+
}
|
|
209
|
+
|
|
182
210
|
.v-input {
|
|
183
211
|
cursor: pointer;
|
|
184
212
|
position: relative;
|
|
@@ -210,6 +238,10 @@
|
|
|
210
238
|
}
|
|
211
239
|
}
|
|
212
240
|
|
|
241
|
+
.error {
|
|
242
|
+
border-color: tokens.$danger-default;
|
|
243
|
+
}
|
|
244
|
+
|
|
213
245
|
.v-btn {
|
|
214
246
|
color: tokens.$blue-base;
|
|
215
247
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Meta, Story } from '@storybook/addon-docs';
|
|
2
|
+
import * as AccessStories from './Accessibilite.stories.ts';
|
|
3
|
+
|
|
4
|
+
<Meta of={AccessStories} />
|
|
5
|
+
|
|
6
|
+
Accessibilité
|
|
7
|
+
=============
|
|
8
|
+
<Story of={AccessStories.Legende} />
|
|
9
|
+
<br />
|
|
10
|
+
|
|
11
|
+
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
12
|
+
|
|
13
|
+
<Story of={AccessStories.AccessibilitePanel} />
|
|
14
|
+
<br />
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { VExpansionPanels, VExpansionPanel, VExpansionPanelTitle, VExpansionPanelText, VDataTable, VIcon } from 'vuetify/components'
|
|
2
|
+
import type { StoryObj } from '@storybook/vue3'
|
|
3
|
+
import { AccessibiliteItemsIndeterminate, AccessibiliteItemsValidated } from './AccessibiliteItems'
|
|
4
|
+
import { mdiCheckboxMarkedCircle, mdiLink, mdiEye } from '@mdi/js'
|
|
5
|
+
|
|
6
|
+
const checkIcon = mdiCheckboxMarkedCircle
|
|
7
|
+
const iconEye = mdiEye
|
|
8
|
+
const linkICon = mdiLink
|
|
9
|
+
|
|
10
|
+
export default {
|
|
11
|
+
title: 'Composants/Formulaires/SySelect/Accessibilité',
|
|
12
|
+
}
|
|
13
|
+
export const AccessibilitePanel: StoryObj = {
|
|
14
|
+
|
|
15
|
+
render: () => {
|
|
16
|
+
return {
|
|
17
|
+
components: { VExpansionPanels, VExpansionPanel, VExpansionPanelTitle, VExpansionPanelText, VDataTable, VIcon },
|
|
18
|
+
|
|
19
|
+
setup() {
|
|
20
|
+
const icon = checkIcon
|
|
21
|
+
|
|
22
|
+
return { AccessibiliteItemsIndeterminate, AccessibiliteItemsValidated, icon, linkICon, iconEye }
|
|
23
|
+
},
|
|
24
|
+
template: `
|
|
25
|
+
<div class="accessibiliteItems" style="display:flex; max-width: none !important;">
|
|
26
|
+
<v-col cols="6">
|
|
27
|
+
<div style="display:flex; margin-bottom: 10px; justify-content: space-between; align-items: center;">
|
|
28
|
+
<h5>{{ AccessibiliteItemsIndeterminate.length }} critères à prendre en charge par le projet</h5>
|
|
29
|
+
<div style="display: flex; align-items: center;">
|
|
30
|
+
<v-btn variant="tonal" color="red" size="x-small" style="margin: 4px;font-size: 8px;"
|
|
31
|
+
rounded>Tanaguru
|
|
32
|
+
</v-btn>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
|
|
36
|
+
<v-expansion-panels value="opened" multiple>
|
|
37
|
+
<v-expansion-panel v-for="(item, index) in AccessibiliteItemsIndeterminate" :key="index"
|
|
38
|
+
style="background-color: rgba(42, 96, 158, 0.1); margin-bottom: 10px;">
|
|
39
|
+
<v-expansion-panel-title>
|
|
40
|
+
<VIcon :icon="iconEye" style="margin-right: 5px; color:#5778b7;"/>
|
|
41
|
+
{{ item.title }}
|
|
42
|
+
</v-expansion-panel-title>
|
|
43
|
+
<v-expansion-panel-text>
|
|
44
|
+
<v-expansion-panels>
|
|
45
|
+
|
|
46
|
+
<v-expansion-panel v-for="(i, index) in item.items2" :key="i" style="margin-bottom: 10px;">
|
|
47
|
+
<v-expansion-panel-title
|
|
48
|
+
style="font-weight: bold; font-size: 13px; line-height: 16px;">
|
|
49
|
+
{{ i.subtitle }}
|
|
50
|
+
</v-expansion-panel-title>
|
|
51
|
+
<v-expansion-panel-text>
|
|
52
|
+
<div>
|
|
53
|
+
<p style="font-size: 13px;line-height: 16px;">
|
|
54
|
+
{{ i.precision }}
|
|
55
|
+
</p>
|
|
56
|
+
<div v-for="(value, index) in i.solution"
|
|
57
|
+
style="margin-top:15px; font-size: 13px;line-height: 16px;">
|
|
58
|
+
<p style="font-weight: bold;">Méthodologie du test : <a
|
|
59
|
+
href="{{i.link}}" target="blank">
|
|
60
|
+
<VIcon :icon="linkICon"/>
|
|
61
|
+
</a></p>
|
|
62
|
+
|
|
63
|
+
<p>{{ value.info1 }}</p>
|
|
64
|
+
<p>{{ value.info2 }}</p>
|
|
65
|
+
<p>{{ value.info3 }}</p>
|
|
66
|
+
</div>
|
|
67
|
+
<span style="display:flex; justify-content:center; margin-bottom:5px;">______</span>
|
|
68
|
+
</div>
|
|
69
|
+
</v-expansion-panel-text>
|
|
70
|
+
</v-expansion-panel>
|
|
71
|
+
<v-expansion-panel>
|
|
72
|
+
<v-expansion-panel-title
|
|
73
|
+
style="font-weight: bold; font-size: 13px; line-height: 16px;">
|
|
74
|
+
{{ item.subtitle }}
|
|
75
|
+
</v-expansion-panel-title>
|
|
76
|
+
<v-expansion-panel-text>
|
|
77
|
+
<div v-for="(value, i) in item.items" :key="i">
|
|
78
|
+
<p style="font-size: 13px;line-height: 16px;">
|
|
79
|
+
{{ value.precision }}
|
|
80
|
+
</p>
|
|
81
|
+
<div v-for="element in value.solution"
|
|
82
|
+
style="margin-top:15px; font-size: 13px;line-height: 16px;">
|
|
83
|
+
<p style="font-weight: bold;">Méthodologie du test : <a
|
|
84
|
+
href="value.link" target="blank">
|
|
85
|
+
<VIcon :icon="linkICon"/>
|
|
86
|
+
</a></p>
|
|
87
|
+
<p>{{ element.info1 }}</p>
|
|
88
|
+
<p>{{ element.info2 }}</p>
|
|
89
|
+
<p>{{ element.info3 }}</p>
|
|
90
|
+
</div>
|
|
91
|
+
<span style="display:flex; justify-content:center; margin-bottom:5px;">______</span>
|
|
92
|
+
</div>
|
|
93
|
+
</v-expansion-panel-text>
|
|
94
|
+
</v-expansion-panel>
|
|
95
|
+
</v-expansion-panels>
|
|
96
|
+
</v-expansion-panel-text>
|
|
97
|
+
</v-expansion-panel>
|
|
98
|
+
</v-expansion-panels>
|
|
99
|
+
</v-col>
|
|
100
|
+
<v-col cols="6">
|
|
101
|
+
<div style="display:flex; margin-bottom: 10px; justify-content: space-between; align-items: center;">
|
|
102
|
+
<h5>{{ AccessibiliteItemsValidated.length }} critères pris en charge par l'équipe Design System</h5>
|
|
103
|
+
<div style="display: flex; align-items: center;">
|
|
104
|
+
<v-btn variant="tonal" color="red" size="x-small" style="margin: 4px;font-size: 8px;"
|
|
105
|
+
rounded>Tanaguru
|
|
106
|
+
</v-btn>
|
|
107
|
+
</div>
|
|
108
|
+
</div>
|
|
109
|
+
<v-expansion-panels value="opened" multiple>
|
|
110
|
+
<v-expansion-panel
|
|
111
|
+
v-for="(item, index) in AccessibiliteItemsValidated"
|
|
112
|
+
:key="index" style="background-color: rgba(53,135,0,0.1); margin-bottom: 10px;">
|
|
113
|
+
<v-expansion-panel-title>
|
|
114
|
+
<VIcon color="green" :icon="icon" style="margin-right: 5px;"/>
|
|
115
|
+
{{ item.title }}
|
|
116
|
+
</v-expansion-panel-title>
|
|
117
|
+
<v-expansion-panel-text>
|
|
118
|
+
<v-expansion-panels>
|
|
119
|
+
|
|
120
|
+
<v-expansion-panel v-for="(i, index) in item.items2" :key="i" style="margin-bottom: 10px;">
|
|
121
|
+
<v-expansion-panel-title
|
|
122
|
+
style="font-weight: bold; font-size: 13px; line-height: 16px;">
|
|
123
|
+
{{ i.subtitle }}
|
|
124
|
+
</v-expansion-panel-title>
|
|
125
|
+
<v-expansion-panel-text>
|
|
126
|
+
<div>
|
|
127
|
+
<p style="font-size: 13px;line-height: 16px;">
|
|
128
|
+
{{ i.precision }}
|
|
129
|
+
</p>
|
|
130
|
+
<div v-for="(value, index) in i.solution"
|
|
131
|
+
style="margin-top:15px; font-size: 13px;line-height: 16px;">
|
|
132
|
+
<p style="font-weight: bold;">Méthodologie du test : <a
|
|
133
|
+
href="{{i.link}}" target="blank">
|
|
134
|
+
<VIcon :icon="linkICon"/>
|
|
135
|
+
</a></p>
|
|
136
|
+
<p>{{ value.info1 }}</p>
|
|
137
|
+
<p>{{ value.info2 }}</p>
|
|
138
|
+
<p>{{ value.info3 }}</p>
|
|
139
|
+
</div>
|
|
140
|
+
<span style="display:flex; justify-content:center; margin-bottom:5px;">______</span>
|
|
141
|
+
</div>
|
|
142
|
+
</v-expansion-panel-text>
|
|
143
|
+
</v-expansion-panel>
|
|
144
|
+
|
|
145
|
+
<v-expansion-panel>
|
|
146
|
+
<v-expansion-panel-title
|
|
147
|
+
style="font-weight: bold; font-size: 13px; line-height: 16px;">
|
|
148
|
+
{{ item.subtitle }}
|
|
149
|
+
</v-expansion-panel-title>
|
|
150
|
+
<v-expansion-panel-text>
|
|
151
|
+
<div v-for="(value, i) in item.items" :key="i">
|
|
152
|
+
<p style="font-size: 13px;line-height: 16px;">
|
|
153
|
+
{{ value.precision }}
|
|
154
|
+
</p>
|
|
155
|
+
<div v-for="element in value.solution"
|
|
156
|
+
style="margin-top:15px; font-size: 13px;line-height: 16px;">
|
|
157
|
+
<p style="font-weight: bold;">Méthodologie du test : <a
|
|
158
|
+
href="value.link" target="blank">
|
|
159
|
+
<VIcon :icon="linkICon"/>
|
|
160
|
+
</a></p>
|
|
161
|
+
<p>{{ element.info1 }}</p>
|
|
162
|
+
<p>{{ element.info2 }}</p>
|
|
163
|
+
<p>{{ element.info3 }}</p>
|
|
164
|
+
</div>
|
|
165
|
+
<span style="display:flex; justify-content:center; margin-bottom:5px;">______</span>
|
|
166
|
+
</div>
|
|
167
|
+
</v-expansion-panel-text>
|
|
168
|
+
</v-expansion-panel>
|
|
169
|
+
</v-expansion-panels>
|
|
170
|
+
</v-expansion-panel-text>
|
|
171
|
+
</v-expansion-panel>
|
|
172
|
+
</v-expansion-panels>
|
|
173
|
+
</v-col>
|
|
174
|
+
</div>
|
|
175
|
+
`,
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
tags: ['!dev'],
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
export const Legende: StoryObj = {
|
|
182
|
+
args: {
|
|
183
|
+
icon: checkIcon,
|
|
184
|
+
},
|
|
185
|
+
render: (args) => {
|
|
186
|
+
return {
|
|
187
|
+
components: { VIcon },
|
|
188
|
+
setup() {
|
|
189
|
+
return { args }
|
|
190
|
+
},
|
|
191
|
+
template: `
|
|
192
|
+
<p style="color: grey;font-size: 11px; margin-bottom: 12px;">Date de conception: 20/11/2024</p>
|
|
193
|
+
<div>
|
|
194
|
+
<p>Le tableau ci-dessous liste nos recommandations suivant les <a target="blank" style="color:#0C41BD;" href="https://www.numerique.gouv.fr/publications/rgaa-accessibilite/#contenu">catégories du RGAA</a>.</p>
|
|
195
|
+
<p style="margin-bottom: 12px;font-weight:bold;">Pour rappel le composant seul ne garantie pas
|
|
196
|
+
l'accessibilité du site.</p>
|
|
197
|
+
<div style="font-size: 14px">
|
|
198
|
+
<p>Nous avons deux façons de relever les problèmes d'accessibilité des composants :</p>
|
|
199
|
+
<div>
|
|
200
|
+
<v-btn variant="tonal" color="grey" size="x-small" style="margin: 2px;font-size: 8px;" rounded>
|
|
201
|
+
Audit
|
|
202
|
+
</v-btn>
|
|
203
|
+
Problèmes relevés par le projet
|
|
204
|
+
</div>
|
|
205
|
+
<div>
|
|
206
|
+
<v-btn variant="tonal" color="red" size="x-small" style="margin: 2px;font-size: 8px;" rounded>
|
|
207
|
+
Tanaguru
|
|
208
|
+
</v-btn>
|
|
209
|
+
Problèmes relevés par Tanaguru
|
|
210
|
+
</div>
|
|
211
|
+
</div>
|
|
212
|
+
</div>
|
|
213
|
+
`,
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
tags: ['!dev'],
|
|
217
|
+
}
|