précédent   suivant   sommaire  

5. Les modules de disposition de SMIL 2.0

Rédacteurs
Aaron Cohen (aaron.m.cohen@intel.com), Intel
Dick Bulterman (Dick.Bulterman@oratrix.com), Oratrix
Erik Hodge (ehodge@real.com), RealNetworks

Table des matières

5.1 Introduction

Cette section est informative.

Cette section définit les modules de disposition de SMIL 2.0, qui sont composés d'un module BasicLayout et de trois modules avec des fonctionnalités supplémentaires qui sont basés sur le module BasicLayout : les modules AudioLayout, MultiWindowLayout et HierarchicalLayout. Les modules contiennent des éléments et des attributs permettant le positionnement d'éléments médias sur la surface de rendu visuel et le contrôle du volume audio. Étant donné que ces éléments et ces attributs sont définis dans des modules, les concepteurs d'autres langages balisés peuvent choisir d'inclure, ou non, cette fonctionnalité dans leurs langages. Par conséquent, les concepteurs de langage incorporant d'autres modules SMIL n'ont pas besoin d'inclure les modules de disposition si des fonctionnalités de disposition suffisantes sont déjà présentes.

5.2 Aperçu du module BasicLayout SMIL 2.0

Cette section est informative.

La fonctionnalité dans ce module est essentiellement identique à la fonctionnalité de disposition dans [SMIL10].

Comme SMIL 1.0, le module BasicLayout de SMIL 2.0 inclut un modèle de disposition pour organiser les éléments média dans des régions sur la surface de rendu visuel. L'élément layout est utilisé dans l'en-tête head du document pour déclarer un ensemble de régions sur lesquelles les éléments médias sont rendus. Les éléments médias déclarent dans quelles régions ils doivent être rendus avec l'attribut region.

