précédent   suivant   sommaire  

6. Les modules de lien de SMIL 2.0

Rédacteurs
Lloyd Rutledge (Lloyd.Rutledge@cwi.nl), (CWI)
Aaron Cohen (aaron.m.cohen@intel.com), (Intel)

Table des matières

6.1 Introduction

Les modules de lien de SMIL 2.0 définissent les attributs et les éléments du document SMIL 2.0 pour la navigation hyperlien. Ce sont des navigations au travers de la présentation de SMIL qui peuvent être déclenchées par interaction de l'utilisateur ou par d'autres événements déclencheurs, tels que des événements temporels. SMIL 2.0 n'offre que des éléments de lien en-ligne. Les liens sont limités aux liens uni-directionnels (i.e., tous les liens ont exactement une source et une destination).

Les modules de lien de SMIL 2.0 sont nommés LinkingAttributes, BasicLinking et ObjectLinking. Le module LinkingAttributes inclut un ensemble d'attributs employés pour fournir la sémantique des liens SMIL aux éléments de lien. Le module BasicLinking inclut les éléments de lien de SMIL 2.0 eux-mêmes. Le module ObjectLinking inclut des mécanismes de lien optionnels supplémentaires qu'un profil de langage peut souhaiter inclure. Notez que le module BasicLinking inclut explicitement les attributs du module LinkingAttributes sur ses éléments.

6.2 Les relations avec les autres formats XML en rapport avec les liens

6.2.1 Les relations avec XPointer

XPointer [XPTR] permet aux composants des documents XML d'être adressés en fonction de leur placement dans la structure XML plutôt que par leur identifiant unique. Ceci permet de référencer n'importe quelle partie d'un document XML sans avoir à modifier ce document. Sans XPointer, le pointage dans un document peut nécessiter de lui ajouter des identifiants uniques, ou d'insérer des éléments spécifiques dans le document, telle qu'une ancre nommée en HTML. Les XPointer sont mis dans la partie de l'identifiant de fragment d'une valeur d'attribut URI [URI]. La spécification SMIL 2.0 permet mais n'exige pas que les agents utilisateurs soient capables de traiter les XPointer en valeurs d'attribut URI de SMIL 2.0.

6.2.2 Les relations avec XLink

Dans la mesure du possible, les constructions des liens SMIL ont les mêmes noms d'élément, d'attribut et de valeur que les constructions XLink [XLINK] errata-E28. Ceci facilite l'apprentissage de l'écriture de liens dans le code dans les deux formats : les auteurs familiers avec XLink peuvent apprendre plus rapidement les liens SMIL, et vice-versa. Cela facilite aussi la transformation en code SMIL et la reconnaissance en tant que code XLink une fois que XLink sera reconnu comme une recommandation et quand les mécanismes de transformation appropriés seront disponibles errata-E27. Cependant, les attributs des liens SMIL sont distincts des constructions XLink et font partie d'un espace de nommage séparé. En utilisant le mécanisme de modularisation de SMIL, ces constructions ne sont pas dans l'espace de nommage XLink mais dans les espaces de nommage définis dans la spécification de SMIL 2.0.

6.2.3 Les relations avec XML Base

Les profils SMIL peuvent utiliser XML Base [XMLBase]. Le profil de langage SMIL 2.0, par exemple, inclut la gestion de XML Base. Quand XML Base est incorporé à un profil, les déclarations XML Base s'appliquent aux valeurs d'attribut URI de SMIL utilisées dans les documents de ce profil. Ces attributs incluent l'attribut href du module BasicLinking de SMIL et l'attribut src du module BasicMedia de SMIL.

6.2.4 Les relations avec XHTML

Les noms des éléments, les noms des attributs et les valeurs des attributs des constructions de lien SMIL sont, dans la mesure du possible, les mêmes que les constructions dans XHTML [XHTML11] avec un comportement de lien correspondant. Ceci facilite l'apprentissage et l'écriture dans les deux langages et évite les confusions. Ça peut également faciliter le traitement des constructions de lien des deux langages, comme XLink une fois que le format sera reconnu. Les constructions de lien dans SMIL, cependant, sont sujets aux espaces de nommage définis dans SMIL 2.0, et non à un quelconque autre espace de nommage lié à XHTML.

6.3 Les liens dans les documents SMIL 2.0

Les modules de lien de SMIL 2.0 gèrent les identifiants de fragment de nom et le connecteur « # ». Un morceau de fragment est une valeur id qui identifie un des éléments dans le document SMIL référencé. Avec cette construction, SMIL 2.0 gère des localisateurs comme c'est couramment utilisé en HTML (c'est-à-dire, il utilise des localisateurs de la forme "http://www.example.org/some/path#anchor1"), à la différence que les valeurs sont des identifiants uniques et non les valeurs des attributs "name". Naturellement, ce type de lien peut seulement cibler les éléments qui ont un attribut de type ID.

