Inclusions 

Sommaire

  1. Inclusion d'un objet: l'élément OBJECT
    1. Initialisation d'un objet : l'élément PARAM
    2. Déclarations et instantiations d'objets
    3. Alignement d'objets
  2. Inclusion d'une image : L'élément IMG
    1. Alignement des images
  3. Inclusion des applets : L'élément APPLET
  4. Inclusion de documents HTML dans un autre document HTML
  5. Inclusion d'une Imagemap dansun document HTML
    1. Imagemaps côté client
    2. Imagemaps côté client par MAP et AREA
    3. Imagemaps côté serveur
  6. Présentation visuelle des images, objets, et applets
  7. Comment spécifier un texte alternatif
Les sections qui suivent expliquent les différents mécanismes qu'offre HTML pour inclure une ressource dans un document. Le HTML permet aux auteurs de pages d'inclure des objets, des images, des applets, des fichiers, et des définitions de mapping d'image.

Inclusion d'un objet : L'élément OBJECT

<!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

codebase = url
Cet attribut spécifie le chemin d'accès de base utilisé pour exprimer des URL relatives spécifiées par classid (c-à-d., l'URL qui sert de base lorsque l'objet requiert du code). Si cet attribut n'est pas spécifié, sa valeur par défaut est le chemin d'accès du document courant. Tous les systèmes de visualisation de d'objets ne demandent pas d'expliciter cet attribut.
classid = url
Cet attribut spécifie l'adresse d'un système de visualisation par une URL.
codetype = cdata
Cet attribut spécifie le type MIME (Internet Media Type) (voir [MIMETYPES]) des données attendues par le système de visualisation défini par classid. Il est optionnel mais recommandé lorsque classid est explicité, car il permet d'éviter le chargement de ressources ou parties de ressources non supportées par l'agent utilisateur. Si aucune valeur explicite ne lui est donnée, sa valeur par défaut est alors celle définie pour l'attribut type.
data = url
Cet attribut indique l'emplacement des données à visualiser.
type = cdata
Cet attribut spécifie le type MIME (voir [MIMETYPES]) des données spécifiées par data. Il est optionnel mais recommandé lorsque l'attribut data est explicité car il permet d'éviter à l'agent utilisateur le chargement de ressources ou parties de ressources non supportées. Si aucune valeur explicite n'est donnée pour cet attribut, l'agent utilisateur cherchera a déterminer par lui-même le type des données à visualiser.
declare
Lorsque cet attribut est présent, ce booléen permet de spécifier que la présente définition de l' OBJECT n'est qu'une déclaration. L'objet devra être instancié par une définition d'OBJECT ultérieure, se référant à cette déclaration.
standby = cdata
Cet attribut définit un message qu'un agent utilisateur pourra afficher en attendant que le code du visualiseur et les données à visualisées ne soient chargées.
align = texttop|middle|textmiddle|baseline|textbottom|left|center|right
Obsolète. Cet attribut spécifie la position de l'objet dans le contexte qui l'englobe. Les valeurs admises sont détaillées dans la section traitant de l'alignement des objets.

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 :

  1. L'agent utilisateur doit d'abord essayer d'implanter le système de visualisation spécifié par les attributs de l'élément.
  2. Si l'agent ne peut implanter ce système pour une raison ou une autre (pas configuré pour, manque de ressources, mauvaise architecture, etc.), il devra essayer de visualiser le contenu de l'élément (comme il peut).

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é.

Initialisation des objets : L'élément PARAM

<!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

name = cdata
Cet attribut définit le nom d'un paramètre passé à l'objet, en supposant que l'objet qui le reçoit soit en ùmesure de le reconnaître. La sensibilité à la casse (minuscule/majuscule) de ce paramètre dépend de l'implémentation interne de l'objet.

CdT : Il est, pour des raisons de cohérence, toujours conseillé aux implémenteurs d'assurer l'indépendance à la casse des paramètres dans le code de leurs objets, ce afin d'être cohérent avec le fonctionnement du HTML

