-
Notifications
You must be signed in to change notification settings - Fork 91
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ETQ usager, je veux que les erreurs et les descriptions soient reliées aux champs concernés #10991
Conversation
22c10be
to
128efd0
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #10991 +/- ##
==========================================
- Coverage 84.48% 84.47% -0.02%
==========================================
Files 1187 1187
Lines 26265 26267 +2
Branches 4948 4953 +5
==========================================
- Hits 22189 22188 -1
- Misses 4076 4079 +3 ☔ View full report in Codecov by Sentry. |
89d2369
to
1ac6d95
Compare
0f6cd63
to
6f21ffc
Compare
je propose d'ajouter une méthode dans def describedby
"#{@champ.describedby_id} #{@champ.error_id}"
end |
6f21ffc
to
458f4dd
Compare
fc5bfa8
to
8090ef3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
déjà, super cette grosse avancée pour le form usager !
quelques petites remarques, je ne sais pas lesquelles sont vraiment adressables
Aussi on avait fait un markup du champ "case à cocher", qui affichait correctement le cas champ obligatoire + texte sur plusieurs lignes car c'est un cas fréquent. Ici l'astérisque passe à la ligne :
@@ -1,6 +1,6 @@ | |||
.fr-checkbox-group | |||
= @form.check_box :value, | |||
{ required: @champ.required?, id: @champ.input_id, checked: @champ.true?, aria: { describedby: @champ.describedby_id }, class: class_names('required' => @champ.required?)}, | |||
{ required: @champ.required?, id: @champ.input_id, checked: @champ.true?, aria: { describedby: "#{@champ.describedby_id} #{@champ.error_id}" }, class: class_names('required' => @champ.required?)}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
c'est pas génant d'avoir des éléments référencés dans aria-describedby
qui ne sont pas dans le DOM ? Je veux dire que s'il n'y a pas d'erreur, il n'y a pas cet élément, mais on le liste ici.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alors je crois que c'est bon, tu confirmes @inseo ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alors, le problème s'applique surtout aux champs qui n'ont pas de description, car sauf erreur de ma part, le bloc d'erreur est présent mais simplement vide lorsqu'il n'y a pas d'erreur.
Les tests que j'avais fait semblait dire que ça ne pose pas de problème.
Je vais encore juste faire une repasse de vérification avec TalkBack et NVDA pour être sûre.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Je confirme. 👍
J'ai vérifié avec les différentes technologies d'assistance et ça passe bien :
Quand il y a une description (blabla), mais pas d'erreur
nvda_description-sans-erreur.mp4
Quand il y a une erreur (RNF doit être rempli), mais pas de description
nvda_erreur-sans-description.mp4
app/components/editable_champ/repetition_component/repetition_component.html.haml
Show resolved
Hide resolved
app/components/editable_champ/champ_label_component/champ_label_component.html.haml
Show resolved
Hide resolved
app/components/editable_champ/checkbox_component/checkbox_component.html.haml
Outdated
Show resolved
Hide resolved
d961a88
to
c77dfe5
Compare
most of the time, the input is already described by a label. So we had a label pointing to an input pointing to a label : an infinite loop. Moreover, we already use a label tag for user without assistive tech so we remove labelledby.
c77dfe5
to
f329833
Compare
@colinux : Merci pour la remarque sur le passage à la ligne de l'astérisque en cas de texte multiligne. J'étais passée à côté... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
super et merci pour les précieux tests !
Déplace les descriptions contribuées à l'extérieur des étiquettes
Après
Avant
Précise le contexte du bouton de suppression d'une pièce jointe
Après
Avant
Uniformise le rendu des descriptions utilisant des balises HTML
Après
Avant
Applique les recommandations du DSFR concernant la liaison des messages d'erreur aux champs et aux regroupements
En cas de regroupement (balise
fieldset
)label
), la description (si elle existe) et l'erreur (si elle est présente) sont liés aufieldset
via l'attributaria-labelledby
.En cas de champ simple (
input
,select
,textarea
)label
) est lié au champ via le couple d'attributfor
/id
.aria-describedby