Chaque région possède un ensemble de propriétés compatibles CSS2 comme top, left, height, width et backgroundColor. Ces propriétés peuvent être déclarées en utilisant une syntaxe définie par l'attribut type de l'élément layout. De cette façon, la disposition du média peut être décrite en utilisant soit la syntaxe de disposition de base de SMIL, soit la syntaxe CSS2 (remarquez qu'elles ne sont pas identiques fonctionnellement). D'autres types de disposition sont aussi possibles.

Par exemple, pour décrire une région avec une valeur id de "r" à la localisation 15,20 qui fait 100 pixels de large et 50 pixels de haut en utilisant le module BasicLayout de SMIL :

    <layout>
    <region id="r" top="15px" left="20px" width="100px" height="50px"/>
    </layout>   

Pour créer la même région en utilisant la syntaxe CSS2 :

    <layout type="text/css">
    [region="r"] { top: 15px; left: 20px; width: 100px; height:50px; }
    </layout>

Pour afficher un élément média dans la région déclarée ci-dessus, il faut spécifier l'identifiant de la région comme étant l'attribut region de l'élément média :

    <ref region="r" src="http://..." />  

En outre, les implémentations peuvent choisir de permettre, en utilisant la syntaxe CSS, d'effectuer la disposition du média directement. Cela peut être fait en utilisant la syntaxe de sélection pour régler les propriétés de disposition sur les éléments médias. Par exemple, pour afficher tous les éléments vidéos et images dans un rectangle de même taille et à la même position que dans les exemples ci-dessus :

    <layout type="text/css">
    video, img { top:15px; left:20px; width:100px; height=50px; }
    </layout>

Notez que plusieurs modèles de disposition peuvent être spécifiés au sein d'une structure de contrôle comme l'élément switch de SMIL, chacun avec un type différent. La première disposition avec un type géré par l'implémentation sera celle utilisée.

5.3 La syntaxe et la sémantique du module BasicLayout de SMIL 2.0

Cette section est normative.

5.3.1 Les éléments et attributs

Cette section définit les éléments et les attributs qui font la fonctionnalité du module BasicLayout de SMIL.

L'élément layout

L'élément layout détermine comment les éléments, dans le corps du document, sont positionnés sur une surface de rendu abstraite (soit visuelle, soit acoustique).

L'élément layout doit apparaître avant qu'une quelconque disposition déclarée ne soit utilisée dans le document. S'il est présent, l'élément layout doit apparaître dans la section head du document. Si un document ne contient aucun élément layout, le positionnement des éléments du corps du document est dépendant de l'implémentation.

Il est recommandé que les profils incluant le module BasicLayout de SMIL 2.0 gèrent aussi le module BasicContentControl de SMIL 2.0. Un document peut alors gérer plusieurs dispositions alternatives en incluant plusieurs éléments layout au sein de l'élément switch de SMIL. Cela peut aussi être utilisé pour décrire la disposition du document en utilisant différents langages de disposition. La gestion des attributs de test du système dans le module BasicContentControl de SMIL donne une plus grande souplesse à l'auteur tout comme une meilleure accessibilité à l'utilisateur.

On peut assigner des valeurs de disposition par défaut à tous les éléments interprétables en sélectionnant l'élément de disposition vide <layout></layout>. Si le document n'inclut pas un élément layout, alors le positionnement des éléments médias est dépendant de l'implémentation.

 

Attributs de l'élément

type
Cet attribut spécifie quel langage de disposition est utilisé dans l'élément layout. Si l'agent utilisateur ne comprend pas ce langage, il doit sauter l'élément et tout son contenu jusqu'à la prochaine balise </layout>. La valeur par défaut de l'attribut type est "text/smil-basic-layout". Cette valeur d'identifiant gère la sémantique de disposition des modules BasicLayout de SMIL 1.0 et SMIL 2.0.
Contenu de l'élément

Si l'attribut type de l'élément layout a la valeur "text/smil-basic-layout", il peut contenir les éléments suivants :

region
root-layout

Les langages incorporant le module BasicLayout ont besoin de définir quels éléments additionnels sont autorisés comme enfants. Si l'attribut type de l'élément layout a une autre valeur, l'élément contient des données textuelles.

L'élément region

L'élément region contrôle la position, la taille et l'échelle des éléments de type objet média.

Dans le fragment en exemple suivant, la position d'un élément text est mise à une distance de 5 pixels du coin supérieur de la fenêtre de rendu :

<smil xmlns="http://www.w3.org/2001/SMIL20/">
  <head>
    <layout>
        <root-layout width="320" height="480" />    
              <region id="a" top="5" />
    </layout>
  </head>
  <body>
    <text region="a" src="text.html" dur="10s" />
  </body>
</smil>

La position d'un élément region, comme spécifié par ses attributs top, bottom, left et right, est toujours relative à la géométrie du parent, qui est définie par l'élément parent. Pour le module BasicLayout de SMIL, tous les éléments region doivent avoir comme parent immédiat un élément layout et la position de l'élément region est définie par rapport à la fenêtre racine déclarée dans l'élément frère root-layout. La taille intrinsèque d'un élément region est égale à la taille de la géométrie du parent.

Quand les dimensions de la région, comme spécifiées par les attributs width et height, sont déclarés de façon relative avec la notation "%", la taille d'un élément region est relative à la taille de la géométrie du parent. Les tailles déclarées avec des valeurs absolues en pixels conservent ces valeurs absolues.

Les conflits entre la taille de l'élément region et les attributs de position width, height, bottom, left, right et top sont résolus selon les règles de placement des éléments, comme détaillé plus bas. Les valeurs par défaut des attributs de position et de taille de l'élément region sont spécifiées comme étant auto. Cette valeur d'attribut a le même sens ici que dans [CSS2], quand aucune distinction ne survient entre éléments remplacés et non remplacés.

Un élément de placement est de ceux qui n'ont pas de taille ni de hauteur intrinsèques, mais une boîte englobante qui a une taille et une hauteur. Les éléments region du module BasicLayout de SMIL sont des éléments de placement. Les éléments de placements sont rognés à la boîte englobante.

L'équation déterminante pour la dimension horizontale est :

bbw (largeur de la boite englobante) = left + width + right

Étant donné que chacun de ces trois paramètres peut avoir soit une valeur "auto", soit une valeur définie non "auto", il y a alors 8 possibilités :

Valeurs d'attribut

Résultat avant rognage à la boîte englobante

left width right left width right
auto auto auto 0 bbw 0
auto auto définie 0 bbw - right right
auto définie auto 0 width bbw - width
auto définie définie bbw - right - width width right
définie auto auto left bbw - left 0
définie auto définie left bbw - right - left right
définie définie auto left width bbw - left - width
définie définie définie left width bbw  - left - width

Les attributs verticaux height, bottom et top sont résolus de façon similaire. L'équation déterminante pour la dimension verticale est :

bbh (hauteur de la boîte englobante) = top + height + bottom

Etant donné que chacun de ces trois paramètres peut avoir soit une valeur "auto", soit une valeur définie non "auto", il y a alors 8 possibilités :

Valeurs d'attribut

Résultat avant rognage à la boîte englobante

top height bottom top height bottom
auto auto auto 0 bbh 0
auto auto définie 0 bbh - bottom bottom
auto définie auto 0 height bbh - height
auto définie définie bbh - bottom - height height bottom
définie auto auto top bbh - top 0
définie auto définie top bbh - bottom - top bottom
définie définie auto top height bbh - top - height
définie définie définie top height bbh - top - height
Attributs de l'élément

L'élément region peut avoir les attributs visuels suivants :

backgroundColor
L'utilisation et la définition de cet attribut sont identiques à la propriété "background-color" de la spécification CSS2. Cet attribut spécifie la couleur d'arrière-plan utilisée pour remplir la zone de la région affichant le média et n'étant pas utilisée par le média. L'affichage de la couleur d'arrière-plan quand la région n'est pas utilisée par un élément média est contrôlée par l'attribut showBackground. De façon différente à SMIL 1.0, ce module requiert la gestion des couleurs système CSS2 vf.
L'attribut backgroundColor peut prendre la valeur inherit de CSS. Cela veut dire que la couleur de l'arrière-plan sera celle de l'élément parent. Si l'élément parent n'a pas de propriété de couleur d'arrière-plan applicable, la valeur par défaut transparent est utilisée à la place.
background-color
Déprécié. Équivalent à backgroundColor, qui remplace cet attribut. Le profil de langage doit définir si oui ou non l'attribut background-color est géré. Si les attributs backgroundColor et background-color sont tous deux absents, alors l'arrière-plan est transparent.
bottom
L'utilisation et la définition de cet attribut sont identiques à la propriété "bottom" dans la spécification CSS2. Les valeurs d'attribut peuvent être des valeurs en « pourcentage » non-négatives, ainsi qu'une variation des valeurs de « longueur » définies dans CSS2. Pour les valeurs de « longueur », le module BasicLayout de SMIL 2.0 ne reconnaît que des unités en pixel comme défini dans CSS2. Cela permet à l'auteur de ne pas mettre le qualificatif d'unité "px" dans les valeurs de pixels (le qualificatif "px" est requis dans CSS2). Les conflits entre les attributs de taille de l'élément region bottom, left, right, top, width et height sont résolus selon les règles pour les éléments remplacés en position absolue de [CSS2]. La valeur par défaut de cet attribut est auto.
fit
Cet attribut spécifie le comportement si la hauteur et la largeur intrinsèques d'un objet média visuel diffèrent des valeurs spécifiées par les attributs width et height de l'élément region. Cet attribut n'a pas de correspondance exacte avec une propriété CSS2, mais il peut être simulé dans CSS2.
Cet attribut peut avoir les valeurs suivantes :
fill
Ajuste la hauteur et la largeur de l'objet de façon indépendante pour que le contenu puisse toucher tous les bords de la boîte.
hidden
A l'effet suivant :
  • Si la hauteur (largeur) intrinsèque de l'élément objet média est plus petite que la hauteur (largeur) définie dans l'élément region, rend l'objet à partir du bord du haut (de gauche) et remplit la hauteur (largeur) restante avec la couleur de l'arrière-plan ;
  • Si la hauteur (largeur) intrinsèque de l'élément objet média est plus grande que la hauteur (largeur) définie dans l'élément region, rend l'objet en commençant par le bord du haut (de gauche) jusqu'à ce que la hauteur (largeur) définie dans l'élément region soit atteinte et rogne les parties de l'objet en-dessous (à droite) de la hauteur (de la largeur).
meet
Ajuste l'objet média visuel en préservant le ratio de son aspect jusqu'à ce que sa hauteur ou sa largeur soit égale à la valeur spécifiée par les attributs height ou width, aucune partie du contenu n'étant rognée. Le coin en haut à gauche de l'objet est positionné aux coordonnées en haut et à gauche de la boîte, et l'espace vide à droite ou en bas est rempli avec la couleur de l'arrière-plan.
scroll
Un mécanisme de défilement doit être appelé quand le contenu rendu des éléments excède les limites.
slice
Ajuste l'objet média visuel en préservant le ratio de son aspect pour que sa hauteur ou sa largeur soit égale à la valeur spécifiée par l'attribut height ou width, une partie du contenu pouvant éventuellement rognée. En fonction de la situation, soit une tranche horizontale, soit une tranche verticale de l'objet média visuel est affichée. La largeur débordante est rognée sur la droite de l'objet média. La hauteur débordante est rognée en bas de l'objet média.

La valeur par défaut de fit est hidden.

Notez que l'attribut fit s'applique au média visuel une fois qu'il a une taille bi-dimensionnelle intrinsèque, comme les images et la vidéo. Il ne s'applique pas à un média visuel qui est rendu et adapté dans des situations variables, tel que l'affichage visuel de HTML, jusqu'à ce que ses dimensions spatiales bi-dimensionnelles aient été déterminées, comme après qu'une page HTML a été disposée avec une taille spécifique.

height
L'utilisation et la définition de cet attribut sont identiques à la propriété "height" dans la spécification CSS2. Les valeurs d'attribut suivent les mêmes restrictions et règles que les valeurs de l'attribut bottom. La hauteur intrinsèque d'une région est la même que la géométrie du parent. La valeur par défaut de cet attribut est auto.
left
L'utilisation et la définition de cet attribut sont identiques à la propriété "left" de la spécification CSS2.
Les valeurs d'attribut suivent les mêmes restrictions et les mêmes règles que les valeurs de l'attribut "bottom".
La valeur par défaut de cet attribut est auto.
regionName
Cet attribut assigne un nom à un élément region qui peut être référencé par l'attribut region des éléments objet média. L'attribut regionName n'est pas un identifiant unique ; plusieurs éléments region peuvent partager la même valeur d'attribut regionName.
right
L'utilisation et la définition de cet attribut sont identiques à la propriété "right" de la spécification CSS2.
Les valeurs d'attribut suivent les mêmes restrictions et les mêmes règles que les valeurs de l'attribut "bottom".
La valeur par défaut de cet attribut est auto.
showBackground
Cet attribut contrôle si la valeur de l'attribut backgroundColor d'une région est affichée quand aucun média n'est rendu dans la région :
  • Si la valeur de showBackground est "always", alors la couleur de l'arrière-plan sera affichée dans la région quand aucun objet média n'est rendu dans cette région. Si la région fait partie d'une disposition hiérarchique, alors toute région ancêtre doit aussi soit être active, soit avoir une valeur de showBackground mise à always pour que la couleur de l'arrière-plan soit affichée ;
  • Si la valeur de showBackground est whenActive, alors la couleur d'arrière-plan ne sera pas affichée dans la région quand aucun objet média n'est rendu dans cette région. Si la région fait partie d'une disposition hiérarchique, alors la couleur d'arrière-plan sera aussi affichée quand une quelconque région descendante sera active.
La valeur par défaut de showBackground est always.
top
L'utilisation et la définition de cet attribut sont identiques à la propriété "top"de la spécification CSS2.
Les valeurs d'attribut suivent les mêmes restrictions et les mêmes règles que les valeurs de l'attribut bottom.
La valeur par défaut de cet attribut est auto.
width
 
L'utilisation et la définition de cet attribut sont identiques à la propriété "width"de la spécification CSS2.
Les valeurs d'attribut suivent les mêmes restrictions et les mêmes règles que les valeurs de l'attribut bottom. La hauteur intrinsèque d'une région est la même que celle de la géométrie parent.
La valeur par défaut de cet attribut est auto.
z-index
L'utilisation et la définition de cet attribut sont identiques à la propriété "z-index" de la spécification CSS2, avec l'exception suivante :
 
Si deux boîtes générées par des éléments A et B ont le même niveau d'empilement, alors :
  • Si l'affichage d'un élément A se fait plus tôt que l'affichage d'un élément B, la boîte de A est empilée par-dessus la boîte de B (ordre temporel) ;
  • Sinon, si l'affichage des éléments commence en même temps, et qu'un élément A se produit plus tard dans un document texte SMIL qu'un élément B, la boîte de A est empilée par-dessus la boîte de B (ordre de l'arbre du document comme défini dans CSS2).

Un profil intégrant le module BasicLayout de SMIL 2.0 doit fournir un moyen de déclarer un identifiant XML sur les éléments region.

L'élément root-layout

L'élément root-layout détermine la valeur des propriétés de disposition de l'élément racine, qui détermine la taille de la fenêtre dans laquelle la présentation SMIL est rendue.

Si plus d'un élément root-layout est analysé dans un seul élément layout, alors il s'agit d'une erreur, et le document ne devrait pas être affiché. Cela n'inclut pas les éléments root-layout sautés par l'agent utilisateur ( par exemple, parce que l'élément layout englobant a été sauté en raison d'un type non reconnu ou parce qu'un attribut de test a été évalué à faux).

La sémantique de l'élément root-layout est comme dans SMIL 1.0 : les attributs de l'élément root-layout déterminent la taille de la fenêtre de présentation principale, et les régions sœurs déclarées sont arrangées au sein de cette fenêtre principale. Si les attributs height ou width de l'élément root-layout ne sont pas spécifiés, la valeur de cet attribut est dépendante de l'implémentation.

Attributs de l'élément

L'élément root-layout peut avoir les attributs suivants :