Les liens utilisant des identifiants de fragment permettent aux auteurs de coder des liens d'une présentation SMIL 2.0 au départ d'un élément particulier plutôt qu'au début de sa présentation. Si un lien contenant une part d'un fragment est suivi, la présentation devrait commencer comme si l'utilisateur avait fait une avance rapide de la présentation représentée par le document destination au commencement effectif de l'élément désigné par le fragment. Voir la discussion sur les liens pour la construction de la temporisation dans « Les modules de temporisation et de synchronisation de SMIL 2.0 » pour plus d'information.

Il y a une sémantique spéciale définie pour suivre un lien contenant un morceau de fragment dans un document contenant une temporisation SMIL. Cette sémantique est définie dans « Les modules de temporisation et de synchronisation de SMIL 2.0 ».

6.3.1 La gestion des liens dans les documents imbriqués

En raison de sa nature intégrante, la présentation d'un document SMIL 2.0 peut impliquer d'autres applications (non-SMIL) ou modules d'extension. Par exemple, un agent utilisateur SMIL 2.0 peut utiliser un module d'extension HTML pour afficher une page HTML incorporée. Vice-versa, un agent utilisateur HTML peut utiliser un module d'extension SMIL pour afficher un document SMIL 2.0 incorporé dans une page HTML. Notez que ceci est seulement une des méthodes gérées pour intégrer SMIL 2.0 et HTML. Une alternative est d'utiliser l'approche du langage fusionné. Voir « Les modules SMIL 2.0 » pour plus de détails.

Dans des présentations imbriquées, des liens peuvent être définis par des documents à différents niveaux et des conflits peuvent surgir. Dans ce cas, le lien défini par le document contenant devrait avoir la priorité sur le lien défini par l'objet incorporé. Notez que ceci pourrait exiger une communication entre l'agent utilisateur et le module d'extension, des implémentations SMIL 2.0 peuvent choisir de ne pas se conformer à cette recommandation.

Si un lien est défini dans un document SMIL 2.0 incorporé, l'activation du lien affecte seulement le document SMIL 2.0 incorporé.

Si un lien est défini dans un document non-SMIL qui est incorporé dans un document SMIL 2.0, l'activation du lien peut seulement affecter la présentation du document incorporé et non la présentation du document SMIL 2.0 contenant. Cette restriction pourra être révisée dans les futures versions de SMIL.

6.3.2 La gestion des erreurs

Quand un lien d'un document SMIL 2.0 contient un identifiant de fragment non-résoluble ( « lien incertain ») parce qu'il identifie un élément qui n'est pas réellement une partie du document, le logiciel SMIL 2.0 devrait ignorer l'identifiant de fragment et commencer à jouer à partir du début du document.

Quand un lien d'un document SMIL 2.0 contient un identifiant de fragment qui identifie un élément qui est le contenu d'un élément switch, le logiciel SMIL 2.0 devrait interpréter ce lien comme allant plutôt vers l'élément switch ancêtre le plus externe. En d'autres termes, le lien devrait être considéré comme ayant accès à l'élément switch ancêtre qui n'est pas lui-même contenu dans un switch.

6.4 Le module LinkingAttributes de SMIL 2.0

Le module LinkingAttribues de SMIL 2.0 définit plusieurs attributs qu'un profil de langage peut inclure dans ses éléments de lien pour ajouter une sémantique de lien SMIL à ces éléments. Les éléments du module BasicLinking incluent explicitement ces attributs. Ces attributs peuvent être appliqués pour lier des éléments d'autres espaces de nommage, si cela est permis par le profil du langage.

