Les standards web (III)
Suite et fin de la série d’articles consacrés aux standards du web. Nous terminerons dans cet article par des explications sur des notions un peu barbares à première vue que sont le DOCTYPE, l’espace de nom, le type de contenu et l’encodage des caractères.
Début d’un document xhtml
Un document xhtml standard commence généralement de la façons suivante :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<HTML lang="fr-FR" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>
Titre de ma page
</title>
</head>
Qu’est ce que cela signifie ?
Doctype
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Lorsque l’on écrit un document XHTML on doit respecter des règles qui sont spécifiées dans un texte appelé « définition de type de document » ou DTD. Comme il existe plusieurs DTD, le DOCTYPE nous permet d’indiquer aux navigateurs de quelle DTD nous avons choisit que notre document dépende. Ces règles sont des spécifications XHTML de la façons dont notre balisage doit être construit. Elles indiquent aux navigateurs la façons dont les pages doivent être affichées et aux services de validations si le codage de la page est valide.
XHTML 1.0 propose 3 DTD :
- Transitional : règles peux restrictives, ferme les yeux sur des éléments, structures, attributs caducs (ex: attributs « target » de href, bgcolor …), permet une transition douce vers les standards.
- Strict : règles rigides, pour les plus aguéris des standards.
- Frameset : règles permettant d’inclure des cadres dans votre design.
L’espace de noms ou xmlns (xml name space)
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="fr">
Un espace de nom est un ensemble de type d’éléments et de noms d’attributs associés à une DTD. La déclaration d’espace de noms se fait dans la balise <html> et indique son emplacement en ligne.
xml:lang="en" indique que la version de XML utilisée est écrite en anglais
lang="fr" indique que le document est écrit en français
Le type de contenu (type MIME )
Un document XHTML doit indiquer le type d’encodage de caractères qu’il va utiliser pour être correctement interprété par les navigateurs et réussir les tests de validation du balisage.
Il existe plusieurs manières de l’indiquer :
- le w3c recommande l’utilisation d’un prologue XML en tous début de page
<?xml version="1.0" encoding="ISO-8859-1" ?>
Ce prologue indique la version XML utilisé et le type d’encodage. Mais IE ne gère pas les « ? » utilisés dans la syntaxe de ce prologue.
- Utilisation d’une balise <meta> à l’intérieur d’une balise <head> avec l’élément Content-Type
Si l’on veut être puriste, le type MIME pour un document XHTML est le même que celui que l’on utilise pour un document XML à savoir
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=ISO-8859-1" />
mais cela suppose que votre DOCTYPE indique que vous utilisez le XHTML 1.1 Le problème est que seul les navigateurs modernes reconnaisse ce type MIME.
Pour un document HTML, le type MIME par défaut est "text/html"
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
Ce type est aussi supporté avec XHTML 1.0 Transitional et XHTML 1.0 Strict si vous désirez offrir une rétrocompatibilité.
En attendant que tous les navigateurs sachent reconnaître le type MIME "application/xhtml+xml" il vaut mieux se contenter du type "text/html"
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
L’encodage de caractères et sa déclaration Unicode
Le jeu de caractères par défaut des documents XML, XHTML est Unicode. C’est un jeu de caractères exhaustif qui fournit un numéro unique à chaque caractère quels que soient la plate-forme, le programme, la langue.
ISO-8859
Il existe d’autres jeu de caractères plus spécifique adapté à certaines langues. ISO-8859 est conçus pour les langues alphabétiques. Il en existe plusieurs. Par exemple ISO-8859-1 est utilisé pour établir une correspondance entre les caractères de langues d’Europe de l’ouest et Unicode. ISO-8859-2 est utilisé pour les langues d’Europe de l’est (turc, grec, hébreu et langues nordiques)
La déclaration de l’encodage permet d’établir la correspondance entre le jeu de caractères choisi et le standard Unicode.
Les sites peuvent faire cette déclaration de 3 manières :
- Sur le serveur en définissant l’encodage des caractères dans les en-têtes HTTP renvoyé par le serveur. Recommandé par le W3C.
- Pour les documents XML donc XHTML, dans le prologue XML. Mal supporté par IE.
- Dans une balise de type Content-Type
Mes sources
- « Design Web : utilisez les standards » – Jeffrey Zeldman – Eyrolles

Pas de commentaire
S'abonner aux commentaires via RSS
(URL de trackback)