diff --git a/dist/404.html b/dist/404.html
index 60e3b3837b957de76832d0d9bdae6492c4c9fdf7..e565822578850787bd2b64f2cee73135e5e01e86 100644
--- a/dist/404.html
+++ b/dist/404.html
@@ -3,7 +3,7 @@
 #HTTP_HEADER{Pragma: no-cache}
 
 <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html dir="#LANG_DIR" lang="#LANG">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
 <head>
 <title><:pass_erreur:> 404 - [(#NOM_SITE_SPIP|textebrut)]</title>
 <INCLURE{fond=inc-head}>
diff --git a/dist/agenda.html b/dist/agenda.html
index 122f9acd4034deb88e04b38977cf115b3938d4e8..368fd2d8230c652b336639aa38b1969e8bb98675 100644
--- a/dist/agenda.html
+++ b/dist/agenda.html
@@ -1,6 +1,6 @@
 #CACHE{7200}
 <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html dir="#LANG_DIR" lang="#LANG">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
 <head>
 <title><:icone_agenda:> - [(#NOM_SITE_SPIP|textebrut)]</title>
 [<meta name="description" content="(#DESCRIPTIF_SITE_SPIP|couper{150}|attribut_html)" />]
diff --git a/dist/article.html b/dist/article.html
index 0dafb4640a1f026b6482c6c14dd1dde13381df52..36642159e5c2682e86bf95027a15cd654b9b3c73 100644
--- a/dist/article.html
+++ b/dist/article.html
@@ -1,7 +1,7 @@
 #CACHE{86400}
 <BOUCLE_article_principal(ARTICLES) {id_article}>
 <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html dir="#LANG_DIR" lang="#LANG">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
 <head>
 <title>[(#TITRE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
 [<meta name="description" content="(#INTRODUCTION|couper{150}|attribut_html)" />]
diff --git a/dist/auteur.html b/dist/auteur.html
index 7b70e9472d43c7d94370d94eadca59b3229780f6..5970741f282ef83b6f3564acb04ec39cf991d0bd 100644
--- a/dist/auteur.html
+++ b/dist/auteur.html
@@ -1,7 +1,7 @@
 #CACHE{86400}
 <BOUCLE_auteur_principal(AUTEURS) {id_auteur}>
 <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html dir="#LANG_DIR" lang="#LANG">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
 <head>
 <title>[(#NOM|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
 [<meta name="description" content="(#BIO|couper{150}|attribut_html)" />]
diff --git a/dist/breve.html b/dist/breve.html
index fb154e7f8e1e332fab3a7e97f3a6c26705b330a9..bd3c838ecb55ec140ce722a32dfaaf80288d1b2c 100644
--- a/dist/breve.html
+++ b/dist/breve.html
@@ -1,7 +1,7 @@
 #CACHE{43200}
 <BOUCLE_breve_principal(BREVES) {id_breve}>
 <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html dir="#LANG_DIR" lang="#LANG">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
 <head>
 <title>[(#TITRE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
 [<meta name="description" content="(#INTRODUCTION|couper{150}|attribut_html)" />]
diff --git a/dist/forum.html b/dist/forum.html
index 62e65d8395f9f867d3518950a5eae517f9f470ef..3e8d043b09f0ab451787c433b95b90bf9fdb3027 100644
--- a/dist/forum.html
+++ b/dist/forum.html
@@ -1,7 +1,7 @@
 #CACHE{3600}
 #HTTP_HEADER{"Cache-Control: max-age=3600, must-revalidate"}
 <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html dir="#LANG_DIR" lang="#LANG">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
 <head>
 <title><:poster_message:> - [(#NOM_SITE_SPIP|textebrut)]</title>
 <INCLURE{fond=inc-head}>
diff --git a/dist/identifiants.html b/dist/identifiants.html
index 195883e06bf7a04e57baac0550d6fecdf4295ac5..0bc71c7a960810cc275a73577cf09267ac419945 100644
--- a/dist/identifiants.html
+++ b/dist/identifiants.html
@@ -1,6 +1,6 @@
 #CACHE{0}
 <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html dir="#LANG_DIR" lang="#LANG">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
 <head>
 <title><:pass_vousinscrire:></title>
 [<meta name="description" content="(#DESCRIPTIF_SITE_SPIP|couper{150}|attribut_html)" />]
@@ -9,4 +9,4 @@
 <body class="page_sommaire">
 #FORMULAIRE_INSCRIPTION{#ENV{mode},#ENV{id_rubrique},#ENV{focus}}
 </body>
-</html>
+</html>
\ No newline at end of file
diff --git a/dist/login.html b/dist/login.html
index d79762ed558f8c8f3b5d24d02e63866aad33a4c8..7ed10297bedc099e40d103c85b0bb3795fce1729 100644
--- a/dist/login.html
+++ b/dist/login.html
@@ -5,7 +5,7 @@
 #CACHE{24 * 3600}
 #HTTP_HEADER{Content-Type: text/html; charset=#CHARSET}
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html dir="#LANG_DIR" lang="#LANG">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
 <head>
 <title><:login_acces_prive:> - [(#NOM_SITE_SPIP|textebrut)]</title>
 <meta http-equiv="Content-Type" content="text/html; charset=#CHARSET" />
diff --git a/dist/mot.html b/dist/mot.html
index 49f5d5b6f8bf840b3bd800a1411eeeb1807ac62b..e1c19242481b95070a880790f602bfc3de7e5b01 100644
--- a/dist/mot.html
+++ b/dist/mot.html
@@ -1,7 +1,7 @@
 #CACHE{86400}
 <BOUCLE_mot_principal(MOTS) {id_mot} {doublons}>
 <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html dir="#LANG_DIR" lang="#LANG">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
 <head>
 <title>[(#TITRE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
 [<meta name="description" content="(#DESCRIPTIF|couper{150}|attribut_html)" />]
diff --git a/dist/plan.html b/dist/plan.html
index 87e0747d8a072776eb9023446f8d129e6054cfc1..916a1ecebb29a6a4414c73756586f4afbeb56f57 100644
--- a/dist/plan.html
+++ b/dist/plan.html
@@ -1,6 +1,6 @@
 #CACHE{7200}
 <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html dir="#LANG_DIR" lang="#LANG">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
 <head>
 <title><:plan_site:> - [(#NOM_SITE_SPIP|textebrut)]</title>
 [<meta name="description" content="(#DESCRIPTIF_SITE_SPIP|couper{150}|attribut_html)" />]
diff --git a/dist/recherche.html b/dist/recherche.html
index 921b3da4bd53e88f05762a74f53aa1e5e64d447d..54ee6c5fd1808433450bf4a82cea37b731e5982b 100644
--- a/dist/recherche.html
+++ b/dist/recherche.html
@@ -1,6 +1,6 @@
 #CACHE{0}
 <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html dir="#LANG_DIR" lang="#LANG">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
 <head>
 <title><:resultats_recherche:> - [(#NOM_SITE_SPIP|textebrut)]</title>
 <INCLURE{fond=inc-head}>
diff --git a/dist/rubrique.html b/dist/rubrique.html
index 6ccae5a0756619102b3606223822a9dda2f78594..84acdfe575a1b50ee27c6dc6eb75baaaf9030e06 100644
--- a/dist/rubrique.html
+++ b/dist/rubrique.html
@@ -1,7 +1,7 @@
 #CACHE{7200}
 <BOUCLE_rubrique_principal(RUBRIQUES) {id_rubrique}>
 <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html dir="#LANG_DIR" lang="#LANG">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
 <head>
 <title>[(#TITRE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
 [<meta name="description" content="(#INTRODUCTION|couper{150}|textebrut)" />]
diff --git a/dist/site.html b/dist/site.html
index 2b2899cb1a3022b2b5f2103671b3d1ed63d14ef3..9729abb97b589edc5a9ae599645b482085c4419a 100644
--- a/dist/site.html
+++ b/dist/site.html
@@ -2,7 +2,7 @@
 <BOUCLE_site(SITES){id_syndic}>
 <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
 [(#REM) Les sites n'ont pas de "lang" a proprement parler ; on se base donc sur la langue de la rubrique qui les contient. Les articles syndiques, eux, ont une "lang". ]
-<BOUCLE_lang(RUBRIQUES){id_rubrique}><html dir="#LANG_DIR" lang="#LANG"></BOUCLE_lang>
+<BOUCLE_lang(RUBRIQUES){id_rubrique}><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR"></BOUCLE_lang>
 <head>
 <title>[(#NOM_SITE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
 [<meta name="description" content="(#DESCRIPTIF|couper{150}|textebrut)" />]
diff --git a/dist/sommaire.html b/dist/sommaire.html
index ddaffd6de0295a3bd72e5622f58a2b81f0d474bc..fc811b72438176f27c5a80385b37882ac456583e 100644
--- a/dist/sommaire.html
+++ b/dist/sommaire.html
@@ -1,6 +1,6 @@
 #CACHE{7200}
 <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html dir="#LANG_DIR" lang="#LANG">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
 <head>
 <title>[(#NOM_SITE_SPIP|textebrut)]</title>
 [<meta name="description" content="(#DESCRIPTIF_SITE_SPIP|couper{150}|textebrut)" />]
diff --git a/dist/sommaire_texte.html b/dist/sommaire_texte.html
index 0e007324abeb1f0f2db4d4cace2aa3377ae4e2af..98973f8594772f48c58bb2dd6249ce4b9804adb5 100644
--- a/dist/sommaire_texte.html
+++ b/dist/sommaire_texte.html
@@ -1,6 +1,6 @@
 #CACHE{7200}
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html dir="#LANG_DIR" lang="#LANG">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
 <!--
 // ACCESSIBILITE
 // la page /oo offre une lecture en mode "texte seul"