backgroundColor
Défini dans backgroundColor de l'élément region. Notez que la couleur d'arrière-plan par défaut est transparent, ce qui implique que, par défaut, l'arrière-plan de la fenêtre dépendant de l'implémentation sera affichée.
background-color
Défini dans background-color de l'élément region.
height
Fixe la hauteur de l'élément racine. Seules des valeurs de longueur sont autorisées. Pour les valeurs de « longueur », le module BasicLayout de SMIL 2.0 ne reconnaît que les unités en pixels comme défini dans CSS2. Cela permet à l'auteur d'omettre le qualificatif d'unité "px" dans les valeurs en pixels (le qualificatif "px" est requis dans CSS2).
width
Fixe la largeur de l'élément racine. Seules des valeurs de longueur sont autorisées. Pour les valeurs de « longueur », le module BasicLayout de SMIL 2.0 ne reconnaît que les unités en pixels comme défini dans CSS2. Cela permet à l'auteur d'omettre le qualificatif d'unité "px" dans les valeurs en pixels (le qualificatif "px" est requis dans CSS2).

Contenu de l'élément

L'élément root-layout est un élément vide.

Cet élément reconnaît la syntaxe de SMIL 1.0 où l'élément root-layout est un frère vide des éléments region de niveau supérieur.

L'attribut region

L'attribut region est appliqué à un élément pour spécifier quelle région de rendu est assignée à l'élément. Cet attribut se rapporte à une région de rendu abstraite (soit visuelle, soit acoustique) définie au sein de la section de disposition du document. La région de rendu abstraite référencée est déterminée en appliquant les règles suivantes, dans l'ordre :

  1. Trouver tous les éléments dans la section de disposition avec des attributs regionName qui ont les mêmes valeurs assignées que l'attribut region ;
  2. Retirer ceux des éléments de cette collection qui sont écartés en raison du traitement des éléments switch et des attributs de test ;
  3. Si un élément reste, le média doit être rendu dans toutes les régions concernées. Si l'application ne peut pas rendre le média simultanément dans plusieurs régions, alors le média doit être rendu en utilisant le premier élément lexical restant ;
  4. Si aucun élément n'a d'attribut regionName qui a la même valeur que l'attribut region, alors sélectionner l'élément dans la section de disposition dont l'identifiant unique est la valeur de l'attribut region.

Si le processus ne sélectionne aucune surface de rendu définie dans la section de disposition, les valeurs des propriétés de formatage de cet élément sont définies selon les valeurs de disposition par défaut, qui sont décrites dans la section concernant les exigences d'intégration de ce module.

Le langage intégrant ce module doit spécifier quels éléments ont un attribut region et un héritage de cet attribut.

5.3.2 Le détail du module BasicLayout de SMIL

Le module BasicLayout SMIL 2.0 est compatible avec le modèle de rendu visuel défini dans CSS2, il réutilise les propriétés de formatage définies dans la spécification [CSS2] et introduit le nouvel attribut fit. Le lecteur doit être familier avec les concepts et les termes définis dans CSS2.

Les régions de disposition de SMIL 2.0 influencent la propagation des événements de l'interface utilisateur (comme un clic de souris ou une activation de lien) aux éléments visibles sous-jacents. Quand la localisation d'un événement correspond à l'arrière-plan d'une région plutôt qu'au média qui est affiché dans cette région, la couleur transparent de l'arrière-plan de la region permet aux événements de l'interface utilisateur de traverser jusqu'aux éléments plus bas dans l'ordre de la pile d'affichage. Réciproquement, les régions n'ayant pas de couleur d'arrière-plan transparent captureront les événements de l'interface utilisateur, ne permettant pas aux événements de traverser jusqu'aux éléments plus bas dans l'ordre de la pile d'affichage. Ce comportement se distingue de la capacité d'un profil de langage à faire usage des événements de l'interface utilisateur capturés par des éléments de la region.

Les exigences d'intégration

Un profil intégrant le module BasicLayout de SMIL 2.0 doit définir les modèles de contenu pour l'élément layout si un quelconque élément au-delà de ceux spécifiés ici sont acceptés comme enfants.

Un profil intégrant le module BasicLayout de SMIL 2.0 doit fournir un moyen de déclarer un identifiant XML sur des éléments region si le profil prévoit de référencer des éléments region par des identifiants XML. Cette valeur est utilisée comme la valeur argument de l'attribut region. Ce n'est pas requis si le profil n'utilisera que la méthode regionName pour se référer à un élément region.

Un profil intégrant le module BasicLayout de SMIL 2.0 doit spécifier quels éléments ont un attribut region et un héritage de cet attribut.

Si elles ne sont pas définies autrement par le profil, les valeurs par défaut des attributs de de disposition listées dans les modules de disposition de SMIL 2.0 vont s'appliquer aux éléments présentés qui, en outre, ne spécifient pas de sémantique de disposition.

Un élément qui ne réfère pas à un élément region valide sera affiché dans la région par défaut. Si elle n'est pas spécifiée autrement par le profil, la région par défaut est définie comme remplissant et étant alignée au coin en haut à gauche de la fenêtre de présentation. Cette région par défaut prend des valeurs par défaut pour les autres attributs de region.

5.3.3 La définition de type de document (DTD) du module BasicLayout

Voir le DTD complet pour les modules de disposition de SMIL.

5.4 Aperçu du module AudioLayout de SMIL 2.0

Cette section est informative.

Cette section définit la fonctionnalité du module AudioLayout de SMIL 2.0. Ce niveau contient un attribut qui offre un contrôle du volume audio dans un espace de rendu.

5.4.1 Les exigences d'intégration du module AudioLayout

Cette section est normative.

La fonctionnalité de ce module s'ajoute aux fonctionnalités du module BasicLayout, qui est une condition préalable nécessaire à l'inclusion du module AudioLayout.

5.4.2 Le contrôle du volume audio

Cette section est normative.

Le module AudioLayout de SMIL 2.0 gère le contrôle du volume des médias auditifs via une nouvelle propriété sur les éléments region : soundLevel. Un objet multimédia assigné à une région avec un attribut soundLevel explicite aura son audio interprété à l'intensité sonore relative donnée.

5.5 La syntaxe et la sémantique du module AudioLayout de SMIL 2.0

Cette section est normative.

5.5.1 Les éléments et attributs

Cette section définit les éléments et les attributs qui composent le module AudioLayout de SMIL 2.0.

L'élément region

L'élément region défini dans le module BasicLayout est augmenté de l'attribut soundLevel.
 

Attributs de l'élément

L'élément region peut avoir les attributs auditifs suivants :

soundLevel
Spécifie le volume relatif d'une portion audio d'un élément média assigné à jouer dans la région donnée. Cela associe l'élément region avec une unité de reproduction de son. Des regions en cascade vont cumuler leurs réglages du niveau sonore respectifs, comme expliqué ci-dessous. Les regions qui sont utilisées pour de multiples sources appliquent leur réglage du niveau sonore à chacun d'entre elles. Une source de son peut être reproduite par différentes unités , par exemple, au travers de l'application de l'attribut regionName. Dans un tel cas de « fenêtres multiples », un attribut soundLevel séparé peut être appliqué à chaque instance de source de son, un par région. Les changements de niveau assignés s'accumulent au travers de régions imbriquées en multipliant les valeurs de pourcentage.

Les valeurs valides sont des valeurs de pourcentage CSS2 vf non négatives. Les valeurs de pourcentage sont interprétées de façon relative au volume enregistré du média. Les pourcentages sont interprétés comme un ratio du signal de sortie sur celui d'entrée et il est défini en termes de dB :

changement en dB dans le niveau du signal = 20 log10(valeur-pourcentage / 100)

Un réglage de '0%' joue le média silencieusement. Une valeur de '100%' jouera le média à son volume enregistré (0 dB). De façon similaire, une valeur de '200%' jouera le média à peu près deux fois plus fort (6 dB) que son volume enregistré (sujet aux limitations matérielles). La valeur par défaut est '100%'. Le niveau sonore absolu du média perçu est sujet ensuite aux réglages du volume système, qui ne peuvent pas être contrôlés par cet attribut. 

5.6 Aperçu du module MultiWindowLayout de SMIL 2.0

Cette section est informative.

Cette section définit la fonctionnalité du module MultiWindowLayout de SMIL 2.0. Ce niveau contient des éléments et des attributs subvenant aux besoins de la création et du contrôle de plusieurs fenêtres principales sur le système de rendu.

5.6.1 Les exigences d'intégration du module MultiWindowLayout

Cette section est normative.

La fonctionnalité de ce module s'ajoute à la fonctionnalité du module BasicLayout, qui est une condition préalable nécessaire pour l'inclusion du module MultiWindowLayout.

5.6.2 La gestion de multiples fenêtres de niveau supérieur

Cette section est normative.

Dans [[SMIL 10]] et dans le module BasicLayout de SMIL 2.0, chaque présentation est interprétée dans une seule fenêtre racine d'une taille/forme spécifique. La fenêtre racine contient toutes les régions utilisées pour gérer l'interprétation d'objets média spécifiques.

