précédent   suivant   sommaire  

7. Les modules d'objet média de SMIL 2.0

Rédacteur
Rob Lanphier (robla@real.com), RealNetworks

Table des matières

7.1 Introduction

Cette section définit les modules d'objet média de SMIL. Ceux-ci sont composés d'un module de base BasicMedia et de cinq modules lui fournissant des fonctionnalités additionnelles : les modules MediaClipping, MediaClipMarkers, MediaParam, MediaAccessibility et MediaDescription. Ces modules contiennent les éléments et attributs nécessaires à la description des objets médias. De plus, un élément BrushMedia est fourni et peut être utilisé comme un objet média. Grâce à la définition de ces éléments et attributs, les concepteurs d'autres langages de balisage peuvent réutiliser le module de média SMIL lorsqu'ils ont besoin d'inclure des objets médias dans leur langage.

Les changements, tout en respectant les caractéristiques des objets de SMIL 1.0, apportent les améliorations recommendées par le groupe de travail. Les différences sont détaillées dans les sections « Annexe A » et « Annexe B ».

7.2 Définitions

Média continu
Fichier audio, fichier vidéo ou autre média pour lequel il existe une durée mesurable et clairement établie. Par exemple une séquence audio de 5 secondes est un média continu car elle possède une durée clairement établie de 5 secondes. Le terme « média continu » est l'opposé de « média discret ».
Média discret
Fichier image, fichier texte ou autre média n'ayant pas de durée évidente. Par exemple une image JPEG est généralement considérée comme un média discret, car il n'y a rien dans le fichier qui indique combien de temps l'image doit être affichée. Le terme « média discret » est l'opposé de « média continu ».
Durée intrinsèque
Il s'agit de la durée d'un objet sans tenir compte d'un éventuel balisage explicitant sa durée. Un média continu a une durée intrinsèque définie par le média lui-même et un média discret n'a pas de durée intrinsèque. Cependant, dans SMIL, un média discret se voit assigner une durée intrinsèque de 0.

7.3 Le module BasicMedia de SMIL

Ce module définit les fonctionnalités de base d'un lecteur SMIL. Les fonctionnalités restent très proches de celles définies dans les spécifications de l'objet média de SMIL 1.0.

7.3.1 Les éléments de l'objet média - ref, animation, audio, img, text, textstream et video

Les éléments de l'objet média permettent l'insertion d'objets médias dans une présentation SMIL. Les objets médias sont insérés par référence (via un URI). Les éléments suivants de l'objet média sont définis dans cette section :

ref
Référence à un objet média générique
animation
Graphiques vectoriels animés ou autres formats animés
audio
Séquence audio
img
Image fixe tels que les formats PNG ou JPEG
text
Référence à du texte
textstream
Flux de texte (streaming de texte)
video
Séquence vidéo

Tous ces éléments d'objet média sont sémantiquement identiques. Lorsqu'un objet média est joué, le lecteur ne doit pas déduire son type exact du nom de l'élément de cet objet média. Il doit s'appuyer sur d'autres sources pour le type, comme par exemple l'information de typage contenue dans l'attribut type, ou l'information de typage provenant d'un serveur ou d'un système d'exploitation.

Quoiqu'il en soit les auteurs doivent s'assurer que le nom de l'élément rappelle le groupe dans lequel un objet média est placé (animation, audio, img, video, text ou textstream). Ceci permet d'augmenter la lisibilité des documents SMIL. En cas de doute sur le groupe d'appartenance d'un objet média, les auteurs doivent utiliser l'élément générique ref.

L'élément animation défini ici ne doit pas être confondu avec les éléments définis dans « Les modules d'animation de SMIL 2.0 ». L'élément animation défini dans ce module est utilisé pour insérer une animation ( tel qu'un graphique vectoriel animé) par référence. Ceci est différent des éléments définis dans les modules d'animation qui fournissent une syntaxe en-ligne permettant l'animation des attributs et propriétés d'autres éléments.

Les ancres et les liens peuvent être rattachés à des objets média visuels.

Définition des attributs

Les langages implémentant le module BasicMedia de SMIL doivent définir les attributs pouvant être attachés aux éléments d'objet média. Dans tous les langages implémentant le module BasicMedia de SMIL, les éléments d'objet média peuvent avoir les attributs suivants :

