Je me disais justement qu'il fallait réouvrir ce fil de discussion pour la
question des loupes d'écran, discutée en off avec JP récemment ;-) [clin
d'oeil]

Une question que je me pose: dans une perspective responsive web design,
quelle liberté a-t-on pour réorganiser l'affichage d'un tableau avec
nombreuses colonnes, sur un écran étroit?
On peut a priori remettre en cause entièrement la structure de tableau pour
en faire tout autre chose en CSS3. Mais du coup, est-ce que ça vaut le coup
de se prendre la tête à partir sur un tableau, et ne vaut-il mieux pas
directement adopter un affichage de grille, plus souple, à base de
conteneurs empilés? (sachant qu'au final on fait tout ce qu'on peut avec
cette construction via TABLE pour se débarrasser des propriétés de TABLE...)



[image: --]
Olivier Nourry
[image: http://]about.me/oliviernourry
<http://about.me/oliviernourry>


Le 18 décembre 2015 à 11:17, ROSA Giuseppe (93) <
[email protected]> a écrit :

> Merci Jean-Pierre pour ces précisions, j'avais effectivement omis le cas
> des utilisateurs de loupe d'écran. Je transmets tes recommandations.
>
> Bonnes fêtes.
>
> Cordialement,
> ------------------------------
> DGFiP Giuseppe ROSA
> Inspecteur Analyste
> Atelier SODA - bureau SI-1A
> Site SODA : http://si1a.intranet.dgfip/soda tel : 01.573.36.997
> pièce : 2388
>
>
>
> *Adoptez l'éco-attitude.*
> N'imprimez ce mail que si c'est vraiment nécessaire
>
>
> -------- Message original --------
> Sujet : Re: [Liste GTA] Champ de formulaires & cellules de tableaux
> De : Jean-Pierre Villain <[email protected]> <[email protected]>
> Pour : [email protected]
> Date : 18/12/2015 10:26
>
> Bonjour,
>
> Je n'avais pas vu  cette conversation, je me me permet d'ajouter mon grain
> de sel et quelques précisions.
>
> Comme tout le monde l'utilisation d'un tableau de données est à proscrire.
> En revanche la solution de labels cachés ou de liaison aria-labelledby
> peux être insuffisante, par exemple pour les utilisateurs de loupe d'écran
> qui ne voyant qu'une portion du tableau risque de perdre l'information du
> label fournie par les en-têtes.
> Ce souci est habituel sur les tableaux de grande dimension mais il peut
> être, dans le cas de champ de formulaire considérablement amélioré en
> traitant un label caché en tooltip ou en utilisant un title de préférence à
> aria-labelledby.
>
> Pour les fieldset, le critère est "Critère 11.5 [A] Dans chaque
> formulaire, les informations de même nature sont-elles regroupées, si
> nécessaire ? " ce qui laisse tout le loisir d'adapter l'exigence de la
> présence d'un fieldset.
>
> Si les labels sont suffisamment explicites le couple fielset/legend
> devient naturellement inutile.
>
> J'aurais donc tendance  traiter ce cas en tableau de présentation, les
> lignes et colonnes d'en-tête en aria-hidden true et des labels masqués,
> suffisamment pertinents pour éviter le fieldset, traités en tooltip au
> moment de la prise d'action (souris/clavier naturellement).
>
> JPV
>
>
>
>
> Le 09/11/2015 14:32, Romain Gervois a écrit :
>
> Bonjour Olivier,
>
> Désolé pour ma réponse tardive. J'ai effectivement mal lu ta précédente
> réponse. On est donc d'accord sur le fait que si il y a utilisation d'un
> tableau, il doit s'agir d'un tableau de présentation et non de données.
> Pour ARIA, il s'agit ici surtout de réaliser les liaisons input et
> pseudo-en-têtes, rien de plus ; on est loin de la bidouille et, pour le
> coup, ça n'évite de toute façon pas les redites. On pourrait imaginer une
> implémentation s'appuyant sur ARIA pour gérer ça mais ça touche au problème
> de support et du "où doit-on s'arrêter ?".
>
> Concernant la redistribution d'un tableau de présentation en contexte
> responsive, je n'ai pas d'exemple à dispo (c'est forcément du spécifique
> pour le coup). Mais il suffit d'appliquer des display block sur les
> éléments td pour réaliser une simple linéarisation de ce tableau et de
> masquer/afficher les éléments nécessaires à la situation. Alors, il faut
> bien avoir en tête que dans le cas évoqué, c'est jouable. Dans un cas où il
> s'agit d'un tableau de données ça peut être bien autre chose...
>
> Concernant le problème du support, il s'agit surtout de mesurer la réelle
> pérennité de l'implémentation (quelle soit pour contourner ou pour
> améliorer).  Et ça, effectivement, ça dépend de plein de facteurs
> (compétences du concepteur, impacts réels du problème, projet...).
>
> Romain
>
> Le 2 novembre 2015 15:47, Olivier Nourry <[email protected]> a écrit :
>
>> Bonjour Romain,
>>
>> J'ai bien précisé que c'est l'utilisation d'un tableau de données qui me
>> parait un détournement. Bien sûr un tableau de présentation sera
>> transparent s'il est bien fait, et tant que l'ordre de lecture est cohérent
>> avec l'interface, et que le code est bien formé, ça ne me pose pas de
>> problème -- modulo le RWD, mais j'y reviens plus tard.
>> Par contre bidouiller en ARIA un tableau "de données", sémantiquement
>> parlant, pour lui faire jouer ce rôle de combinateur de labels en évitant
>> les redites, me parait un brin tiré par les cheveux. Pas d'objection, non
>> plus, cependant, tant que ça marche et que l'utilisateur s'y retrouve.
>> C'est bien sur ce dernier point que j'ai un doute - à lever avec des tests.
>>
>> Je suis allé un peu vite pour dire qu'on ne pouvait pas "casser" un
>> tableau en RWD pour le réagencer en largeur étroite. Mais n'ayant jamais vu
>> la chose en pratique, j'ai du mal à imaginer comment l'en-tête se
>> positionne si les lignes (fonctionnelles) sont distribuées sur plusieurs
>> lignes (graphiques)? Tu as un exemple à dispo? Ça me parait tellement
>> contradictoire avec le principe des lignes et colonnes que je bute,
>> mentalement, sur la forme que ça peut prendre.
>>
>> Sur le problème de support de fieldset: l'éternel débat... faut-il coder
>> pour contourner les bugs, ou suivre la ligne claire du standard et croiser
>> les doigts?... Chaque projet aura une réponse, pas forcément toujours la
>> même.
>>
>>
>>
>> [image: --]
>> Olivier Nourry
>> [image: http://]about.me/oliviernourry
>> <http://about.me/oliviernourry>
>>
>>
>> Le 2 novembre 2015 14:32, Romain Gervois <[email protected]> a
>> écrit :
>>
>>> Considérer des tableaux de mise en forme comme du détournement revient à
>>> les interdire (même dans les différents textes, personne n'ose le faire).
>>> On peut bien sur revenir aux pratiques anciennes où les table/tr/td sont
>>> devenus des div/span... Perso, je préfère un tableau de mise en forme
>>> assumé et bien implémenté que de passer par des solutions bancales et
>>> chiantes full CSS.
>>>
>>> Olivier écrit :
>>> *Face à cette construction, le lecteur d'écran va rentrer dans quel
>>> mode? Formulaire ou tableau? Je ne sais pas trop, et je ne sais pas non
>>> plus comment l'utilisateur comprendra réellement la chose -- Tu as sûrement
>>> un avis plus pertinent que moi sur la question!*
>>>
>>> Il faudrait faire des tests plus large ; en tout cas, sous VO OS X (avec
>>> role presentation) le tableau est totalement omis. Et en fait, je vois même
>>> pas le problème selon le mode de navigation choisit et la façon dont
>>> l'utilisateur va utilisé son lecteur ça va dépendre...
>>>
>>> Olivier écrit :
>>>
>>> *La longueur réelle des labels ne joue pas trop, puisqu'ils sont cachés
>>> avec mon "affichage tableau". *
>>> *La solution que je te propose n'est pas plus complexe, en termes de
>>> code, qu'une table; si tu crées un plug-in de zéro, cela reviendra au même.
>>> L'avantage est que sur un design responsive, en largeur étroite tu pourras
>>> facilement revenir à une représentation en fieldset, où tu fais
>>> réapparaitre les labels, et tu positionnes les boutons les uns en dessous
>>> des autres. Chose impossible avec un tableau, pour lequel la largeur
>>> minimale sera la somme de celles des colonnes.*
>>>
>>> Sur l'implémentation, ça ne changera effectivement rien. Par contre dire
>>> que c'est impossible avec un tableau, c'est une erreur. On peut jouer avec
>>> la propriété display pour réadapter comme on veut. D'ailleurs, fieldset et
>>> legend sont détestés par nos amis intégrateurs lors de l'application de
>>> styles (donc tu vas devoir retomber sur des div/span pour faire ce que tu
>>> veux faire).
>>>
>>> Enfin pour finir, le support de fieldset et legend est très inégal. Par
>>> exemple, VO ne vocalise pas la légende du regroupement, les versions
>>> (certaines ? toutes ?) des JAWS restituent à chaque champ la légende...
>>> Donc entre l'implé de rêve (full CSS, sémantique et cie) et la pratique,
>>> par moment, il faut savoir faire quelques écarts.
>>>
>>> Romain
>>>
>>>
>>>
>>>
>>> Le 2 novembre 2015 14:03, Olivier Nourry <[email protected]> a écrit
>>> :
>>>
>>>> L'usage d'un tableau de données ne me parait pas souhaitable car c'est
>>>> à mon sens un détournement d'usage de l'élément (même si on a vu pire!).
>>>> Face à cette construction, le lecteur d'écran va rentrer dans quel mode?
>>>> Formulaire ou tableau? Je ne sais pas trop, et je ne sais pas non plus
>>>> comment l'utilisateur comprendra réellement la chose -- Tu as sûrement un
>>>> avis plus pertinent que moi sur la question!
>>>> La longueur réelle des labels ne joue pas trop, puisqu'ils sont cachés
>>>> avec mon "affichage tableau".
>>>> La solution que je te propose n'est pas plus complexe, en termes de
>>>> code, qu'une table; si tu crées un plug-in de zéro, cela reviendra au même.
>>>> L'avantage est que sur un design responsive, en largeur étroite tu pourras
>>>> facilement revenir à une représentation en fieldset, où tu fais
>>>> réapparaitre les labels, et tu positionnes les boutons les uns en dessous
>>>> des autres. Chose impossible avec un tableau, pour lequel la largeur
>>>> minimale sera la somme de celles des colonnes.
>>>>
>>>>
>>>>
>>>>
>>>> [image: --]
>>>> Olivier Nourry
>>>> [image: http://]about.me/oliviernourry
>>>> <http://about.me/oliviernourry>
>>>>
>>>>
>>>> Le 2 novembre 2015 13:37, ROSA Giuseppe (93) <
>>>> [email protected]> a écrit :
>>>>
>>>>> Merci Olivier pour ta réponse.
>>>>>
>>>>> En effet, je sais qu'on ne peut pas croiser les fieldset avec les
>>>>> cellules de tableaux, c'est pourquoi j'ai par ailleurs chercher s'il
>>>>> existait des role fieldset et legend, mais ce n'est à priori pas le cas. 
>>>>> La
>>>>> solution du tableau intéressait le client pour des questions d'alignement
>>>>> et parce que ces tableaux seront en fait généré par un CMS, le contenu
>>>>> ajouté probablement par des contributeurs non développeur. Je cherchai 
>>>>> donc
>>>>> un moyen "d'émuler" le comportement du fieldset à partir du tableau.
>>>>>
>>>>> La solution display table est une solution que j'avais mis de côté
>>>>> bien qu'elle semblait intéressante car je la maîtrise imparfaitement (donc
>>>>> me demandera un peu de temps) et j'ai peur d'avoir du mal à donner des
>>>>> indications pour l'auto-générer ensuite avec des plugins drupal. Mais je
>>>>> vais regarder de plus près puisque c'est une solution que tu sembles
>>>>> également penser viable.
>>>>>
>>>>> Pour information, les labels de l'exemple, sont donnés juste pour
>>>>> illustration. Ceux utilisé sont généralement plus long (20 à 30 
>>>>> caractères)
>>>>>
>>>>> A ton avis, la solution 1 : tableau de donnée peut elle être viable ou
>>>>> est à proscrire ?
>>>>>
>>>>> Merci encore pour ta réactivité et ton analyse.
>>>>>
>>>>> Cordialement,
>>>>> ------------------------------
>>>>> DGFiP Giuseppe ROSA
>>>>> Inspecteur Analyste
>>>>> Atelier SODA - bureau SI-1A
>>>>> Site SODA : http://si1a.intranet.dgfip/soda tel : 01.573.36.997
>>>>> pièce : 2388
>>>>>
>>>>>
>>>>>
>>>>> *Adoptez l'éco-attitude.*
>>>>> N'imprimez ce mail que si c'est vraiment nécessaire
>>>>>
>>>>>
>>>>> -------- Message original --------
>>>>> Sujet : Re: [Liste GTA] Champ de formulaires & cellules de tableaux
>>>>> De : Olivier Nourry <[email protected]> <[email protected]>
>>>>> Pour : [email protected] <[email protected]>
>>>>> <[email protected]>
>>>>> Date : 02/11/2015 12:55
>>>>>
>>>>> Bonjour Giuseppe,
>>>>>
>>>>> L'inconvénient de ta solution 2 (fieldset dans une table) est qu'on ne
>>>>> peut pas "croiser" de la sorte fieldset et table, ça casse le code HTML. 
>>>>> Ou
>>>>> alors il faut faire une table à l'intérieur de chaque fieldset, et une
>>>>> table à 1 colonne comme wrapper. Bof bof.
>>>>> Perso j'aurais fait une suite de fieldset, un par matière, avec des
>>>>> label à chaque bouton.
>>>>> Pour obtenir la représentation visuelle que tu décris, j'aurais
>>>>> ensuite mis ça en lignes, caché les label (mais est-ce nécessaire?), et
>>>>> aligné avec des propriétés display de la famille table-* ou équivalent.
>>>>> Les textes dans la 1ère ligne, rappelant la fonction des boutons, ne
>>>>> sont alors utiles que pour la représentation visuelle, pas besoin de les
>>>>> relier aux boutons.
>>>>> De cette manière, en lecture non visuelle, c'est accessible (avec un
>>>>> peu d'infos en trop, celles de la première ligne); et en visuel, on a les
>>>>> informations et l'alignement nécessaires pour comprendre la fonction de
>>>>> chaque bouton radio.
>>>>>
>>>>> J'espère t'avoir été utile
>>>>>  J'espère t'avoir été utili
>>>>> [image: --]
>>>>> Olivier Nourry
>>>>> [image: http://]about.me/oliviernourry
>>>>> <http://about.me/oliviernourry>
>>>>>
>>>>>
>>>>> Le 2 novembre 2015 11:08, ROSA Giuseppe (93) <
>>>>> [email protected]> a écrit :
>>>>>
>>>>>> Bonjour la liste,
>>>>>>
>>>>>> Je voulais connaître votre avis sur la meilleur manière d'implémenter
>>>>>> un formulaire présenter dans un tableau (plusieurs "clients" semblent
>>>>>> impacter chez nous par ce type de présentation).
>>>>>>
>>>>>> Je pense qu'il s'agit d'un cas déjà rencontré, puisque des outils de
>>>>>> génération de questionnaire en ligne doivent générer des cas similiaires.
>>>>>>
>>>>>> Dans le dernier cas qu'il m'a été soumis, il s'agit d'une sorte de
>>>>>> formulaire de notation (pour faire simple) :
>>>>>>
>>>>>>    - Sur la première ligne les intitulés des notes
>>>>>>    - Sur les lignes suivantes :
>>>>>>       - première cellule : l'intitulé de la matière
>>>>>>       - cellules suivantes : bouton radio (symbolisé ci-dessous par
>>>>>>       ©)
>>>>>>
>>>>>>
>>>>>>  Bon
>>>>>> Moyen
>>>>>> Mauvais
>>>>>> Matière 1
>>>>>> ©
>>>>>> © © Matière 2
>>>>>> © © © Matière 3
>>>>>> © © ©
>>>>>> Le problème est doit-on (ou est-il préférable) traiter ce tableau en
>>>>>> tant que tableau de données, et dans ce cas les cellules de la première
>>>>>> ligne et de la première colonne seraient les cellules d'en-tête.
>>>>>> Par contre, les contenus de ces en-têtes peuvent-ils être considérés
>>>>>> comme les étiquettes des cases boutons radio (cas prévus pour rendre
>>>>>> explicite des liens mais je n'ai pas l'impression que cela soit le cas 
>>>>>> pour
>>>>>> des boutons radio, cases à cocher voire champ de saisie de formulaire). 
>>>>>> Si
>>>>>> je rajoute des labels (aria-label ou autre), j'ai un redondance
>>>>>> d'information (intitulé de la cellule d'en-tête + étiquette du bouton).
>>>>>>
>>>>>> Une autre solution serait de traiter cela comme un tableau de
>>>>>> présentation, avec un label (aria-label ou aria-labelledby par exemple) 
>>>>>> sur
>>>>>> chaque bouton, avec un aria-hidden sur la 1ère ligne. Par contre, je ne
>>>>>> sais pas si on peut regrouper chaque ligne pour simuler le cas d'un
>>>>>> fieldset/legend afin d'éviter de répéter à chaque bouton le nom de la
>>>>>> matière et ainsi fonctionner comme avec une succession de groupement tel
>>>>>> que celui-ci :
>>>>>> <fieldset>
>>>>>>     <legend>Matière 1</legend>
>>>>>>     <input aria-label="Bon" type="radio" value="Bon" name="M1">
>>>>>>     ...
>>>>>> </fieldset>
>>>>>>
>>>>>> Si vous avez des suggestions du meilleur traitement d'un cas tel que
>>>>>> celui-ci je suis preneur.
>>>>>>
>>>>>> Avec tous mes remerciements pour cette lecture.
>>>>>>
>>>>>> Cordialement,
>>>>>> ------------------------------
>>>>>> DGFiP Giuseppe ROSA
>>>>>> Inspecteur Analyste
>>>>>> Atelier SODA - bureau SI-1A
>>>>>> Site SODA : http://si1a.intranet.dgfip/soda tel : 01.573.36.997
>>>>>> pièce : 2388
>>>>>>
>>>>>>
>>>>>>
>>>>>> *Adoptez l'éco-attitude.*
>>>>>> N'imprimez ce mail que si c'est vraiment nécessaire
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> liste_gta mailing list
>>>>>> [email protected]
>>>>>>
>>>>>> http://list.accessiweb.org/mailman/listinfo/liste_gta_list.accessiweb.org
>>>>>>
>>>>>>
>>>>> ------------------------------
>>>>>
>>>>> _______________________________________________
>>>>> liste_gta mailing 
>>>>> [email protected]http://list.accessiweb.org/mailman/listinfo/liste_gta_list.accessiweb.org
>>>>>
>>>>> _______________________________________________ liste_gta mailing list
>>>>> [email protected]
>>>>> http://list.accessiweb.org/mailman/listinfo/liste_gta_list.accessiweb.org
>>>>
>>>> _______________________________________________ liste_gta mailing list
>>>> [email protected]
>>>> http://list.accessiweb.org/mailman/listinfo/liste_gta_list.accessiweb.org
>>>
>>> _______________________________________________ liste_gta mailing list
>>> [email protected]
>>> http://list.accessiweb.org/mailman/listinfo/liste_gta_list.accessiweb.org
>>
>> _______________________________________________ liste_gta mailing list
>> [email protected]
>> http://list.accessiweb.org/mailman/listinfo/liste_gta_list.accessiweb.org
>
> _______________________________________________
> liste_gta mailing 
> [email protected]http://list.accessiweb.org/mailman/listinfo/liste_gta_list.accessiweb.org
>
> --
> _____________________________________
> Jean-Pierre VILLAIN - @villainjp - +33 (0)6 98 08 50 49
> Expert senior, formateur et responsable du pôle R&D
> Access42 : expertise, conseil et formation en accessibilité numérique+33 (0)1 
> 78 17 88 55 - access42.net - @access42net
>
> ------------------------------
>
> _______________________________________________
> liste_gta mailing 
> [email protected]http://list.accessiweb.org/mailman/listinfo/liste_gta_list.accessiweb.org
>
>
>
> _______________________________________________
> liste_gta mailing list
> [email protected]
> http://list.accessiweb.org/mailman/listinfo/liste_gta_list.accessiweb.org
>
>
_______________________________________________
liste_gta mailing list
[email protected]
http://list.accessiweb.org/mailman/listinfo/liste_gta_list.accessiweb.org

Répondre à