sourceLevel
Cet attribut règle le volume sonore relatif des objets médias dans la présentation contenant le lien lorsque le lien est suivi. Cet attribut admet des valeurs en pourcentage non-négatives. Les unités de l'attribut sourceLevel sont conformes à celle décrites pour l'attribut soundLevel des modules de disposition de SMIL 2.0 et les niveaux sonores sont modifiés de la même manière. L'application du contrôle de volume sourceLevel est cumulative avec tout contrôle de volume propre du média (tel que l'attribut soundLevel) dans la présentation contenant le lien. Quand l'affichage de la ressource de destination se termine, l'effet de l'attribut soundLevel sur la présentation d'origine devrait être retiré. La valeur par défaut est "100%".
destinationLevel
Cet attribut règle le volume sonore relatif de l'objet média dans la ressource distante quand le lien est suivi. Cet attribut admet des valeurs en pourcentage non-négatives. L'attribut destinationLevel est appliqué au volume sonore normal ou intrinsèque du média de destination, et par conséquent est relatif au volume que le média utiliserait sans application de l'attribut destinationLevel. Les unités de l'attribut destinationLevel sont conformes à celles décrites pour l'attribut soundLevel des modules de disposition de SMIL 2.0, et les niveaux sonores sont modifiés de la même manière. L'application du contrôle de volume destinationLevel est cumulative avec tout contrôle de volume propre du média (tel que l'attribut soundLevel) spécifié par la ressource distante. La valeur par défaut est "100%".
sourcePlaystate
Cet attribut contrôle le comportement temporel de la présentation contenant le lien quand le lien est activé. Il peut prendre les valeurs suivantes :
  • play : Quand le lien est activé, la présentation contenant le lien continue d'être jouée ;
  • pause : Quand le lien est activé, la présentation contenant le lien se met en pause. Quand l'affichage de la ressource de destination se termine, la présentation d'origine devrait recommencer à être jouée ;
  • stop : Quand le lien est activé, la présentation contenant le lien s'arrête. C'est-à-dire, elle est remise au début. L'arrêt de la ressource de destination ne fera pas continuer ni ne relancera la présentation d'origine.
La valeur de l'attribut show peut déterminer la valeur par défaut de l'attribut sourcePlaystate ou surclasser sa valeur d'attribution. En général, l'attribut show a la priorité sur l'attribut sourcePlaystate. Les règles de l'impact de show sur sourcePlaystate sont :
  • Si l'attribut show est fixé à la valeur new, alors la valeur par défaut de l'attribut sourcePlaystate est play ;
  • Si l'attribut show est fixé à la valeur replace ou à la valeur dépréciée pause, alors la présentation se comporte comme si l'attribut sourcePlaystate avait été fixé à pause. Toute attribution de l'attribut sourcePlaystate est ignorée.
Notez que la définition de ce qui constitue l'achèvement d'une ressource doit être définie dans le profil de langage ou peut dépendre de l'implémentation. Des définitions typiques interviendraient quand l'utilisateur ferme la fenêtre d'affichage ou quand un média continu se termine.
destinationPlaystate
Cet attribut contrôle le comportement temporel de la ressource externe (habituellement identifiée par l'attribut href) quand le lien est suivi. Il s'applique seulement quand cette ressource est un objet média continu. Il peut prendre les valeurs suivantes :
  • play : Quand le lien est activé, la destination du lien est jouée ;
  • pause : Quand le lien est activé, la destination du lien est affichée dans un état de pause à l'endroit représenté par la valeur de l'attribut href.

La valeur par défaut est play.

show
Cet attribut indique comment gérer l'état courant de la présentation au moment où le lien est activé. Les valeurs suivantes sont autorisées :
  • new : La présentation de la ressource de destination commence dans un nouveau contexte, sans affecter la ressource de source. Si la présentation contenant le lien et celle contenant la ressource distante contiennent toutes les deux un média audio, les deux sont jouées en parallèle ;
  • pause : Cette valeur est dépréciée en faveur du paramétrage de l'attribut show à new et de l'attribut sourcePlaystate à pause ;
  • replace : La présentation courante est mise en pause dans son état courant et est remplacée par la ressource de destination. Si le lecteur propose un historique, la présentation de la source reprend à partir de l'état dans lequel elle s'était arrêtée quand l'utilisateur revient vers elle. La valeur par défaut de sourcePlaystate est pause quand l'attribut show a la valeur replace. Si la destination du lien est dans le même document que cet élément de lien, alors toute attribution de l'attribut sourcePlaystate de cet élément est ignorée, et le lien est traité comme si la valeur de sourcePlaystate était stop. Pour plus de discussion à propos de l'hyperlien dans le document courant, voir la section « Les hyperliens et la temporisation » des modules de temporisation et de synchronisation de SMIL 2.0.

La valeur par défaut de show est replace.

external
Cet attribut définit si la destination du lien devrait être ouverte par l'application courante ou par une application externe. Une valeur de true ouvrira le lien dans une application externe définie par le système pour gérer ce type de média. Une valeur de false ouvrira la destination dans l'application courante ; cependant, si l'application courante ne gère pas le type du média référencé, alors elle devrait essayer de jouer le média en utilisant une application externe. Notez que le moyen d'associer des types de média avec des applications externes est dépendant du système et n'est pas défini ici. La valeur par défaut de external est false.
actuate
L'attribut actuate détermine si oui ou non le lien est déclenché par un certain événement ou automatiquement suivi quand sa durée est active. Sa valeur par défaut est onRequest, ce qui signifie que quelque chose doit déclencher le suivi du lien, typiquement une interaction de l'utilisateur. Une valeur à onLoad peut aussi être donnée. Cette valeur indique que le lien est automatiquement suivi quand l'élément de lien devient actif. Pour les éléments de lien contenant une temporisation SMIL, c'est quand la durée active de l'élément de lien commence en réalité, en d'autres termes, quand l'élément associé avec un événement beginEvent est lancé. Ceci signifie qu'un lien SMIL peut être encodé pour être déclenché par tout événement qui peut déclencher le début d'un élément temporisé. Voir « Les modules de temporisation et de synchronisation de SMIL 2.0 » pour plus de détails.

Chacun des attributs suivants a la même syntaxe que les attributs du même nom dans HTML [HTML4] et, quand c'est applicable, la même sémantique :

alt
Cet attribut est défini pour SMIL 2.0 dans « Les modules d'objet média de SMIL 2.0 ». Les recommandations données ici pour l'attribut alt sur les éléments d'objet média s'appliquent aussi bien pour son utilisation dans les éléments de lien.
accesskey
Cet attribut assigne une touche du clavier dont l'appui par l'utilisateur active ce lien. Il a la même signification que l'attribut du même nom dans HTML [HTML4]. Des liens activés par clavier dans des présentations imbriquées restent effectifs quand ils sont incorporés -- c'est-à-dire, si l'utilisateur appuie sur cette touche pendant la présentation SMIL, la navigation s'effectue dans le média incorporé. Les règles pour lever l'ambiguïté sur les liens dans plusieurs objets sont :
  • Les liens par clavier définis dans SMIL dominent sur ceux définis dans le média incorporé ;
  • Quand des éléments de lien SMIL activés simultanément ont la même valeur pour accesskey, alors la priorité est donnée à celui activé le plus tôt, puis à celui défini en premier dans le code SMIL ;
  • Dans les profils dans lesquels les modules de disposition de SMIL 2.0 sont utilisés, le lien dans les objets médias placé dans la région la plus en avant domine, comme défini par le « niveau d'empilement » dans les modules de disposition de SMIL 2.0 ;
  • Les objets médias pour lesquels aucune région n'est assignée sont supposés être plus en avant dans le niveau d'empilement que toutes les régions des médias assignés. Ceci offre la possibilité d'objets médias ayant une entrée au clavier, comme les livres parlants contenant des liens hypertextes pour les mal-voyants.
tabindex
Cet attribut fournit la même fonctionnalité que l'attribut tabindex dans HTML [HTML4]. Il spécifie la position de l'élément dans l'ordre de tabulation pour le document courant. L'ordre de tabulation définit l'ordre dans lequel les éléments recevront le focus quand l'utilisateur navigue via le clavier. À tout instant particulier, seuls les éléments ayant un plan de montage chronologique actif sont pris en compte dans l'ordre de tabulation. Les éléments inactifs devraient être ignorés pour l'ordre de tabulation.
Quand un élément d'objet média a un attribut tabindex, alors son index de tabulation ordonné est inséré dans l'index de tabulation SMIL à l'endroit spécifié par la valeur de l'attribut tabindex de l'objet média. Ceci suppose que le média a son propre index de tabulation, tels que les documents HTML incorporés avec des attributs tabindex. Ceci permet à tous les points commençant un lien dans une présentation SMIL d'avoir une place dans la liste ordonnée pour être navigués par tabulation, incluant ceux des présentations incorporées.
target
Cet attribut définit soit l'environnement d'affichage existant dans lequel le lien devrait être ouvert (e.g., une région SMIL, une frame HTML ou une autre fenêtre), soit déclenche la création d'un nouvel environnement d'affichage avec le nom donné. Sa valeur est l'identifiant de l'environnement d'affichage. Si aucun environnement d'affichage actif en cours n'a cet identifiant, un nouvel environnement d'affichage est ouvert et on lui assigne l'identifiant de la cible. Quand une présentation utilise différents types d'environnement d'affichage (e.g. des régions SMIL et des frames HTML), l'espace de nommage des identifiants est partagé entre ces différents types d'environnements d'affichage. Par exemple, on ne peut pas utiliser un attribut target avec une valeur "foo" deux fois dans un document, qui pointe une fois vers une frame HTML puis vers une région SMIL. Si l'élément a un attribut show et un attribut target en même temps, l'attribut show est ignoré.

Exemples

Ces exemples sont codés dans le profil de langage SMIL 2.0.

Exemple 1

Cet exemple montre l'utilisation des attributs target et accesskey. La moitié supérieure de l'affichage montre une image. Si l'utilisateur clique sur l'image, une présentation SMIL est jouée dans la moitié inférieure de l'affichage. Il se produit la même chose si l'utilisateur appuie sur la touche « a ».

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  <head>
    <layout>
      <region id="source"	  height="%50"/>
      <region id="destination" top	="%50"/>
    </layout>
 </head>
 <body>
   <a href="embeddedSMIL.smil" target="destination" accesskey="a">
     <img region="source" src="source.jpg" dur="indefinite"/>
   </a>
 </body>
</smil>

Exemple 2

Cet exemple montre l'utilisation de l'attribut tabindex sur les éléments d'un objet média. Le fichier HTML "caption1.html" contient 3 liens, ainsi les 3 premières tabulations focalisent sur ces liens à tour de rôle. Le fichier "caption2.html" contient 4 liens, ainsi les tabulations 4 à 7 focalisent sur eux à tour de rôle. Les tabulations 8 et 9 focalisent sur les deux liens de "v1.mpg". La tabulation 10 focalise sur la présentation entière de "graph.imf". Si un des 9 premiers focus tabulés est activé, alors un lien à l'intérieur d'une des présentations incorporées "caption1.html", "caption2.rtx" ou "v1.mpg" est déclenché, affectant seulement cette présentation. Si le 10ème focus tabulé est activé, alors la présentation SMIL est elle-même affectée, en chargeant http://www.example.org/presentation dans le même espace de présentation.

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <seq>
    <video src="http://www.example.org/graph.imf"/>
    <par>
	<a tabindex="4" href="http://www.example.org/presentation">
	    <video src="http://www.example.org/graph.imf" ... />
	</a>
	<video tabindex="3" src="http://www.example.org/v1.mpg" ... />
	<text tabindex="1" src="http://www.example.org/caption1.html" ... />
	<text tabindex="2" src="http://www.example.org/caption2.html" ... />
    </par>
  </seq>

6.5 Le module BasicLinking de SMIL 2.0

Les éléments de lien permettent la description des liens de navigation entre objets. Les liens SMIL 2.0 fournissent des éléments de lien uni-directionnels, en-ligne.

6.5.1 L'élément a

La fonctionnalité de l'élément a est très similaire à la fonctionnalité de l'élément a dans HTML [HTML4]. Pour la synchronisation, l'élément a est transparent. C'est-à-dire, il n'influence pas la synchronisation de ses éléments enfants. Les éléments a ne peuvent pas être emboîtés. Un élément a doit avoir un attribut href.

Un élément a peut spécifier plusieurs déclencheurs simultanément pour son activation. Par exemple, le contenu de l'élément du média visuel peut être sélectionné par l'utilisateur, ou la touche spécifiée par l'attribut accesskey peut être frappée par l'utilisateur pour déclencher une activation. Dans les cas où plusieurs déclencheurs sont spécifiés, n'importe lequel d'entre eux peut activer le lien. C'est-à-dire, un OU logique est appliqué à la liste des conditions de déclenchement pour déterminer si une activation se produit.

L'activation se produit si une des conditions pour l'activation est rencontrée pendant que l'élément a est actif. Un élément a est sensible si le média ou les éléments qu'il contient sont actifs ou gelés. Voir « Les module de temporisation et de synchronisation de SMIL 2.0 » pour davantage de détails. Pour la temporisation, un élément a est considéré comme un média discret, c'est-à-dire, que la durée intrinsèque est 0. Notez qu'un élément a n'est pas un conteneur de temps et ne contraint pas la temporisation de ses éléments enfants.

Attributs
href
Cet attribut a la même syntaxe et la même sémantique que l'attribut href de HTML [HTML4]. Il contient l'URI de la destination du lien. L'attribut href est requis pour les éléments a.

L'élément a inclut également les attributs définis dans « Le module LinkingAttributes de SMIL 2.0 » :

Contenu de l'élément

Le contenu de l'élément a doit être défini par le profil de langage. En général, on s'attend à ce que les éléments a puissent contenir le média et les éléments de temporisations présents dans le profil de langage comme enfants.

Autres conditions d'intégration

Les profils de langage qui appliquent la temporisation SMIL 2.0 à un élément a doivent donner la valeur par défaut et les valeurs autorisées pour l'attribut fill de l'élément a. Les langages qui appliquent la temporisation SMIL 2.0 à un élément a en souhaitant rester compatible avec SMIL 1.0, tel que le profil de langage SMIL 2.0, doivent mettre auto comme valeur par défaut pour l'attribut fill de l'élément a, et devraient considérer la valeur auto comme fixe. Dans tous les autres cas, à des fins de compatibilité, il est recommandé d'utiliser auto comme valeur par défaut.

Si non spécifié autrement par le profil, la valeur de l'attribut fill de l'élément a est fixée à auto.

Exemples

Ces exemples sont codés dans le profil de langage SMIL 2.0.

Exemple 1

Le lien commence la nouvelle présentation en remplaçant la présentation qui était jouée.

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <a href="http://www.example.org/somewhereelse.smi">
     <video src="rtsp://www.example.org/graph.imf" region="l_window"/>
  </a>

Exemple 2

Le lien commence la nouvelle présentation en plus de la présentation qui était jouée.

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <a href="http://www.example.org/somewhereelse.smi" show="new">
     <video src="rtsp://www.example.org/graph.imf" region="l_window"/>
  </a>

Ceci pourrait permettre à un lecteur SMIL 2.0 de lancer un agent utilisateur HTML :

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <a href="http://www.example.org/somewebpage.html" show="new">
     <video src="rtsp://www.example.org/graph.imf" region="l_window"/>
  </a>

Exemple 3

Le lien commence la nouvelle présentation et met en pause la présentation qui était jouée.

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <a href="http://www.example.org/somewhereelse.smi" show="new" sourcePlaystate="pause">
     <video src="rtsp://www.example.org/graph.imf" region="l_window"/>
  </a>

Exemple 4

L'exemple suivant contient un lien d'un élément dans une présentation A qui pointe vers le milieu d'une présentation B. Ceci jouerait la présentation B en la commençant à partir du début effectif de l'élément ayant la valeur d'attribut id "next".

Présentation A :

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <a href="http://www.example.org/presentationB#next">
    <video src="rtsp://www.example.org/graph.imf"/>
  </a>


Présentation B (http://www.example.org/presentation) :

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <seq>
    <video src="rtsp://www.example.org/graph.imf"/>
    <par>
      <video src="rtsp://www.example.org/timbl.rm" region="l_window"/>
      <video id="next" src="rtsp://www.example.org/v1.rm" region="r_window"/>
	     ^^^^^^^^^
      <text src="rtsp://www.example.org/caption1.html" region="l_2_title"/>
      <text src="rtsp://www.example.org/caption2.rtx" region="r_2_title"/>
    </par>
  </seq>

6.5.2 L'élément area

La fonctionnalité de l'élément a est limitée du fait qu'elle permet seulement d'associer un lien à un objet média complet. L'élément HTML area [HTML4] a démontré qu'il était utile d'associer des liens avec des parties spatiales de l'affichage visuel d'un objet.

La sémantique de l'élément area dans SMIL 2.0 est la même que celle dans HTML du fait qu'elle peut spécifier qu'une partie spatiale d'un objet visuel peut être choisie pour déclencher l'apparition de la destination du lien. L'attribut coords spécifie cette partie spatiale. En revanche, si un élément a est appliqué à un objet visuel, alors il spécifie que n'importe quelle partie visuelle d'un objet peut être choisie pour déclencher l'activation du lien.

L'élément area étend également la syntaxe et la sémantique de l'élément HTML area en fournissant des liens à partir de parties non-spatiales de l'affichage de l'objet média. Quand il est utilisé dans des profils qui incluent les modules de temporisation et de synchronisation de SMIL 2.0, l'élément area permet de séparer un objet en sous-parties temporelles, en utilisant des attributs comme begin et end. Les valeurs des attributs begin et end sont relatives au début de l'objet média conteneur. L'élément area peut permettre de faire d'une sous-partie de l'objet média la destination d'un lien, en utilisant ces attributs temporels et l'attribut id.

L'élément anchor de SMIL 1.0 [SMIL10] est déprécié en faveur de area. Pour cette spécification SMIL 2.0, l'élément anchor devrait être traité comme un synonyme de area.

Attributs

L'élément area peut avoir les attributs listés ci-dessous, avec la même syntaxe que dans HTML [HTML4] et, quand cela est applicable, la même sémantique:

href
Défini dans le module BasicLinking.
alt
Défini dans le module LinkingAttributes.
tabindex
Défini dans le module LinkingAttributes.
accesskey
Défini dans le module LinkingAttributes.
target
Défini dans le module LinkingAttributes.
nohref
Quand il est fixé, cet attribut booléen spécifie que la région n'a pas de lien associé, même si d'autres éléments area pour l'objet média définissent des liens pour celui-ci.
shape
Cet attribut spécifie la forme d'une ancre sur l'écran, et est utilisé avec l'attribut coords. L'attribut SMIL shape a le même comportement que dans HTML [HTML4]. L'objet auquel l'attribut shape est appliqué est le média de l'élément conteneur après que le média a été adapté pour une présentation mais avant qu'il ait été rogné.
coords
Avec l'attribut shape, cet attribut spécifie la position et la forme de l'ancre sur l'écran. Le nombre et l'ordre des valeurs dépendent de la forme définie. Là où SMIL et HTML partagent un comportement d'affichage visuel, l'attribut SMIL coords a le même comportement que dans HTML [HTML4]. La façon dont l'attribut SMIL coords s'applique au comportement de l'affichage visuel est la suivante :
  1. L'origine, le coin supérieur gauche utilisé par l'attribut coords, est dans l'espace d'affichage de l'image, pas la région où elle est visualisée. Un exemple où l'image et le coin supérieur gauche de la région diffèrent est quand les attributs left et top sont utilisés dans les éléments de l'objet média et appliqués à la région ;
  2. Comme dans HTML, les valeurs en pixel de l'attribut coords réfèrent aux pixels de l'espace d'affichage - c'est-à-dire, typiquement, à l'écran de l'utilisateur. Celles-ci peuvent différer des valeurs en pixels de l'image source. Un exemple, elles peuvent différer dans SMIL quand l'attribut fit de l'élément region utilisé n'est pas "hidden" ;
  3. Dans SMIL, il est possible pour une partie de l'image de ne pas être visible. Par exemple, cela peut arriver quand l'attribut fit de l'élément region a la valeur hidden, et que l'image est plus grande en pixels que la région. Dans de tels cas, les règles pour placer des zones actives sur l'image s'appliquent à l'espace de l'écran que l'image occuperait si aucun rognage ne se produisait. Il est particulièrement important de noter pour les valeurs en pourcentage : elles ne s'appliquent pas à l'image rognée mais à l'espace que l'image pourrait occuper si elle n'était pas rognée. Les zones qui, avec cette règle, sont placées en dehors des limites d'affichage ne sont pas actives.
Si plusieurs enfants de l'élément area du même élément d'objet média définissent simultanément des zones actives superposées avec leurs attributs coords, alors, comme dans HTML [HTML4], l'élément area qui est codé le plus tôt dans le document a la priorité.

Les attributs suivants de l'élément area sont propres à SMIL et ne sont pas trouvés dans HTML. Ils sont définis plus haut dans la section traitant des attributs du module LinkingAttributes :

Contenu de l'élément

L'élément area est vide.

Exemples

Ces exemples sont codés dans le profil de langage SMIL 2.0.

1) Décomposition d'une vidéo en segments temporels

Dans l'exemple suivant, la structure temporelle d'une interview dans un bulletin d'information (une caméra prend l'interviewer qui pose une question, puis prend la personne interviewée qui répond) est exposée par fragmentation :

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  <body>
    <video src="video" title="Interview" >
	<area id="firstQ" begin="0s" dur="20s" title="first question" />
	<area id="firstA" begin="first0.end" dur="50s" title="first answer" />
    </video>
  </body>
</smil>

2) Association de liens aux segments spatiaux