src
La valeur de l'attribut est l' [URI] de l'élément média et sert à localiser et récupérer le média associé. Il est à noter que cet attribut est facultatif. Un objet média sans attribut src a une durée intrinsèque de 0 et participe à la temporisation au même titre que n'importe quel autre élément d'objet média. Aucun média ne sera récupéré par une implémentation SMIL pour un objet média sans attribut src.
type
Caractérise le type de l'objet média référencé par l'attribut src. L'utilisation de cet attribut dépend du protocole utilisé pour l'accès au média référencé par l'atribut src.
RTSP [RTSP]
L'attribut type sert à déterminer le contenu de la sélection lorsque le type du média référencé ne peut être déterminé par d'autres moyens. Sa valeur peut être écrasée par le contenu d'une réponse à un RTSP DESCRIBE, ou par la valeur statique de la valeur de charge de RTP (RTP payload number).
HTTP [HTTP], FTP [FTP] et lecture de fichiers locaux [URL] (utilisant principalement les spécifications URL, mais également les URL de schéma "file:...").
La valeur de l'attribut type est prioritaire sur les autres sources de typage du média (par exemple, le champ "Content-type" d'une transaction HTTP ou l'extension du fichier).

Lorsque l'objet référencé par l'URL est disponible dans plusieurs formats de données, les implémentations DOIVENT s'appuyer sur la valeur de l'attribut type pour déterminer le format à utiliser. Par exemple sur un serveur implémentant la négociation de contenu HTTP, le client doit s'appuyer sur la valeur de l'attribut type pour déterminer l'ordre des préférences dans la négociation.

Pour les protocoles non-énumérés dans cette spécification, les implémentations doivent suivre les règles suivantes : lorsqu'un objet média est inclus dans un fichier média et que celui-ci est fourni tel quel au client SMIL via un protocole conçu pour fournir des fichiers entiers, la valeur de l'attribut type doit être prioritaire sur les autres sources de typage du média. Pour les protocoles délivrant le média dans un mode dépendant du média, comme ceux délivrant les médias en utilisant ou en s'appuyant sur un type de média spécifique, l'utilisation de l'attribut type n'est pas décrite dans cette spécification.

Contenu de l'élément

Les langages utilisant le module BasicMedia de SMIL doivent définir le jeu complet des éléments qui sont suceptibles d'être les enfants d'éléments d'objet média. Pour l'instant, il n'y a pas d'enfant d'objet média qui soit requis dans le module BasicMedia, mais au-delà de cette recommendation, les langages utilisant le module BasicMedia peuvent imposer des spécifications.

7.3.2 Les exigences d'intégration

Si l'implémentation gère les fonctionnalités de XMLBase [XMLBase] , les valeurs des attributs src et longdesc des éléments d'objet média doivent être interprétés dans le contexte du préfixe d'URI XMLBase concerné.

7.4 Le module MediaParam de SMIL

Cette section définit les éléments et attributs du module MediaParam de SMIL. Les langages implémentant les éléments et attributs de ce module doivent définir tous les éléments et attributs définis ci-dessous, ainsi que tous ceux du module BasicMedia.

7.4.1 L'initialisation d'un objet média : l'élément param

Les éléments param spécifient un ensemble de valeurs qui peuvent être nécessaires à un objet média lors de sa lecture. Un nombre quelconque d'éléments param peuvent se trouver dans le contenu d'un élément d'objet média. Ceux-ci peuvent se trouver dans n'importe quel ordre, mais doivent être placés en tête du contenu de l'élément d'objet média qui les contient.

La syntaxe des noms et valeurs est sensée être comprise par l'implémentation de l'objet. Ce document ne spécifie pas comment les agents utilisateurs doivent comprendre les couples nom/valeur, pas plus que la façon dont doivent être interprétés les paramètres apparaissant deux fois.

