Projet

Général

Profil

Development #62750

accessibilité, "grouper" les boutons radios ou cases à cocher

Ajouté par Frédéric Péters il y a environ 2 ans. Mis à jour il y a presque 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
14 mars 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

D'un audit,

La spécification HTML 5 propose une structure pour gérer ces regroupements qui utilise une balise <fieldset> et une balise <legend> sur le modèle suivant :

<fieldset>
<legend>Voulez-vous vous inscrire à la newsletter ?</legend>
<input id="id-oui" type="radio" /><label for="id-oui">Oui</label>
<input id="id-non" ype="radio" /><label for="id-non">Non</label>
</fieldset>

Pas la première fois et ça va créer de la différence de balisage entre champs (puisqu'on ne va pas taper individuellement tous les champs dans un <fieldset>), mais on peut tenter.


Fichiers

Révisions associées

Révision 4b35705c (diff)
Ajouté par Frédéric Péters il y a presque 2 ans

a11y: add role and aria-labelledby attributes to radio/checkboxes (#62750)

Historique

#1

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

#3

Mis à jour par Thomas Jund (congés, retour le 29/04) il y a environ 2 ans

Je déconseille l'utilisation des balises fieldset + legend.
C'est un enfer à styler, on va s'en mordre les doigts : https://developer.mozilla.org/fr/docs/Web/HTML/Element/Fieldset#mise_en_forme_avec_css

Je préconise l'utilisation de l'attribut `role="group"` couplé à `aria-labelledby` pour pointer la balise .title servant de legend et ainsi pour créer un équivalent accessible.
(et bienvenue aux groupes de champs !)

#4

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

Oui l'idée ici dans le patch est de ne pas styler du tout via <fieldset>, juste en faire disparaitre les aspects visuels, mais les mettre parce que de rapport en rapport c'est demandé pour les boutons radio.

.fieldset-widget {
    border: none;
    padding: 0;
    margin: 0;

}

Je préconise l'utilisation de l'attribut `role="group"` couplé à `aria-labelledby` pour pointer la balise .title servant de legend et ainsi pour créer un équivalent accessible.

Je ne vais pas me lancer dans un truc pas validé par auditeur et cie, et blindé à ce niveau. Si tu veux participer (#62508#note-9), ou formuler ta question pour qu'elle leur soit posée, go for it.

#5

Mis à jour par Thomas Jund (congés, retour le 29/04) il y a environ 2 ans

Dans le rapport il est indiqué :

<fieldset>
<legend>Voulez-vous vous inscrire à la newsletter ?</legend>
<input id="id-oui" type="radio" /><label for="id-oui">Oui</label>
<input id="id-non" type="radio" /><label for="id-non">Non</label>
</fieldset>

Si ce n’est pas possible, l’utilisation de propriétés ARIA peut aboutir au même résultat :

<div role="group" aria-labelledby="id-legend">
<p id="id-legend">Voulez-vous vous inscrire à la newsletter ?</p>
<input id="id-oui" type="radio" /><label for="id-oui">Oui</label>
<input id="id-non" type="radio" /><label for="id-non">Non</label>
</div>

Et c'est vraiment la seconde version à privilégier à mon avis (Le solution est préconisée p28 du rapport).

#6

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

Alors la version simple, qui ajoute donc role="group" et aria-labelledby="..." sur le <div>.

#7

Mis à jour par Thomas Jund (congés, retour le 29/04) il y a environ 2 ans

Je ne pense pas que l'on puisse conserver <label> comme titre de groupe. Il me semble qu'un label doit forcement être relié à un élément de saisi.

#8

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

Il me semble qu'un label doit forcement être relié à un élément de saisie.

Je lis juste "Il peut être associé à un contrôle", pas d'obligation mentionnée sur https://developer.mozilla.org/fr/docs/Web/HTML/Element/label

#12

Mis à jour par Thomas Jund (congés, retour le 29/04) il y a environ 2 ans

  • Statut changé de Solution proposée à Solution validée

OK, Le validateur HTML reste muet.

#13

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

(ok pour info j'ai posé la question lors du retour d'audit, pas de réponse immédiate donnée mais on devrait avoir un retour).

#14

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

  • Statut changé de Solution validée à Résolu (à déployer)

(poussé le 3 mai oublié)

commit 4b35705c8d488de6eda793f9435494b0bd07f167
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Tue Mar 15 12:17:46 2022 +0100

    a11y: add role and aria-labelledby attributes to radio/checkboxes (#62750)
#15

Mis à jour par Transition automatique il y a presque 2 ans

  • Statut changé de Résolu (à déployer) à Solution déployée
#16

Mis à jour par Transition automatique il y a plus d'un an

Automatic expiration

Formats disponibles : Atom PDF