fr.json
55.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
{
"lang": "fr",
"rules": {
"accesskeys": {
"description": "Vérifier que chaque valeur de l’attribut accesskey est unique",
"help": "La valeur de l’attribut accesskey doit être unique"
},
"area-alt": {
"description": "Vérifier que les éléments <area> d’une image réactive ont une alternative textuelle",
"help": "Les éléments <area> actifs doivent avoir une alternative textuelle"
},
"aria-allowed-attr": {
"description": "Vérifier que les attributs ARIA sont autorisés pour le rôle d’un élément",
"help": "Les éléments doivent seulement utiliser les attributs ARIA autorisés"
},
"aria-allowed-role": {
"description": "Vérifier que l’attribut role a une valeur valide pour cet élément",
"help": "Le rôle ARIA doit être valide pour cet élément"
},
"aria-command-name": {
"description": "Vérifier que chaque \"button\", \"link\" et \"menuitem\" ARIA a un nom accessible",
"help": "Les commandes ARIA doivent avoir un nom accessible"
},
"aria-dialog-name": {
"description": "Vérifier que chaque nœud ARIA \"dialog\" et \"alertdialog\" a un nom accessible",
"help": "Les nœuds ARIA \"dialog\" and \"alertdialog\" doivent avoir un nom accessible"
},
"aria-hidden-body": {
"description": "Vérifier qu’aria-hidden='true' n’est pas présent sur le corps du document (élément body)",
"help": "aria-hidden='true' ne doit pas être présent sur <body>"
},
"aria-hidden-focus": {
"description": "Vérifier qu’aria-hidden n’est pas assigné aux éléments qui reçoivent le focus au clavier",
"help": "aria-hidden n’est pas assigné aux éléments qui reçoivent le focus au clavier"
},
"aria-input-field-name": {
"description": "Vérifier que chaque champ de formulaire avec ARIA est doté d’un intitulé accessible",
"help": "Les champs de formulaire ARIA ont un intitulé accessible"
},
"aria-meter-name": {
"description": "Vérifier que chaque nœud ARIA \"meter\" a un nom accessible",
"help": "Les nœuds ARIA \"meter\" doivent avoir un nom accessible"
},
"aria-progressbar-name": {
"description": "Vérifier que chaque nœud ARIA \"progressbar\" a un nom accessible",
"help": "Les nœuds ARIA \"progressbar\" doivent avoir un nom accessible"
},
"aria-required-attr": {
"description": "Vérifier que les éléments avec des rôles ARIA ont les attributs ARIA requis",
"help": "Les attributs ARIA requis doivent être présents"
},
"aria-required-children": {
"description": "Vérifier que les éléments avec un rôle ARIA comportent aussi des rôles pour les descendants directs",
"help": "Certains rôles ARIA doivent comporter des descendants directs spécifiques"
},
"aria-required-parent": {
"description": "Vérifier que les éléments avec un rôle ARIA requérant des rôles parents y sont contenus",
"help": "Certains rôles ARIA doivent être contenus par des parents spécifiques"
},
"aria-roledescription": {
"description": "Vérifier qu’aria-roledescription n’est utilisé que sur des éléments qui ont un rôle implicite ou explicite",
"help": "Utiliser aria-roledescription sur les éléments dont le rôle a une valeur sémantique"
},
"aria-roles": {
"description": "Vérifier que les éléments avec un attribut role utilisent une valeur valide",
"help": "Les rôles ARIA doivent se conformer aux valeurs valides"
},
"aria-text": {
"description": "Vérifier que \"role=text\" est uniquement utilisé sur des éléments sans descendants focalisables",
"help": "\"role=text\" ne doit pas avoir de descendant focalisable"
},
"aria-toggle-field-name": {
"description": "Vérifier que chaque champ de basculement ARIA a un libellé accessible",
"help": "Les champs de basculement ARIA ont un libellé accessible"
},
"aria-tooltip-name": {
"description": "Vérifier que chaque nœud ARIA \"tooltip\" a un nom accessible",
"help": "Les nœuds ARIA \"tooltip\" doivent avoir un nom accessible"
},
"aria-treeitem-name": {
"description": "Vérifier que chaque nœud ARIA \"treeitem\" a un nom accessible",
"help": "Les nœuds ARIA \"treeitem\" doivent avoir un nom accessible"
},
"aria-valid-attr-value": {
"description": "Vérifier que tous les attributs ARIA comportent des valeurs valides",
"help": "Les attributs ARIA doivent comporter des valeurs valides"
},
"aria-valid-attr": {
"description": "Vérifier que les attributs commençant par aria- sont des attributs ARIA valides",
"help": "Les attributs ARIA doivent se conformer aux noms valides"
},
"audio-caption": {
"description": "Vérifier que les éléments <audio> ont des sous-titres",
"help": "Les éléments <audio> doivent avoir une piste de sous-titres"
},
"autocomplete-valid": {
"description": "Vérifier que l’attribut autocomplete est correctement adapté au champ de formulaire",
"help": "L’attribut autocomplete doit être utilisé correctement"
},
"avoid-inline-spacing": {
"description": "Vérifier que l’espacement du texte défini à travers une attribution de styles peut être ajusté via une feuille de style personnalisée",
"help": "L’espacement du texte inline peut être ajusté avec des feuilles de style personnalisées"
},
"blink": {
"description": "Vérifier que l’élément <blink> n’est pas utilisé",
"help": "L’élément <blink> est déprécié et ne doit pas être utilisé"
},
"button-name": {
"description": "Vérifier que les boutons ont un texte perceptible",
"help": "Les boutons doivent avoir un texte perceptible"
},
"bypass": {
"description": "Vérifier que chaque page dispose au minimum d’un mécanisme de contournement de la navigation pour accéder directement au contenu",
"help": "Chaque page doit fournir des moyens de contourner les contenus répétés"
},
"color-contrast": {
"description": "Vérifier que les contrastes entre le premier plan et l’arrière-plan rencontrent les seuils de contrastes exigés par les WCAG 2 AA",
"help": "Les éléments doivent avoir un contraste de couleurs suffisant"
},
"color-contrast-enhanced": {
"description": "Vérifier que les contrastes entre le premier plan et l’arrière-plan rencontrent les seuils de contrastes exigés par les WCAG 2 AAA",
"help": "Les éléments doivent avoir un contraste de couleurs suffisant"
},
"css-orientation-lock": {
"description": "Vérifier que les contenus ne sont pas limités à une orientation spécifique de l’écran, et que le contenu est utilisable sous toutes les orientations de l’écran",
"help": "Les CSS Media queries ne sont pas utilisées pour verrouiller l’orientation de l’écran"
},
"definition-list": {
"description": "Vérifier que les éléments <dl> sont correctement structurés",
"help": "Les éléments <dl> ne doivent contenir directement que des groupes d’éléments <dt> et <dd> correctement ordonnés, ou des éléments <script> ou <template>"
},
"dlitem": {
"description": "Vérifier que les éléments <dt> et <dd> sont contenus dans un élément <dl>",
"help": "Les éléments <dt> et <dd> doivent être contenus dans un élément <dl>"
},
"document-title": {
"description": "Vérifier que chaque document HTML contient un élément <title> non vide",
"help": "Chaque document doit avoir un élément <title> pour aider à la navigation"
},
"duplicate-id-active": {
"description": "Vérifier que la valeur d’attribut id de chaque élément actif est unique",
"help": "Les IDs des éléments actifs doivent être uniques"
},
"duplicate-id-aria": {
"description": "Vérifier que chaque valeur d’attribut id utilisée avec ARIA et dans les étiquettes est unique",
"help": "Les IDs utilisés avec ARIA et dans les étiquettes doivent être uniques"
},
"duplicate-id": {
"description": "Vérifier que la valeur de chaque attribut id est unique",
"help": "La valeur de l’attribut id doit être unique"
},
"empty-heading": {
"description": "Vérifier que les niveaux de titre ont un texte perceptible",
"help": "Les niveaux de titre ne doivent pas être vides"
},
"empty-table-header": {
"description": "Vérifier que les entêtes de tableaux ont un texte perceptible",
"help": "Les textes d’entêtes de tableaux ne doivent pas être vides"
},
"focus-order-semantics": {
"description": "Vérifier que les éléments dans le parcours du focus ont un rôle approprié",
"help": "Les éléments dans le parcours du focus doivent avoir un rôle approprié pour le contenu interactif"
},
"form-field-multiple-labels": {
"description": "Vérifier que le champ de formulaire n’a pas plusieurs éléments d’étiquettes",
"help": "Le champ de formulaire ne devrait pas comporter plusieurs éléments d’étiquettes"
},
"frame-focusable-content": {
"description": "Vérifier que les éléments <frame> et <iframe> avec du contenu focalisable n’ont pas de tabindex=-1",
"help": "Les cadres avec du contenu focalisable ne doivent pas avoir tabindex=-1"
},
"frame-tested": {
"description": "Vérifier que les éléments <iframe> et <frame> contiennent le script axe-core",
"help": "Les cadres doivent être testés avec axe-core"
},
"frame-title-unique": {
"description": "Vérifier que les éléments <iframe> et <frame> ont un attribut title unique",
"help": "Chaque cadre doit avoir un attribut title unique"
},
"frame-title": {
"description": "Vérifier que les éléments <iframe> et <frame> ont un attribut title non vide",
"help": "Chaque cadre doit avoir un attribut title"
},
"heading-order": {
"description": "Vérifier que la hiérarchie des niveaux de titre est sémantiquement correcte",
"help": "Les niveaux de titre doivent s’incrémenter d’un seul niveau à la fois"
},
"hidden-content": {
"description": "Informer les utilisateurs sur les contenus cachés",
"help": "Le contenu caché sur la page ne peut pas être analysé"
},
"html-has-lang": {
"description": "Vérifier que chaque document HTML a un attribut lang",
"help": "L’élément <html> doit avoir un attribut lang"
},
"html-lang-valid": {
"description": "Vérifier que l’attribut lang sur l’élément <html> a une valeur valide",
"help": "L’élément <html> doit avoir une valeur valide pour l’attribut lang"
},
"html-xml-lang-mismatch": {
"description": "Vérifier que les éléments HTML avec les attributs lang et xml:lang valides indiquent la même langue de base pour la page",
"help": "Les éléments HTML avec les attributs lang et xml:lang doivent avoir la même langue de base"
},
"identical-links-same-purpose": {
"description": "Vérifier que les liens qui ont le même nom accessible ont la même finalité",
"help": "Les liens avec le même nom ont la même finalité"
},
"image-alt": {
"description": "Vérifier que les éléments <img> ont une alternative textuelle, ou un rôle de type 'none' ou 'presentation'",
"help": "Les images doivent avoir une alternative textuelle"
},
"image-redundant-alt": {
"description": "Vérifier que l’intitulé des liens et boutons n’est pas répété dans l’alternative de l’image",
"help": "L’intitulé des liens et boutons ne doit pas être répété dans l’alternative de l’image"
},
"input-button-name": {
"description": "Vérifier que la valeur textuelle des contrôles de boutons est perceptible",
"help": "La valeur textuelle des contrôles de boutons doit être perceptible"
},
"input-image-alt": {
"description": "Vérifier que les éléments <input type=\"image\"> ont une alternative textuelle",
"help": "Les boutons images doivent avoir une alternative textuelle"
},
"label-content-name-mismatch": {
"description": "Vérifier que dans le cas d’éléments identifiés par leur contenu textuel, le texte visible fait partie de l’intitulé accessible",
"help": "Le contenu textuel des éléments doit aussi se retrouver dans leur intitulé accessible"
},
"label-title-only": {
"description": "Vérifier que chaque élément de formulaire n’est pas labellisé uniquement par les attributs title ou aria-describedby",
"help": "Chaque élément de formulaire doit avoir un label visible"
},
"label": {
"description": "Vérifier que chaque élément de formulaire a une étiquette",
"help": "Chaque élément de formulaire doit avoir une étiquette"
},
"landmark-banner-is-top-level": {
"description": "La région banner ne devrait pas être contenue dans une autre région",
"help": "La région banner doit être au niveau le plus haut"
},
"landmark-complementary-is-top-level": {
"description": "Vérifier que les landmarks complementary ou aside se retrouvent au plus haut niveau",
"help": "Aside ne doit pas être contenu dans un autre landmark"
},
"landmark-contentinfo-is-top-level": {
"description": "La région contentinfo ne devrait pas être contenue dans une autre région",
"help": "La région contentinfo doit être au niveau le plus haut"
},
"landmark-main-is-top-level": {
"description": "La région main ne devrait pas être contenue dans une autre région",
"help": "La région main doit être au niveau le plus haut"
},
"landmark-no-duplicate-banner": {
"description": "Vérifier que le document n’a pas plus d’une région banner",
"help": "Le document contient au plus une région banner"
},
"landmark-no-duplicate-contentinfo": {
"description": "Vérifier que le document n’a pas plus d’une région contentinfo",
"help": "Le document contient au plus une région contentinfo"
},
"landmark-no-duplicate-main": {
"description": "Vérifier que le document a tout au plus, un seul landmark main",
"help": "Le document ne doit pas contenir plus d’un landmark main"
},
"landmark-one-main": {
"description": "Vérifier qu’une navigation pointe vers le contenu principal de la page. Si la page contient des iframes, chaque iframe ne doit contenir au plus qu’une région main",
"help": "La page doit contenir une région main"
},
"landmark-unique": {
"help": "Vérifier que chaque landmark est unique",
"description": "Les landmarks doivent comporter un rôle unique, ou une étiquette accessible par la combinaison de role/label/title"
},
"link-in-text-block": {
"description": "Les liens doivent pouvoir être distingués autrement que par la couleur",
"help": "Les liens doivent pouvoir être distingués du texte environnant d’une façon qui ne repose pas sur la couleur"
},
"link-name": {
"description": "Vérifier que les liens ont un texte perceptible",
"help": "Les liens doivent avoir un texte perceptible"
},
"list": {
"description": "Vérifier que les listes sont structurées correctement",
"help": "<ul> et <ol> ne doivent contenir directement que des éléments <li>, <script> ou <template>"
},
"listitem": {
"description": "Vérifier que les éléments <li> sont utilisés sémantiquement",
"help": "Les éléments <li> doivent être contenus dans un élément <ul> ou <ol>"
},
"marquee": {
"description": "Vérifier que l’élément <marquee> n’est pas utilisé",
"help": "L’élément <marquee> est déprécié et ne doit pas être utilisé"
},
"meta-refresh": {
"description": "Vérifier que <meta http-equiv=\"refresh\"> n’est pas utilisé",
"help": "La page HTML ne doit pas être actualisée automatiquement"
},
"meta-viewport-large": {
"description": "Vérifier que <meta name=\"viewport\"> permet un agrandissement significatif",
"help": "Les utilisateurs devraient pouvoir zoomer et agrandir le texte jusqu’à 500%"
},
"meta-viewport": {
"description": "Vérifier que <meta name=\"viewport\"> ne désactive pas le zoom ni l’agrandissement",
"help": "Le zoom et l’agrandissement ne doivent pas être désactivés"
},
"nested-interactive": {
"description": "Les éléments interactifs imbriqués ne sont pas annoncés par les lecteurs d’écrans",
"help": "Verifier que les éléments interactifs ne sont pas imbriqués"
},
"no-autoplay-audio": {
"description": "Vérifier que les éléments <video> ou <audio> ne jouent pas de son automatiquement pendant plus de 3 secondes sans mécanisme de contrôle pour stopper la lecture ou couper le son.",
"help": "Les éléments <video> ou <audio> ne jouent pas de son automatiquement"
},
"object-alt": {
"description": "Vérifier que les éléments <object> ont une alternative textuelle",
"help": "Les éléments <object> doivent avoir une alternative textuelle"
},
"p-as-heading": {
"description": "Vérifier que les éléments p ne sont pas utilisés pour styler des niveaux de titres",
"help": "La graisse, le style et le corps du texte ne doivent pas être utilisés pour styler les éléments p comme des niveaux de titres"
},
"page-has-heading-one": {
"description": "Vérifier que la page, ou au moins une de ses iframes, contient un titre de niveau 1",
"help": "La page doit contenir un titre de niveau 1"
},
"presentation-role-conflict": {
"description": "Signaler les éléments dont le rôle est 'none' ou 'presentation' et qui déclenchent la résolution de conflits de rôles.",
"help": "Les éléments avec un rôle 'none' ou 'presentation' doivent être signalés"
},
"region": {
"description": "Vérifier que tout le contenu est localisé dans une région",
"help": "Le contenu doit être localisé dans une région"
},
"role-img-alt": {
"description": "Vérifier que les éléments avec [role='img'] ont une équivalence textuelle",
"help": "Les éléments avec [role='img'] ont une équivalence textuelle"
},
"scope-attr-valid": {
"description": "Vérifier que l’attribut scope est utilisé correctement dans les tableaux",
"help": "L’attribut scope doit être utilisé correctement"
},
"scrollable-region-focusable": {
"description": "Les éléments dont le contenu défile devraient être accessibles au clavier",
"help": "Vérifier que les régions défilantes sont accessibles au clavier"
},
"select-name": {
"description": "Vérifier que l’élément 'select' a un nom accessible",
"help": "L’élément 'select' doit avoir un nom accessible"
},
"server-side-image-map": {
"description": "Vérifier que les images réactives côté serveur ne sont pas utilisées",
"help": "Les images réactives côté serveur ne devraient pas être utilisées"
},
"skip-link": {
"description": "Vérifier que tous les liens d’évitement ont une cible pouvant recevoir le focus",
"help": "La cible d’un lien d’évitement doit exister et pouvoir recevoir le focus"
},
"svg-img-alt": {
"description": "Vérifier que les éléments svg avec un rôle 'img', 'graphics-document', ou 'graphics-symbol' ont un texte accessible",
"help": "Les éléments svg avec un rôle 'img' ont un texte alternatif"
},
"tabindex": {
"description": "Vérifier que les valeurs de l’attribut tabindex ne sont pas supérieures à 0",
"help": "Aucun élément ne devrait avoir un tabindex avec une valeur supérieure à zéro"
},
"table-duplicate-name": {
"description": "Vérifier que chaque tableau n’ait pas un summary et un caption identiques",
"help": "L’élément <caption> ne devrait pas contenir le même texte que l’attribut summary"
},
"table-fake-caption": {
"description": "Vérifier que les tableaux avec une légende utilisent l’élément <caption>",
"help": "Les données ou les cellules d’entête ne devraient pas être utilisées pour légender un tableau de données"
},
"td-has-header": {
"description": "Vérifier que chaque cellule de données non vide dans un tableau de données a une ou plusieurs cellules d’entête",
"help": "Chaque élément td non vide dans un tableau plus grand que 3 × 3 doit avoir une cellule d’entête associée"
},
"td-headers-attr": {
"description": "Vérifier que chaque cellule utilisant l’attribut headers fait référence à une autre cellule du même tableau",
"help": "Les cellules utilisant l’attribut headers ne doivent faire référence qu’à d’autres cellules du même tableau"
},
"th-has-data-cells": {
"description": "Vérifier que chaque cellule d’entête dans un tableau de données fait référence à des cellules de données",
"help": "Tous les éléments th et ceux avec role=columnheader/rowheader doivent décrire des cellules de données"
},
"valid-lang": {
"description": "Vérifier que les attributs lang ont des valeurs valides",
"help": "L’attribut lang doit avoir une valeur valide"
},
"video-caption": {
"description": "Vérifier que les éléments <video> ont des sous-titres",
"help": "Les éléments <video> doivent avoir des sous-titres"
}
},
"checks": {
"abstractrole": {
"pass": "Les rôles abstraits ne sont pas utilisés",
"fail": {
"singular": "Le rôle abstrait ne peut pas être utilisé directement : ${data.values}",
"plural": "Les rôles abstraits ne peuvent pas être utilisés directement : ${data.values}"
}
},
"aria-allowed-attr": {
"pass": "Les attributs ARIA sont utilisés correctement pour le rôle défini",
"fail": {
"singular": "L’attribut ARIA n’est pas autorisé : ${data.values}",
"plural": "Les attributs ARIA ne sont pas autorisés : ${data.values}"
}
},
"aria-allowed-role": {
"pass": "Le rôle ARIA est autorisé pour l’élément donné",
"fail": {
"singular": "Le rôle ARIA ${data.values} n’est pas autorisé pour l’élément donné",
"plural": "Les rôles ARIA ${data.values} ne sont pas autorisés pour l’élément donné"
},
"incomplete": {
"singular": "Le rôle ARIA ${data.values} doit être retiré lorsque l’élément est rendu visible, car il n’est pas autorisé pour cet élément",
"plural": "Les rôles ARIA ${data.values} doivent être retirés lorsque l’élément est rendu visible, car ils ne sont pas autorisés pour cet élément"
}
},
"aria-errormessage": {
"pass": "Utiliser une technique prise en charge pour aria-errormessage",
"fail": {
"singular": "La valeur d’aria-errormessage `${data.values}` doit recourir à une technique pour annoncer le message (aria-live, aria-describedby, role=alert, etc.)",
"plural": "Les valeurs aria-errormessage `${data.values}` doivent recourir à une technique pour annoncer le message (aria-live, aria-describedby, role=alert, etc.)"
},
"incomplete": {
"singular": "Vérifier que la valeur de l’attribut 'aria-errormessage' `${data.values}` se réfère à un élément existant",
"plural": "Vérifier que les valeurs de l’attribut 'aria-errormessage' `${data.values}` se réfèrent à des éléments existants",
"idrefs": "Impossible de déterminer si l’élément référencé par 'aria-errormessage' existe dans la page : ${data.values}"
}
},
"aria-hidden-body": {
"pass": "Aucun attribut aria-hidden n’est présent sur body",
"fail": "aria-hidden=true ne devrait pas être présent sur body"
},
"aria-level": {
"pass": "Les valeurs d’aria-level sont valides",
"incomplete": "Les valeurs d’aria-level supérieures à 6 ne sont pas supportées par toutes les combinaisons de navigateurs et de lecteurs d’écrans"
},
"aria-prohibited-attr": {
"pass": "L’attribut ARIA est autorisé",
"fail": "L’attribut ARIA ne peut pas être utilisé, ajoutez un attribut role ou utilisez un élément différent : ${data.values}",
"incomplete": "L’attribut ARIA n’est pas bien supporté sur l’élément et le contenu texte sera utilisé à la place : ${data.values}"
},
"aria-required-attr": {
"pass": "Tous les attributs ARIA requis sont présents",
"fail": {
"singular": "L’attribut ARIA requis est manquant : ${data.values}",
"plural": "Les attributs ARIA requis sont manquants : ${data.values}"
}
},
"aria-required-children": {
"pass": "Les descendants ARIA requis sont présents",
"fail": {
"singular": "Le descendant ARIA requis est manquant : ${data.values}",
"plural": "Les descendants ARIA requis sont manquants : ${data.values}"
},
"incomplete": {
"singular": "Le rôle du descendant ARIA attendu doit être ajouté : ${data.values}",
"plural": "Les rôles des descendants ARIA attendus doivent être ajoutés : ${data.values}"
}
},
"aria-required-parent": {
"pass": "Les rôles parents ARIA requis sont présents",
"fail": {
"singular": "Le rôle parent ARIA requis est manquant : ${data.values}",
"plural": "Les rôles parents ARIA requis sont manquants : ${data.values}"
}
},
"aria-roledescription": {
"pass": "aria-roledescription utilisé sur un élément sémantique supporté",
"incomplete": "Vérifier que la valeur d’aria-roledescription est annoncée par les lecteurs d’écran supportés",
"fail": "Attribuer à l’élément un rôle qui supporte aria-roledescription"
},
"aria-unsupported-attr": {
"pass": "L’attribut ARIA est supporté",
"fail": "L’attribut ARIA n’est pas suffisamment supporté par les lecteurs d’écran et autres technologies d’assistance : ${data.values}"
},
"aria-valid-attr-value": {
"pass": "Les valeurs d’attribut ARIA sont valides",
"fail": {
"singular": "La valeur d’attribut ARIA est invalide : ${data.values}",
"plural": "Les valeurs d’attribut ARIA sont invalides : ${data.values}"
},
"incomplete": {
"noId": "L’ID d’élément référencé par l’attribut ARIA n’existe pas dans la page : ${data.needsReview}",
"ariaCurrent": "La valeur de l’attribut ARIA est invalide et sera traitée comme \"aria-current=true\" : ${data.needsReview}",
"idrefs": "Impossible de vérifier si l’ID d’élément référencé par l’attribut ARIA existe dans la page : ${data.needsReview}"
}
},
"aria-valid-attr": {
"pass": {
"singular": "Les noms d’attributs ARIA sont valides",
"plural": "Le nom d’attribut ARIA est valide"
},
"fail": {
"singular": "Le nom d’attribut ARIA est invalide : ${data.values}",
"plural": "Les noms d’attributs ARIA sont invalides : ${data.values}"
}
},
"fallbackrole": {
"pass": "Une seule valeur de rôle utilisée",
"fail": "Utiliser une seule valeur de rôle, dans la mesure où les rôles de secours ne sont pas supportés par les navigateurs anciens",
"incomplete": "Utiliser seulement les rôles 'presentation' ou 'none' puisqu’ils sont synonymes."
},
"has-global-aria-attribute": {
"pass": {
"singular": "L’élément a un attribut ARIA global : ${data.values}",
"plural": "L’élément a des attributs ARIA globaux : ${data.values}"
},
"fail": "L’élément n’a pas d’attribut ARIA global"
},
"has-widget-role": {
"pass": "L’élément a un rôle widget.",
"fail": "L’élément n’a pas de rôle widget."
},
"invalidrole": {
"pass": "Le rôle ARIA est valide",
"fail": {
"singular": "Le rôle doit être un rôle ARIA valide : ${data.values}",
"plural": "Les rôles doivent être des rôles ARIA valides : ${data.values}"
}
},
"is-element-focusable": {
"pass": "L’élément est focalisable.",
"fail": "L’élément n’est pas focalisable."
},
"no-implicit-explicit-label": {
"pass": "Il n’y a pas de décalage entre le <label> et l’intitulé accessible",
"incomplete": "Vérifier que le <label> n’a pas à faire partie du nom du champ de formulaire ARIA ${data}"
},
"unsupportedrole": {
"pass": "Le rôle ARIA est supporté",
"fail": "Le rôle utilisé n’est pas suffisamment supporté par les technologies d’assistance"
},
"valid-scrollable-semantics": {
"pass": "L’élément a une sémantique valide pour un élément dans l’ordre de tabulation.",
"fail": "L’élément n’a pas une sémantique valide pour un élément dans l’ordre de tabulation."
},
"color-contrast": {
"pass": "L’élément a un contraste de couleurs suffisant de ${data.contrastRatio}",
"fail": {
"default": "L’élément a un contraste de couleurs insuffisant de ${data.contrastRatio} (couleur d’avant plan : ${data.fgColor}, couleur d’arrière plan : ${data.bgColor}, taille de police : ${data.fontSize}, graisse : ${data.fontWeight}). Contraste de couleur attendu : ${data.expectedContrastRatio}",
"fgOnShadowColor": "L’élément a un contraste de couleurs insuffisant de ${data.contrastRatio} entre l’avant plan et la couleur de l’ombre de texte (couleur d’avant plan : ${data.fgColor}, couleur de l’ombre de texte : ${data.shadowColor}, taille de police : ${data.fontSize}, graisse: ${data.fontWeight}). Contraste de couleurs attendu : ${data.expectedContrastRatio}",
"shadowOnBgColor": "L’élément a un contraste de couleurs insuffisant de ${data.contrastRatio} entre la couleur de l’ombre de texte et l’arrière plan (couleur de l’ombre de texte : ${data.shadowColor}, couleur d’arrière plan : ${data.bgColor}, taille de police : ${data.fontSize}, graisse: ${data.fontWeight}). Contraste de couleurs attendu : ${data.expectedContrastRatio}"
},
"incomplete": {
"default": "Impossible de déterminer le rapport de contraste",
"bgImage": "La couleur d’arrière-plan de l’élément n’a pu être déterminée à cause d’une image d’arrière-plan",
"bgGradient": "La couleur d’arrière-plan de l’élément n’a pu être déterminée à cause d’un dégradé d’arrière-plan",
"imgNode": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car l’élément contient une balise image",
"bgOverlap": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car un autre élément le chevauche",
"fgAlpha": "La couleur du texte de l’élément n’a pu être déterminée à cause d’une opacité réduite",
"elmPartiallyObscured": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car l’élément est partiellement masqué par un autre élément",
"elmPartiallyObscuring": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car il chevauche partiellement un autre élément",
"outsideViewport": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car il est à l’extérieur du viewport",
"equalRatio": "L’élément a un rapport de contraste de 1:1 avec son arrière-plan",
"shortTextContent": "Le contenu de l’élément est trop court pour déterminer s’il s’agit réellement d’un contenu textuel",
"nonBmp": "Le contenu de l’élément contient seulement des caractères non textuels",
"pseudoContent": "La couleur d’arrière plan de l’élément n’a pu être déterminée à cause d’un pseudo-élément"
}
},
"color-contrast-enhanced": {
"pass": "L’élément a un contraste de couleurs suffisant de ${data.contrastRatio}",
"fail": {
"default": "L’élément a un contraste de couleurs insuffisant de ${data.contrastRatio} (couleur d’avant plan : ${data.fgColor}, couleur d’arrière plan : ${data.bgColor}, taille de police : ${data.fontSize}, graisse : ${data.fontWeight}). Contraste de couleur attendu : ${data.expectedContrastRatio}",
"fgOnShadowColor": "L’élément a un contraste de couleurs insuffisant de ${data.contrastRatio} entre l’avant plan et la couleur de l’ombre de texte (couleur d’avant plan : ${data.fgColor}, couleur de l’ombre de texte : ${data.shadowColor}, taille de police : ${data.fontSize}, graisse: ${data.fontWeight}). Contraste de couleurs attendu : ${data.expectedContrastRatio}",
"shadowOnBgColor": "L’élément a un contraste de couleurs insuffisant de ${data.contrastRatio} entre la couleur de l’ombre de texte et l’arrière plan (couleur de l’ombre de texte : ${data.shadowColor}, couleur d’arrière plan : ${data.bgColor}, taille de police : ${data.fontSize}, graisse: ${data.fontWeight}). Contraste de couleurs attendu : ${data.expectedContrastRatio}"
},
"incomplete": {
"default": "Impossible de déterminer le rapport de contraste",
"bgImage": "La couleur d’arrière-plan de l’élément n’a pu être déterminée à cause d’une image d’arrière-plan",
"bgGradient": "La couleur d’arrière-plan de l’élément n’a pu être déterminée à cause d’un dégradé d’arrière-plan",
"imgNode": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car l’élément contient une balise image",
"bgOverlap": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car un autre élément le chevauche",
"fgAlpha": "La couleur du texte de l’élément n’a pu être déterminée à cause d’une opacité réduite",
"elmPartiallyObscured": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car l’élément est partiellement masqué par un autre élément",
"elmPartiallyObscuring": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car il chevauche partiellement un autre élément",
"outsideViewport": "La couleur d’arrière-plan de l’élément n’a pu être déterminée, car il est à l’extérieur du viewport",
"equalRatio": "L’élément a un rapport de contraste de 1:1 avec son arrière-plan",
"shortTextContent": "Le contenu de l’élément est trop court pour déterminer s’il s’agit réellement d’un contenu textuel",
"nonBmp": "Le contenu de l’élément contient seulement des caractères non textuels",
"pseudoContent": "La couleur d’arrière plan de l’élément n’a pu être déterminée à cause d’un pseudo-élément"
}
},
"link-in-text-block": {
"pass": "Les liens peuvent être distingués du texte environnant par un autre moyen que la couleur",
"fail": "Les liens doivent se distinguer du texte environnant par un autre moyen que la couleur",
"incomplete": {
"default": "Impossible de déterminer le rapport de contraste",
"bgContrast": "Le rapport de contraste de l’élément n’a pu être déterminé. Recherchez un style différent pour le hover/focus.",
"bgImage": "Le rapport de contraste de l’élément n’a pu être déterminé à cause d’une image d’arrière-plan",
"bgGradient": "Le rapport de contraste de l’élément n’a pu être déterminé à cause d’un dégradé d’arrière-plan",
"imgNode": "Le rapport de contraste de l’élément n’a pu être déterminé, car l’élément contient une balise image",
"bgOverlap": "Le rapport de contraste de l’élément n’a pu être déterminé à cause d’un chevauchement"
}
},
"autocomplete-appropriate": {
"pass": "La valeur autocomplete est sur un élément approprié",
"fail": "La valeur autocomplete est inappropriée sur ce type de champ de formulaire"
},
"autocomplete-valid": {
"pass": "L’attribut autocomplete est formaté correctement",
"fail": "L’attribut autocomplete n’est pas formaté correctement"
},
"accesskeys": {
"pass": "La valeur de l’attribut accesskey est unique",
"fail": "Plusieurs éléments ont le même accesskey au sein du document"
},
"focusable-content": {
"pass": "L’élément contient des éléments focalisables",
"fail": "L’élément devrait avoir du contenu focalisable"
},
"focusable-disabled": {
"pass": "Aucun élément focalisable contenu dans l’élément",
"fail": "Le contenu focalisable devrait être désactivé ou retiré du DOM"
},
"focusable-element": {
"pass": "L’élément est focalisable",
"fail": "L’élément devrait être focalisable"
},
"focusable-modal-open": {
"pass": "Pas d’élément focalisable quand une modale est ouverte",
"incomplete": "Vérifiez que les éléments focalisables ne sont pas atteignables via la tabulation dans l’état actuel"
},
"focusable-no-name": {
"pass": "L’élément n’est pas dans l’ordre de tabulation ou a un intitulé accessible",
"fail": "L’élément est dans l’ordre de tabulation et n’a pas d’intitulé accessible",
"incomplete": "Impossible de déterminer si l’élément a un nom accessible"
},
"focusable-not-tabbable": {
"pass": "Aucun élément focalisable contenu dans l’élément",
"fail": "Le contenu focalisable devrait se voir assigné un tabindex='-1' ou être retiré du DOM"
},
"frame-focusable-content": {
"pass": "L’élément n’a pas de descendants focalisables",
"fail": "L’élément a des descendants focalisables",
"incomplete": "Impossible de déterminer si l’élément a des descendants"
},
"landmark-is-top-level": {
"pass": "La région ${data.role} est au niveau le plus haut.",
"fail": "La région ${data.role} est contenue dans une autre région."
},
"no-focusable-content": {
"pass": "L’élément n’a pas de descendants focalisables",
"fail": "L’élément a des descendants focalisables",
"incomplete": "Impossible de déterminer si l’élément a des descendants"
},
"page-has-heading-one": {
"pass": "La page a au moins un titre de niveau un",
"fail": "La page doit avoir un titre de niveau un"
},
"page-has-main": {
"pass": "La page a au moins une région main",
"fail": "La page doit avoir une région main"
},
"page-no-duplicate-banner": {
"pass": "Le document n’a pas plus d’une région banner",
"fail": "Le document a plus d’une région banner"
},
"page-no-duplicate-contentinfo": {
"pass": "Le document n’a pas plus d’une région contentinfo",
"fail": "Le document a plus d’une région contentinfo"
},
"page-no-duplicate-main": {
"pass": "Le document n’a pas plus d’une région main",
"fail": "Le document a plus d’une région banner"
},
"tabindex": {
"pass": "L’élément n’a pas de tabindex supérieur à 0",
"fail": "L’élément a un tabindex supérieur à 0"
},
"alt-space-value": {
"pass": "L’élément a une valeur d’attribut alt valide",
"fail": "L’élément a un attribut alt qui contient un caractère d’espacement qui n’est pas ignoré par les lecteurs d’écran"
},
"duplicate-img-label": {
"pass": "L’élément ne duplique pas un texte existant dans l’alternative textuelle de l’élément <img>",
"fail": "L’élément contient un élément <img> dont l’alternative textuelle duplique un texte existant"
},
"explicit-label": {
"pass": "L’élément de formulaire a un <label> explicite",
"fail": "L’élément de formulaire n’a pas de <label> explicite",
"incomplete": "Impossible de déterminer si l’élément de formulaire a un <label> explicite"
},
"help-same-as-label": {
"pass": "L’aide à la saisie (title ou aria-describedby) ne duplique pas le contenu du label",
"fail": "L’aide à la saisie (title ou aria-describedby) est identique au contenu du label"
},
"hidden-explicit-label": {
"pass": "L’élément de formulaire a un <label> visible et explicite",
"fail": "L’élément de formulaire a un <label> explicite qui est masqué",
"incomplete": "Impossible de déterminer si l’élément de formulaire a un <label> explicite qui est masqué"
},
"implicit-label": {
"pass": "L’élément de formulaire a un <label> implicite (imbriqué)",
"fail": "L’élément de formulaire n’a pas de <label> implicite (imbriqué)",
"incomplete": "Impossible de déterminer si l’élément de formulaire a un <label> implicite (imbriqué)"
},
"label-content-name-mismatch": {
"pass": "L’élément contient du texte visible qui n’est pas inclus dans l’intitulé accessible",
"fail": "Le texte contenu dans l’élément n’est pas inclus dans l’intitulé accessible"
},
"multiple-label": {
"pass": "L’élément de formulaire n’a pas plusieurs éléments <label>",
"incomplete": "Des éléments associés à plusieurs étiquettes ne sont pas suffisamment supportés par les technologies d’assistance. Vérifier que la première étiquette contient toute l’information nécessaire."
},
"title-only": {
"pass": "L’élément de formulaire n’a pas uniquement l’attribut title comme étiquette",
"fail": "Seul l’attribut title est utilisé comme étiquette pour l’élément de formulaire"
},
"landmark-is-unique": {
"pass": "Les landmarks doivent comporter un rôle unique, ou une étiquette accessible par la combinaison de role/label/title",
"fail": "L’attribut landmark doit comporter une valeur d’attribut aria-label, aria-labelledby, ou title unique pour rendre le landmark distinct"
},
"has-lang": {
"pass": "L’élément <html> a un attribut lang",
"fail": {
"noXHTML": "L’attribut xml:lang n’est pas valide sur les pages HTML, utiliser l’attribut lang.",
"noLang": "L’élément <html> n’a pas d’attribut lang"
}
},
"valid-lang": {
"pass": "La valeur de l’attribut lang fait partie des codes de langues valides",
"fail": "La valeur de l’attribut lang ne fait pas partie des codes de langues valides"
},
"xml-lang-mismatch": {
"pass": "Les attributs lang et xml:lang indiquent la même langue de base",
"fail": "Les attributs lang et xml:lang indiquent des langues de base différentes"
},
"dlitem": {
"pass": "L’item de liste de description a un élément <dl> parent",
"fail": "L’item de liste de description n’a pas d’élément <dl> parent"
},
"listitem": {
"pass": "L’item de liste a un élément <ul>, <ol> ou role=\"list\" parent",
"fail": {
"default": "L’item de liste n’a pas d’élément <ul> ou <ol> parent",
"roleNotValid": "L’item de liste n’a pas d’élément <ul> ou <ol> parent sans un role ou un role=\"list\""
}
},
"only-dlitems": {
"pass": "L’élément de liste n’a que des descendants directs qui sont autorisés dans les éléments <dt> ou <dd>",
"fail": "L’élément de liste a des descendants directs qui ne sont pas autorisés dans les éléments <dt> ou <dd>"
},
"only-listitems": {
"pass": "L’élément de liste n’a que des descendants directs qui sont autorisés dans les éléments <li>",
"fail": {
"default": "L’élément de liste comporte des descendants directs qui ne sont pas autorisés à l’intérieur de l’élément <li>",
"roleNotValid": "L’élément de liste comporte des descendants directs avec un rôle qui n’est pas autorisé : ${data.roles}"
}
},
"structured-dlitems": {
"pass": "S’il n’est pas vide, l’élément contient au moins un élément <dt> et un élément <dd>",
"fail": "S’il n’est pas vide, l’élément doit contenir au moins un élément <dt> et un élément <dd>"
},
"caption": {
"pass": "L’élément multimédia a une piste de sous-titres",
"incomplete": "Aucune piste de sous-titres n’a pu être trouvée pour cet élément"
},
"frame-tested": {
"pass": "L’iframe a été testée avec axe-core",
"fail": "L’iframe n’a pu être testée avec axe-core",
"incomplete": "L’iframe doit encore être testée avec axe-core"
},
"no-autoplay-audio": {
"pass": "<video> ou <audio> ne produit pas de son pour une durée plus grande que celle permise ou a un mécanisme de contrôle",
"fail": "<video> ou <audio> produisent du son pour une durée plus grande que celle permise et n’ont pas de mécanisme de contrôle",
"incomplete": "Verifier que l’élément <video> ou <audio> ne produit pas de son pour une durée plus grande que celle permise ou a un mécanisme de contrôle"
},
"css-orientation-lock": {
"pass": "L’utilisation de l’écran est indépendante de l’orientation et n’est pas limitée à un mode d’affichage donné",
"fail": "L’utilisation de l’écran est limitée à une orientation donnée par CSS, rendant l’affichage inutilisable",
"incomplete": "Le verrouillage de l’orientation d’affichage par CSS ne peut être déterminé"
},
"meta-viewport-large": {
"pass": "La balise <meta> ne limite pas l’agrandissement sur les appareils mobiles",
"fail": "La balise <meta> limite l’agrandissement sur les appareils mobiles"
},
"meta-viewport": {
"pass": "La balise <meta> n’empêche pas l’agrandissement sur les appareils mobiles",
"fail": "La balise <meta> empêche l’agrandissement sur les appareils mobiles"
},
"header-present": {
"pass": "La page a un entête",
"fail": "La page n’a pas d’entête"
},
"heading-order": {
"pass": "Hiérarchie entre les titres valide",
"fail": "Hiérarchie entre les titres invalide",
"incomplete": "Impossible de déterminer le titre précédent"
},
"identical-links-same-purpose": {
"pass": "Il n’y a pas d’autre lien avec le même nom qui a pour destination une URL différente",
"incomplete": "Vérifier que les liens ont la même finalité ou sont volontairement ambigus."
},
"internal-link-present": {
"pass": "Lien d’évitement valide trouvé",
"fail": "Aucun lien d’évitement valide trouvé"
},
"landmark": {
"pass": "La page a une région",
"fail": "La page n’a pas de région"
},
"meta-refresh": {
"pass": "Aucune balise <meta> ne rafraîchit immédiatement la page",
"fail": "La balise <meta> force le rafraîchissement minuté de la page"
},
"p-as-heading": {
"pass": "Les éléments <p> ne sont pas stylés comme des titres",
"fail": "Des titres doivent être utilisés au lieu de styler des éléments <p>"
},
"region": {
"pass": "Contenu imbriqué dans une région ARIA",
"fail": "Contenu non imbriqué dans une région ARIA"
},
"skip-link": {
"pass": "La cible du lien d’évitement existe",
"incomplete": "La cible du lien d’évitement devrait devenir visible lors de l’activation",
"fail": "Lien d’évitement sans cible"
},
"unique-frame-title": {
"pass": "L’attribut title de l’élément est unique",
"fail": "L’attribut title de l’élément n’est pas unique"
},
"duplicate-id-active": {
"pass": "Le document ne comporte aucun élément actif partageant la même valeur d’attribut id",
"fail": "Le document comporte ou un plusieurs éléments actifs partageant la même valeur d’attribut id : ${data}"
},
"duplicate-id-aria": {
"pass": "Le document ne comporte aucun élément référencé par ARIA ou étiquettes partageant la même valeur d’attribut id",
"fail": "Le document comporte un ou plusieurs éléments référencés par ARIA partageant la même valeur d’attribut id : ${data}"
},
"duplicate-id": {
"pass": "Le document n’a pas d’éléments qui partagent le même attribut id",
"fail": "Le document a plusieurs éléments avec le même attribut id : ${data}"
},
"aria-label": {
"pass": "L’attribut aria-label existe et n’est pas vide",
"fail": "L’attribut aria-label n’existe pas ou est vide"
},
"aria-labelledby": {
"pass": "L’attribut aria-labelledby existe et fait référence à des éléments visibles par les lecteurs d’écran",
"fail": "L’attribut aria-labelledby n’existe pas, fait référence à des éléments qui n’existent pas ou à des éléments vides ou non visibles",
"incomplete": "S’assurer que l’attribut aria-labelledby fait référence à un élément existant"
},
"avoid-inline-spacing": {
"pass": "Aucun style inline affectant l’espacement du texte avec '!important' n’a été spécifié",
"fail": {
"singular": "Retirer '!important' du style inline ${data.values}, car le remplacement n’est pas pris en charge par la plupart des navigateurs",
"plural": "Retirer '!important' des styles inline ${data.values}, car le remplacement n’est pas pris en charge par la plupart des navigateurs"
}
},
"button-has-visible-text": {
"pass": "L’élément a un contenu textuel visible par les lecteurs d’écran",
"fail": "L’élément n’a aucun contenu textuel visible par les lecteurs d’écran",
"incomplete": "Impossible de vérifier si l’élément a des enfants"
},
"doc-has-title": {
"pass": "Le document a un élément <title> non vide",
"fail": "Le document n’a pas d’élément <title> non vide"
},
"exists": {
"pass": "L’élément n’existe pas",
"incomplete": "L’élément existe"
},
"has-alt": {
"pass": "L’élément a un attribut alt",
"fail": "L’élément n’a pas d’attribut alt"
},
"has-visible-text": {
"pass": "L’élément a un contenu textuel visible par les lecteurs d’écran",
"fail": "L’élément n’a aucun contenu textuel visible par les lecteurs d’écran",
"incomplete": "Impossible de vérifier si l’élément a des enfants"
},
"is-on-screen": {
"pass": "L’élément n’est pas visible",
"fail": "L’élément est visible"
},
"non-empty-alt": {
"pass": "L’élément a un attribut alt non vide",
"fail": {
"noAttr": "L’élément n’a pas d’attribut alt",
"emptyAttr": "L’élément a un attribut alt vide"
}
},
"non-empty-if-present": {
"pass": {
"default": "L’élément n’a pas d’attribut value",
"has-label": "L’élément a un attribut value non-vide"
},
"fail": "L’élément a un attribut value, et cet attribut est vide"
},
"non-empty-placeholder": {
"pass": "L’élément a un attribut placeholder",
"fail": {
"noAttr": "L’élément n’a pas d’attribut placeholder",
"emptyAttr": "L’élément a un attribut placeholder vide"
}
},
"non-empty-title": {
"pass": "L’élément a un attribut title",
"fail": {
"noAttr": "L’élément n’a pas d’attribut title",
"emptyAttr": "L’élément a un attribut title vide"
}
},
"non-empty-value": {
"pass": "L’élément a un attribut value non vide",
"fail": {
"noAttr": "L’élément n’a pas d’attribut value",
"emptyAttr": "L’élément a un attribut value vide"
}
},
"presentational-role": {
"pass": "La sémantique par défaut de l’élément a été remplacée par role=\"${data.role}\"",
"fail": {
"default": "La sémantique par défaut de l’élément n’a pas été remplacée par role=\"none\" ou role=\"presentation\"",
"globalAria": "Le rôle de l’élément n’est pas un rôle de présentation car il a un attribut ARIA global",
"focusable": "Le rôle de l’élément n’est pas un rôle de présentation car il est focalisable",
"both": "Le rôle de l’élément n’est pas un rôle de présentation car il a un attribut ARIA global et est focalisable"
}
},
"role-none": {
"pass": "La sémantique par défaut de l’élément est annulée avec role=\"none\"",
"fail": "La sémantique par défaut de l’élément n’est pas annulée avec role=\"none\""
},
"role-presentation": {
"pass": "La sémantique par défaut de l’élément est annulée avec role=\"presentation\"",
"fail": "La sémantique par défaut de l’élément n’est pas annulée avec role=\"presentation\""
},
"svg-non-empty-title": {
"pass": "L’élément a un enfant qui est un titre",
"fail": {
"noTitle": "L’élément n’a pas d’enfant qui est un titre",
"emptyTitle": "Le titre qui est enfant de cet élément est vide"
},
"incomplete": "Impossible de déterminer si l’élément a un enfant qui est un titre"
},
"caption-faked": {
"pass": "La première ligne d’un tableau n’est pas utilisée en guise de légende",
"fail": "La première ligne d’un tableau devrait être un caption et non des cellules de tableau"
},
"html5-scope": {
"pass": "L’attribut scope est utilisé uniquement sur des cellules d’entête de tableau",
"fail": "En HTML 5, l’attribut scope ne peut être utilisé que sur des cellules d’entête de tableau"
},
"same-caption-summary": {
"pass": "Les contenus de l’attribut summary et de <caption> ne sont pas identiques",
"fail": "Les contenus de l’attribut summary et de <caption> sont identiques"
},
"scope-value": {
"pass": "L’attribut scope est utilisé correctement",
"fail": "La valeur de l’attribut scope ne peut être que 'row' ou 'col'"
},
"td-has-header": {
"pass": "Toutes les cellules de données non vides ont un entête de tableau",
"fail": "Certaines cellules de données non vides n’ont pas d’entête de tableau"
},
"td-headers-attr": {
"pass": "L’attribut headers est utilisé exclusivement pour faire référence à d’autres cellules dans le tableau",
"incomplete": "L’attribut headers est vide",
"fail": "L’attribut headers n’est pas utilisé exclusivement pour faire référence à d’autres cellules dans le tableau"
},
"th-has-data-cells": {
"pass": "Toutes les cellules d’entête de tableau font référence à des cellules de données",
"fail": "Toutes les cellules d’entête de tableau ne font pas référence à des cellules de données",
"incomplete": "Les cellules de données sont absentes ou vides"
},
"hidden-content": {
"pass": "Tout le contenu de la page a été analysé.",
"fail": "Il y a eu des problèmes pour analyser le contenu de cette page.",
"incomplete": "Il y a du contenu caché sur la page qui n’a pas été analysé. Vous allez devoir modifier l’affichage de ce contenu afin de l’analyser."
}
},
"failureSummaries": {
"any": {
"failureMessage": "Corriger l’un des éléments suivants : {{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
},
"none": {
"failureMessage": "Corriger tous les éléments suivants : {{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
}
},
"incompleteFallbackMessage": "axe n’a pu en déterminer la raison. Il est temps de sortir l’inspecteur d’éléments !"
}