Cette spécification gère le concept de multiples fenêtres principales. Étant donné qu'il n'y a plus de fenêtre racine unique, nous utilisons le terme principal à la place. La répartition des régions en fenêtres principales individuelles permet un placement et un redimensionnement indépendants de chaque fenêtre principale, si cela est géré par le profil incluant et l'implémentation. Le placement initial des fenêtres principales sur le dispositif d'affichage et tout mécanisme de repositionnement de celles-ci dépendent de l'implémentation.

Une fenêtre principale est déclarée avec l'élément topLayout d'une façon similaire à la fenêtre root-layout de SMIL 1.0, à l'exception que de multiples instances de l'élément topLayout peuvent se produire au sein d'un seul élément de disposition :

    
<layout>
  <topLayout id="WinV" title="Video" width="320" height="240"/>
    <region id="pictures" title="pictures" height="100%" fit="meet"/>
  </topLayout>
  <topLayout id="WinC" title="Captions" width="320" height="60">
    <region id="captions" title="caption text" top="90%" fit="meet"/>
  </topLayout>
</layout>

Dans cet exemple, deux fenêtres principales sont définies ("WinV" et "WinC") et deux régions sont définies avec une région ("pictures") assignée à "WinV" et l'autre ("captions") à "WinC". Les définitions des fenêtres principales et des régions contenues utilisent une syntaxe hiérarchique, ce qui n'est pas le cas avec l'ancien élément root-layout.

Les fenêtres principales fonctionnent seulement comme des conteneurs de rendu, ce qui veut dire qu'elles ne portent aucune signification temporelle. En d'autres termes, aucune fenêtre ne définit de plan de montage chronologique ou une quelconque autre propriété de conteneur de temps. Il y a toujours un seul plan de montage chronologique maître pour les présentations SMIL, peu importe le nombre de fenêtres principales qui ont été crées. Ceci est important pour permettre la synchronisation entre les médias affichés dans différentes fenêtres principales.

L'affichage des fenêtres principales peut être contrôlé automatiquement par le lecteur, ou manuellement par l'utilisateur de l'application. Si une fenêtre est fermée (par l'utilisateur) pendant qu'un des éléments affichés dans cette fenêtre est actif, il n'y a aucun effet sur le plan de montage chronologique (éventuel) de ces éléments. Cependant, un lecteur peut choisir de ne pas décoder le contenu pour améliorer les performances. Les moyens fournis à l'utilisateur pour fermer les fenêtres principales sont dépendants de l'implémentation. 

Pour la compatibilité avec SMIL 1.0, l'élément root-layout continuera à gérer la sémantique de disposition de SMIL 1.0. Le nouvel élément topLayout gérera l'extension de sémantique et la syntaxe imbriquée améliorée.

Notez aussi que toute région ne peut appartenir, au plus, qu'à une seule fenêtre principale (ou de niveau racine). Les régions non déclarées comme enfants d'un élément topLayout appartiennent à la fenêtre de root-layout. Si aucun élément root-layout n'a été déclaré, la région est assignée à une fenêtre additionnelle selon la sémantique du module BasicLayout.

5.7 La syntaxe et la sémantique du module MultiWindowLayout de SMIL 2.0

Cette section est normative.

5.7.1 Les éléments et attributs

Cette section définit les éléments et les attributs qui composent le module MultiWindowLayout de SMIL 2.0.

L'élément topLayout

L'élément topLayout détermine la taille de la fenêtre dans laquelle la présentation SMIL est interprétée, et il sert aussi comme fenêtre principale dans laquelle placer les éléments region enfants.

Plusieurs éléments topLayout peuvent apparaître dans un seul élément layout, déclarant chacun une fenêtre principale indépendante.

Chaque instance d'un élément topLayout détermine la taille d'une fenêtre de présentation principale séparée, et les régions descendantes sont arrangées dans cette fenêtre principale par rapport au système de coordonnées de cette fenêtre.

Ce module fournit aussi un contrôle sur les fenêtres topLayout quand elles s'ouvrent et se ferment dans une présentation. Notez que la cartographie précise des fenêtres topLayout sur l'environnement de l'hôte est dépendante de l'implémentation. Il est attendu des implémentations qu'elles feront « surgir » des fenêtres indépendantes sur le bureau si elles le peuvent, mais d'autres moyens de gérer de multiples topLayout, comme l'utilisation de cadres, sont autorisés. Quand elles ouvrent et ferment automatiquement des fenêtres, les applications doivent essayer de se conformer avec les directives WAI pour l'agent utilisateur [UAAG] et permettre à l'utilisateur de choisir d'être averti de l'ouverture et de la fermeture des fenêtres et de fournir un moyen pour désactiver leur ouverture et fermeture automatiques.

Attributs de l'élément

L'élément topLayout peut avoir les attributs suivants :

backgroundColor
Défini dans l'attribut backgroundColor de l'élément region. Notez que la couleur d'arrière-plan par défaut est transparent, ce qui implique que, par défaut, l'arrière-plan de la fenêtre dépendant de l'implémentation sera affiché.
close
Spécifie quand la fenêtre principale doit être fermée. Si la valeur de close est onRequest, alors la fenêtre principale ne devrait pas être fermée automatiquement par le lecteur et elle ne sera fermée que si l'utilisateur la ferme explicitement via l'interface utilisateur. Si la valeur de close est whenNotActive, alors la fenêtre principale devrait se fermer automatiquement quand aucun média n'est affiché dans un des régions de la fenêtre. Pour des médias basés sur le temps et utilisant les modules de temporisation et de synchronisation de SMIL 2.0, cela signifie quand il n'y a aucun média dans sa durée effective ou période de gel utilisant une quelconque région du topLayout. La valeur par défaut de close est onRequest.
height
Fixe la hauteur de la fenêtre principale. Seules des valeurs de longueur sont autorisées.
open
Spécifie quand la fenêtre principale doit être ouverte. Si la valeur de open est onStart, alors la fenêtre principale doit être ouverte quand la présentation commence, et si elle est fermée, elle ne doit pas être réouverte automatiquement durant la présentation. Si la valeur de open est whenActive, alors, si elle n'est pas déjà ouverte, la fenêtre principale doit être ouverte quand le média est affiché dans une des régions de la fenêtre. Pour des médias basés sur le temps et utilisant les modules de temporisation et de synchronisation de SMIL 2.0, cela signifie quand n'importe quel média dans sa durée effective ou sa période de gel utilise une quelconque région du topLayout. La valeur par défaut de open est onStart.
width
Fixe la valeur de la largeur de la fenêtre principale. Seules des valeurs de longueur sont autorisées.
Contenu de l'eacute;lément

L'élément topLayout peut contenir n'importe que nombre d'éléments region, ou bien être vide.

Admettre plusieurs éléments topLayout dans un seul élément layout autorise la gestion de multiples fenêtres principales.

L'élément layout

Contenu de l'élément

L'élément layout défini dans le module BasicLayout de SMIL est augmenté de l'élément topLayout, celui-ci est ajouté au modèle de contenu de l'élément layout si l'attribut type de l'élément layout a la valeur "text/smil-basic-layout". Dans ce cas, il peut contenir les éléments suivants :

region
root-layout
topLayout

5.7.2 Les événements du module MultiWindowLayout

Ce module comprend deux événements qui peuvent être inclus dans le profil du langage d'intégration.

topLayoutOpenEvent
Déclenché quand une fenêtre topLayout s'ouvre. Cet événement est délivré à l'élément topLayout associé. Si un topLayout se ferme et qu'ensuite il s'ouvre à nouveau quand des médias additionnels deviennent actifs dans l'une de ses régions, l'événement sera déclenché à nouveau, et sera déclenché par la suite à chaque fois qu'il s'ouvrira à nouveau.
topLayoutCloseEvent
Déclenché quand un topLayout se ferme pour une raison quelconque. Cet événement est délivré à l'élément topLayout associé. Si un topLayout s'ouvre à nouveau quand des médias additionnels deviennent actifs dans l'une de ses régions, cet événement sera déclenché à nouveau si et quand le topLayout se ferme à nouveau, et il sera déclenché par la suite à chaque fois qu'il se fermera.

Les exigences pour l'intégration des événements du module MultiWindowLayout

Le profil de langage doit spécifier les noms déclaratifs pour relier ces événements, tout comme le comportement bouillonnant de ces événements.

5.7.3 La définition de type de document (DTD) du module MultiWindowLayout

Voir le DTD complet pour les modules de disposition de SMIL.

5.8 Aperçu du module HierarchicalLayout de SMIL 2.0

Cette section est informative.

Cette section définit la fonctionnalité du module HierarchicalLayout de SMIL2.0. Ce module contient des éléments et des attributs pour le positionnement avancé des éléments médias sur la surface de rendu visuelle et se construit sur le module BasicLayout de SMIL2.0.

Le module HierarchicalLayout de SMIL 2.0 prolonge le modèle de disposition de base pour l'organisation des éléments médias dans les régions de la surface de rendu visuelle en fournissant un plus grand contrôle et une plus grande flexibilité à l'auteur. Ces extensions sont importantes pour certaines classes de présentation multimédia dans lesquelles le contrôle de l'auteur sur les objets est critique.

Ce module :

5.8.1 Les exigences d'intégration du module HierarchicalLayout

Cette section est normative.

