Voilà, voilà... Fin de l'aventure...

 

Fermeture de kolossaldrupal.org dans...


Bonjour tout le monde,

Drupal évolue, les versions changent et Kolossaldrupal.org était essentiellement consacré à la version 6 de Drupal.

Autant dire que les infos présentées ici commencent à dater...

Faute de temps, je ne peux plus garder le site Kolossaldrupal à jour...

Je vous aurais bien proposé de reprendre le flambeau mais... c'est tellement simple de nos jours de se faire son propre site à soi...Pourquoi s'embêter alors ? :-)

Ce site restera donc en l'état, tel qu'il était en 2011...

Ah la la ! Cela ne nous rajeunit pas !

Manuel Vila - Avril 2016

Doctype, XML et xHTML

Date du document original en anglais : 26 Août 2009 – 23h09 - http://drupal.org/node/340119



Le DOCType est la première ligne de votre page HTML et sert à indiquer à votre navigateur la façon d'interpréter le code HTML.

HTML ou XML

Votre doctype HTML de base ressemble à ceci :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

Votre page web débute avec ceci :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

Vous pouvez utiliser du code HTML mal fichu et les navigateurs devront décrypter un ensemble de règles bizarroïdes pour restituer votre page correctement.

xHTML est une grande avancée de l'HTML car il est plus exigeant et aide par conséquent le développeur à choisir le Doctype adéquat. Le DOCtype de base du xHTML est le suivant :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Puisque le xHTML doit satisfaire aux normes du XML, votre page web débutera comme ceci :

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Le XML facilite le travail d'interprétation des navigateurs. Ils n'utilisent qu'une petite partie de code normalisé pour lire les données formatées en XML. Le DTD indique au navigateur ce qui est autorisé et ce qui ne l'est pas. Vous pouvez lire la page entière en utilisant PHP XML et extraire les donénes, ce qui est exactement la façon dont XMLRPC obtient les données d'une réponse HTTP.

Le format XML introduit des changements significatifs dans votre page. <option selected>Sydney</option> devient <option selected="selected">Sydney</option>. La structure XML pour XHTML ne permet pas à selected as some strange data hanging around. Vous devez utiliser le format name=value ce qui implique que vous devez taper selected="selected". L'avantage est la clarté, le navigateur sait exactement ce que vous voulez dire, sans s'encombrer de règles complexes.

<img src="example.png"> devient <img src="example.png" />. <br> devient <br />. Vous devez avoir le / final, même dans les balises simples.

Strict ou Transitional

Comparez ces deux DOCTypes :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
http://www.w3.org/TR/html4/strict.dtd">

Maintenant, comparez les deux doctypes XHTML suivants :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Le passage de Transitional à Strict ordonne au navigateur de rejeter les vieilles modes du HTML. C'est l'équivalent pour le navigateur de l'activation des avertissements pour le PHP. Strict est l'équivalent de la conduite de votre voiture de sport lorsque la police roule juste derrière vous : vous respectez toutes les règles.

Strict rejettera les éléments de formatage tels que center, font, iframe, strike et u. Quand vous spécifiez Strict dans votre DOCType, vous devez utilisez les CSS pour votre présentation.

Drupal.org comme exemple

La page d'accueil de Drupal.org débute avec le doctype suivant et du XHTML. Il y a une explication quelque part sur le non-respect de certaines normes, non-respect dû à un certain navigateur dont-on-ne-doit-pas- prononcer-le-nom qui ne fonctionne pas dans les règles de l'Art. Il y a aussi quelques petites vétilles provoquées par l'utilisation de nombreux de modules et de quelques bouts de code spécifique qu'il serait vraiment très long à nettoyer.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<!-- Note: does not validate. We would like it to, but that
would mean reduced user experience for the majority of our
visitors. -->

Une des erreurs de validation est causée par id="edit-submit" dans la boite de saisie suivante. Le code des formulaires, le code des boites de recherche et d'autres modules utilisent le même id pour ces éléments car ils sont rarement utilisés en même temps dans une même page. Maintenant qu'il y a beaucoup de développeurs qui travaillent sur Drupal, le code est en cours de modification pour éviter ces erreurs.

<input type="submit" name="op" id="edit-submit" value="Search"
class="form-submit" />

Essayez d'indiquer aux navigateurs les règles pour décoder l'élément Header suivant. Il est facile de modifier l'HTML vers un format normalisé et le format XML utilisé en XHTML est la norme la plus élémentaire mais elle doit être appliquée partout, dans le code de base de Drupal, dans votre thème, et dans tout ce qui est produit par vos plugins.

Modules

Vous savez que vous devez valider vos sorties quand vous changez un thème.

Validez-vous vos sorties quand vous ajoutez un nouveau module ? Ce nouveau module pourrait ajouter une classe pour des données déjà existantes, ou produire une nouvelle donnée.

Les modules peuvent créer des blocs, fournir des nouveaux éléments de saisie pour les formulaires, passer de nouvelles données via un gabarit, et ajouter des CSS.

Quand vous ajoutez un module, vous devez être sûr que ses sorties remplissent les conditions du DOCType déclaré pour votre page.

Tester

Nous avons vu précédemment quelques outils pour le test et la validation des pages. Certains d'entre eux vous permettent de modifier les doctypes aux fins de tests. Un passage à la moulinette de la page d'accueil de Drupal utilisant le DOCType transitional révèle 25 erreurs et un passage à strict en produit 50. L'idée est d'éliminer les erreurs par défaut plutôt que d'essayer avec un niveau plus élevé, strict au lieu de transitional, ou XHTML 1.1 au lieu de XHTML 1.0. Les erreurs devant être corrigées avant de changer votre doctype de transitional à strict.

Support de langue

Avec XHTML, <html> devient <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">, où en est la langue utilisée dans la page web.

Drupal 6 permet, par défaut, l'utilisation de plusieurs langues. Allez dans Administrer » Construction du site » Modules et activez les modules Locale et Traduction. Vos sorties doivent être en XHTML pour spécifier la langue. Bien que certains navigateurs devineront ce que vous souhaitez, le doctype doit être XHTML pour que chaque navigateur lise les informations supplémentaires dans la balise <html>.

Sensibilité à la casse

HTML est très indulgent concernant l'utilisation des minuscules et des majuscules, avec de nombreux navigateurs essayant de lire les deux.

XML exige que les noms des éléments, les noms des attributs et les mots réservés soient de la même casse et pour XHTML c'est en minuscules.

Le principal conseil est d'utiliser XHTML quand vous démarrez un nouveau site ou une nouvelle page.