Projet

Général

Profil

Development #54642

avoir une indication permettant de déterminer l'appartenance d'un bouton radio à un groupe

Ajouté par Serghei Mihai il y a presque 3 ans. Mis à jour il y a plus de 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
08 juin 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

0001-widgets-add-custom-widget-for-title-attribute-kind-5.patch (2,94 ko) 0001-widgets-add-custom-widget-for-title-attribute-kind-5.patch Serghei Mihai, 08 juin 2021 11:40
0001-templates-customize-django-s-radio-button-template-5.patch (1,16 ko) 0001-templates-customize-django-s-radio-button-template-5.patch Serghei Mihai, 09 juin 2021 09:55
0001-templates-customize-django-s-radio-button-template-5.patch (1,01 ko) 0001-templates-customize-django-s-radio-button-template-5.patch Serghei Mihai, 01 juillet 2021 12:07
0002-a11y-define-role-for-django-s-radio-buttons-54642.patch (995 octets) 0002-a11y-define-role-for-django-s-radio-buttons-54642.patch Serghei Mihai, 12 août 2021 15:01
0001-a11y-add-aria-labelledby-for-widgets-54642.patch (764 octets) 0001-a11y-add-aria-labelledby-for-widgets-54642.patch Serghei Mihai, 12 août 2021 15:01
0003-a11y-define-role-attribute-for-radio-inputs-54642.patch (699 octets) 0003-a11y-define-role-attribute-for-radio-inputs-54642.patch Serghei Mihai, 16 août 2021 09:42
0002-templates-add-support-for-custom-widget-template-546.patch (2,31 ko) 0002-templates-add-support-for-custom-widget-template-546.patch Serghei Mihai, 16 août 2021 09:42
0001-a11y-add-aria-labelledby-for-widgets-54642.patch (764 octets) 0001-a11y-add-aria-labelledby-for-widgets-54642.patch Serghei Mihai, 16 août 2021 09:42
0002-templates-add-support-for-custom-widget-template-546.patch (2,31 ko) 0002-templates-add-support-for-custom-widget-template-546.patch Serghei Mihai, 16 août 2021 16:54
0001-a11y-add-aria-labelledby-for-widgets-54642.patch (764 octets) 0001-a11y-add-aria-labelledby-for-widgets-54642.patch Serghei Mihai, 16 août 2021 16:54
0003-a11y-add-custom-rendering-for-radio-inputs-54642.patch (803 octets) 0003-a11y-add-custom-rendering-for-radio-inputs-54642.patch Serghei Mihai, 16 août 2021 16:54

Demandes liées

Lié à Authentic 2 - Development #54675: mise à jour des settings pour permettre à gadjo de surcharger les templates des widgets DjangoFermé08 juin 2021

Actions
Lié à Gadjo - Development #55297: templates: attribuer un identifiant au bloc contenant le libellé du champ de formulaireFermé01 juillet 2021

Actions

Révisions associées

Révision 1fa018a2 (diff)
Ajouté par Serghei Mihai il y a plus de 2 ans

a11y: add aria-labelledby for widgets (#54642)

Révision 2a6ba2ca (diff)
Ajouté par Serghei Mihai il y a plus de 2 ans

templates: add support for custom widget template (#54642)

Révision 6b941855 (diff)
Ajouté par Serghei Mihai il y a plus de 2 ans

a11y: add custom rendering for radio inputs (#54642)

Révision beff3e08 (diff)
Ajouté par Frédéric Péters il y a plus de 2 ans

Revert "a11y: add custom rendering for radio inputs (#54642)"

This reverts commit 6b941855c8a7f2c2e0fb8d60f9a6c288019b48bb.

Révision 4b3acfd8 (diff)
Ajouté par Serghei Mihai il y a plus de 2 ans

a11y: add custom rendering for radio inputs (#54642)

Historique

#1

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é" ?

#2

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")

#3

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

#4

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.

#5

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.

#6

Mis à jour par Serghei Mihai il y a presque 3 ans

Template custom pour les attributs de type "title".

#7

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"
#8

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. (?)

#10

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.

#11

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
#12

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.

#13

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

#14

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 dans INSTALLED_APPS, après gadjo
  • rajouter FORM_RENDERER = 'django.forms.renderers.TemplatesSetting'
#15

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é
#17

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.

#18

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é
#19

Mis à jour par Serghei Mihai il y a presque 3 ans

Nouvelle proposition avec l'identifiant du bloc contenant le libellé (patch proposé dans #55297) dans aria-labelledby.

#20

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 ?

#21

Mis à jour par Serghei Mihai il y a plus de 2 ans

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".

#22

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

#23

Mis à jour par Serghei Mihai il y a plus de 2 ans

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.

#25

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
#26

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)
#27

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
#28

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)

#29

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.

#30

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.

#31

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.

#32

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
#33

Mis à jour par Serghei Mihai il y a plus de 2 ans

Je pousse le tout lundi.

#34

Mis à jour par Frédéric Péters il y a plus de 2 ans

Vendredi si possible ?

#35

Mis à jour par Serghei Mihai il y a plus de 2 ans

ok

#36

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)
#37

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

Formats disponibles : Atom PDF