La fonctionnalité de ce module s'ajoute à la fonctionnalité du module BasicLayout, qui est une condition préalable nécessaire pour l'inclusion du module HierarchicalLayout.

5.9 Les nouvelles fonctionnalités du module HierarchicalLayout de SMIL 2.0

Cette section est normative.

5.9.1 La disposition hiérarchique de la région

Une nouvelle fonctionnalité de ce module est la gestion d'une disposition hiérarchique. Cela permet la déclaration de régions imbriquées dans d'autres régions, un peu comme les régions sont disposées dans la fenêtre principale déclarée par l'élément topLayout. Par exemple, ce qui suit déclare une fenêtre principale de 640 pixels par 480, les régions "left" (gauche) et "right" (droite) qui couvrent les côtés gauche et droit de la fenêtre respectivement, et une région hiérarchique "inset" (incrustation) qui est centrée au sein de la région "right".

<layout>
	<topLayout width="640px" height="480px" /> errata-E03
		<region id="left" top="0%" left="0%"
			     width="50%" height="100%" />
		<region id="right" top="0%" left="50%"
			       width="50%" height="100%">
			<region id="inset" top="25%" left="25%"
					 width="50%" height="50%" />
		</region>
	</topLayout>
</layout>

La disposition résultante ressemble à :

picture of layout

Par défaut, chaque région hiérarchique partage la valeur z-index (profondeur) de son parent. Les régions hiérarchiques peuvent aussi introduire leur propre valeur z-index locale. Dans ce cas, toutes les régions hiérarchiques avec un parent direct commun définissent des valeurs z-index locales au sein de la valeur z-index de leur parent. Par exemple, si une région parente a une valeur z-index de "4" et deux enfants hiérarchiques de ce parent définissent des z-indexes, respectivement de "1" et "2", alors chacun des deux est traité comme une sous-division du z-index parent de "4".

Si deux régions hiérarchiques avec la même valeur d'attribut z-index se chevauchent, les règles existantes pour le traitement du z-index (du module BasicLayout) sont appliquées. Notamment, la règle concernant la priorité de temps est maintenue, ce qui signifie, dans le cas d'un conflit de z-index, que le média visible dans le chevauchement sera déterminé par la région qui interprète le média qui a commencé le plus récemment. Si le média en conflit a commencé en même temps, alors la règle utilisant l'ordre textuel des éléments médias dans le document SMIL est appliquée.

Par exemple :

<layout>
   <root-layout width="640px" height="480px" />
   <region id="whole" top="0px" left="0px" width="640px"
				height="480px" z-index="5"/>
   <region id="right" top="0px" left="320px" width="320px"
				height="480px" z-index="4">
       <region id="inset" top="140px" left="80" width="160px"
				height="200px" z-index="6"/>
       <region id="inset2" top="140px" left="80" width="160px"
				height="200px" z-index="6"/>
       <region id="inset3" top="140px" left="80" width="160px"
				height="200px" z-index="7"/>
   </region>
</layout>
...
<par>
        <img id="A" region="whole" src="imageA.jpg" dur="10s"/>
        <img id="B" region="inset" src="imageB.jpg" dur="10s"/>
</par>
<par>
        <img id="D" region="inset2" src="imageD.jpg" begin="1s" dur="10s"/>
        <img id="C" region="inset" src="imageC.jpg" begin="0s" dur="10s"/>
</par>
<par>
        <img id="E" region="inset2" src="imageE.jpg" dur="10s"/>
        <img id="F" region="inset3" src="imageF.jpg" dur="10s"/>
</par>
  1. Dans le premier élément "par", l'image "A" et l'image "B" commencent en même temps. L'image "A" va obscurcir l'image "B", même si la valeur de z-index de la région "inset est plus grande que celle de la région "whole". Cela est dû au fait que la valeur de z-index de "right", qui est la région contenant "inset", est moindre que celle de "whole" ;
  2. Dans le second "par", les images "C" et "D" sont interprétées dans des régions occupant la même zone de rendu. L'image "C" sera affichée pendant une seconde et ensuite cachée par l'image "D", car l'image "D" commence après l'image "C". Notez que l'ordre lexical est hors de propos ici ;
  3. Dans le troisième "par", le z-index de la région "inset" est considéré lors du calcul de l'empilement entre les frères, et par conséquent l'image "F" sera affichée, mais l'image "E" sera cachée durant la totalité des dix secondes pendant lesquelles elles sont toutes les deux actives.

5.9.2 La disposition des sous-régions

Là où une disposition hiérarchique offre une facilité pour définir un ensemble de régions avec un parent commun, il n'y a aucune facilité pour affiner le contrôle au sein d'une région pour dire où un objet média donné sera placé. Le module HierarchicalLayout de SMIL 2.0 résout ce problème en définissant un ensemble d'attributs qui, quand ils sont placés dans un objet utilisant l'attribut region, permet à cet objet média d'être déclaré avec une sous-région positionnée explicitement dans une région donnée. Ces attributs sont appelés collectivement des attributs de positionnement de sous-region. Une sous-région est un enfant de la région déclarée dans l'attribut region de l'élément média. La valeur de l'argument de positionnement de la sous-région suit les conventions des éléments de placement décrits dans la section sur les éléments region.

Par exemple, supposons qu'une région "d" soit définie :

  <layout>
     ...
    <region id="d" ... />
     ...
  </layout> 

Le code suivant décrit le placement d'un objet dans une sous-région à un décalage particulier dans une région, en utilisant la syntaxe du module HierarchicalLayout de SMIL 2.0 :

    
     <ref id="a" ... region="d" top="5%" left="3" />

Chaque attribut de placement définit une nouvelle région enfant temporaire pour l'objet média référencé. Dans ce cas, le point haut-gauche de cet objet média est affiché à 5% en partant du haut et à 3 pixels en partant de la gauche de la région "d", et elle s'étend jusqu'aux bords de droite et du bas de la région "d".

Toutes les autres opérations de placement, comme l'attribut fit, opèrent maintenant sur la sous-région. Par exemple, le fragment de document suivant décrit une région et une référence à un objet média qui font usage du positionnement de la sous-région :

  <layout>
     ...
    <region id="d" ... fit ="fill" />
     ...
  </layout>  

  <body>     ...
     <ref src="..." ... region="d" fit="hidden"
		top="5%" left="3" bottom="10%" right="15%" />
     ...
  </body>

Dans cet exemple, les frontières effectives de la sous-région pour le placement de cet objet sont définies en déclarant les bords haut, bas, gauche et droite de cette région avec les valeurs affichées, et ensuite en remplissant la sous-région résultante avec l'image spécifiée comme indiqué par l'attribut fit. Si la taille de l'objet média étant affiché est plus petite que celle de la sous-région résultante, l'affichage sera similaire à :

picture of sub-regions

L'utilisation du placement des sous-régions est voulu comme une alternative légère par rapport à la définition d'un grand nombre de régions à utilisation unique. Souvent, les dimensions utilisées pour la sous-région correspondront aux dimensions de l'objet média étant placé, mais dans tous les cas les valeurs de l'attribut fit gouverneront le rendu de l'objet dans la sous-région. Les autres attributs de l'élément média qui auraient été appliqués à une région référencée sont appliqués à la sous-région à la place. Notez que les valeurs par défaut pour les attributs de la sous-région sont toutes à "auto, ce qui fait que, par défaut, une sous-région est créée en ayant les mêmes taille et position que la région parente.

Les règles de gestion du rognage des objets au sein des régions en fonction des attributs des sous-régions, sont fournies en dessous.

5.9.3 Les objets médias fit, z-index et backgroundColor

Le module HierarchicalLayout de SMIL 2.0 inclut la capacité d'utiliser les attributs fit, z-index, et backgroundColor sur des objets affichés dans une sous-région dans le but de déclarer des comportements différents de ceux de l'élément region.

5.9.4 Les points d'enregistrement

Un élément d'enregistrement est un élément, défini dans ce module, qui est utilisé pour définir un point dans une région et un algorithme d'alignement d'objet par défaut pour ce point. L'élément peut être utilisé dans un élément objet média, où il est associé à une région et un algorithme de surclassement d'alignement optionnel. Les valeurs de placement dans les éléments d'enregistrement peuvent être soit des pourcentages, soit des pixels.

L'utilisation des points d'enregistrement permet un placement relatif cohérent au travers des régions. Ainsi, les points d'enregistrement sont définis en dehors d'une quelconque région seule.

Par exemple, le code suivant décrit deux points d'enregistrement (avec des valeurs id "midPoint" et "topMargin"), l'un d'entre eux est défini comme emplacement relatif et l'autre à un emplacement fixe en pixels, en utilisant la syntaxe du module HierarchicalLayout de SMIL 2.0 :

    <layout>
      <regPoint id="midPoint" top="50%" left="50%" regAlign="center" />
      <regPoint id="topMargin" top="10" left="15" regAlign="topLeft" />
      <region id="a" ... />
      <region id="b" ... />
    </layout> 

Dans cet exemple, le point d'enregistrement avec la valeur id "midPoint" a un algorithme de placement par défaut qui centre l'objet média autour du point défini, alors que le point d'enregistrement avec la valeur id "topMargin" a un algorithme d'alignement par défaut qui place le point en haut à gauche de l'objet média au point d'enregistrement.

