5568 sujets

Sémantique web et HTML

Bonjour

J'utilise le format suivant :
<!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'>

Que j'utilise cette syntaxe :
echo "		<img src='http://www.votrecoop.org/images/mailto.gif' />".chr(10);
ou cette syntaxe :
			echo '		<OBJECT data="http://www.votrecoop.org/images/mailto.gif" type="image/gif"> '.chr(10);
			echo "		</OBJECT>".chr(10);


Mon code ne passe pas la validation W3C.

Quelle est la bonne syntaxe pour insérer une image ?

Voici l'url que je souhaite faire passer la validation : achat coopératif

Merci d'avance pour votre aide
Modifié par renard9 (28 Mar 2010 - 18:40)
Salut,

(sujet déplacé)

déjà le code PHP n'est pas d'une grande utilité pour une question qui ne concerne pas PHP. Smiley cligne

Ensuite tu as effectivement une erreur de validation dans les 2 cas :
* l'élément IMG nécessite un attribut alt même si celui-ci n'est pas rempli.
* avec le doctype que tu as choisi tu ne peut pas mettre les noms d'éléments en majuscules. ce n'est donc pas <OBJECT ...></OBJECT> mais <object ... ></object>

En l'occurrence :
* il n'y a ici aucun intérêt à utiliser l'élément OBJECT.
* comme il s'agit de décoration cette image devrait plutôt être en background css.
Modifié par Heyoan (20 Mar 2010 - 17:05)
Bonjour,

super merci j'ai essayé la solution avec object en minuscule et effectivement cela fonctionne.

Puis je avoir quelques explications sur ces 2 phrases ?
a écrit :
En l'occurrence :
* il n'y a ici aucun intérêt à utiliser l'élément OBJECT.
* comme il s'agit de décoration cette image devrait plutôt être en background css.


La première ligne : j'en déduis qu'il faut donc utiliser img
La seconde ligne : il faut que je définisse en style pour mon bas de page qui mette une image à droite (cela je ne crois pas savoir le faire mais je peux chercher). A priori, c'est une propriété que j'utiliserai uniquement à cette endroit. Cela vaut il le coup d'aller définir un nouveau style dans le CSS pour un usage unique ?

Amicalement et encore merci pour la première explication

PS : désolé pour le php qui traine, mais j'ai toujours peur de laisser trainer une " ou un ' dans la ligne Smiley confused
Modifié par renard9 (21 Mar 2010 - 00:15)
renard9 a écrit :
il faut que je définisse en style pour mon bas de page qui mette une image à droite (cela je ne crois pas savoir le faire mais je peux chercher).

Regarde du côté des propriétés background-image et background-position (et fais attention à la propriété background-repeat). Autrement dit :
<p id="bas-de-page">Ici le texte de ton bas de page</p>

#bas-de-page {
  /* background est une propriété servant de raccourci pour les propriétés
  dont le nom commence par background- */
  background: url(chemin-vers-ton-image.png) no-repeat right top;
}

renard9 a écrit :
A priori, c'est une propriété que j'utiliserai uniquement à cette endroit. Cela vaut il le coup d'aller définir un nouveau style dans le CSS pour un usage unique ?

Cela vaut le coup. Tu parles d'un usage unique ; mais, comme il s'agit d'un bas de page susceptible de se reproduire dans toutes les pages de ton site et que les navigateurs mettent en cache les feuilles de style et les images, l'usage n'est peut-être pas si unique que ça. Smiley cligne Sans oublier que, si tu changes d'image ou que tu en modifies le positionnement, tu n'auras pas à toucher au code HTML. Bref, c'est tout bénéfice. Smiley smile
En fait, il y a eu un grand débat (troll ?) il y a quelques années sur l'utilisation de object : en gros, img devait disparaître, et tout ce qui n'est pas du (X)HTML aurait dû être affiché via la balise object.

Même si cette dernière avait beaucoup d'avantages (notamment de pouvoir inclure un contenu alternatif en HTML plus poussé que le alt de img)... curiosité de l'histoire, la balise img a fait son chemin, et object ne s'est contenté que d'afficher du flash, des vidéos et d'autres choses du genre. Et d'ailleurs, HTML5 a introduit la balise video.

Donc si c'est une image, il n'y a pas d'intérêt à utiliser object => autant utiliser img.

Là, en l'occurrence, ton image peut être considérée comme une image de décoration/présentation (ta page peut se passer de l'utiliser en quelque sorte), donc plusieurs écoles :

- soit tu utilises une propriété CSS pour l'afficher, et au passage, oui, ça sert une propriété CSS même unique Smiley cligne : en quelque sorte tu pars de l'idée que ton image fait partie de la présentation, et tu tiens à séparer totalement présentation et contenu (genre XHTML 1 Strict)

- soit tu affiches ton image directement via img, avec un attribut alt présent, mais vide. Là, on considère l'image comme non-significative pour le document (en gros, c'est un petit plus visuel pour ceux qui peuvent afficher les images).


(ou tu peux mettre un texte alternatif le cas échéant, à toi de le choisir judicieusement)


Là, je laisse aux tatillons de la sémantique le soin de départager ces deux écoles, à titre perso, je ne vois pas d'erreur dramatique à utiliser l'une ou l'autre qui vont te faire finir sur un bûcher du web mal conçu. Smiley lol
Nico3333fr a écrit :
et tu tiens à séparer totalement présentation et contenu (genre XHTML 1 Strict)

Précisons tout de même que la séparation entre contenu et présentation n'a strictement rien à voir avec XHTML1 ou XHTML. C'est un principe déjà à l'oeuvre avec la création de CSS (ben oui...), et que l'on retrouve en partie dans les différences entre le HTML4 Transitional et le HTML4 Strict (certains éléments de présentation étant absents en Strict, à savoir: CENTER, FONT, STRIKE, U).

Nico3333fr a écrit :
Là, je laisse aux tatillons de la sémantique le soin de départager ces deux écoles

À ma connaissance, il n'y a aucune différence sémantique entre <img alt=""> (alt vide) et une image de fond CSS.