Development #54642
avoir une indication permettant de déterminer l'appartenance d'un bouton radio à un groupe
0%
Description
De l'audit RGAA GLC #54392:
Les champs de même nature (Monsieur, Madame) doivent :
- Etre regroupés dans une balise fieldset + balise legend OU
- être regroupés dans un même élément possédant la propriété role="group" OU
- posséder une indication permettant de déterminer l'appartenance du champ au groupement de champ (title) OU
- posséder un contenu de propriété WAI-ARIA (aria-label, aria-labelledby, aria- describedby) pertinent.
Fichiers
Demandes liées
Révisions associées
templates: add support for custom widget template (#54642)
a11y: add custom rendering for radio inputs (#54642)
Revert "a11y: add custom rendering for radio inputs (#54642)"
This reverts commit 6b941855c8a7f2c2e0fb8d60f9a6c288019b48bb.
a11y: add custom rendering for radio inputs (#54642)
Historique
Mis à jour par Frédéric Péters il y a presque 3 ans
Ticket à plutôt déplacer vers authentic pour son rendu de son champ "civilité" ?
Mis à jour par Thomas Jund (congés, retour le 29/04) il y a presque 3 ans
(Ou comment retomber sur la problématique de pouvoir faire des "groupes de champs")
Mis à jour par Serghei Mihai il y a presque 3 ans
Je me dis qu'on pourrait appliquer cela aussi aux champs dans wcs.
Partir sur la suggestion donnée dans https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-labelledby_attribute#example_3_radio_groups
Mis à jour par Frédéric Péters il y a presque 3 ans
(Ou comment retomber sur la problématique de pouvoir faire des "groupes de champs")
Ça parle ici d'un champ "civilité" unique.
Je me dis qu'on pourrait appliquer cela aussi aux champs dans wcs.
Sur le cas donné w.c.s. applique déjà role="radiogroup" et donne un aria-labelledby.
Mis à jour par Serghei Mihai il y a presque 3 ans
- Projet changé de Intégrations graphiques Publik à Authentic 2
Frédéric Péters a écrit :
Sur le cas donné w.c.s. applique déjà role="radiogroup" et donne un aria-labelledby.
J'avais pas les yeux devant les trous, où l'inverse.
Mis à jour par Serghei Mihai il y a presque 3 ans
- Fichier 0001-widgets-add-custom-widget-for-title-attribute-kind-5.patch 0001-widgets-add-custom-widget-for-title-attribute-kind-5.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Assigné à mis à Serghei Mihai
- Patch proposed changé de Non à Oui
Template custom pour les attributs de type "title".
Mis à jour par Serghei Mihai il y a presque 3 ans
- Sujet changé de accessibilité: avoir une indication permettant de déterminer l'appartenance d'un bouton radio à un groupe à avoir une indication permettant de déterminer l'appartenance d'un bouton radio à un groupe pour les champs de type "title"
Mis à jour par Frédéric Péters il y a presque 3 ans
Pourquoi ne pas traiter tous les champs forms.RadioSelect ? Et comme je vois que ça passe par |with_template, ça pourrait avoir lieu dans gadjo. (?)
Mis à jour par Serghei Mihai il y a presque 3 ans
- Projet changé de Authentic 2 à Gadjo
- Statut changé de Solution proposée à En cours
En effet c'est plus pertinent de le faire dans gadjo.
Mis à jour par Serghei Mihai il y a presque 3 ans
- Sujet changé de avoir une indication permettant de déterminer l'appartenance d'un bouton radio à un groupe pour les champs de type "title" à avoir une indication permettant de déterminer l'appartenance d'un bouton radio à un groupe
Mis à jour par Serghei Mihai il y a presque 3 ans
Avec une simple re-déclaration du fichier radio.html
dans Gadjo cela ne marchera pas car au niveau de Hobo le premier loaders est django.template.loaders.filesystem.Loader
qui cherche dans les répértoires de Django et trouve le fichier django/forms/widgets/radio.html
.
Mis à jour par Serghei Mihai il y a presque 3 ans
Même en changeant l'ordre dans Hobo cela ne fonctionnera pas: https://docs.djangoproject.com/en/2.2/ref/forms/renderers/#djangotemplates
Mis à jour par Serghei Mihai il y a presque 3 ans
Sauf à utiliser un renderer différent: https://docs.djangoproject.com/en/2.2/ref/forms/renderers/#django.forms.renderers.TemplatesSetting
Cela implique la modification des settings.py dans toutes les applications:
- ajouter
django.forms
dansINSTALLED_APPS
, aprèsgadjo
- rajouter
FORM_RENDERER = 'django.forms.renderers.TemplatesSetting'
Mis à jour par Serghei Mihai il y a presque 3 ans
- Lié à Development #54675: mise à jour des settings pour permettre à gadjo de surcharger les templates des widgets Django ajouté
Mis à jour par Serghei Mihai il y a presque 3 ans
- Fichier 0001-templates-customize-django-s-radio-button-template-5.patch 0001-templates-customize-django-s-radio-button-template-5.patch ajouté
- Statut changé de En cours à Solution proposée
Mis à jour par Serghei Mihai il y a presque 3 ans
- Statut changé de Solution proposée à En cours
Discussion de vive voix avec Thomas.
Il est dommage de pointer le premier input avec aria-labelledby="{{ id }}_0"
au lieu de cibler le titre du champ.
A voir si on ne peut pas faire quelque chose au niveau de Gadjo pour passer les attributs du champ dans le contexte du widget, genre le "id" du div.
Mis à jour par Serghei Mihai il y a presque 3 ans
- Lié à Development #55297: templates: attribuer un identifiant au bloc contenant le libellé du champ de formulaire ajouté
Mis à jour par Serghei Mihai il y a presque 3 ans
- Fichier 0001-templates-customize-django-s-radio-button-template-5.patch 0001-templates-customize-django-s-radio-button-template-5.patch ajouté
- Statut changé de En cours à Solution proposée
Nouvelle proposition avec l'identifiant du bloc contenant le libellé (patch proposé dans #55297) dans aria-labelledby
.
Mis à jour par Thomas Jund (congés, retour le 29/04) il y a plus de 2 ans
Ok sur le principe de pointer le label du group vers la `div.title` qui contient le label principal et les information de champ optionnel ou obligatoire (ce qui diffère légement de la façon dont WCS gère cela).
Si l'horizon est d'harmoniser avec les champs WCS (#55988) alors je ne sais pas si besoin d'une `ul li` non présent dans les radiosgroup WCS. Autant avoir le même markup et faire évoluer les 2 de manière synchrone ?
Mis à jour par Serghei Mihai il y a plus de 2 ans
- Fichier 0002-a11y-define-role-for-django-s-radio-buttons-54642.patch 0002-a11y-define-role-for-django-s-radio-buttons-54642.patch ajouté
- Fichier 0001-a11y-add-aria-labelledby-for-widgets-54642.patch 0001-a11y-add-aria-labelledby-for-widgets-54642.patch ajouté
Thomas Jund a écrit :
Si l'horizon est d'harmoniser avec les champs WCS (#55988) alors je ne sais pas si besoin d'une `ul li` non présent dans les radiosgroup WCS. Autant avoir le même markup et faire évoluer les 2 de manière synchrone ?
C'est un peu touchy car dans wcs l'attributs role
est déclaré au niveau du widget utilisé pour le rendu de tous les boutons radio. Dans les autres apps on utilise RadioSelect
de django qui n'a pas d'attribut pouvant être utilisé pour détécter le rôle.
Pour aller dans le sens de l'harmonisation l'attribut aria-labelledy
peut déjà être placé au niveau du div.content
pour tous les widgets.
Ensuite je garde le ul
avec son @role=radiogroup".
Mis à jour par Thomas Jund (congés, retour le 29/04) il y a plus de 2 ans
Il me semble que le `role="radiogroup"` et l'attribut `aria-labelledby` doivent être sur le même élément
Mis à jour par Serghei Mihai il y a plus de 2 ans
- Fichier 0003-a11y-define-role-attribute-for-radio-inputs-54642.patch 0003-a11y-define-role-attribute-for-radio-inputs-54642.patch ajouté
- Fichier 0002-templates-add-support-for-custom-widget-template-546.patch 0002-templates-add-support-for-custom-widget-template-546.patch ajouté
- Fichier 0001-a11y-add-aria-labelledby-for-widgets-54642.patch 0001-a11y-add-aria-labelledby-for-widgets-54642.patch ajouté
Right.
Je propose d'ajouter la possibilité de définition des templates pour chaque type de widget.
Ensuite pour les boutons radio
ajouter le role
au niveau du div.content
.
Il reste qu'il faut virer les ul
du rendu par défaut de Django, mais déjà je joints des patchs pour valider le principe.
Mis à jour par Serghei Mihai il y a plus de 2 ans
- Fichier 0001-a11y-add-aria-labelledby-for-widgets-54642.patch 0001-a11y-add-aria-labelledby-for-widgets-54642.patch ajouté
- Fichier 0002-templates-add-support-for-custom-widget-template-546.patch 0002-templates-add-support-for-custom-widget-template-546.patch ajouté
- Fichier 0003-a11y-add-custom-rendering-for-radio-inputs-54642.patch 0003-a11y-add-custom-rendering-for-radio-inputs-54642.patch ajouté
Et voici rendu du widget RadioSelect
customisé.
Mis à jour par Thomas Jund (congés, retour le 29/04) il y a plus de 2 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Serghei Mihai il y a plus de 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 6b941855c8a7f2c2e0fb8d60f9a6c288019b48bb Author: Serghei Mihai <smihai@entrouvert.com> Date: Fri Aug 13 12:20:35 2021 +0200 a11y: add custom rendering for radio inputs (#54642) commit 2a6ba2ca0663ecbe9eacef9e219c51f3c1203676 Author: Serghei Mihai <smihai@entrouvert.com> Date: Fri Aug 13 12:13:03 2021 +0200 templates: add support for custom widget template (#54642) commit 1fa018a2a80d5aa79a031f895262ddb6fe266d15 Author: Serghei Mihai <smihai@entrouvert.com> Date: Thu Aug 12 15:16:51 2021 +0200 a11y: add aria-labelledby for widgets (#54642)
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Solution déployée à En cours
Reverté, c'est utilisé aussi en front et ça fait des régressions visibles. (cf #55988)
Mis à jour par Serghei Mihai il y a plus de 2 ans
Sauf contre-avis je souhaite pousser de nouveau ces commits et celui de #56114 et déployer en recette rapidement pour ensuite gérer les différences de rendu.
Mis à jour par Frédéric Péters il y a plus de 2 ans
Ok s'il s'agit de pousser correctement ça et les bouts de publik-base-theme qui s'y mêlent et tout déployer rapidement et vraiment faire un tour attentif de l'existant.
Mis à jour par Serghei Mihai il y a plus de 2 ans
Je compte pousser:
a11y: add custom rendering for radio inputs (#54642)
et
templates: customize checkbox and radio buttons rendering (#56114)
et tagguer.
Puis le patch de #55988, tagguer et tout deployer au même moment.
Ensuite faire le tour des toutes les recettes et faire les tickets pour les corrections nécessaires.
Mis à jour par Thomas Jund (congés, retour le 29/04) il y a plus de 2 ans
- Statut changé de En cours à Solution validée
Mis à jour par Serghei Mihai il y a plus de 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 4b3acfd8766b45ad4af804103bd6b010454a3b10 (origin/main, origin/HEAD) Author: Serghei Mihai <smihai@entrouvert.com> Date: Fri Aug 13 12:20:35 2021 +0200 a11y: add custom rendering for radio inputs (#54642)
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
a11y: add aria-labelledby for widgets (#54642)