5568 sujets

Sémantique web et HTML

Bonjour à tous Smiley cligne

Essayant de comprendre le fonctionnement des Doctype, je suis tombé sur ce lien : http://www.alsacreations.com/article/lire/560-dtd-doctype-html-xhtml-comment-choisir.html

Mais en fait, avec l'arrivée de l'HTML5 et vue que son Doctype correspondant "<!DOCTYPE html>" est simplifié, est-ce que les anciens DTD disparaitront-ils au fur et à mesure ?

Autre petite question, on parle donc de HTML5 avec une certaine liberté, du genre qu'il n'y a pas besoin de fermer certaines balises ou alors que la balise body par exemple n'est pas obligatoire.

Je me pose donc la question de savoir si l'XHTML5 existe ou existera ?

Mais attention, j'ai de la peine à comprendre ce qu'est concrètement le XML, je vais donc poser la question ici sur le forum pour essayer de mieux comprendre.

Je vous remercie d'avance de vos réponses et vous souhaite une agréable journée Smiley lol

Ciao ciao MARC....
Modifié par marc.suisse (07 May 2011 - 17:45)
Les anciens doctype restent valables, tu peux toujours coder des pages en html 3.2 si ça te chante… Smiley cligne

Pour ce qui est de html5, oui on peut omettre certaines balises, mais pour plus de clarté c'est mieux de les utiliser ainsi que d'utiliser les guillemets pour les attributs des éléments (sécurité).

xhtml5 existe déjà et est la version xml de html5. Les pages doivent être envoyées avec le type/mime application/xhtml+xml (que ne comprend pas IE<=8) au lieu de text/html. En attendant que tous les navigateurs disposent d'un vrai moteur d'affichage html5, xhtml5 permet d'insérer du MathML (exemple) ou du svg inline (exemple).

Il est possible de coder les pages de façon polyglotte, pour pouvoir les envoyer en text/html ou application/xhtml+xml au choix.
Modifié par Patidou (04 May 2011 - 14:47)
Salut, je te remercie de ta réponse Smiley cligne

a écrit :
Les anciens doctype restent valables, tu peux toujours coder des pages en html 3.2 si ça te chante… cligne


Mais est-ce cela aurait un avantage de le faire ?
Salut Smiley cligne

Si je comprends bien, des sites internet relativement anciens qui n'ont pas de DTD ne seraient pas visualisés correctement sur les navigateurs et on mettrait donc un DTD afin de leur permettre d'être correctement affiché ?

Mais dans ce cas là, et d'après l'article cité dans mon premier message, il faudrait choisir entre 6 DTD différent.

Mais alors pourquoi utiliser un DTD avec de l'HTML 3.2 ?

Ou alors je m'embrouille Smiley confus
Modifié par marc.suisse (05 May 2011 - 13:09)
Le html 3.2 était un exemple par l'absurde pour te démontrer que les DTD même très anciennes restent toujours valables. La DTD sert juste au navigateur à connaître quel version de (x)html il va devoir afficher. Elle contient aussi la liste des éléments acceptés et les enfants possibles avec leurs attributs (DTDs pour xhtml 1.0). C'est comme ça que les validateurs «voient» si le code est correct.

Si tu ne sait pas quoi choisir, prend xhtml 1.0 strict ou transitionnal, ou html5.
Et pourquoi pas HTML 4 (Strict ou transitionnel) ?