Dans l'exemple suivant, l'espace de l'écran occupé par un clip vidéo est partagé en deux sections. Un lien différent est associé à chacune de ces sections.

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  <body>
    <video src="video" title="Interview" >
      <area shape="rect" coords="5,5,50,50"
	      title="Journalist" href="http://www.example.org/> errata-E23
      <area shape="rect" coords="60,5,100,50"
	      title="Subject" href="http://www.example.org/>
   </video>
  </body>
</smil>

3) Association de liens aux segments temporels

Dans l'exemple suivant, la durée d'un clip vidéo est coupée en deux sous-intervalles. Un lien différent est associé à chacun de ces sous-intervalles.

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  <body>
    <video src="video" title="Interview" >
	<area begin="0s" dur="20s" title="first question"
	      href="http://www.example.org/> errata-E23
	<area begin="20s" dur="50s" title="first answer"
	      href="http://www.example.org/>
   </video>
  </body>
</smil>

4) Association de liens aux sous-parties spatiales

Dans l'exemple suivant, deux zones sont assignées dans l'espace de l'écran occupé par un clip vidéo. Un lien différent est associé à chacune de ces zones.

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <video src="http://www.example.org/CoolStuff">
    <area href="http://www.example.org/AudioVideo" coords="0%,0%,50%,50%"/>
    <area href="http://www.example.org/Style"	   coords="50%,50%,100%,100%"/>
  </video>