Définition des attributs
name
(CDATA) Cet attribut définit le nom d'un paramètre d'exécution qui est sensé être connu par l'objet inséré. Que le nom de la propriété soit sensible à la casse, ou non, dépend de l'implémentation spécifique de l'objet.
value
(CDATA) Cet attribut définit la valeur d'un paramètre d'exécution spécifié par l'attribut name. Les valeurs de propriété n'ont pas de sens pour SMIL ; leur sens est fonction de l'objet dont il est question.
valuetype
["data"|"ref"|"object"] Cet attribut spécifie le type de l'attribut value. Les valeurs possibles sont les suivantes :
  • data : C'est la valeur par défaut pour l'attribut. Cela signifie que la valeur spécifiée par l'attribut value sera evaluée et transmise à l'implémentation de l'objet en tant que chaîne de caractères.
  • ref : La valeur spécifiée par l'attribut value est un URI [URI] désignant l'emplacement où est stockée la ressource qui devra être jouée. Cela permet aux outils de gestion d'identifier les URI passés en paramètre. L'URI doit être transmis à l'objet tel quel, c'est-à-dire non résolu.
  • object : La valeur spécifiée par l'attribut value est un identifiant référencant une déclaration d'objet média dans le même document. L'identifiant doit être la valeur de l'attribut id de l'élément d'objet média déclaré.
type
Cet attribut est à utiliser seulement si l'attribut valuetype a pour valeur "ref" et spécifie alors le type du contenu de la ressource correspondant à l'attribut value. Cet attribut indique à l'agent utilisateur le type des valeurs qu'il va trouver à l'URI défini par value. Voir 6.7 Content Type vf dans [HTML4] pour de plus amples informations.

Exemple

Illustration de l'utilisation de param : Supposons que nous ayons un module d'extension d'animation de visage qui soit capable de gérer les attitudes et accessoires différents associés à un personnage. Cela pourrait se définir de la façon suivante :
<ref src="http://www.example.com/herbert.face">
  <param name="mood" value="surly" valuetype="data"/>
  <param name="accessories" value="baseball-cap,nose-ring" valuetype="data"/>
</ref>

7.4.2 Les attributs des éléments pour tous les objets médias

En plus des attributs des éléments définis dans le module BasicMedia, les éléments d'objet média peuvent avoir les attributs et extensions d'attributs définis ci-dessous. La prise en charge de ceux-ci est facultative dans le profil de langage.

erase
Contrôle le comportement de l'objet média lorsque les effets de toute temporisation sont terminés. Par exemple, lorsqu'une temporisation SMIL est appliquée à un élément média, l'attribut erase contrôle l'affichage du média quand la durée active de l'élément et quand la période de gel définie par l'attribut fill sont terminées ( voir « La temporisation et la synchronisation dans SMIL 2.0 »). Les valeurs possibles pour l'attribut erase sont never et whenDone.

erase="whenDone" est la valeur par défaut. Lorsque celle-ci est spécifiée (ou induite), le média est retiré à la fin de la temporisation qui lui a été appliquée.

erase="never" sert à conserver le média dans son dernier état d'affichage jusqu'à ce que l'aire d'affichage soit réutilisée (ou si l'aire d'affichage est déjà utilisée par un autre média). Un profil qui intègre cet élément doit définir précisément ce qui est signifié par « aire d'affichage » et, en plus, définir les interactions. Les liens hypertextes intrinsèques (par exemple, Flash, HTML, etc.) et les liens hypertextes explicites (par exemple, area, a) restent actifs aussi longtemps que les hyperliens sont affichés. Si une temporisation est ré-affectée à un élément, l'effet de erase=never est effacé. Par exemple, lorsqu'un élément est redémarré conformément au module de temporisation et de synchronisation de SMIL, l'élément est effacé juste avant d'être relancé.

Exemple :

<par>
  <seq>
	<par>
	    <img src="image1.jpg" region="foo1" fill="freeze" erase="never" .../>
	    <audio src="audio1.au"/>
	</par>
	<par>
	    <img src="image2.jpg" region="foo2" fill="freeze" erase="never" .../>
	    <audio src="audio2.au"/>
	</par>
	 ...
	<par>
	    <img src="imageN.jpg" region="fooN" fill="freeze" erase="never" .../>
	    <audio src="audioN.au"/>
	</par>
  </seq>
</par>

Dans cet exemple, les images sont successivement affichées et gardées à l'écran jusqu'à la fin de la présentation.