Sinon, il est très fort probable que les vieux sites (De l'époque du HTML 3.2) n'utilisent pas de doctype. Dans ce cas, les navigateurs passent en mode "quirks" et tentent d'interpréter le code au mieux. C'est ce passage à un mode qui ne correspond pas à une norme qui est principalement responsable des différences de rendu entre les navigateurs.
captain_torche a écrit :
les vieux sites (De l'époque du HTML 3.2) n'utilisent pas de doctype. Dans ce cas, les navigateurs passent en mode &quot;quirks&quot; et tentent d'interpréter le code au mieux.
Euh... IE passe en mode quirks. Les autres navigateurs se basent plutôt sur de l'HTML 4 (ou XHTML ou HTML5, c'est le même modèle de boite).
Salut,

Même si le doctype switching a été mis au point par Microsoft (première apparition dans IE 5 pour Mac en 2000, puis dans IE 6 pour Windows en 2001), il a été repris par bon nombre de navigateurs, dont Firefox, Opera et Konqueror.

À noter que le doctype HTML 3.2 fait basculer tous les navigateurs connaissant le doctype switching en mode Quirks.

Ce tableau de comparaison des doctypes et du mode de rendu adopté par les navigateurs constitue un bon aide-mémoire.
Laurie-Anne a écrit :
Oui, mais là il est question d'absence de doctype.

Même en l'absence de doctype, tous les navigateurs connaissant le doctype switching basculent en mode Quirks.
Patidou a écrit :
La DTD sert juste au navigateur à connaître quel version de (x)html il va devoir afficher. Elle contient aussi la liste des éléments acceptés et les enfants possibles avec leurs attributs (DTDs pour xhtml 1.0). C'est comme ça que les validateurs «voient» si le code est correct.

En fait non. Les navigateurs se fichent tout à fait de la version de HTML déclarée. Ils n'appliquent pas de règles différentes si tu déclares du HTML 3.2, du HTML 4.01 ou du HTML5.

Le Doctype sert à une seule chose: dire au navigateur que la page Web a été créée «récemment», et qu'on voudrait bien qu'ils appliquent les règles de la spécification CSS du mieux qu'ils le peuvent.

Si on ne veut pas s'embêter avec l'histoire des versions de HTML, quel Doctype choisir, etc., on se contente de mettre <!DOCTYPE html> dans la première ligne de ses pages HTML, avant la balise <html lang="...">. Et basta.

Si on veut savoir quelle version d'HTML utiliser au juste, c'est simple: on utilise la version de HTML qui est largement implémentée dans les navigateurs. Ça veut dire, en gros, 90% de HTML 4.01 (les 10% restant étant pas ou mal implémentés); ce qui correspond sans doute à 50 ou 60% de HTML5 (qui reprend la quasi-totalité de HTML4). Pour la syntaxe, j'aime assez la brièveté que permet parfois HTML5 (<meta charset="UTF-8">, <style> ou <script> sans attribut type...), mais chacun fait comme il veut.
On peut choisir d'utiliser HTML5 pour pouvoir utiliser certains nouveaux éléments sans faire hurler le validateur HTML, tout en restant plutôt conservateur sur l'utilisation de nouveaux éléments (ce qui revient à faire du HTML4 et à saupoudrer de nouveautés HTML5 quand c'est pertinent).
Bonjour à tous et merci d'avoir débattu ma question Smiley cligne

En résumé, je retiens les choses suivantes :

- Dans le cas d'anciennes pages HTML que l'on ne voudrait pas actualiser, il vaut mieux ne pas mettre de DTD ainsi les navigateurs incluant cette possibilité basculerons en mode "quirks" et afficheront donc les pages correctement ( j'espère ).

"fvsch" a écrit :
Si on ne veut pas s'embêter avec l'histoire des versions de HTML, quel Doctype choisir, etc., on se contente de mettre <!DOCTYPE html> dans la première ligne de ses pages HTML, avant la balise <html lang="...">. Et basta.


Donc en procédant de la sorte, on ne s'embête plus de choisir entre les différents DTD possible ( 6 ) et cela permets également d'inclure des balises HTML5 ( en toute connaissance de cause,c'est à dire de prendre en compte l'implantation actuelle des navigateurs, donc leurs capacités à comprendre les nouvelles balises HTML5 ), on ferait donc 2 pierres d'un coup.

Est-ce correct ?
Modifié par marc.suisse (06 May 2011 - 13:29)
marc.suisse a écrit :
Donc en procédant de la sorte, on ne s'embête plus de choisir entre les différents DTD possible ( 6 ) et cela permets également d'inclure des balises HTML5 ( en toute connaissance de cause,c'est à dire de prendre en compte l'implantation actuelle des navigateurs, donc leurs capacités à comprendre les nouvelles balises HTML5 ), on ferait donc 2 pierres d'un coup.

Oui, globalement c'est ça.
Je précise quand même que si tu utilises un Doctype HTML4 et des éléments nouveau en HTML5, bah ça marchera quand même dans les navigateurs qui implémentent ces éléments! Les navigateurs ne s'amusent pas à vérifier si le Doctype déclaré colle avec les éléments et attributs HTML que tu utilises: soit ils connaissent ces éléments et attributs et les appliquent, soit ils ne les connaissent pas et les ignorent.
marc.suisse a écrit :
Mais dans ce cas là, est-ce que le validateur W3C va-il donner une erreur ?

Si tu utilises des éléments ou attributs HTML 5 dans un document comportant un doctype HTML 4 ou XHTML 1, le validateur rapportera des erreurs.