value = cdata
Cet attribut définit la valeur du paramètre spécifié par l'attribut name. Les valeurs n'ont en elles-mêmes aucune signification au niveau du HTML ; leur signification est déterminée par l'objet en question.
valuetype = data|ref|object
Cet attribut spécifie le type de l'attribut value. Les valeurs possibles sont :
  • data : La valeur spécifiée par l'attribut value sera directement passée au système de visualisation en tant que chaîne de caractères, une fois résolue toute inclusion d'expressions caractères ou numériques. Il s'agira alors de la valeur par défaut de cet attribut, et peut apparaître seule dans la balise de début de cet élément.
  • ref : La valeur spécifiée par l'attribut value est une URL qui désigne une ressource réseau ou sont stockées les paramètres d'exécution. L'URL doit être passée au système de visualisation telle que, c'est-à-dire, non résolue.
  • object : La valeur spécifiée par l'attribut value est un fragment (#nom) qui désigne une déclaration d'OBJECT du même document. ans ce cas, la définition d'OBJECT visée doit être identifiable par son attribut id.
type = cdata
Cet attribut définit le type MIME (voir [MIMETYPES]) de la ressource désignée par l'attribut value uniquement dans le cas où valuetype vaut "ref". Cet attribut désigne alors, à l'usage de l'agent utilisateur, le type de variables que ce dernier trouvera à l'URL donnée par value.

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>

Déclarations et instanciations d'objets

Les exemples précédants n'ont fait qu'illustrer des définitions isolées d'objets. Lorsqu'un document doit contenir plus d'une seule instance d'un même objet, il est possible de séparer la déclaration de l'objet de ses instanciations. Ce faire présente un certain nombre d'avantages :

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.

Alignement des objets

L'attribut align est devenu obsolète en HTML 4.0 grâce à l'apparition des feuilles de style.

CdT : Néanmoins encore largement utilisé sur le Web, dû à la prédominance actuelle des implémentations en HTML 3.2.

L'attribut align spécifie la position d'un objet par rapport à son "contenant".

Les valeurs suivantes laissent l'objet au coeur du texte :

Trois autres valeurs, left, center, et right, rendent l'objet flottant. Elles sont présentées dans la section sur les objets flottants.

Inclusion d'une image : L'élément IMG

<!-- 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

src = url
Cet attribut spécifie la localisation de la ressource image sur le réseau. Les exemples de formats notoires d'image GIF, JPEG, et PNG ne manquent pas.
align = bottom|middle|top|left|right
Obsolète en HTML 4.0. Cet attribut définit la position de l'image par rapport à son contenant. Ses valeurs possibles sont décrites dans la section sur l'alignement des images.

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 ).

Alignement des images

L'attribut align est devenu obsolète en HTML 4.0 grâce à l'apparition des feuilles de style.

CdT : Néanmoins encore largement utilisé sur le Web, dû à la prédominance actuelle des implémentations en HTML 3.2.

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.

Inclusion d'une applet : L'élément APPLET

APPLET est désormais obsolète.
<!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

