Sommaire
<!ENTITY % OAlign "(texttop|middle|textmiddle|baseline| textbottom|left|center|right)"> <!ELEMENT OBJECT - - (PARAM | %block)*> <!ATTLIST OBJECT %attrs -- %coreattrs, %i18n, %events -- declare (declare) #IMPLIED -- commutateur "déclarer sans création d'instance" -- classid %URL #IMPLIED -- identifie une implémentation -- codebase %URL #IMPLIED -- certains systèmes nécessitent une URL supplémentaire -- data %URL #IMPLIED -- référence aux données de l'objet -- type %ContentType #IMPLIED -- Type de contenu Internet des données -- codetype %ContentType #IMPLIED -- Type de contenu pour le code de l'objet -- standby CDATA #IMPLIED -- message à afficher pendant le chargement -- align %OAlign #IMPLIED -- position de l'objet dans le document -- height %Length #IMPLIED -- hauteur suggérée -- width %Length #IMPLIED -- largeur suggérée -- border %Length #IMPLIED -- largeur d'encadrement suggérée (de type lien) -- hspace %Length #IMPLIED -- gouttière horizontale suggérée -- vspace %Length #IMPLIED -- gouttière verticale suggérée -- usemap %URL #IMPLIED -- référence à une définition de mapping d'image -- shapes (shapes) #IMPLIED -- object has shaped hypertext links -- name %URL #IMPLIED -- nom d'élément si soumis par formulaire -- tabindex NUMBER #IMPLIED -- position dans l'ordre de tabulation -- >
Balise de début : obligatoire, balise de fin : obligatoire
Attribute definitions
Attributs définis par ailleurs
La plupart des agents utilisateurs contiennent en eux-même des mécanismes pour visualiser les types de média les plus communs tels que le texte, les images GIF, les couleurs, les polices, et une bonne gamme d'éléments graphiques. Pour visualiser des données qu'ils ne peuvent traiter nativement, les agents utilisateurs exécutent en général des applications externes. L'élément OBJECT permet aux auteurs de contrôler si les objets inclus doiventêtre gérés par les agents en interne, ou de façon externe.
Dans le cas général, un système de visualisation inclus nécessite trois types d'informations :
Dans certains cas, il n'est pas nécessaire de fournir ces trois informations. Par exemple, certains systèmes de visualisation ne nécessitent pas de données en entrée (ex., une applet affichant une petite animation directement codée dans son programme). D'autres systèmes ne nécessiteront pas de données supplémentaires d'initialisation. Certains autres enfin, ne demanderont pas de données d'implémentation supplémentaires, par exemple, parce que l'agent utilisateur sait déjà lui-même comment visualiser des données de ce type de média (ex., images GIF).
En HTML, l'élément OBJECT indique où trouver le code du visualisateur ainsi que les données dont ce dernier à besoin. Ces informations sont données par les divers attributs de l'élément OBJECT. L'élément PARAM permet de définir un certain nombre de paramètres d'exécution. Cet élément sera décrit par la suite, dans la section concernant l'initialisation des objets.
Un agent utilisateur devra interpréter un élément OBJECT selon des règles dans l'ordre suivant :
Dans l'exemple suivant, nous insérons un visualiseur fictif écrit en langage Python qui affiche une horloge analogique. Cette applet ne nécessite aucune donnée d'implémentation additionnelle ni paramètres d'exécution. L'attribut classid donne l'emplacement de l'applet :
<OBJECT classid="http://www.miamachina.it/analogclock.py"> </OBJECT>
Nous recommandons que cette déclaration soit complétée par un texte alternatif défini dans la définition de l'élément OBJECT, au cas où l'agent utilisateur ne pourrait visualiser l'horloge.
<OBJECT classid="http://www.miamachina.it/analogclock.py"> Une horloge animée. </OBJECT>
Notez que l'horloge sera visualisée dès que l'agent utilisateur interprète cette déclaration d'OBJECT. Il est possible de retarder l'exécution du visualisateur en déclarant tout d'abord l'objet (comme décrit ci-dessous).
Une conséquence significative du design de l'élément OBJECT est qu'il offre une mécanique permetant de définir des visualisations alternatives de l'objet ; chacune des déclarations d'OBJECT peut en inclure une autre qui définit un système de visualisation alternatif. Si un agent utilisateur ne peut pas visualiser la définition d'OBJECT la plus extérieure, alors il est dit qu'il doit essayer d'en rendre le contenu, lequel peut être une autre définition d'OBJECT proposant un système de visualisation plus compatible, et ainsi de suite.
Dans l'exemple suivant, nous allons cascader plusieurs déclarations d'OBJECT pour illustrer comment ce système de visualisation adaptatif fonctionne. Les agents utilisateurs essayeront d'abord de visualiser le premier OBJECT, puis les autres dans l'ordre suivant : (1) une applet "Terre" écrite en Python, (2) une animation MPEG de la Terre Earth, (3) une image GIF de la Terre, (4) un texte alternatif.
<OBJECT title="La Terre vue de l'Espace" classid="http://www.observer.mars/TheEarth.py"> <OBJECT data="TheEarth.mpeg" type="application/mpeg"> <OBJECT src="TheEarth.gif"> La <STRONG>Terre</STRONG> vue de l'espace. </OBJECT> </OBJECT> </OBJECT>
La déclaration la plus extérieure définit une visualisation par applet qui ne nécessite ni données ni paramètres initiaux. La seconde déclaration définit une visualisation sous forme d'animation MPEG, et, comme elle ne précise pas le système de visualisation, s'en remettra à l'agent utilisateur pour trouver un moyen de la visualiser. L'attribut type est défini de sortie qu'un agent utilisateur non équipé pour visualiser du MPEG pourra choisir de ne pas télécharger le fichier "TheEarth.mpeg" par le réseau. La troisième déclaration spécifie l'emplacement du fichier GIF tout en spécifiant le texte alternatif à afficher pour un navigateur en mode texte.
Données en-ligne ou externes. Les données devant être visualisées peuvent être obtenues de deux manières : soit à l'intérieur de l'objet, soit en spécifiant une ressource extérieure. Alors que la première méthode conduira en général à réduire le temps de rendu, elle n'est cependant pas convenable lorsque les données à visualiser sont en grande quantité.
<!ELEMENT PARAM - O EMPTY -- paramètre nommé --> <!ATTLIST PARAM name CDATA #REQUIRED -- nom de paramètre -- value CDATA #IMPLIED -- valeur de paramètre -- valuetype (DATA|REF|OBJECT) DATA -- comment interpréter la donnée -- type CDATA #IMPLIED -- type MIME -- >
Balise de début : obligatoire, Balise de fin : interdite
Définition des attributs
L'élément PARAM spécifie un ensemble de valeurs qui peuvent ête requises pour paramétrer l'exécution d'un système de visualisation. Ces éléments PARAM peuvent apparaître en nombre quelconque au début d'une déclaration d'OBJECT. Il est alors supposé que le système de visualisation est capable decomprendrela sémantique des noms et des valeurs qui lui sont passées. Les noms et les valeurs sont passés à l'objet par son entrée standard.
Nous revenons ici à notre exemple de l'horloge. Cette fois-ci, nous supposons que le visualisateur (l'horloge) reconnait deux paramètres d'exécution qui sont respectivement sa hauteur et sa largeur initiales. Nous prévoyons d'initialiser cette horloge à une taille initiale de 40x40 pixels à l'aide de deux éléments PARAM.
<OBJECT classid="http://www.miamachina.it/analogclock.py"> <PARAM name="height" value="40" valuetype="data"> <PARAM name="width" value="40" valuetype="data"> Cet agent ne sait pas visualiser des applications Python. </OBJECT>
Comme la déclaration de valuetype par défaut d'un élément PARAM est "data", nous pourrions remplacer les précédentes déclarations par :
<PARAM name="height" value="40"> <PARAM name="width" value="40" >
ou :
<PARAM name="height" value="40" data> <PARAM name="width" value="40" data>
(La deuxième forme -- la seule mention de "data" pour l'attribut valuetype -- n'est possible que grâce à la définition DTD de cet attribut.)
Dans les exemples qui suivent, les paramètres d'initialisation sont définis comme étant une ressource extérieure (un fichier GIF). La valeur de l'attribut valuetype vaut de ce fait "ref", et l'attribut value est une URL qui désigne cette ressource.
<OBJECT classid="http://www.gifstuff.com/gifappli" standby="Loading Elvis..."> <PARAM name="Init_values" value="./images/elvis.gif"> valuetype="ref"> </OBJECT>
Notez que nous avons également défini ici l'attribut standby de façon à ce que l'agent puisse afficher un message pendant que le système de visualisation se charge.
Les visualisateurs ou systèmes de visualisation sont localisés par une URLs. Comme il a été vu dans la section traitant des URL, la première partie d'une URL absolue sdésigne quel est le protocole utilisé pour transférer les données pointéespar la partie adresse de l'URL. Pour les documents HTML, ce protocole est pratiquement toujours "http". Certains systèmes de visualisation peuvent être amenés à utiliser d'autres protocoles. Par exemple, lorsque vous invoquez un visualisateur Java, les URL appelées commencent par "java", et pour des applets ActiveX, par "clsid".
Dansl'exemple qui suit, nous insérons une applet java dans un document HTML.
<OBJECT classid="java:program.start"> </OBJECT>
En définissant l'attribut codetype, un agent utilisateur peut décider de télécharger ou non l'application Java selon qu'il sait les exécuter ou non.
<OBJECT codetype="application/octet-stream" classid="java:program.start"> </OBJECT>
Certains composants graphiques nécessitent l'envoi d'informations additionnelles pour identifier laquelle de leurs implémentation doit être récupérée, et où trouver ces informations. Vous pourrez utiliser des chemins d'accès relatifs par rapport à une référence passée au système de visualisation via l'attribut codebase.
<OBJECT codetype="application/octet-stream" classid="java:program.start"> codebase="http://foooo.bar.com/java/myimplementation/" </OBJECT>
L'exemple suivant montre (à l'aide d'un attribut classid) comment accéder à un visualisateur ActiveX via une URL commençant par le protocole propriétaire "clsid". L'attribut data donne la localisation des données à visualiser (une autre horloge, en l'occurence).
<OBJECT classid="clsid:663C8FEF-1EF9-11CF-A3DB-080036F12502" data="http://www.acme.com/ole/clock.stm"> This application is not supported. </OBJECT>
Pour déclarer un système de visualisation de sortie qu'il ne soit pas lancé immédiatement après son chargement par l'agent utilisateur, mentionnez l'attribut booléen declare dans l'élément OBJECT. En même temps, vous devrez identifier votre déclaration en attribuant une valeur pour l'attribut id de l'élément OBJECT laquelle doit être unique dans ce document. Des instanciations ultérieures de cet objet se référeront à cet identifiant.
Un système de visualisation défini par l'attribut declare est instancié à chaque fois que cet OBJECT est référencé par la suite.
Dans l'exemple qui suit, nous déclarons un OBJECT et provoquons son instanciation en le mentionnant comme cible d'un hyperlien. Ainsi, l'objet peut être activé en cliquant sur un texte actif.
<OBJECT declare id="earth_declaration" data="TheEarth.mpeg" type="application/mpeg"> <OBJECT src="TheEarth.gif"> La <STRONG>Terre</STRONG> vu de l'espace. </OBJECT> </OBJECT> ...plus loin dans le document... CLiquer pour voir une animation nette <A href="#earth_declaration"> de la Terre!</A>
L'exemple qui suit montre comment spécifier des paramètres d'exécution qui sont eux-même d'autres objets. Dans cet exemple, nous envoyons un texte (a poème, en fait) à un système hypothétique destiné à mettre en page des poèmes. Le système de visualisation reconnait un paramètre d'exécution nommé "font" (disons, pour afficher le poème dans une certaine police de caractères). La valeur de ce paramètre est elle-même un objet qui inclue (mais n'affiche pas) l'objet "font". La relation entre l'objet "font" et le visualisateur de poèmes est instituée (1) en assignant l'id "tribune" à la déclaration de l'objet "font" (2) puis en appelant cette référence dans l'élément PARAM du visualisateur à l'aide des attributs (with valuetype et value).
<OBJECT declare id="tribune" type="application/x-webfont" data="tribune.gif"> </OBJECT> ...voirle poème KublaKhan.txt ici... <OBJECT classid="http://foo.bar.com/poem_viewer" data="KublaKhan.txt"> <PARAM name="font" valuetype="object" value="#tribune"> <P>vous loupez un très joli visualisateur de poèmes ... </OBJECT>
Les agents utilisateurs qui ne reconnaissent pas l'attribut declare doivent alors représenter le contenu de la déclaration d'OBJECT.
L'attribut align spécifie la position d'un objet par rapport à son "contenant".
Les valeurs suivantes laissent l'objet au coeur du texte :
<!-- Pour éviter tout problème avec les agents utilisateurs en mode texte il sera bon de toujours donner un texte alternatif via l'attribut ALT, et éviter le mapping d'image par le serveur --> <!ELEMENT IMG - O EMPTY -- Embedded image --> <!ATTLIST IMG %attrs; -- %coreattrs, %i18n, %events -- src %URL #REQUIRED -- URL de l'image à inclure -- alt CDATA #IMPLIED -- description textuelle pour les navigateurs non graphiques -- align %IAlign #IMPLIED -- alignement vertical ou horizontal -- height %Pixels #IMPLIED -- hauteur suggérée en pixels -- width %Pixels #IMPLIED -- largeur suggérée en pixels -- border %Pixels #IMPLIED -- largeur de cadre de lien suggérée -- hspace %Pixels #IMPLIED -- gouttière horizontale suggérée-- vspace %Pixels #IMPLIED -- gouttière verticale suggérée -- usemap %URL #IMPLIED -- appel d'une table d'Imagemap côté client -- ismap (ismap) #IMPLIED -- appel d'une table d'Imagemap côté serveur -- >
Balise de début : obligatoire, Balise de fin: interdite
Définition des attributs
Attributs définis par ailleurs
L'élément IMG inclue une image dans le document courant à la position ou sied sa définition. Cependant, nous recommandons l'usage de l'élément OBJECT, plus générique, pour ajouter une telle image dans un document.
Les attributs height et width de cet élément outrepassent la hauteur et la largeur originale de l'image source. Les agents utilisateurs devront opérer la remise à l'échelle appropriée.
Dans un exemple précédent, nous avons défini le lien vers une photo de famille. Ici, nous allons insérer directement la photo dans le document courant.
...texte précédent... Je reviens tout juste de vacances ! Voici une photo de ma famille au lac : <IMG src="http://www.somecompany.com/People/Ian/vacation/family.png" alt="une photo de ma famille au lac.">
Cette inclusion peut également être faite grâce à l'élément OBJECT comme suit :
...texte précédent... Je reviens tout juste de vacances ! Voici une photo de ma famille au lac : <OBJECT data="http://www.somecompany.com/People/Ian/vacation/family.png" type="image/png"> Une photo de famille au lac. </OBJECT>
L'attribut alt définit un texte alternatif à afficher lorsqu'il est impossible de rendre l'image (voir ci-dessous pour plus de détails sur comment définir des textes alternatifs ).
L'attribut align spécifie la position d'un objet par rapport à son "contenant".
Les valeurs suivantes laissent l'objet au coeur du texte :
Deux autres valeurs, left et right, rendent l'image flottante. Elles sont détaillées dans la section traitant des objets flottants.
Interprétations divergentes de align. Les agents utilisateurs actuels n'ont pas tout à fait la même interprétation de l'attribut align. Certains ne prennent en compte sa signification qu'à partir de l'objet, d'autres appliquent son indication sur les deux segments de ligne de chaque côté de l'objet.
<!ELEMENT APPLET - - (PARAM | %inline)*> <!ATTLIST APPLET codebase %URL #IMPLIED -- URL de base optionnelle pour l'applet -- archive CDATA #IMPLIED -- liste d'archives séparées par des virgules -- code CDATA #IMPLIED -- fichier .class de l'applet -- object CDATA #IMPLIED -- fichier d'applet sérialisé -- alt CDATA #IMPLIED -- texte alternatif pour les navigateurs en mode texte seul -- name CDATA #IMPLIED -- permet aux applets de se reconnaître mutuellement -- width %Pixels #REQUIRED -- largeur suggérée en pixels -- height %Pixels #REQUIRED -- hauteur suggérée en pixels -- align %IAlign #IMPLIED -- alignement vertical ou horizontal -- hspace %Pixels #IMPLIED -- gouttière horizontale suggérée -- vspace %Pixels #IMPLIED -- gouttière verticale suggérée -- >
Balise de début : obligatoire, Balise de fin : obligatoire
Définition des attributs
Attributs définis par ailleurs
Cet élément, reconnu par tous les navigateurs compatibles Java, permet aux concepteurs d'inclure une applet Java dans un document HTML. Il est rendu obsolète en HTML 4.0 par l'apparition de l'élément OBJECT, d'usage plus général.
Le texte contenu entre les deux balises APPLET est considéré comme une information alternative destinée aux navigateurs ne supportant pas cet élément, ou qui ne sont pas localement configurés pour accepter l'exécution de code téléchargé. Le contenu doit être ignoré dans tous les autres cas.
L'exemple d'inclusion d'applet Java :
<APPLET code="Bubbles.class" width="500" height="500"> Applet Java qui dessine des bulles animées. </APPLET>
pourra être réécrit ainsi sous sa forme OBJECT :
<OBJECT codetype="application/octet-stream" classid="java:Bubbles.class" width="500" height="500"> Applet Java qui dessine des bulles animées. </OBJECT>
Les paramètres fournissant les valeurs initiales à l'applet pourront être passées via un ou plusieurs éléments PARAM.
L'exemple suivant d'inclusion d'applet Java :
<APPLET code="AudioItem" width="15" height="15"> <PARAM name="snd" value="Hello.au|Welcome.au"> Java applet that plays a welcoming sound. </APPLET>
pourra être réécrit comme suit sous sa forme OBJECT :
<OBJECT codetype="application/octet-stream" classid="AudioItem" width="15" height="15"> <PARAM name="snd" value="Hello.au|Welcome.au"> Applet qui joue un son de bienvenue. </OBJECT>
Par exemple, la ligne suivant incluerait le contenu du fichier piece_to_include.html à l'endroit où est défini l'élément OBJECT.
...texte précédent... <OBJECT data="file_to_include.html"> Erreur : file_to_include.html n'a pas pu être inclus. </OBJECT> ...texte suivant...
Le contenu de la balise OBJECT ne devraêtre affiché que si le fichier spécifié par l'attribut data ne peut être obtenu.
La réaction d'un agent utilisateur à un document qui s'inclurait lui-même n'est pas définie.
Avertissement concernant l'inclusion d'autres fichiers. Faites attentino lors de l'inclusion d'un document HTML défini par une ancre (. Toute la fin du document qui suit l'ancre sera inclue, et il est possible de ce fait que vous récupériez des balises de fermeture "à l'insu de votre plein gré" (pour des éléments tels que BODY, HTML, etc.).
L'élément IFRAME pourra aussi être utilisé pour insérer un cadre de texte dans votre document HTML.
Une Imagemap est créée en associant un objet à la spécification d'un certain nombre de zones géométriques définies par rapport à cet objet.
Il existe deux types d'Imagemap :
Les Imagemaps "clientes" sont toujours utilisées de préférence aux Imagemap "serveur". Une table d'Imagemap cliente est constituée à partir de plusieurs éléments.
Représentation non graphique des Imagemap. Les agents utilisateurs en mode texte pourront rendre les Imagemaps sous forme d'une série de liens hypertextes. Chaque lien pourra être activé par une entrée au clavier.
Définition des attributs
Les coordonnées sont considérées par rapport au coin supérieur gauche de l'objet pris pour origine. Toutes les valeurs sont des longueurs (elles peuvent être exprimées en pixels ou en pourcentage).
L'attribut suivant est particulier à l'élément OBJECT.
Définition des attributs
Dans l'exemple qui suit, nous créons une Imagemap côté client pour l'élément OBJECT en associant des URL à des régions spécifiées par une sérieu d'éléments A.
<OBJECT data="navbar.gif" shapes> <A href="guide.html" shape="rect" coords="0,0,118,28">Access Guide</a> | <A href="shortcut.html" shape="rect" coords="118,0,184,28">Go</A> | <A href="search.html" shape="circ" coords="184,200,60">Search</A> | <A href="top10.html" shape="poly" coords="276,0,373,28,50,50,276,0">Top Ten</A> </OBJECT>
Si l'élément OBJECT mentionne un attribut shapes, alors l'agent utilisateur doit interpréter le contenu de la clause pour prendre en compte les éventuelles ancres.
De deux régions (ou plus) qui se recoupent, celle qui est définie en premier est prioritaire (c-à-d., répond à la sollicitation de l'utilisateur).
<!ELEMENT MAP - - (AREA)*> <!ATTLIST MAP %coreattrs; -- id, class, style, title -- name CDATA #IMPLIED >
Balise de début : obligatoire, Balise de fin : obligatoire
<!ELEMENT AREA - O EMPTY> <!ATTLIST AREA shape %Shape rect -- contrôle de l'interprétation des ccordonnées -- coords %Coords #IMPLIED -- liste de coordonnées séparée par virgules -- href %URL #IMPLIED -- cette zone réagit comme un lien hypertexte -- target CDATA #IMPLIED -- dans quel cadre visualiser la ressource liée -- nohref (nohref) #IMPLIED -- cette zone n'a pas de réaction (à utiliser lorsque la zone "défault" est active -- alt CDATA #REQUIRED -- description pour les navigateurs en mode texte -- tabindex NUMBER #IMPLIED -- position dans l'ordre de tabulation -- >
Balise de début : obligatoire, Balise de fin : interdite
Définition des attributs
Attributs définis par ailleurs
Plusieurs éléments (OBJECT, IMG, and INPUT) acceptent l'attribut suivant pour spécifier une association avec une Image map côté client.
Définition des attributs
Nous pourrions réécrire l'exemple précédent en termes de MAP et de AREA. Nous créons de nouveau un élément OBJECT dont le but est d'insérer une image. Nous associons ensuite cet objet à son Imagemap en attribuant la même valeur à l'attribut usemap de l'OBJECT et à l'attribut name de l'élément MAP.
<OBJECT data="navbar1.gif" usemap="#map1"></OBJECT> <MAP name="map1"> <AREA href="guide.html" alt="Access Guide" shape="rect" coords="0,0,118,28"> <AREA href="search.html" alt="Search" shape="rect" coords="184,0,276,28"> <AREA href="shortcut.html" alt="Go" shape=circ coords="184,200,60"> <AREA href="top10.html" alt="Top Ten" shape="poly" coords="276,0,373,28,50,50,276,0"> </MAP>
L'attribut alt définit un texte alternatif au cas où l'image supportant le mapping ne pourrait être affichée (voir ci-après pour plus de détails sur comment spécifier des textes alternatifs).
Note: MAP n'est pas rétrocompatible avec des agents utilisateurs HTML 2.0.
Il n'est possible de définir dImagemap côté serveur que pour l'élément IMG. Pour ce faire, mentionnez l'attribut booléen ismap dans la balise IMG. Les régions ou tables associées doivent être associées via l'attribut usemap.
Lorsque l'utilisateur active une zone de l'image mappée, les coordonénes écran sont envoyées directement au serveur dans lequel le document est stocké. Les coordonnées d'écran sont exprimées en valeurs de pixels d'écran. Pour une référence formelle sur la définition normalisée du pixel et comment le dimensionner, consultez la référence [CSS1].
Le point cliqué est transmis au serveur somme suit. L'agent utilisateur déduit une nouvelle URL à partir de l'URL spécifiée par l'attribut href en y adjoignant le caractère '?' suivi des coordonnées x et y séparées par une virgule. Le lien défini par cette nouvelle URL est activé. Par exemple, dans l'exemple précédent, en supposant que l'utilisateur ait cliqué à la position définie par x=10, y=27 alors l'URL activée serait "/cgibin/navbar.map?10,27".
Dans l'exemple suivant, la première région définie est un lien côté client. La seconde définit un lien traité côté serveur, sans qu'une forme de zone spécifique ne soit indiquée (ceci est possible par l'utilisation de la forme "default" de l'attribut shape). Comme les deux régions se chevauchent, la région définie côté client prend la priorité lors d'un clic dans la zone commune. Ainsi, un clic dans toute zone hors du rectangle est envoyé au serveur.
<OBJECT data="game.gif" shapes> <A href="guide.html" shape="rect" coords="0,0,118,28"> Rules of the Game</A> <A href="http://www.acme.com/cgi-bin/competition" ismap shape="default"> Guess the location</a> </OBJECT>
Les attributs height et width donen aux agents utilisateurs une "idée" de la taille d'une image ou d'un objet de sorte qu'ils puissent réserver la place nécessaire dans la mise en page et commencer à afficher le document pendant que les images arriventpar le réseau. ces deux attributs acceptent des valeurs du type longueur. Les agents utilisateur devront mettre les images et les objets à l'échelle pour respecter ces contraintes.
Les attributs vspace et hspace spécifient la largeur (et respectivement hauteur) d'espace vide à insérer à gauche et à droite (respectivement en haut et en bas) de l'image ou de l'objet. La valeur par défaut de ces attributs n'est pas spécifiée, mais sera en général faible mais non nulle. Ces deux attributs acceptent des valeurs de type longueur.
Les images ou objects contenues dans un élément A sont parfois encadrés. L'attribut border spécifie la largeur de ce cadre.
Définitiobn des attributs
Plusieurs éléments non textuels (IMG, AREA, APPLET, et INPUT) permetent aux auteurs de spécifier un texte alternatif à utiliser lorsque l'élément ne peut être visualisé correctement. Donner ce texte alternatif peut grandement aider les utilisateurs démunis de ressources graphiques, les utilisateurs dont les navigateurs ne supprotent pas les formulaires, les applications pour personnes non ou malvoyantes, les synthétiseurs vocaux, ou simplement celles des personnes qui ont désactivé les fonctions graphiques de leur navigateur pour des questions de performances de chargement, etc.
Bien que ce texte alternatif puisse être très utile, il faudra en user avec circonspection. Les auteurs pourront suivre les recommandations suivantes :
L'attribut alt est obligatoire pour l'élément AREA, mais optionnel pour les éléments IMG, APPLET, et INPUT.
Lorsqu'un auteur ne mentionne pas d'attribut alt pour les éléments IMG ou APPLET, les agents utilisateurs en déduiront un, calculé en appliquant dans l'ordre les principes suivants :
Lorsque'un auteur ne mentionne pas l'attribut alt pour l'élément INPUT, les agents utilisateur déduiront un texte alternatif par défaut, en appliquant dans cet ordre les principes suivants :