Des élément média variés peuvent être affichés dans les régions en utilisant les points d'alignement comme suit :

  
    <ref region="a" src="rtsp://..." dur="2s" regPoint="midPoint" /> 
    <ref region="b" src="http://..." dur="2s"
			 regPoint="midPoint" regAlign="bottomRight"/>
    <ref region="a" src="http://..." dur="2s" regPoint="topMargin" />
    <ref region="b" src="http://..." dur="2s"
			 regPoint="topMargin" regAlign="center"/>

Dans le premier exemple, un objet média est centré au milieu de la région a. Dans le deuxième exemple, un objet média a son coin bas droit centré au milieu de la région b. De même, dans le troisième exemple, un objet média a son coin haut gauche placé au point 10,15 dans la région a, et dans le quatrième exemple, un objet est centré autour du point 10,15 dans la région b.

Les points d'enregistrement peuvent être utilisés pour coordonner le placement d'un ensemble d'objets médias qui ne partagent pas les mêmes tailles. (Par exemple, un ensemble d'images peut être aligné au centre d'une région). Ils peuvent aussi être utilisés pour coordonner l'affichage d'images autour d'un point particulier dans une région, comme dans :

   <layout>
      <regPoint id="middle" top="50%" left="50%" regAlign="center" />
      <region id="a" ... />
   </layout> 
   ...
   <seq>   
    <ref region="a" src="rtsp://..." dur="2s" regPoint="middle"
					regAlign="bottomRight"/> 
    <ref region="a" src="http://..." dur="2s" regPoint="middle"
					regAlign="bottomLeft"/>
    <ref region="a" src="http://..." dur="2s" regPoint="middle"
					regAlign="topLeft"/>
    <ref region="a" src="http://..." dur="2s" regPoint="middle"
					regAlign="topRight"/>
  </seq>

Dans cet exemple, quatre objets sont alignés dans le temps au milieu d'une région. Si un élément média s'étend en-dehors des limites d'une région, il sera rogné aux limites de cette région.

Notez que les points d'enregistrement sont globaux dans le contexte d'une disposition et ne sont pas liés à une région particulière, mais ils peuvent être réutilisés en travers des régions. Ainsi, les décalages basés sur des pixels doivent être utilisés avec précaution.

Par commodité pour l'auteur, le module HierarchicalLayout de SMIL fournit de nombreux points d'enregistrement de régions prédéfinis incluant topLeft, topMid, topRight, midLeft, center, midRight, bottomLeft, bottomMid et bottomRight.

Par exemple, les objets média peuvent être centrés dans n'importe quelle région comme ceci :

    <ref ..." regPoint="center" regAlign="center" />

La valeur par défaut de regAlign pour une région est topLeft. Si l'attribut regAlign est utilisé sans un attribut regPoint, l'opération d'alignement est relative au point le plus haut à gauche de la région contenant cet objet, ainsi, le comportement est le même que si le regPoint était spécifié à topLeft.

Les règles de gestion du rognage des objets au sein des régions basés sur les attributs regPoint et regAlign sont définies ci-dessous.

5.10 La syntaxe et la sémantique du module HierarchicalLayout de SMIL 2.0

Cette section est normative.

5.10.1 Les éléments et attributs

Cette section définit les éléments et les attributs qui composent le module HierarchicalLayout de SMIL 2.0.

L'élément layout

Cet élément est défini comme dans le module BasicLayout avec les extensions présentées ici.

Pour pouvoir gérer la fonctionnalité du point d'enregistrement décrite ci-dessus, un nouvel élément est ajouté au modèle de contenu de l'élément layout.

Attributs de l'élément

Le module HierarchicalLayout de SMIL ne fournit aucun nouvel attribut à l'élément layout.

Contenu de l'élément

Si l'attribut type de l'élément layout a la valeur "text/smil-basic-layout", il peut contenir les éléments suivants :

region
root-layout
topLayout
regPoint

Tous les éléments de contenu, excepté regPoint sont définis ci-dessus dans les modules BasicLayout et MultiWindowLayout. L'élément regPoint est décrit ci-dessous.

L'élément region

L'élément region contrôle la position, la taille et l'échelle des éléments objet média. Ce module étend la définition de l'élément region pour inclure la définition des régions hiérarchiques.

Le positionnement d'une région, comme spécifié par ses attributs top et left, est toujours relatif à la géométrie de son parent, qui est définie par l'élément parent. Pour le module HierarchicalLayout de SMIL 2.0, tous les éléments des régions hiérarchiques doivent avoir comme parent immédiat les éléments region ou topLayout. La position de la région hiérarchique est définie de façon relative à l'élément parent. La taille intrinsèque de la région est égale à la taille de la géométrie du parent.

Quand les tailles des régions, comme spécifié par les attributs width et height, sont déclarées de façon relative avec des "%", la taille de la région hiérarchique est relative à la taille de la région parent. Les tailles déclarées par des valeurs absolues en pixels sont des valeurs absolues même quand elles sont utilisées dans une région enfant.

Notez qu'une région (hiérarchique) peut être définie d'une telle façon qu'elle peut s'étendre au-delà des limites de son parent. Dans ce cas la région enfant doit être rognée aux frontières du parent.

Si un attribut z-index est défini sur la région hiérarchique, il est évalué comme un index local au sein de celui du parent.

 

Attributs de l'élément

Dans le modèle HierarchicalLayout, l'élément region n'a pas d'attributs additionnels au-delà de ceux fournis dans les autres modules de disposition qui sont inclus. Cependant, la sémantique de l'attribut z-index est étendue pour gérer les régions hiérarchiques.

z-index
Cet attribut est défini comme dans le module BasicLayout avec les extensions présentées ici.
 
L'attribut z-index définit le niveau de la région au sein du contexte d'empilement de la région parent. Les éléments assignés à des régions de plus haut niveau sont interprétés devant celles de plus bas niveau au sein de la même région parent. Les régions enfants sont toujours placées devant leur région parent. Cela produit une visibilité de région à deux étages : la première par le confinement parent-enfant, et ensuite par l'attribut z-index entre les frères.

Comme avec les régions non hiérarchiques simples, l'ordre d'empilement des régions hiérarchiques peut être affecté par une activation temporelle. Une région devient active soit quand le média commence à être interprété dans la région, soit quand une de ses régions enfants devient active. Si deux régions sœurs ont le même z-index, la région établie le plus récemment est devant l'autre région.

Contenu de l'élément

Le module HierarchicalLayout de SMIL étend le modèle de contenu de l'élément region pour inclure de façon optionnelle d'autres éléments region.

L'élément regPoint

L'élément regPoint détermine les coordonnées (x, y) d'un point relatif au coin haut gauche d'une région pour l'alignement des éléments, dans le corps d'un document, dans les régions d'une surface de rendu visuelle. Un regPoint peut être défini en utilisant des valeurs absolues (pixels) ou relatives (pourcentage). La fonctionnalité de regPoint n'est pas définie et ne devrait pas être utilisée pour des médias n'ayant pas de taille intrinsèque.

Pour les besoins de la fonctionnalité de regPoint, les médias et les régions sont définis de façon rectangulaire, avec des côtés perpendiculaires, avec les côtés ordonnés dans le sens des aiguilles d'une montre : haut (top), droite (right), bas (bottom) et gauche (left). Le côté haut est le bord le plus proche du point ou du bord du système d'affichage considéré comme « en haut ».

L'élément regPoint peut seulement apparaître comme enfant immédiat d'un élément layout.

Si la fonctionnalité du point d'enregistrement est utilisée sur un objet média qui utilise aussi un positionnement de sous-région, le point d'enregistrement s'applique à la sous-région.

Si le point d'enregistrement ou la fonctionnalité d'alignement est utilisée sur un objet média, l'interaction entre la valeur de l'attribut regPoint, la valeur de l'attribut regAlign, et la valeur de l'attribut fit d'une région dans laquelle l'objet média est affichée est comme suit :