5) Association de liens aux sous-parties temporelles

Dans l'exemple suivant, la durée d'un clip vidéo est coupée en deux sous-intervalles. Un lien différent est associé à chacun de ces sous-intervalles.

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <video src="http://www.example.org/CoolStuff">
    <area href="http://www.example.org/AudioVideo" begin="0s" end="5s"/>
    <area href="http://www.example.org/Style"	   begin="5s" end="10s"/>
  </video>

6) Saut vers une sous-partie d'un objet

L'exemple suivant contient un lien d'un élément dans une présentation A qui pointe vers le milieu d'un objet vidéo défini dans une présentation B. Ceci jouerait la présentation B en commençant à la 5ième seconde de la vidéo. C'est-à-dire, la présentation commencerait comme si l'utilisateur avait fait une avance-rapide sur la présentation jusqu'au moment auquel le fragment désigné dans la vidéo "CoolStuff" débute.

Présentation A :

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <a href="http://www.example.org/mm/presentationB#tim">
     <video id="graph" src="rtsp://www.example.org/graph.imf" region="l_window"/>
  </a>


Présentation B :

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <video src="http://www.example.org/CoolStuff">
    <area id="joe" begin="0s" end="5s"/>
    <area id="tim" begin="5s" end="10s"/>
  </video>