mediaRepeat
Utilisé pour enlever la valeur de répétition intrinsèque de l'objet média sous-jacent. L'utilisation de cet attribut est spécifique au type de média de l'objet de média et ne s'applique qu'aux types de média dont la définition de la valeur de répétition se trouve dans la spécification du format du type de média. Les visualisateurs de type de média utilisés dans les implémentations SMIL devront fournir une interface pour le contrôle de la valeur de répétition du média pour que cet attribut soit pris en compte. Pour tous les types de média susceptibles d'une interopérabilité entre plusieurs implémentations de SMIL, il devrait y avoir une définition formelle de la valeur de répétition sur laquelle l'attribut mediaRepeat s'applique.

Valeurs :

strip
Supprime la valeur de répétition intrinsèque de l'objet média.
preserve (valeur par défaut)
Laisse la valeur de répétition intrinsèque de l'objet média intacte.

Prenons comme exemple l'utilisation d'un GIF animé dont la valeur intrinsèque de répétition est infinie. L'application de mediaRepeat="strip" permet à l'auteur de supprimer la valeur de répétition intrinsèque d'un GIF animé, pour chaque appel du GIF, ce qui permet de ne jouer le GIF qu'une seule fois, sans considération pour la valeur de répétition définie dans le GIF.

Lorsque l'attribut mediaRepeat est utilisé en association avec les attributs du module de temporisation et de synchronisation de SMIL 2.0, cet attribut est pris en compte en premier, ce qui permet ainsi de contrôler le nombre de répétitions avec les attributs du module de temporisation et de synchronisation de SMIL, tels que repeatCount et repeatDur.

sensitivity
Assure à l'auteur un contrôle sur la sensibilité du média aux événements de sélection de l'interface utilisateur, tel le activateEvent de SMIL 2.0, et sur l'activation de liens hypertextes. Si le média est sensible à l'endroit où survient l'événement, il capturera l'évènement et ne transmettra pas celui-ci aux objets médias sous-jacents. Sinon, l'événement est transmis aux objets médias se trouvant à un niveau inférieur dans la hiérarchie d'affichage.

Valeurs :

opaque
Ceci est la valeur par défaut. Le média est sensible aux événements de sélection de l'interface utilisateur sur l'aire entière de l'objet média.
transparent
Le média est insensible aux événements de sélection de l'interface utilisateur sur l'aire entière de l'objet média. Tout événement de sélection de l'interface utilisateur sera « transmis » au quelconque objet média sous-jacent.
valeur en pourcentage
La sensibilité du média aux événements de sélection de l'interface utilisateur dépend de l'opacité du média à l'endroit de l'évènement (la valeur du canal alpha). Si le média rendu gère un canal alpha et que l'opacité du média est inférieure à la valeur en pourcentage donnée pour l'endroit où survient l'événement, alors le média se comportera comme s'il avait la valeur transparent , comme défini ci-dessus. Sinon, il se comportera comme si la valeur était opaque. Sont valides les valeurs de pourcentage CSS2 vf non-négatives.

7.4.3 Les exigences d'intégration

Toute implémentation intégrant l'attribut erase doit définir ce que signifie « aire d'affichage » et préciser la définition des interactions. Voir la définition de erase pour plus de détails.

Les utilisations qui sont gérées par les attributs type et valuetype avec l'élément param doivent être spécifiées par le profil d'intégration. Si le profil ne les spécifie pas, les attributs type et valuetype seront ignorés dans ce profil.

7.5 Le module MediaClipping de SMIL

Cette section décrit les attributs constituant le module MediaClipping de SMIL. Les implémentations utilisant le module MediaClipping doivent implémenter les attributs définis ci-dessous ainsi que le module BasicMedia.

7.5.1 Les attributs du module MediaClipping

clipBegin (clip-begin)
L'attribut clipBegin spécifie le début d'une sous-séquence d'un objet média continu. Le point de départ est mesuré depuis le début du média et se compte dans l'unité de temps normale du média à lire.
Les valeurs de l'attribut clipBegin ont la syntaxe suivante :
Clip-value-MediaClipping ::= [ Metric "=" ] ( Clock-val | Smpte-val )
Metric		  ::= Smpte-type | "npt"
Smpte-type	  ::= "smpte" | "smpte-30-drop" | "smpte-25"
Smpte-val	  ::= Hours ":" Minutes ":" Seconds
		      [ ":" Frames [ "." Subframes ]]