valeur fill pour l'attribut fit :
Cela dépend de la valeur de l'attribut regAlign. (Notez : dans tous les cas, le média doit maintenir un alignement correct sur le regPoint) :
valeur topLeft de regAlign :
Ajuste la hauteur et la largeur de l'objet indépendamment pour que le contenu touche juste les bords bas et droit de la boîte.
valeur topMid de regAlign :
Ajuste la hauteur et la largeur de l'objet indépendamment pour que le contenu touche juste le coin bas de la boîte et le plus proche (du regPoint) d'entre les bords haut et droit de la boîte.
valeur topRight de regAlign :
Ajuste la hauteur et la largeur de l'objet indépendamment pour que le contenu touche juste les bords bas et gauche de la boîte.
valeur midLeft de regAlign :
Ajuste la hauteur et la largeur de l'objet indépendamment pour que le contenu touche juste le plus proche (du regPoint) d'entre les bords bas et haut de la boîte, et touche le bord droit de la boîte.
valeur center de regAlign :
Ajuste la hauteur et la largeur de l'objet indépendamment pour que le contenu touche juste le plus proche (du regPoint) d'entre les bords haut et bas de la boîte, et touche le plus proche (du regPoint) d'entre les bords gauche et droit de la boîte.
valeur midRight de regAlign :
Ajuste la hauteur et la largeur de l'objet indépendamment pour que le contenu touche juste le plus proche (du regPoint) d'entre les bords haut et bas de la boîte, et touche le bord gauche de la boîte.
valeur bottomLeft de regAlign :
Ajuste la hauteur et la largeur de l'objet indépendamment pour que le contenu touche juste les bords haut et droit de la boîte.
valeur bottomMid de regAlign :
Ajuste la hauteur et la largeur de l'objet indépendamment pour que le contenu touche juste le bord du haut de la boîte, et le plus proche (du regPoint) d'entre les bords gauche et droit de la boîte.
valeur bottomRight de regAlign :
Ajuste la hauteur et la largeur de l'objet indépendamment pour que le contenu touche juste les bords haut et gauche de la boîte.
valeur hidden de l'attribut fit :
Aligne le média sur le regPoint donné par l'attribut regAlign. Si le média ainsi positionné s'étend au-delà des limites de la région, rogner le média en excès. Si le média ainsi positionné ne va pas jusqu'aux limites de la région, remplir l'espace restant avec la couleur d'arrière-plan de la région.
valeur meet de l'attribut fit :
Cela dépend de la valeur de l'attribut regAlign. Toute partie de la région qui n'est pas couverte par le média est alors remplie avec la couleur d'arrière-plan de la région. (Notez : dans tous les cas, le média doit maintenir un alignement correct sur le regPoint) :
valeur topLeft de regAlign :
Ajuste la hauteur et la largeur de l'objet média en maintenant son ratio d'aspect pour que le contenu touche juste le bord droit ou bas de la boîte, aucune partie du contenu n'étant rognée.
valeur topMid de regAlign :
Ajuste la hauteur et la largeur de l'objet média en maintenant son ratio d'aspect pour que le contenu touche juste au moins un des bords haut, droit ou bas, aucune partie du contenu n'étant rognée.
valeur topRight de regAlign :
Ajuste la hauteur et la largeur de l'objet média en maintenant son ratio d'aspect pour que le contenu touche juste le bord gauche ou bas de la boîte, aucune partie du contenu n'étant rognée.
valeur midLeft de regAlign :
Ajuste la hauteur et la largeur de l'objet média en maintenant son ratio d'aspect pour que le contenu touche juste au moins un des bords haut, droit ou bas de la boîte, aucune partie du contenu n'étant rognée.
valeur center de regAlign :
Ajuste la hauteur et la largeur de l'objet média en maintenant son ratio d'aspect pour que le contenu touche juste au moins un des bords haut, gauche ou droit de la boîte, aucune partie du contenu n'étant rognée.
valeur midRight de regAlign :
Ajuste la hauteur et la largeur de l'objet média en maintenant son ratio d'aspect pour que le contenu touche juste au moins un des bords haut, gauche ou bas de la boîte, aucune partie du contenu n'étant rognée.
valeur bottomLeft de regAlign :
Ajuste la hauteur et la largeur de l'objet média en maintenant son ratio d'aspect pour que le contenu touche juste le bord haut ou droit de la boîte, aucune partie du contenu n'étant rognée.
valeur bottomMid de regAlign:
Ajuste la hauteur et la largeur de l'objet média en maintenant son ratio d'aspect pour que le contenu touche juste au moins un des bords haut, gauche ou droit de la boîte, aucune partie du contenu n'étant rognée.
valeur bottomRight de regAlign :
Ajuste la hauteur et la largeur de l'objet média en maintenant son ratio d'aspect pour que le contenu touche juste le bord haut ou gauche de la boîte, aucune partie du contenu n'étant rognée.
valeur scroll de fit :
Aligne le média sur le regPoint donné par l'attribut regAlign. Si une partie du média s'étend au-delà des limites de la région, un mécanisme de défilement doit être invoqué pour permettre de voir le média qui est rogné au-delà des limites de la région.
valeur slice de fit :
Cela dépend de la valeur de l'attribut regAlign. (Notez : dans tous les cas, le média doit maintenir un alignement correct sur le regPoint) :
valeur topLeft de regAlign :
Ajuste la hauteur et la largeur de l'objet média en maintenant son ratio d'aspect pour que le contenu touche juste le bord droit ou bas de la boîte, celui des deux qui requiert le facteur d'échelle le plus large. N'importe quel contenu qui s'étend au-delà des limites de la boîte est rogné.
valeur topMid de regAlign :
Ajuste la hauteur et la largeur de l'objet média en maintenant son ratio d'aspect pour que le contenu touche juste le bord gauche, droit ou bas de la boîte, celui des trois qui requiert le facteur d'échelle le plus large. N'importe quel contenu qui s'étend au-delà des limites de la boîte est rognée. Le rognage interviendra sur deux côtés, au plus, de la région.
valeur topRight de regAlign :
Ajuste la hauteur et la largeur de l'objet média en maintenant son ratio d'aspect pour que le contenu touche juste le bord gauche ou bas de la boîte, celui des deux qui requiert le facteur d'échelle le plus large. N'importe quel contenu qui s'étend au-delà des limites de la région est rognée.
valeur midLeft de regAlign :
Ajuste la hauteur et la largeur de l'objet média en maintenant son ratio d'aspect pour que le contenu touche juste le bord haut, droit ou bas de la boîte, celui des trois qui requiert le plus large facteur d'échelle. N'importe quel contenu qui s'étend au-delà des limites de la région est rognée. Le rognage interviendra sur deux côtes, au plus, de la région.
valeur center de regAlign :
Ajuste la hauteur et la largeur de l'objet média en maintenant son ratio d'aspect pour que le contenu touche juste le bord haut, gauche, droit ou bas de la boîte, celui des quatre qui requiert le plus large facteur d'échelle. N'importe quel contenu qui s'étend au-delà des limites de la région est rognée. Le rognage interviendra sur trois côtés, au plus, de la région.
valeur midRight de regAlign :
Ajuste la hauteur et la largeur de l'objet média en maintenant son ratio d'aspect pour que le contenu touche juste le bord haut, gauche ou bas de la boîte, celui des trois qui requiert le plus large facteur d'échelle. N'importe quel contenu qui s'étend au-delà des limites de la région est rognée. Le rognage interviendra sur deux côtés, au plus, de la région.
valeur bottomLeft de regAlign :
Ajuste la hauteur et la largeur de l'objet média en maintenant son ratio d'aspect pour que le contenu touche juste le bord haut ou droit de la boîte, celui des deux qui requiert le plus large facteur d'échelle. N'importe quel contenu qui s'étend au-delà des limites de la région est rognée.
valeur bottomMid de regAlign :
Ajuste la hauteur et la largeur de l'objet média en maintenant son ratio d'aspect pour que le contenu touche juste le bord haut, gauche ou droit de la boîte, celui des trois qui requiert le facteur d'échelle le plus large. N'importe quel contenu qui s'étend au-delà des limites de la région est rognée. Le rognage interviendra sur deux côtés, au plus, de la région.
valeur bottomRight de regAlign :
Ajuste la hauteur et la largeur de l'objet média en maintenant son ratio d'aspect pour que le contenu touche juste le bord haut ou gauche de la boîte, celui des deux qui requiert le facteur d'échelle le plus large. N'importe quel contenu qui s'étend au-delà des limites de la région est rognée.

Par exemple, une vidéo large écran peut être faite pour jouer en mode « boîte-aux-lettres » dans une région, dont le ratio hauteur-largeur est plus petit, en utilisant regPoint="center" et regAlign="center" et en réglant la valeur fit de la région à "meet". Le résultat est que la vidéo touchera les bords gauche et droit de la région et sera centrée verticalement avec les espaces au-dessus et au-dessous remplis avec la couleur de l'arrière-plan.

Attributs de l'élément
top
Cette valeur identifie de façon unique la position ou la distance (en utilisant les valeurs en pixel ou en pourcentage non négatifs de CSS2) du point d'enregistrement relatif au haut de la région. La valeur par défaut de top est auto.
bottom
Cette valeur identifie de façon unique la position ou la distance (en utilisant les valeurs en pixel ou en pourcentage non négatifs de CSS2) du point d'enregistrement relatif au bas de la région. La valeur par défaut de bottom est auto.
left
Cette valeur identifie de façon unique la position ou la distance (en utilisant les valeurs en pixel ou en pourcentage non négatifs de CSS2) du point d'enregistrement relatif à la gauche de la région. La valeur par défaut de left est auto.
right
Cette valeur identifie de façon unique la position ou la distance (en utilisant les valeurs en pixel ou en pourcentage non négatifs de CSS2) du point d'enregistrement relatif à la droite de la région. La valeur par défaut de right est auto.
regAlign
Cet attribut spécifie l'algorithme d'alignement par défaut qui est associé à un regPoint relatif à l'objet média. Si aucune valeur n'est spécifiée, la valeur de topLeft est celle par défaut pour le regPoint. Les valeurs suivantes sont autorisées :
topLeft
Aligne le coin en haut à gauche de l'objet avec le point d'enregistrement.
topMid
Aligne le point en haut au milieu de l'objet avec le point d'enregistrement. Le haut au milieu est le point décalé de largeur/2 vers la droite du coin haut gauche de l'objet.
topRight
Aligne le coin en haut à droite de l'objet avec le point d'enregistrement.
midLeft
Aligne le point au milieu à gauche de l'objet avec le point d'enregistrement. Le milieu à gauche est le point décalé de hauteur/2 vers le bas du coin haut gauche de l'objet.
center
Aligne le centre de l'objet avec le point d'enregistrement.
midRight
Aligne le point au milieu à droite de l'objet avec le point d'enregistrement. Le milieu à droite est le point décalé de hauteur/2 vers le bas du coin haut droite de l'objet.
bottomLeft
Aligne le coin en bas à gauche de l'objet avec le point d'enregistrement.
bottomMid
Aligne le point en bas au milieu de l'objet avec le point d'enregistrement. Le milieu au bas est le point décalé de largeur/2 vers la droite du coin bas gauche de l'objet.
bottomRight
Aligne le coin en bas à droite de l'objet avec le point d'enregistrement.