7) Combinaison des différentes utilisations des liens

L'exemple suivant montre comment les différentes utilisations de liens associés peuvent être combinées.

Présentation A :

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <a href="http://www.example.org/mm/presentationB#tim">
    <video id="graph" src="rtsp://www.example.org/graph.imf" region="l_window"/>
  </a>


Présentation B :

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <video src="http://www.example.org/CoolStuff">
    <area id="joe" begin="0s" end="5s" coords="0%,0%,50%,50%"
	    href="http://www.example.org/"/>
    <area id="tim" begin="5s" end="10s" coords="0%,0%,50%,50%"
	    href="http://www.example.org/Tim"/>
  </video>

8) L'attribut coords et les images redimensionnées

L'exemple suivant montre l'image "example.jpg", qui a une dimension de 100x100 pixels. La zone active de "example1.smil" est l'espace d'affichage en entier, qui est le quart supérieur gauche rogné à partir de l'image d'origine. La zone active de "example2.smil" ne peut pas être déclenchée parce que la zone image correspondante a été rognée.

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  <head>
    <layout>
      <region id=region right="50" bottom="50"/> errata-E23
    </layout>
  </head>
  <body>
    <img src="example.jpg" region="region">
      <area shape="rect" coords="0%,0%,50%,50%" href="example1.smil"/>
      <area shape="rect" coords="50%,50%,100%,100%" href="example2.smil"/>
    </img>
  </body