Hours		  ::= Digit+
		  /* voir XML 1.0 pour la définition de 'Digit' */
Minutes 	  ::= Digit Digit;  dans un intervalle de 00 à 59
Seconds 	  ::= Digit Digit;  dans un intervalle de 00 à 59

Frames		  ::= Digit Digit; smpte  intervalle = 00-29, smpte-30-drop intervalle = 00-29, smpte-25 intervalle = 00-24
Subframes	  ::= Digit Digit; smpte  intervalle = 00-01, smpte-30-drop intervalle = 00-01, smpte-25 intervalle = 00-01

La valeur de cet attribut est constituée d'un spécifiant métrique, suivi d'une valeur de temps dont la syntaxe et la sémantique dépendent du spécifiant métrique. Les formats suivants sont autorisés :

SMPTE Timestamp
Les codes horaires SMPTE [SMPTE] peuvent être utilisés pour la la précision de l'accès au niveau de l'image. Le spécifiant métrique peut avoir les valeurs suivantes :
smpte
smpte-30-drop
Ces valeurs indiquent l'utilisation du format « SMPTE 30 drop » (environ 29.97 images par seconde ) comme défini dans la spécification de SMPTE (aussi appelé « NRSC drop frame »). Le champ des valeurs va de 0 à 29. La différence entre 30 et 29.97 images par seconde est compensée en supprimant les images d'indices 00 et 01 chaque minute, sauf toutes les dix minutes.
smpte-25
Le champ de valeur s'étend de 0 à 24. Cela correspond à la norme PAL comme expliqué dans [SMPTE]

La valeur de temps a le format suivant :heures:minutes:secondes:images:sous-images. Si la valeur de la sous-image est de 0, elle peut être omise. Les sous-images sont mesurées en centièmes d'image.
Exemple :
clipBegin="smpte=10:12:33:20"

Normal Play Time
Normal Play Time exprime le temps en terme de valeur d'horloge SMIL. Le spécifiant métrique est alors "npt" et la syntaxe de la valeur de temps est identique à celle des valeurs d'horloge de SMIL.
Exemples :
clipBegin="npt=123.45s"
clipBegin="npt=12:05:35.3
"
Marker
Non défini dans ce module. Voir l'extension d'attribut de marqueur de média clipBegin dans le module MediaClipMarkers.

Si aucun spécifiant métrique n'est donné, alors la valeur "npt=" est prise par défaut.

Lors d'une utilisation en association avec les attributs du module de temporisation de SMIL, cet attribut est pris en compte avant tous les attributs de ce module.

Afin de permettre la compatibilité avec SMIL 1.0, l'attribut clipBegin peut également s'écrire clip-begin. Les logiciels gérant les profils de langage SMIL 2.0 doivent être capables de gérer les deux terminologies, alors que ceux ne gérant que le module MediaClipping n'ont besoin de prendre en charge que clipBegin. Si un élément comporte à la fois l'attribut clipBegin et l'attribut clip-begin, alors clipBegin est prioritaire sur clip-begin.

Exemple :

<audio src="radio.wav" clip-begin="5s" clipBegin="10s" />

La séquence débute à la seconde 10 du morceau et non pas à la seconde 5 car l'attribut clip-begin est ignoré. Une implémentation ne gérant que SMIL 1.0 ferait démarrer la séquence à la seconde 5, car clipBegin ne serait pas reconnu. Voir « Les changements survenus sur les attributs de l'objet média de SMIL 1.0 » pour plus de détails sur le sujet.

clipEnd (clip-end)
L'attribut clipBegin spécifie la fin d'une sous-séquence d'un objet média continu comme un décalage par rapport au début de l'objet média
Les valeurs de l'attribut clipBegin ont la syntaxe suivante : Cet attribut spécifie la fin d'une sous-séquence d'un objet média continu. Le point de fin est mesuré depuis le début du média et se compte dans l'unité de temps normale du média à lire. La syntaxe est la même que pour l'attribut clipBegin.
Si la valeur de l'attribut clipEnd est supérieure à la durée de l'objet média, elle est ignorée et la fin de séquence correspond à la fin active de l'objet média. Afin d'assurer la compatibilité avec SMIL 1.0, l'attribut clipEnd peut aussi s'écrire clip-end. Les logiciels gérant les profils de langage SMIL 2.0 doivent être capables de gérer les deux terminologies, alors que ceux ne gérant que le module MediaClipping n'ont besoin de prendre en charge que clipEnd. Si un élément comporte à la fois l'attribut clipEnd et l'attribut clip-end, alors clipEnd est prioritaire sur clip-end. Lors d'une utilisation en association avec les attributs du module de temporisation de SMIL, cet attribut est pris en compte avant tous les attributs de ce module.

