Programming
Programmez en anglais.
Programmez en anglais.
Utilisez une indentation de 4 espaces.
N'utilisez pas de tabulations.
<!-- Recommended --> <div> <p>text</p> </div>
Tout le code html doit être en miniscule lowercase.
Cela s'applique aux balises HTML, attributs, valeurs d'attributs (excepté les text/CDATA).
<!-- Not Recommended --> <DIV CLASS=""></DIV>
<!-- Recommended --> <div class=""></div>
Chaque valeur d'attribut doit être entouré d'une double quote.
<!-- Not Recommended --> <div class=my-class></div> <div class='my-class'></div>
<!-- Recommended --> <div class="my-class"></div>
Utilisez une nouvelle ligne pour chaque élément si celui-ci contient un élément enfant.
<!-- Recommended --> <div> <p></p> </div> <ul> <li></li> <li></li> </ul> <table> <thead> <tr> <th></th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>
Toutes les balises sont écrites en lowercase.
<!-- Not Recommended --> <DIV></DIV>
<!-- Recommended --> <div></div>
Toutes les balises doivent être fermées proprement.
<!-- Not Recommended --> <li>
<!-- Recommended --> <li></li>
Les balises auto fermantes (self-closing) doivent avoir un espace avant le slash fermant.
<!-- Not Recommended --> <br/>
<!-- Recommended --> <br />
Tous les attributs sont écrits en lowercase.
Les valeurs d'attribut doivent être entourées par une double quote.
<!-- Not Recommended --> <div class=my-class></div> <div class='my-class'></div>
<!-- Recommended --> <div class="my-class"></div>
Si la valeur d'attribut doit être interprété par la machine, la valeur doit être en lowercase.
<!-- Recommended --> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <a href="http://example.com/" title="Description Here">Example.com</a>
Les valeur de id et de name doivent être en lower camelCase.
<!-- Not Recommended --> <div id="IDNAME"></div> <div id="IdName"></div> <div id="id-name"></div>
<!-- Recommended --> <div id="idName"></div>
Les noms des classes doivent être en lower spinal-case c'est-à-dire en minuscule séparée par des traits d'union.
<!-- Not Recommended --> <div class="CLASSNAME"></div> <div class="className"></div> <div class="class_name"></div>
<!-- Recommended --> <div class="class-name"></div>
Les éléments suivant sont valides en HTML4 et en HTML5 :
<!-- -->, <!DOCTYPE>, <a>, <abbr>, <address>, <area>, <b>, <base>, <bdo>, <blockquote>, <body>, <br>, <button>, <caption>, <cite>, <code>, <col>, <colgroup>, <dd>, <del>, <div>, <dfn>, <dl>, <dt>, <em>, <fieldset>, <form>, <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <head>, <hr>, <html>, <i>, <iframe>, <img>, <input>, <ins>, <kbd>, <label>, <legend>, <li>, <link>, <map>, <menu>, <meta>, <noscript>, <object>, <ol>, <optgroup>, <option>, <p>, <param>, <pre>, <q>, <samp>, <script>, <select>, <small>, <span>, <strong>, <style>, <sub>, <sup>, <table>, <tbody>, <td>, <textarea>, <tfoot>, <th>, <thead>, <title>, <tr>, <ul>, <var>
Les éléments suivant sont dépréciés en HTML5 :
<acronym>, <applet>, <basefont>, <big>, <center>, <dir>, <font>, <frame>, <frameset>, <isindex>, <noframes>, <s>, <strike>, <tt>, <u>, <xmp>
Les éléments suivant sont nouveau en HTML5 :
<article>, <aside>, <audio>, <canvas>, <command>, <datagrid>, <datalist>, <datatemplate>, <details>, <dialog>, <embed>, <eventsource>, <figure>, <footer>, <header>, <mark>, <meter>, <nav>, <nest>, <output>, <progress>, <ruby>, <rp>, <rt>, <rule>, <section>, <source>, <time>, <video>
Séparez strictement la structure (html), le style (css), et le comportement (scripts) dans des fichiers distincts.
Essayez de garder l'intéraction entre les trois au minimum absolu.
C'est un point crucial à respecter pour des raisons de maintenance.
<!-- Not Recommended --> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Bad example</title> </head> <body> <script> alert("message"); </script> <div style="color: red; font-weight: bold;"> </div> </body> </html>
<!-- Recommended --> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Recommended example</title> <link rel="stylesheet" href="site.css"> </head> <body> <div class="red-bold"> </div> <script src="//path/script.js"></script> </body> </html>
Utilisez les éléments HTML appropriés.
Par exemple, utilisez un élément d'entête (h1, h2, ...) pour les en-têtes, l'élément p pour les paragraphes, l'élément a pour les ancres, etc ...
C'est un point crucial pour la réutisabilité ainsi qu'un point important pour l'accessibilité.
Remarque: L'élément table ne doit servir que pour des données tabulaires ! *exception pour le template mailing
<!-- Not Recommended --> <div> <div>header of paragraph</div> <div>Content of paragraph</div> </div>
<!-- Recommended --> <article> <h2>header of paragraph</h2> <p>Content of paragraph</p> </article>
Limitez le nombre de chargement et le poids des fichiers ressources dans une page web.
Chargez les fichiers ressources non liés au rendu en fin de code.
<!-- Not Recommended --> <!DOCTYPE html> <html> <head> ... <link rel="stylesheet" href="font.css" /> <link rel="stylesheet" href="layout.css" /> <link rel="stylesheet" href="table.css" /> <link rel="stylesheet" href="color.css" /> <script src="//example.com/path/jquery.js"></script> <script src="login.js"></script> <script src="grid.js"></script> <script src="index.js"></script> </head> <body> ... <img src="images/logo.bmp" alt="logo" /> ... </body> </html>
<!-- Recommended --> <!DOCTYPE html> <html> <head> ... <link rel="stylesheet" href="site.css" /> </head> <body> ... <img src="images/logo.jpg" alt="logo" /> ... <script src="//example.com/path/jquery.min.js"></script> <script src="site.min.js"></script> </body> </html>
Evitez les éléments parents superflus.
<!-- Not Recommended --> <span class="avatar"> <img src="//example.com/path/image.jpg"> </span>
<!-- Recommended --> <img class="avatar" src="//example.com/path/image.jpg">
Commentez le code lorsque cela est nécessaire.
Utilisez les commentaires pour expliquer le code; lorsque celui-ci est complexe ou lorsque qu'une correction a dû être apportée.
Utilisez les commentaires pour marquer une action a faire; TODO, TOREMOVE, ...
Ajoutez un espace entre le délimiteur de commentaire et le texte du commentaire.
<!-- Recommended --> <!-- TODO translate(fr) --> <div class="error"> <p> An expected error has been occured.</p> </div>
Utilisez le doctype HTML5 pour toutes les vues.
<!-- Recommended --> <!DOCTYPE html>
Utilisez l'encodage de caractères UTF-8 pour toutes les vues.
Specifiez l'encodage de caractère du document en utilisant l'élément meta <meta charset="utf-8">
,
qui doit être le tout premier élément enfant du <head>
.
<!-- Recommended --> <head> <meta charset="utf-8"> <title></title> ... </head>
Définissez une valeur pour l'attribut lang sur le noeud racine du document.
<!-- Not Recommended --> <html>
<!-- Recommended --> <html lang="en">
N'explicitez pas le protocol dans l'url pointant vers une ressource (image, multimedia, script, css, ...).
<!-- Not Recommended --> <script src="http://www.example.com/path/script.js"></script>
<!-- Recommended --> <script src="//www.example.com/path/script.js"></script>
<!-- Not Recommended --> .example { background: url(http://www.example.com/path/image.jpg); }
<!-- Recommended --> .example { background: url(//www.example.com/path/image.jpg); }
N'utilisez pas l'attribut type pour les feuilles de styles (.css) et les scripts javascripts (.js).
<!-- Not Recommended --> <link rel="stylesheet" href="//www.example.com/path/styleSheet.css" type="text/css" />
<!-- Recommended --> <link rel="stylesheet" href="//www.example.com/path/styleSheet.css" />
<!-- Not Recommended --> <script href="//www.example.com/path/script.js" type="text/javascript"></script>
<!-- Recommended --> <script href="//www.example.com/path/script.js"></script>
Pour les objets multimédia (images, vidéos, ...), assurez vous de précisez une alternative d'accès.
<!-- Not Recommended --> <img src="..." />
<!-- Recommended --> <img src="..." alt="alternate text" />
<!-- Not Recommended --> <audio controls> <source src="multimedia.mp3" type="audio/mpeg" /> </audio>
<!-- Recommended --> <audio controls> <source src="multimedia.mp3" type="audio/mpeg" /> Your browser doesn't support the audio embedded feature. </audio>
Bibliographie (Resources utilisées) :