</smil>

6.6 Le module ObjectLinking de SMIL 2.0

Le contenu de cette section représente les capacités qui peuvent être incluses en option dans le profil de document. Ces fonctionnalités peuvent être incluses, ou pas, dans un profil de langage, mais ce ne devrait pas être des fonctionnalités optionnelles dans un profil. Ce module requière la gestion du module BasicLinking.

6.6.1 L'Attribut fragment

Un profil peut choisir d'inclure l'attribut fragment comme faisant parti de l'élément area. Celui-ci offre à un document hôte la possibilité d'inclure, de manière externe, un lien dans un objet média contenu qui sera traité au niveau du document hôte.

fragment
Cet attribut fait référence à une partie de l'objet média incorporé qui doit agir comme le point de départ de ce lien dans la présentation SMIL. Si l'utilisateur clique sur cette portion de l'affichage du média incorporé, ou l'active autrement, l'agent utilisateur SMIL identifie ceci comme le lien courant qui est activé. Ceci surclasse tout lien qui peut être déclenché dans l'affichage incorporé de l'objet média.

La valeur de l'attribut fragment doit être reconnaissable pour le processus contrôlant l'objet média comme une partie de l'objet que l'on peut activer. Si l'objet média référencé est un fichier HTML, alors la valeur de l'attribut fragment est une ancre nommée dans le fichier HTML. Si l'objet média référencé est un fichier XML, alors la valeur de l'attribut fragment est un identifiant de fragment (la partie qui vient après le « # » d'un URI [URI]).

Prenez par exemple le code SMIL suivant. Il établit une partie de l'affichage comme un menu textuel formaté. Cliquer sur un item dans ce menu déclenche un lien qui pointe amène ailleurs dans la présentation.

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  ...
  <ref src="menu.html" region="menubar">
    <area fragment="menuitem1" href="#selection1"/>
  </ref>

Dans le rendu HTML, il y a une partie du texte affiché qui est balisée comme un area avec le nom "menuitem1". Si l'utilisateur clique dessus pendant la présentation SMIL, un lien actif SMIL est déclenché, naviguant vers la partie du document SMIL avec l'ID "selection1". Si l'élément HTML area nommé "menuitem1" a lui-même un attribut href, alors cet hyperlien est surcleass´ - seul l'hyperlien SMIL est traité. Les éléments HTML area ayant des attributs href sans attribut SMIL fragment associé ne sont pas surclassés. Ces élément HTML area activent les liens de la présentation HTML incorporée quand on clique dessus.

L'utilisation de l'attribut fragment peut surclasser les liens dans le média incorporé. Si l'attribut fait référence à une partie du média incorporé qui est un lien dans ce média, l'activation de ce lien déclenchera la navigation seulement dans la présentation SMIL, et pas dans la présentation incorporée. Par exemple, supposez qu'un attribut fragment fasse référence à une ancre nommée dans un document HTML incorporé. Cet area nommé a un attribut href, en faisant le point de départ d'une navigation potentielle dans la présentation HTML elle-même. Une fois incorporée dans la présentation SMIL, l'activation de cette partie de l'affichage HTML déclenche le lien SMIL et non le lien HTML. Les liens, dans un média incorporé, qui ne sont pas surclassés de cette manière, continuent d'autre part de déclencher une navigation dans l'affichage incorporé quand il est activé. Toute fonctionnalité définie pour le lien SMIL surclassera une quelconque fonctionnalité équivalente définie pour le lien dans le média incorporé. Dans l'exemple précédent, l'attribut alt de l'élément SMIL area surclasserait la balise alt de l'ancre HTML incorporée.

Le référencement effectué par l'attribut fragment s'applique seulement à un niveau de profondeur du média incorporé. Il s'applique seulement aux médias directement incorporés ; il ne s'applique pas aux médias incorporés à leur tour dans un média incorporé lui-même dans une présentation SMIL. Par exemple, considérez une présentation SMIL qui incorpore une seconde présentation SMIL. L'élément de l'objet média de la première présentation qui incorpore la seconde a un élément area avec un attribut fragment. La valeur de cet attribut s'applique seulement au document SMIL incorporé. Il ne s'applique à aucun autre média incorporé dans la seconde présentation SMIL.

Exemples

Ces exemples sont codés dans le profil de langage SMIL 2.0.

Association de liens aux sous-parties syntaxiques

Voici un exemple avec un fichier HTML intégré qui affiche un menu de

  link one
  link two

L'utilisateur peut cliquer sur un des items du menu, et le fichier HTML correspondant est affiché. C'est-à-dire, si l'utilisateur clique sur "link one", le fichier "Link1.html" est affiché dans la région "LinkText". Notez que les liens définis à l'intérieur de la présentation HTML incorporée, ceux de "overridden1.html" et de "overridden2.html" ne sont pas actifs quand ils sont incorporés ici parce qu'ils sont surclassés par les fragments.

Le fichier "menu.html" contient le code :

<html>
...
   <A NAME="link1" HREF="overridden1.html">link one</A><BR/>
   <A NAME="link2" HREF="overridden2.html">link two</A>

Le fichier SMIL 2.0 est :

   <smil xmlns="http://www.w3.org/2001/SMIL20/Language">
    <head>
      <layout>
	<region id="HTML"	 width="100" height="100"/>
	<region id="LinkText" width="100" top   ="100"/>
      </layout>
    </head>
    <body>
      <par>
	<text region="HTML" src="menu.html" dur="indefinite">
	  <area fragment="link1" href="#LinkOne"/>
	  <area fragment="link2" href="#LinkTwo"/>
	</text>
	<excl dur="indefinite" >
	  <text id="LinkOne" region="LinkText" src="Link1.html" dur="indefinite"/>
	  <text id="LinkTwo" region="LinkText" src="Link2.html" dur="indefinite"/>
	</excl>
      </par>
    </body>
  </smil>

précédent   suivant   sommaire