Voir « Les changements survenus sur les attributs de l'objet média de SMIL 1.0 » pour plus de détails sur le sujet.

7.6 Le module MediaClipMarkers de SMIL

Cette section définit les extensions d'attributs constituant le module MediaClipMarkers de SMIL. Les langages implémentant ce module doivent implémenter tous ses éléments et attributs ainsi que les modules BasicMedia et MediaClipping.

7.6.1 Les extensions d'attributs du module MediaClipMarkers

extension d'attribut de marqueur de média clipBegin
Sert à définir une séquence utilisant des points de montage dans le temps nommés dans un objet média plutôt que des valeurs d'horloge ou des valeurs SMPTE. Le spécifiant métrique est "marker" et la valeur de marqueur est un URI (voir [URI] ). L'URI est relatif à l'attribut src plutôt qu'au document racine ou à la base XML du document SMIL.

Clip-value-MediaClipMarkers ::= Clip-value-MediaClipping |
		      "marker" "=" URI-reference
   /* "URI-reference" est définie dans  [URI]  */

Exemple : Supposons qu'une émission de radio enregistrée soit composée d'une alternance de chansons et d'annonces du diskjockey. Le format audio gère les points de montage marqués et le début de chaque chanson ou annonce de numéro X sont marqués respectivement songX et djX. Pour extraire la première chanson en utilisant la métrique de "marker", l'élément de média audio suivant peut être utilisé :

<audio clipBegin="marker=#song1" clipEnd="marker=#dj1" />
extension d'attribut de marqueur de média clipEnd
Les marqueurs de média clipEnd fonctionnent de la même manière que clipBegin. Voir ci-dessus pour plus de détails.

7.7 Le module BrushMedia de SMIL

Cette section définit les éléments et attributs constituant le module BrushMedia de SMIL. Les langages implémentant ce module doivent implémenter tous les éléments et attributs décrits ci-dessous.

7.7.1 L'élément brush

L'élément brush est un élément d'objet média mineur permettant à l'auteur d'afficher une couleur pleine ou un autre motif à la place d'un objet média. Ainsi tous les attributs associés aux objets médias peuvent aussi être appliqués à brush. Comme toutes les informations sur l'objet média sont présententes dans les attributs de l'élément lui-même, l'attribut src est ignoré et donc peut être omis.

Définition des attributs
color
L'utilisation et la définition de cet attribut sont identiques à celles de la propriété "background-color" de la spécification CSS2.

7.7.2 Les exigences d'intégration

Les profils incluant le module BrushMedia doivent fournir une sémantique pour l'utilisation de valeur inherit de l'attribut color dans l'élément brush. La valeur inherit étant dénuée de sens dans certains contextes, un profil peut donc interdire l'utilisation de cette valeur.

7.8 Le MediaAccessibility de SMIL

Cette section définit les éléments et attributs constituant le module MediaAccessibility de SMIL. Les langages implémentant ce module doivent implémenter tous les éléments et atributs décrits ci-dessous ainsi que le module MediaDescription.

7.8.1 Les attributs du module MediaAccessibility

Définition des attributs
alt
Pour tous les agents utilisateurs ne réussissant pas à afficher un objet média, ceci définit le texte alternatif. L'attribut alt peut être affiché en plus du média, ou à sa place si l'agent utilisateur est configuré pour ne pas afficher le type de média en question.

Il est fortement recommendé de toujours avoir un attribut "alt" pour les objets médias, celui-ci contenant une très courte description de l'objet média. Les éditeurs SMIL devraient toujours vérifier que tout élément possède cet attribut.

La valeur de cet attribut est une chaîne de caractères CDATA.

