Bonjour à tous,
Suite au coup de gueule récent de Raphael sur le blog (Arrêtons de remplacer systématiquement les tableaux par des div !), je me pose la question de l'accessibilité des div imbriquées.
L'abus de div me semble dangereux pour la maîtrise de la cohérence du code : balises non fermées, code peu lisible et donc difficile à maintenir/débuguer. De plus, je suis conscient des dangers de la divite, qui occulte l'importance d'un balisage sémantique structurant (on met des div partout mais pas de hN, de p ou de listes...), ou qui pousse certains à croire qu'une mise en page en tableaux peut-être « convertie » (en gardant la même logique du « découpage ») en mise en page à base de divs. Le rappel était donc utile, nécessaire, et appréciable.
D'ailleurs, tant que j'y suis, je vous en met un petit passage (pour ceux qui n'auraient pas lu le billet, ou alors en diagonale) :
Mais quid, concrètement, de l'accessibilité des div imbriquées ?
Citant toujours Raphaël, dans les commentaires cette fois :
Je pensais justement à ce cas, pas forcément à ZenGarden, mais plus généralement au fait de produire un template un peu chargé qui permette des modifications importantes du design, avec plus de latittude qu'un code « épuré » qui banirait les div inutiles. Dans le cas des template de CMS, par exemple, c'est une question non négligeable.
Là dessus, un petit tour du côté du W3C (traduction française de la spécification HTML 4.01) :
Une div est donc un élément de type bloc « neutre » dont les deux rôles principaux sont :
- support d'information de langue (le cas échéant) ;
- support de mise en forme.
À priori, aucune contre-indication à l'utilisation (réfléchie) de divs imbriquées.
Reste donc la question -- capitale -- du rendu, dans la pratique, de div imbriquées par les différents agents utilisateurs :
- pour ce qui est des navigateurs graphiques, rien à signaler ;
- avec un navigateur en mode texte comme Lynx, les div ne sont pas rendues ;
- avec les différents lecteurs d'écran ?
- autres cas d'utilisation ?
J'en appelle donc aux spécialistes -- et plus généralement à tous ceux qui s'y connaissent un peu -- en matière d'accessibilité. Y a-t-il des cas problématiques, en dehors des écueils conceptuels et méthodologiques pointés par Raphaël ? Ou bien peut-on en conclure que les div imbriquées ne sont pas « fondamentalement » dommageables ?
Merci d'avance pour vos réponses.
PS : attention, pas de troll, on n'est encore que jeudi !
Suite au coup de gueule récent de Raphael sur le blog (Arrêtons de remplacer systématiquement les tableaux par des div !), je me pose la question de l'accessibilité des div imbriquées.
L'abus de div me semble dangereux pour la maîtrise de la cohérence du code : balises non fermées, code peu lisible et donc difficile à maintenir/débuguer. De plus, je suis conscient des dangers de la divite, qui occulte l'importance d'un balisage sémantique structurant (on met des div partout mais pas de hN, de p ou de listes...), ou qui pousse certains à croire qu'une mise en page en tableaux peut-être « convertie » (en gardant la même logique du « découpage ») en mise en page à base de divs. Le rappel était donc utile, nécessaire, et appréciable.
D'ailleurs, tant que j'y suis, je vous en met un petit passage (pour ceux qui n'auraient pas lu le billet, ou alors en diagonale) :
a écrit :
Utiliser une balise unique comme <div> va à l'encontre de cette philosophie, et - plus important - rend la lecture bien plus complexe pour l'ensemble des agents utilisateurs (navigateurs, moteurs de recherche, outils adaptés).
Mais quid, concrètement, de l'accessibilité des div imbriquées ?
Citant toujours Raphaël, dans les commentaires cette fois :
Raphael a écrit :
Le gros problème, comme avec les tableaux, est surtout l'imbrication multiples de <div> qui n'a alors aucun sens.
Pour ce qui est de ZenGarden, c'est un peu spécial : le code HTML de base a été prévu dès le départ pour pouvoir être très modulable et complètement stylable. Il est donc très lourd et souvent pour rien, mais l'avantage est que n'importe quel élément peut être stylé n'importe comment.
Je pensais justement à ce cas, pas forcément à ZenGarden, mais plus généralement au fait de produire un template un peu chargé qui permette des modifications importantes du design, avec plus de latittude qu'un code « épuré » qui banirait les div inutiles. Dans le cas des template de CMS, par exemple, c'est une question non négligeable.
Là dessus, un petit tour du côté du W3C (traduction française de la spécification HTML 4.01) :
a écrit :
Les éléments DIV et SPAN, en conjonction avec les attributs id et class, offrent un mécanisme générique qui rajoute de la structure aux documents. Ces éléments définissent le contenu comme étant en-ligne (SPAN) ou de bloc (DIV) mais n'imposent aucune autre expression de présentation sur le contenu. Ainsi, les auteurs peuvent utiliser ceux-ci en conjonction avec les feuilles de style, l'attribut lang, etc., pour exploiter HTML selon leurs besoins et leurs goûts propres.
Une div est donc un élément de type bloc « neutre » dont les deux rôles principaux sont :
- support d'information de langue (le cas échéant) ;
- support de mise en forme.
À priori, aucune contre-indication à l'utilisation (réfléchie) de divs imbriquées.
Reste donc la question -- capitale -- du rendu, dans la pratique, de div imbriquées par les différents agents utilisateurs :
- pour ce qui est des navigateurs graphiques, rien à signaler ;
- avec un navigateur en mode texte comme Lynx, les div ne sont pas rendues ;
- avec les différents lecteurs d'écran ?
- autres cas d'utilisation ?
J'en appelle donc aux spécialistes -- et plus généralement à tous ceux qui s'y connaissent un peu -- en matière d'accessibilité. Y a-t-il des cas problématiques, en dehors des écueils conceptuels et méthodologiques pointés par Raphaël ? Ou bien peut-on en conclure que les div imbriquées ne sont pas « fondamentalement » dommageables ?
Merci d'avance pour vos réponses.
PS : attention, pas de troll, on n'est encore que jeudi !