codebase = url
Cet attribut définit l'URL de base pour l'applet. Si cet attribut n'est pas défini alors l'URL de base est considérée être celle du document courant.
code = cdata
Cet attribut définit le nom de la ressource qui contient le code compilé de la classe dérivée de la classe Applet. Sa valeur est un nom relatif à l'URL de base.
name = cdata
Cet attribut donne un nom à cette instance précise d'applet, ce qui permet à de multiples applets de même type et sur la même page de se reconnaître (et communiquer entre elles).
width = length
Cet attribut spécifie la largeur initiale de la zone d'affichage attribuée à l'applet à son initialisation (hors toute zone graphique dans des fenêtres ou boîtes de dialoges construites par l'applet elle-même).
height = length
Cet attribut spécifie la hauteur initiale de la zone d'affichage attribuée à l'applet à son initialisation (hors toute zone graphique dans des fenêtres ou boîtes de dialoges construites par l'applet elle-même).
align = bottom|middle|top|left|right
Cet attribut définit la position de l'applet par rapport à son "contenant". Les valeurs possibles sont décrites dans la section traitant de l'alignement des images.
archive = cdata
Cet attribut donne une liste (séparée par des virgules) spécifiant un ou plusieurs fichiers archives contenant des classes et autres ressoruces qui doivent être "préchargés". Les classes sont chargées via une instance d'un objet AppletClassLoader et du codebase donné. Le chargement anticipé de ressources et des classes peut considérablement améliorer les performances des applets.
object = cdata
Cet attribut indique le nom de la ressource contenant une représentation sérialisée d'une applet. L'applet sera "desérialisée". La méthode init() ne sera par contre pas invoquée ; la méthode start() le sera. Les atributs en vigueur lorsque l'objet original a été sérialisé ne sont pas restaurés. Par contre, tous les attributs qui ont été passés à cette instance d'applet seront disponibles à l'intérieur de celle-ci.

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>

Inclusion de HTML dans un autre document HTML 

Parfois, plutôt que d'établir un lien vers un autre document, il peut être plsu judicieux d'inclure le contenu d'un document HTML dans un autre document HTML. Nous recommandons d'utiliser un élément OBJECT dont on aurait défini l'attribut data à cette fin.

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.

Inclusion d'une Imagemap dans un document HTML

Une table Imagemap permet aux auteurs de pages HTML de spécifier des zones actives sur une image ou un objet et assiger à ces dernières des actions a effectuer (ex., récupérer un document, exécuter une application, etc.)

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.

Imagemaps côté client

Les attributs suivant sont définis pour plusieurs élements (A et AREA). Ils permettent aux auteurs de définir des zones géométriques de formes diverses et de leur associer des URL.

Définition des attributs

shape = default|rect|circle|poly
Cet attribut spécifie la forme de la zone. Valeurs possibles :
  • default : Toute zone en dehors de toute autre définition.
  • rect : Définit une zone rectangulaire.
  • circle : Définit une zone circulaire.
  • poly : Définit une zone polygonale.
coords = length-list
Cet attribut donne la liste de toutes les positions géométriques nécessaires pour définir la forme. Le nombre et l'ordre des coordonnées dépend de la zone à définir. Les combinaisons possibles sont :
  • rect : x-gauche, y-haut, x-droit, y-bas.
  • circle : x-centre, y-centre, rayon.
  • poly : x1, y1, x2, y2, ..., xN, yN.

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

shapes
Lorsque mentionné, cet attribut booléen spécifie que l'objet en cours de définition est une Imagemap. Le contenu de l'élément OBJECT spécifiera alors les régions actives.

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).

Imagemaps clientes par des éléments MAP et AREA

Les éléments MAP et AREA constituent une voie alternative pour fabriquer des Imagemaps clientes.
<!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

nohref
Lorsque mentionné, cet attribut booléen indique que cette région est inactive et n'a pas de lien associé.

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

usemap = url
Cet attribut spécifie la loclaisation d'une table Imagemap définie par des clauses MAP et AREA.

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.

Imagesmaps côté serveur

Les Imagemaps côté serveur peuvent être intéressantes à exploiter lorsque la définition géométrique est trop compliquée pour être définie par les mécanismes côté client.

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>

Représentation visuelle des images, objets, et applets

Tous les attributs des éléments IMG et OBJECT concernant l'aspect ou le placement visuel des objets sont désormais obsolète en HTML 4.0 grâce à l'utilisation des feuilles de style.

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.

Comment définir un texte alternatif 

Définitiobn des attributs

alt = cdata
A l'attention de tous les agents utilisateur qui ne peuvent afficher des images, des formulaires, ou des applets, cet attribut donne un texte alternatif. La langue de ce texte alternaztif peut être spécifiée par l'attribut lang.

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 :

  1. Si l'attribut title a été défini, sa valeur sera utilisée comme texte alternatif.
  2. Autrement, si l'en-tête HTTP de l'objet inclus contient une information de titre, cette information sera prise comme texte alternatif.
  3. Autrement, si l'objet inclus contient des champs textuels (ex., des images GIF contiennent certains champs textuels), l'information extraite de ces champs peut servir de texte alternatif. Comme certains agents utilisateur devrotn parfois récupérer la totalité d'un objet avant de pouvoir en dégager les élements textuels, on admet que l'agent utilisateur doive se satisfaire de la solution la plus économique (ex., en faisant appel à la négociation de contenu).
  4. Autrement, en l'absence de toute autre information, les agents utilisateurs pourront toujours exploiter le nom du fichier (sans l'extesion) comme texte alternatif.

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 :

  1. Si l'attribut title a été renseigné, sa valeur sera utilisée comme texte alternatif.
  2. Autrement, si l'attribut name a été renseigné, sa valeur sera utilisée comme texte alternatif.
  3. Autrement (pour les boutons submit et reset), c'est la valeur de l'attribut type qui sera utilisée comme texte alternatif.