5568 sujets

Sémantique web et HTML

Bonjour,
Je viens de me heurter à un problème étrange. Le site sur lequel je travaille est servi en application/xhtml+xml à tous les navigateurs qui le supportent (c'est à dire tous les navigateurs sauf IE).
Tout fonctionne très bien avec Opera et Firefox, mais Safari m'affiche le contenu des balises <noscript>.

voir un exemple ici : http://bluescreenjunky.info/tests/noscript.php

dont le code est on ne peut plus simple :
<? header("Content-Type: application/xhtml+xml; charset=UTF-8");?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	<head>
	<title>test</title>
	<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
</head>
<body>

<p>Bonjour.</p>
<noscript><p><b>votre navigateur ne supporte pas les scripts !</b></p></noscript>
<p><a href="javascript:alert('chouette, une alerte')">cliquez ici pour une alerte</a></p>

</body>
</html>


Questions : celà vient-il de la beta de Safari pour windows ? ou bien les utilisateurs de la version stable sur Mac sont-ils aussi affectés ?
Est-ce un bug ou un comportement normal ? (peut-être que le xhtml n'est pas censé supporter la balise noscript Smiley ohwell )
Y a-t-il un moyen de contourner le problème ?

Merci Smiley smile
Modifié par BlueScreenJunky (13 Sep 2007 - 14:45)
Un peu HS, mais tu déclares de l'application/xhtml+xml via ton header et du text/html dans ta balise meta, j'ai loupé quelque chose? Smiley sweatdrop
Modérateur
Salut,

BlueScreenJunky a écrit :
Y a-t-il un moyen de contourner le problème ?
Ben... en ne mettant pas de balises noscript non ?

A priori, ça ne sert pas à grand chose. Il suffirait de faire un simple paragraphe que tu caches si JS est actif ; le résultat serait le même...

Cela dit, xhtml supporte parfaitement les balises noscript ; il s'agit plus d'un bug de Safari Windows.

Benjamin D.C. a écrit :
Un peu HS, mais tu déclares de l'application/xhtml+xml via ton header et du text/html dans ta balise meta, j'ai loupé quelque chose? Smiley sweatdrop
+1 Smiley cligne

Voir ici même si je pense qu'il s'agit plus d'une erreur d'inattention. Smiley murf
Oui oui, c'est un copier-coller fait à la va vite pour la balise meta qui ne correspond pas Smiley cligne

a écrit :
Il suffirait de faire un simple paragraphe que tu caches si JS est actif ; le résultat serait le même...

Ah oui lol, décidément je suis fatigué moi, j'y avais même pas pensé. C'est un peu dommage de faire du JS alors que la balise <noscript> est faite pour ça, mais ça me parait une bonne solution, merci Smiley smile
BlueScreenJunky a écrit :
Oui oui, c'est un copier-coller fait à la va vite pour la balise meta qui ne correspond pas Smiley cligne

Bon allez, c'est bon pour une fois... Smiley ravi
koala64 a écrit :
il s'agit plus d'un bug de Safari Windows

Et Safari 3 beta n'est pas un logiciel finalisé. Smiley cligne
Hello,
BlueScreenJunky a écrit :
Ah oui lol, décidément je suis fatigué moi, j'y avais même pas pensé. C'est un peu dommage de faire du JS alors que la balise <noscript> est faite pour ça, mais ça me parait une bonne solution, merci Smiley smile

En fait, il vaut en général mieux éviter d'utiliser la balise <noscript>.

Tout d'abord parce qu'elle ne donne pas un contrôle très fin. Par exemple, elle ne permet pas d'afficher son contenu dans le cas où JavaScript est supporté mais pas le DOM.

Et puis elle force à raisonner dans le mauvais sens : je fais une page qui fonctionne avec JavaScript puis j'ajoute une alternative pour ceux pour qui cette fonctionnalité n'est pas disponible.