Contenu de l'élément

Aucun.

5.10.2 Les attributs de présentation et de positionnement du module HierarchicalLayout de SMIL

Alors que le module BasicLayout de SMIL 2.0 fournit seulement l'attribut region sur les éléments pour les placer sur la surface de rendu, le module HierarchicalLayout inclut des attributs pour affiner la position du contenu du média dans une région et pour affiner la présentation visuelle du média dans la région.

Ce module fournit un contrôle fin sur la couleur de l'arrière-plan qui entoure les éléments média en permettant à l'élément média de déclarer la couleur de l'arrière-plan d'une région dans laquelle le média est en train d'être affiché.

Un ensemble d'attributs (les attributs de positionnement de sous-région) permet à une sous-région d'être définie, celle-ci étant l'enfant d'une région déclarée et contenue entièrement au sein de la région de disposition englobante pour cet objet média ; l'autre ensemble d'attributs peut être utilisé pour définir un point d'enregistrement qui va être utilisé avec cet objet ainsi qu'un algorithme de de disposition optionnel qui va surclasser l'algorithme par défaut associé au point d'enregistrement.

Si l'attribut fit et les attributs d'alignement regPoint et regAlign sont appropriés au placement d'un objet média particulier, l'interaction est la même que celle décrite dans la définition de l'élément regPoint. Si les attributs de positionnement de la sous-région sont utilisés sur un objet média avec l'attribut fit ou les attributs d'alignement regPoint et regAlign, ces attributs s'appliquent à la sous-région. Dans ce cas le, réglage de fit sur l'élément de la région référencé ne s'applique pas à la sous-région.

Pour à la fois un positionnement de sous-région et l'usage d'un point d'enregistrement, la valeur de l'attribut z-index sur la région associée est utilisée. Si des objets médias se recouvrent spatialement, les règles existantes pour résoudre les conflits z-index sont appliquées.

Notez que le placement au sein de la région peut être défini d'une telle façon qu'elle peut étendre l'objet média au-delà des limites de la région. Dans ce cas l'objet média doit être rogné aux frontières de la région.

La couleur d'arrière-plan spécifique du média

backgroundColor
Cet attribut permet de spécifier la couleur de l'arrière-plan qui va être utilisée quand un élément média sera affiché dans une sous-région. Le champs des valeurs légales est le même que pour l'attribut backgroundColor sur l'élément region. La valeur par défaut de cet attribut est transparent.

Les attributs de positionnement des sous-régions

top
Cette valeur identifie de façon unique la position ou la distance (en utilisant les valeurs en pixel ou en pourcentage de CSS2) du bord du haut de la sous-région par rapport au haut de la région. La valeur par défaut de top est auto.
bottom
Cette valeur identifie de façon unique la position ou la distance (en utilisant les valeurs en pixel ou en pourcentage de CSS2) du bord du bas de la sous-région par rapport au bas de la région. La valeur par défaut de bottom est auto.
height
Cette valeur identifie de façon unique la position ou la distance (en utilisant les valeurs en pixel ou en pourcentage de CSS2) du bord du bas de la sous-région par rapport au côté du haut de la région. La valeur par défaut de height est auto.
left
Cette valeur identifie de façon unique la position ou la distance (en utilisant les valeurs en pixel ou en pourcentage de CSS2) du bord de gauche de la sous-région par rapport à la gauche de la région. La valeur par défaut de left est auto.
right
Cette valeur identifie de façon unique la position ou la distance (en utilisant les valeurs en pixel ou en pourcentage de CSS2) du bord de droite de la sous-région par rapport au côté droit de la région. La valeur par défaut de right est auto.
width
Cette valeur identifie de façon unique la position ou la distance (en utilisant les valeurs en pixel ou en pourcentage de CSS2) du bord de droite de la sous-région par rapport au côté gauche de la région. La valeur par défaut de width est auto.

Les conflits entre les attributs de taille de la région bottom, height, left, right, top et width sont résolus suivant les règles de placement des éléments décrites dans la section concernant l'élément region.

Les attributs de positionnement de sous-régions seront ignorés s'ils sont utilisés sur un élément sans attribut region qui spécifie l'identifiant de l'élément region dans une section layout.

Les attributs des points d'enregistrement

L'attribut regPoint est utilisé en conjonction avec l'élément regPoint. Si un attribut regPoint est manquant ou se rapporte à un élément regPoint non existant, les valeurs des attributs regAlign sont appliqués au point haut gauche de la région contenant l'objet média.

regPoint
Cette valeur identifie de façon unique le point d'enregistrement à utiliser pour le placement de l'objet. La valeur devrait être un identifiant XML d'un élément regPoint.
Les valeurs suivantes sont des points d'enregistrement prédéfinis qui n'ont pas besoin d'être déclarés comme éléments regPoint avant d'être utilisés :
topLeft
Revient au même que de mettre top="0%" left="0%" sur l'élément sans l'attribut regPoint.
topMid
Revient au même que de mettre top="0%" left="50%" sur l'élément sans l'attribut regPoint.
topRight
Revient au même que de mettre top="0%" left="100%" sur l'élément sans l'attribut regPoint.
midLeft
Revient au même que de mettre top="50%" left="0%" sur l'élément sans mettre l'attribut regPoint.
center
Revient au même que de mettre top="50%" left="50%" sur l'élément sans mettre l'attribut regPoint.
midRight
Revient au même que de mettre top="50%" left="100%" sur l'élément sans mettre l'attribut regPoint.
bottomLeft
Revient au même que de mettre top="100%" left="0%" sur l'élément sans mettre l'attribut regPoint.
bottomMid
Revient au même que de mettre top="100%" left="50%" sur l'élément sans mettre l'attribut regPoint.
bottomRight
Revient au même que de mettre top="100%" left="100%" sur l'élément sans mettre l'attribut regPoint.
Notez que les points d'enregistrement prédéfinis ont le même sens par rapport à une région que les valeurs d'attribut regAlign ont par rapport au média. Si aucune valeur n'est donnée, le point d'enregistrement par défaut est topLeft (top="0%", left="0%"), c'est-à-dire que le média est aligné avec le haut gauche de la région.
regAlign
Cette valeur identifie de façon unique l'algorithme d'enregistrement qui doit être utilisé pour le regPoint défini pour l'objet, et surclasse tout attribut regAlign sur l'élément regPoint référencé. Des valeurs acceptables sont celles définies sous couvert de l'attribut regAlign pour l'élément regPoint. Si elle est utilisée sans un attribut regPoint explicite, la valeur est relative au point haut gauche de la région utilisée par l'objet média associé.

Le surclassement du fit de la région

L'attribut fit est utilisé sur un élément en conjonction avec l'attribut region pour contrôler l'affichage de l'élément sur la surface de rendu. Une valeur de l'attribut fit donnée sur l'élément surclassera la valeur de fit déclarée dans l'élément region référencé.

fit
Cet attribut spécifie le comportement si la hauteur et la largeur intrinsèques d'un objet média visuel diffèrent des valeurs spécifiées par les valeurs de hauteur et de largeur de la région. Cela prend les mêmes valeurs que l'attribut fit sur l'élément region, et suit la même sémantique, à l'exception que l'attribut fit déclaré ne s'applique qu'à la sous-région déclarée par l'élément média l'utilisant, et pas aux autres éléments qui pourraient utiliser le même élément region parent.

Le surclassement du z-index de la région

L'attribut z-index est utilisé sur un élément en conjonction avec les attributs de positionnement de sous-région pour contrôler l'affichage de l'élément sur la surface de rendu. Une valeur de l'attribut z-index donnée sur l'élément fixera le z-index pour la sous-région dans le contexte d'ordre d'empilement de la région parente.

z-index
Cet attribut spécifie le comportement de l'ordre d'empilement pour la sous-région. Cela prend les mêmes valeurs que l'attribut z-index sur l'élément région et suit la même sémantique, à l'exception que le z-index déclaré ne s'applique qu'aux sous-régions déclarées par l'élément média, et pas aux autres éléments qui pourraient utiliser le même élément region parent.

précédent   suivant   sommaire