longdesc
Cet attribut spécifie un lien ( [URI] ) vers une description détaillée de l'objet média. Cette description devrait compléter la courte description fournie par l'attribut alt ou l'attribut abstract. Lorsque l'objet média est associé à un contenu hypertexte, le contenu de ce lien devrait aussi être décrit par cet attribut.

readIndex
Cet attribut indique la position de l'élément courant dans l'ordre dans lequel le texte des attributs longdesc, title et alt est lu à haute voix par les appareils d'assistance (tels que les lecteurs d'écran) dans le document courant. L'agent utilisateur doit ignorer les 0 en téte d'indice. La valeur par défaut est 0.

Les éléments contenant les attributs alt, title ou longdesc sont lus par les technologies d'assistance selon les règles suivantes :

  • Les éléments dont la valeur de l'attribut readIndex est strictement positive sont lus en premier. La navigation se poursuit à partir de l'élément avec la plus faible valeur pour readIndex vers celui avec la plus grande valeur. Les valeurs n'ont ni besoin de se suivre ni de commencer à une valeur spécifique. Les éléments ayant des valeur de readIndex égales devraient être lus selon l'ordre d'apparition dans le flux textuel du document ;
  • Les éléments ayant une valeur de "0" sont lus dans l'ordre d'apparition dans le flux textuel du document ;
  • Les éléments d'une structure switch ayant des attributs de test evalués à "false" ne sont pas lus.

Exemple

<par>
  <video id="carvideo" src="car.rm" region="videoregion" title="Car video"
	 alt="Illustration of relativistic time dilation and length
	      contraction."
	 longdesc="carvideodesc.html" readIndex="3"/>
  <audio id="caraudio" src="caraudio.rm" region="videoregion"
	 title="Car presentation voiceover" begin="bar.begin"/>
  <animation id="cardiagram" src="car.svg" region="animregion"
	 title="Diagram of the car" readIndex="2"/>
  <img id="scvad" src="scv.png" region="videoregion"
	 title="Advertisement for Sugar Coated Vegetables"
	 readIndex="1"/>
</par>

Dans cet exemple, un périphérique d'assistance affichant les titres devrait présenter le titre de l'élément "scvad" en premier (valeur readIndex de "1" la plus basse), suivi du titre de "cardiagram", suivi du titre de "carvideo", et enfin du titre de "caraudio" (valeur readIndex implicite de "0").

7.9 Le module MediaDescription de SMIL

Cette section définit les éléments et attributs du module MediaDescription de SMIL. Les langages implémentant ce module doivent implémenter tous les éléments et attributs décrits ci-dessous.

7.9.1 Les attributs du module MediaDescription

Définition des attributs
abstract
Une brève description du contenu de l'élément. Contrairement à alt cet attribut n'est généralement pas affiché en tant que contenu alternatif de l'objet média. Il sert généralement lors de la génération d'une table des matières pour une présentation SMIL et contient plus d'informations qu'il serait raisonnable d'en placer dans l'attribut alt.

Cet attribut est déprécié en faveur de l'utilisation des balises de métadonnées en RDF. Par exemple, cet attribut correspond bien à l'attribut "description", défini par le Dublin Core Metadata Initiative [DC] .

author
Le nom de l'auteur du contenu de l'élément.

La valeur de cet attribut est une chaîne de caractères CDATA.

copyright
L'avertissement sur les droits d'auteur concernant le contenu de l'élément.

La valeur de cet attribut est une chaîne de caractères CDATA.

title
Cet attribut est défini dans le module Structure de SMIL. Il est fortement recommandé de toujours avoir un attribut title pour les objets médias, celui-ci contenant une très courte description de l'objet média. Les éditeurs SMIL devraient toujours vérifier que tout élément possède cet attribut.
xml:lang
Sert à identifier le langage naturel ou formel de l'élément. Pour une description complète, voir la section 2.12 vf « L'identifiant de la langue » dans [XML10].

L'attribut xml:lang diffère de system-language sur un point très important. L'attribut xml:lang fournit une information sur le contenu de l'élément indépendemment de ce que va en faire l'implémentation, alors que system-language est un attribut de test qui associe un comportement spécifique à la valeur de l'attribut (voir la définition de system-language dans « Les modules de contrôle de contenu de SMIL 2.0 » pour plus de détails).

