5568 sujets

Sémantique web et HTML

Comme me l'a demandé Laurent Denis je crée un nouveau sujet pour mon problème, désolé pour le dérangement ! Smiley ohwell

Voici donc mon problème : j'ai créer il y a quelques mois un portail sur les RPGs Old School.

http://www.squarepalace.com/

Au niveau de la validation W3C tout allait bien, que cela soit au niveau du xhtml 1.1 strict ou en terme de css. Le forum perso répondait aussi aux normes.

Depuis hier soir, j'ai de gros problèmes de validation au niveau du code xhtml (le css est toujours ok). J'ai de nombreuses erreurs que je n'avais pas avant.

Parmis celles que je ne comprends pas du tout :

- there is no attribute "class" (pour du font)
- element "font" undefined
- element "center" undefined

Je suppose que certaines de ces erreurs sont dûes à d'autres se situant avant (cela arrive souvent d'après ce que j'ai pu voir sur le validateur).

Je suis néanmoins assez interloqué étant donné que du jour au lendemain mon code n'est plus valide Smiley bawling

Oserais-je vous demander de m'aider et de m'indiquer ce qu'il ne va pas dans mon code? Je suis très déstabilisé par cette validation étant donné que je pensais que mon site était bon en terme de code Smiley decu

Merci!
Modifié par Poppu (09 Aug 2005 - 07:32)
re-bonjour, Poppu Smiley cligne

Merci d'avoir bien voulu créer ce sujet pour ton problème.

En réalité, ton document n'a jamais pu être valide XHTML1.1 strict, pour deux raisons :

- le XHTML1.1 n'est pas destiné à être mis en ligne et envoyé aux navigateurs comme du HTML, ce que tu fais actuellement sans le savoir. Il doit être servi d'une manière spécifique, de mise en oeuvre complexe, et n'a en fait aucune utilité pour toi (voir par exemple http://blog-and-blues.org/weblog/2004/06/11/243 ou la FAQ du forum) Il te faut faire un autre choix de DTD plus adapté à tes besoins. Tu trouveras dans ce tutoriel les informations nécessaires: Les DTD HTML4.01 et XHTML1.0 : comment choisir ?

- Tu verras en lisant ce tutoriel que tu utilises dans ton HTML des éléments et attributs (font, center, target, border) qui ne sont valides ni en XHTML1.1, ni dans une DTD HTML ou XHTML1.0 "strict".

Ta page est en fait du XHTML1.0 transitional.
Modifié par Laurent Denis (09 Aug 2005 - 07:39)
Je te remercie pour cette réponse aussi complète que rapide Smiley smile

Je vais donc lire les documents que tu m'as soumis, et je te présente mes excuses pour ne pas être allé voir dans votre FAQ, je n'ai pas eu le bon réflexe (stress oblige Smiley confus ).

Cependant j'ai deux petites questions qui me viennent à l'esprit :

