Quand un simple document HTML oppose tous les navigateurs…

Il n’aura fallu que 5 lignes. Pas le moindre JavaScript ni CSS. Rien qu’un bête code HTML totalement conforme à la recommandation HTML 4 de W3C.

image

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TD/html4/strict.dtd">
<html>
    <head>
        <title>xxx</title>
    </head>
    <body><div>
        Something good to know.
        <ul>
            <li><code><![CDATA[</code> </li>
            <li><code>  3 < 5</code></li>
            <li><code> ]]></code></li>
        </ul>
        And something after that.
    </div></body>
</html>

A votre avis qui a raison ?

J’avoue que moi-même j’ai des doutes sur la question…

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Publié 27 juillet 08 11:57 par FREMYCOMPANY
Classé sous : ,

Commentaires

# Jem said on juillet 27, 2008 15:29:

A vue de nez je dirais Opéra, voire Firefox.

# smo said on juillet 27, 2008 15:49:

Si l'on suit la DTD de HTML4 (dispo ici http://www.w3.org/TR/html401/types.html#type-cdata), on voit que seuls les éléments STYLE et SCRIPT sont censés être parsés en mode "raw text". Pour les autres éléments, c'est à dire ici LI (CODE n'existe pas), l'agent (le browser) doit parser le contenu de l'élément.

FF traite manifestement les sections CDATA comme du "raw text" dans n'importe quel élement. C'est un choix qui me semble bon dans l'idée, et relativement logique, mais qui à mon avis n'est pas correct vis à vis de la spécification. IE a l'air de la respecter puisqu'il remet son parser à zéro à chaque fin d'élément sans tenir compte du raw text à l'intérieur des sections CDATA.

PS: il y en a qui cherchent vraiment la petite bête... :-)

# smo said on juillet 27, 2008 15:57:

oops... correction, CODE existe, mais ça ne change pas grand chose je pense.

# cyril said on juillet 28, 2008 00:44:

Pour moi c'est Opéra qui aurait raison :

http://www.w3.org/TR/REC-html40/types.html#type-cdata

Bref, encore une preuve que les specs W3C ne sont pas assez claire, pour une fois que FF/Opera/Safari ne comprennent pas la même chose et n'est pas en conflit avec IE dans la compréhension des specs :p

# spetreolle said on juillet 28, 2008 11:52:

Opéra se rapproche, mais il n'interprète pas les espaces/sauts/tabumations qui doivent être pris en compte du fait du CDATA.

Amaya les affiche correctement.

# z3d said on juillet 29, 2008 13:55:

Voici ce qui se passe selon la norme :

<li><code><![CDATA[</code> </li> <li><code>  3 < 5</code></li> <li><code> ]]></code></li>

<li><![CDATA[ ... ]]></li>

# z3d said on juillet 29, 2008 14:09:

Bon je sais pas ce qui s'est passé avec mon précédent commentaire...

J'avais mis une suite de code pour illustrer mais je vais devoir l'expliquer car apparemment pas de code dans les commentaires ici :(

le seul navigateur à suivre correctement la recommandation est bel et bien Firefox.

Explication, application de la recommandation :

Remplacer tous les sauts de ligne par un espace et nous voyons qu'il ne nous reste plus qu'un seul LI et comme le CDATA ne contient rien d'exploitable, cela nous fait un LI vide.

# smo said on août 16, 2008 10:56:

La spec est claire:

Although the STYLE and SCRIPT elements use CDATA for their data model, for these elements, CDATA must be handled differently by user agents. Markup and entities must be treated as raw text and passed to the application as is. The first occurrence of the character sequence "

# smo said on août 16, 2008 10:58:

tiens, ça ma mangé la suite de mon commentaire, je rajoutais:

Ne pas confondre les "sections CDATA" (qui viennent de SGML qui est à l'origine de HTML) et le type CDATA de la DTD HTML. Les deux n'ont rien à voir.

La doc précise donc bien que uniquement STYLE et SCRIPT doivent être parsé comme du raw text.

Les commentaires anonymes sont désactivés

About FREMYCOMPANY

François REMY est un jeune développeur belge plein d'entrain qui traite surtout des technologies du web et de DotNet dans ses articles.


Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01




Search

Go

Ce blog

Abonnements