7.10 Annexes

7.10.1 Annexe A : Les changements survenus sur les attributs de l'objet média de SMIL 1.0

clipBegin, clipEnd, clip-begin, clip-end

Concernant les éléments clipBegin/clip-begin et clipEnd/clip-end, SMIL 2.0 apporte les changements suivants par rapport à la syntaxe définie dans SMIL 1.0 :

La gestion de la nouvelle syntaxe clipBegin/clipEnd dans les applications SMIL 1.0

L'utilisation de noms d'attribut avec des tirets tels que clip-begin et clip-end pose problème lorsque l'on utilise un langage de script ou le DOM pour manipuler ces attributs. C'est pourquoi cette recommendation introduit les noms d'attribut clipBegin et clipEnd comme alternatives équivalentes aux attributs clip-begin et clip-end de SMIL 1.0. Les noms d'attribut avec tiret sont dépréciés.

Les auteurs peuvent avoir deux approches différentes pour écrire des présentations SMIL 2.0 pouvant être comprises par un programme SMIL 1.0, tout en utilisant les nouvelles syntaxes et fonctionnalités ("marker", spécifiant métrique par défaut) définies dans cette recommandation. Tout d'abord les auteurs peuvent utiliser les versions sans tiret des nouveaux attributs utilisant les nouvelles fonctionnalités , puis ajouter les attributs de rognage SMIL 1.0 correspondants plus loin dans le texte.

Exemple :

<audio src="radio.wav" clipBegin="marker=song1" clipEnd="marker=moderator1"
       clip-begin="npt=0s" clip-end="npt=3:50" />

Les lecteurs SMIL 1.0 implémentant les règles d'extensibilité recommandées de SMIL 1.0 [SMIL10] ignoreront les attributs utilisant la nouvelle fonctionnalité car elle ne fait pas partie de SMIL 1.0. De leur côté, les lecteurs SMIL 2.0 ignoreront les attributs de rognage avec une syntaxe SMIL 1.0, car ils surviendront plus tard dans le texte du document. errata-E05

La seconde approche consiste à suivre les étapes suivantes :

  1. Ajouter un attribut de test system-required aux éléments de l'objet média en utilisant la nouvelle fonctionnalité. La valeur de l'attribut system-required correspondrait à un préfixe d'espace de nommage dont l'URI d'espace de nommage ([URI]) pointe sur une spécification SMIL intégrant la nouvelle fonctionnalité ;
  2. Ajouter une version alternative de l'élément d'objet média conforme à la spécification SMIL 1.0 ;
  3. Placer ces deux éléments dans un élément switch.

Exemple :

<smil xmlns:smil2="http://www.w3.org/2001/SMIL20/Language">
...
<switch>
  <audio src="radio.wav" clipBegin="marker=song1" clipEnd="marker=moderator1"  
   system-required="smil2" />
  <audio src="radio.wav" clip-begin="npt=0s" clip-end="npt=3:50" />
</switch>

Nouveaux attributs d'accessibilité

readIndex
Permet un ordonnancement explicite pour contrôler les technologies d'assistance.

Nouveaux attributs média avancés

mediaRepeat
Cet attribut a été ajouté pour permettre un meilleur contrôle sur la temporisation des médias ayant une valeur de répétition intrinsèque (tels que les GIF animés).
erase
Fournit un moyen de conserver les médias visuels affichés pendant toute une présentation en surclassant le comportement d'éffacement par défaut.

7.10.2 Annexe B : Les changements survenus sur les éléments de l'objet média de SMIL 1.0

Les nouveaux éléments enfants de l'objet média

SMIL 1.0 n'offrait que anchor comme élément enfant d'un élément média. En plus de anchor (maintenant défini dans le module de gestion des liens), l'élément param est maintenant permis comme élément enfant d'un objet média SMIL. De plus, le langage hôte peut définir d'autres nouveaux enfants.

L'élément param

Un nouvel élément param fournit un mécanisme général pour ajouter des attributs spécifiques aux objets médias.

L'élément brush

Un nouvel élément brush permet la spécification d'un objet média de couleur pleine sans média associé.


précédent   suivant   sommaire