- Pourquoi mon site était avant validé en tant que xhtml 1.1?
- Si je comprends bien... il n'y a aucun site valide xhtml 1.1 sur le web - digne de ce nom j'entends ? (car même en utilisant à l'extrême les css je vois mal arriver à un résultat esthétique sans ces balises "interdites"? )

Merci en tout cas pour ta gentillesse c'est sympa de prendre mon cas au sérieux Smiley smile
Modifié par Poppu (09 Aug 2005 - 07:58)
Poppu a écrit :
Pourquoi mon site était avant validé en tant que xhtml 1.1?


Il ne pouvait pas l'être, sauf en raison d'une erreur dans la syntaxe de ta DTD, qui aurait faussé le résultat.

Actuellement, la syntaxe de ta DTD XHTML1.1 ne comporte pas d'erreur. Mais es-tu sûr de n'avoir fait aucune modification à un moment quelconque ? Même minime en apparence ? Il suffit parfois d'une simple typo pour que le validateur n'interprète plus correctement la DTD, et donne un résultat de validation en fait dénué de valeur.


Poppu a écrit :

- Si je comprends bien... il n'y a aucun site valide xhtml 1.1 sur le web? (car même en utilisant à l'extrême les css je vois mal arriver à un résultat esthétique sans ces balises "interdites"?


Bien-sûr que si, il en existe Smiley cligne
Un exemple souvent cité, parce que l'utilisation du XHTML1.1 y est justifiée par le recours à MathMl : http://golem.ph.utexas.edu/~distler/blog/archives/000167.html

Et en fait, la problématique est exactement la même si on décide de rester en XHTML1.0 (parce qu'on n'a pas besoin du XHTML1.1), mais qu'on choisit de le délivrer en tant que XML aux navigateurs qui le supportent, et en tant que HTML aux autres (IE). Mon blog est dans ce cas, ainsi que celui de Denis Boudreau, et bien d'autres sites un peu "expérimentaux"... Mais c'est un exercice assez difficile, car il ne suffit pas, en fait, de changer le type de contenu et de gérer IE.

Pour en revenir à ton site, il est très facile de remplacer <font>, <center> et <img border=...> par leurs équivalents CSS (font-family, font-size, text-align, border...). L'ouverture forcée de liens dans une nouvelle fenêtre, en revanche, est impossible en XHTML1.1, tout comme en XHTML1.0 Strict. Mais là, cela n'a rien à voir avec l'esthétique.

Si tu renonces (ce qui serait bien par ailleurs pour d'autres raisons liées à l'ergonomie) à ce target, tu peux donc passer ton site en XHTML1.0 strict au lieu du XHTML1.0 transitional sous lequel il valide actuellement (au moins pour la page d'accueil).
Modifié par Laurent Denis (09 Aug 2005 - 08:16)
J'oubliais : pour prévenir le cas où quelqu'un nous ressortirait les javascripts qui permettent de masquer l'invalidité d'un target blanck en XHTML1.0 strict : réintroduire le comportement par un biais échappant au validateur ne change pas le fait que cette ouverture dans une nouvelle fenêtre n'entre pas dans le cadre de XHTML1.0 Strict. En d'autres termes, XHTML1.0 strict + nouvelles fenêtres = choix erroné de DTD.
Voir l'excellent http://www.cybercodeur.net/weblog/commentaires/detailsCarnet.php?idmessage=1088
Et bah... Sérieux ca fait du bien de parler à une personne calée! Smiley biggrin
Après maintes réflexion je pense que le xhtml 1.0 trans réponds assez bien à mes attentes. Je passerais peut-être au strict quand j'aurai le courage de retaper dans le CSS Smiley murf

En tout cas merci beaucoup, j'ai compris pourquoi j'étais dans l'erreur. Concernant le DTD que j'utilisais il s'agissait de celui du W3C cela reste une énigme pour moi Smiley confused

Quoi qu'il en soit j'ai compris ce qu'il se passait et j'ai remédié à la situation... Maintenant je voudrais l'avis d'un "pro" : xhtml1.0 trans c'est bien ou il faut vraiment passer au strict? D'après ce que j'ai compris on utilise le DTD qui correspond à nos attentes mais bon... Je voudrais avoir ton avis sur le sujet ^^

Merci encore, je vais mieux Smiley hippy
Le xHTML strict est ... plus strict (logique jusque là), c'est donc de l'avis de certain pas plus mal, en effet, s'imposer une rigueur permet de ne pas s'égarer dans le grand n'importe quoi et de se cantonner à une base sérieuse et claire.
C'est très appréciable.

Par ailleurs, le strict implique de séparer le contenu et sa mise en forme via CSS, balises et attributs de mise en forme étant interdits contrairement au transitionnel.

Donc, pas mieux ou de moins bien, mais une utilisation en fonction de ses besoins.

D'autre part, l'histoire des target, si tu les utilises, le transitionnel est "mieux" que le strict puisque c'est adapté !

Il n'y a pas d'absolu et de règles pré-fixée dans le choix d'une DTD.

J'aurais tendance à te conseiller le passage au strict pour que tu n'utilises plus les balises et attributs de mise en forme ainsi que ces foutu target mais rien ne t'empeche de le faire progressivement.
Olivier a écrit :
Le xHTML strict est ... plus strict (logique jusque là), c'est donc de l'avis de certain pas plus mal, en effet, s'imposer une rigueur permet de ne pas s'égarer dans le grand n'importe quoi et de se cantonner à une base sérieuse et claire.


Hum... la, tu donnes dans le grand flou, Olivier Smiley cligne Tâchons d'être au contraire assez précis, car c'est important pour ne pas perdre les gens et reproduire des légendes urbaines :

- XHTML "strict" n'est pas plus 'strict" qu'XHTML transitional, si tu parle de la syntaxe. C'est XHTML tout entier qui offre une base syntaxique plus rigoureuse que HTML, le strict n'ayant aucun avantage sur le transitional à cet égard (voir le tutoriel sur les DTD).

- XHTML "strict" est plus "strict" que XHTML transitional au sens où il sépare davantage structure, comportement et présentation, effectivement... mais tout comme HTML4.01 transitional, sans aucune différence (voir idem).

- et au aussi sens où les limites imposées en strict sur le contenu en ligne dans les éléments comme <body>, <blockquote>, <form>, etc. conduisent à produire une structure de document plus rigoureuse, et plus précise... mais tout comme HTML4.01 strict, et sans aucune différence Smiley cligne (voir Cette discussion avec Gilles, ce point n'étant pas abordé dans le tuto sur les DTD)

Finalement, pourquoi recommander le XHTML1.0 strict plutôt que le XHTML1.0 transitional ou le HTML4.01 srict ? Parce qu'il est le seul à cumuler deux avantages :
- la rigueur syntaxique du XHTML, par rapport au HTML
- la séparation structure, comportement et présentation, plus la précision dans la structure, par rapport au transitional.

<edit> tiens, ce n'est pas une mauvaise formulation, ça, non ? Peut-être qu'une petite réutilisation dans la conclusion du tutoriel serait habile... Smiley cligne </>
Modifié par Laurent Denis (09 Aug 2005 - 10:11)
Voilà, Laurent tu remets mon fatra d'explication en place Smiley smile
c'est ce que je sous entendais au niveau du strict Smiley smile
Bonjour,
Intéressant ce topic...

Laurent > tu n'aurais pas par hasard commis une erreur dans la page que tu as mis en lien en premier post ?

Je cite cette page :
a écrit :

Doit être servi comme étant du XML ( avec le type mime application/xml + xhtml).


Ce ne serait pas plutôt : application/xhtml+xml ?

<parenthèse un peu comique>
Puisque tu y tiens, voici le javascript qui contourne target Smiley lol :

<form action="xxxx.php" onsubmit="this.target='_blank';">...</form>

<a href="xxxx.php" onclick="return !window.open(this.href);">blablablabla</a>

</parenthèse un peu comique>

Voilà maintenant que cette parenthèse un peu drôle et ironique est refermée, merci pour les précisions à propos de ce script, je vais l'abandonner ici et le faire disparaître de mes pages à jamais. Merci.
QuentinC a écrit :
Laurent > tu n'aurais pas par hasard commis une erreur dans la page que tu as mis en lien en premier post ?


Si, en effet. L'amusant, c'est que la coquille ne soit relevée qu'un an après Smiley lol

(Merci Quentin, je corrige de ce pas)

QuentinC a écrit :

<parenthèse un peu comique>
Puisque tu y tiens, voici le javascript qui contourne target Smiley lol :

<form action="xxxx.php" onsubmit="this.target='_blank';">...</form>

<a href="xxxx.php" onclick="return !window.open(this.href);">blablablabla</a>

</parenthèse un peu comique>


Ah, non. Celui-là n'a même pas l'excuse de paraître accessible Smiley cligne
Voir http://openweb.eu.org/articles/popup/
Laurent Denis a écrit :
J'oubliais : pour prévenir le cas où quelqu'un nous ressortirait les javascripts qui permettent de masquer l'invalidité d'un target blanck en XHTML1.0 strict : réintroduire le comportement par un biais échappant au validateur ne change pas le fait que cette ouverture dans une nouvelle fenêtre n'entre pas dans le cadre de XHTML1.0 Strict. En d'autres termes, XHTML1.0 strict + nouvelles fenêtres = choix erroné de DTD.
Voir l'excellent http://www.cybercodeur.net/weblog/commentaires/detailsCarnet.php?idmessage=1088


Gneuuu... oui, mais non je ne suis pas tout à fait d'accord. XHTML strict ne définit pas le comportement du lien, parce que le W3C s'est dit que le comportement du lien dépendait plus de la présentation que du contenu. Mais CSS3 réintroduira la notion de "target" (à moins d'un abandon de ce module en cours de route, ce dont je doute), et sera tout à fait utilisable avec XHTML 1.x strict.

La différence avec la bidouille javascript pas propre ou celle plus propre donnée dans ton lien, c'est qu'un utilisateur aura la possibilité de désactiver ce comportement en utilisant une feuille de style utilisateur. Il n'en reste pas moins que l'auteur gardera la possibilité de faire ouvrir un lien dans une nouvelle fenêtre, DTD stricte ou non.

D'autre part si ouvrir une nouvelle fenêtre est agaçant pour un site web classique présentant du contenu, il est parfois très bénéfique pour l'ergonomie d'une application web ou intranet un peu complexe (ben oui, XHTML sert également à ça, et XForms qui sera inclus dans XHTML2, aussi), qui se généralisent.
Modifié par Lanza (24 Aug 2005 - 09:45)