L'attribut data-*

Cet article est libre d'accès pour tous grâce à ceux qui soutiennent notre blog indépendant.

En HTML5 à été ajouté un attribut qui je pense sera (ou est déjà) très utile pour les développeurs. Je l’ai découvert il y a seulement 1 mois dans le cadre de l’un de mes projets professionnels. Pour que vous compreniez son intérêt, posons la problématique.

Jusqu’a maintenant, lorsque le développeur voulait stocker une information dans une balise html il avait deux attributs disponibles pour cette tache : l’attribut « id » et l’attribut « class ». Ces attributs remplissent très bien leur rôle mais l’on se retrouvait vite en manque de place.

Par exemple, si je veux que mon javascript réagisse spécifiquement en fonction du type, de la position, de la nature, etc :

<ul> 
    <li class="firstlevel"> 
        <ul> 
            <li class="secondlevel doc pdf sharedrep"></li>
        </ul> 
    </li>
</ul>

Pas très lisible même si cet exemple reste très soft. Et si l’on revient sur son code trois mois après il faut d’abord retrouver à quoi toutes ses classes correspondent pour comprendre pleinement notre code.

L’attribut data-* : petite révolution du HTML5

Pour pallier à ce léger problème, le W3C à standardisé l’*attribut data-**. Le principe est simple : lorsque vous cherchez un endroit où stocker une information nécessaire a votre javascript – ou autre – et que vous voudriez qualifier cette donnée, vous pouvez inventez un attribut data qui sera propre à votre code.

Cet attribut est totalement ignoré par les navigateurs, il n’y aura que votre code saura s’en servir.

Dans notre exemple cela ce traduirait ainsi :

<ul> 
    <li class="firstlevel"> 
        <ul> 
            <li class="secondlevel" data-nature="doc" data-type="pdf" data-partage="oui"></li> 
        </ul>
    </li> 
</ul>
  • Le code est plus lisible
  • Les données sont qualifiées et classées
  • Ça facilite la reprise du code
  • Et ça évite quelques erreurs dans le javascript

Attention : les données que vous stockez dans l'attribut data ne doivent pas être confidentiel car elle seront lisible dans le code html. 

Bien sûr cet attribut n’est utile que lors d’un traitement coté client et dans quelques cas spécifiques mais je suis que vous en trouverez rapidement une utilité !

Rejoins 250+ développeurs de notre liste de diffusion et sois reçois les articles directement dans ta boite mail.

S'inscrire à la newsletter

Aucun spam. Désabonnes-toi en un seul clic à tout moment.

Si vous avez des questions ou des remarques/conseils, n'hésitez pas à laisser un commentaire plus bas ! Je serais ravis de vous lire. Et si vous aimez l'article, n'oubliez pas de le partager avec vos amis.