4 septembre 2001

1 Introduction

Contenu

1.1 Au sujet de SVG

Cette spécification définit les fonctions et la syntaxe des graphiques vectoriels adaptables (SVG).

SVG est un langage de description de graphiques bi-dimensionnels en XML [XML10 vf.]. SVG admet trois types d'objets graphiques : des contours graphiques vectoriels (par exemple, des tracés consistant en lignes droites et courbes), des images et du texte. Les objets graphiques peuvent être regroupés, stylés, transformés et composés dans des objets précédemment rendus. L'ensemble de fonctions comprend des transformations imbriquées, des tracés de rognage, des masques basés sur la couche alpha et des objets de gabarit.

Les dessins SVG peuvent être interactifs et dynamiques. On peut définir et déclencher des animations, soit déclarativement (i.e., en incorporant les éléments d'animation SVG dans un contenu SVG), soit via un script.

Des applications sophistiquées de SVG sont réalisables avec le renfort d'un langage de script pour agir sur le Modèle Objet du Document (DOM) de SVG qui offre un accès complet à tous les éléments, attributs et propriétés. Un large jeu de gestionnaires d'événement, tel que onmouseover et onclick, peuvent être assignés à tout objet graphique SVG. Du fait de sa compatibilité avec les autres standards du Web et de l'effet de levier produit par ceux-ci, des fonctions, comme l'utilisation d'un script, peuvent avoir lieu simultanément sur des éléments XHTML et SVG dans la même page Web.

SVG est un langage de contenu graphique riche. Par souci d'accessibilité, s'il existe un document source original qui contient une structure et une sémantique d'un niveau supérieur, il est recommandé que cette information de niveau supérieur soit rendue disponibles autrement, soit en rendant disponible ce document source original, soit en proposant une version alternative disponible dans un autre format qui puisse transmettre cette information, soit encore en employant les facilités de SVG pour inclure celle-ci dans le contenu SVG. Voir le chapitre traitant de l'accessibilité sur les techniques suggérées pour parvenir à une meilleure accessibilité.


1.2 Le type MIME de SVG, le suffixe de nom de fichier et le typage de fichier Macintosh

Le type MIME pour SVG est "image/svg+xml" (voir [RFC3023]). Le W3C enregistrera ce type MIME à peu près à la date où SVG sera approuvée comme recommandation du W3C.

On recommande que les fichiers SVG aient le suffixe ".svg" (tout en minuscule) sur toutes les plateformes. On recommande que les fichiers SVG avec une compression gzip aient le suffixe ".svgz" (tout en minuscule) sur toute les plateformes.

On recommande que les fichiers SVG, entreposés sur les systèmes de fichier HFS de Macintosh, reçoivent le type de fichier "svg " (tout en minuscule, la quatrième lettre étant un caractère espace). On recommande que les fichiers SVG avec une compression gzip, entreposés sur les systèmes de fichier HFS de Macintosh, reçoivent le type de fichier "svgz" (tout en minuscule).

1.3 L'espace de nommage, l'identifiant public et l'identifiant système de SVG

Suivent l'espace de nommage, l'identifiant public et l'identifiant système de SVG :

Espace de nommage SVG :
http://www.w3.org/2000/svg
Identifiant public pour SVG 1.0 :
PUBLIC "-//W3C//DTD SVG 1.0//EN"
Identifiant système pour SVG 1.0 :
http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd

Voici un exemple de déclaration de type de document vf. pour un document SVG :

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" 
		"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">

« errata 2001-09-25 »

1.4 La compatibilité avec les autres efforts de standardisation

SVG s'appuie et s'intègre aux autres spécifications et efforts de standardisation du W3C. En s'appuyant et en se conformant aux autres standards, SVG se renforce et rend la tâche plus facile à ceux qui veulent apprendre comment incorporer SVG dans leurs sites Web.

Ce qui suit décrit comment SVG reste compatible, s'appuie et s'intègre aux autres efforts du W3C :

Dans les environnements qui reconnaissent [DOM2] comme autre grammaire XML (par exemple, XHTML [XHTML vf.]) et qui reconnaissent aussi SVG et le DOM de SVG, on peut envisager une seule approche de script en utilisation simultanée sur les documents XML et les graphiques SVG, auquel cas, les effets interactifs et dynamiques seront possibles dans plusieurs espaces de nommage XML avec le même jeu de scripts.


1.5 La terminologie

Les mots-clés « DOIT », « NE DOIT PAS », « REQUIS », « DEVRA », « NE DEVRA PAS », « DEVRAIT », « NE DEVRAIT PAS », « RECOMMENDÉ », « PEUT » et « OPTIONNEL » doivent être interprétés dans cette spécification comme décrit dans RFC 2119 (voir [RFC2119]). Cependant, par souci de lisibilité, ces mots n'y apparaissent pas en lettres majuscules.

Par moment, cette spécification recommande des règles de bon usage pour les auteurs et les agents utilisateurs. Ces recommandations ne sont pas normatives et la conformité avec la spécification ne dépend pas de leur respect. Ces recommandations se présentent sous la forme d'expressions comme « Nous recommandons... », « Cette spécification recommande... » ou tout autre phrasé équivalent.


1.6 Les définitions

forme de base [N.d.T. basic shape]
Des formes standards prédéfinies dans SVG, par commodité pour des opérations graphiques courantes. Notamment : 'rect', 'circle', 'ellipse', 'line', 'polyline', 'polygon'.
canevas [N.d.T. canvas]
Une surface sur laquelle sont dessinés des éléments graphiques, celle-ci pouvant être un média physique réel, comme un écran ou une feuille de papier, ou une surface abstraite, comme la région allouée pour une mémoire informatique. Voir la discussion sur le canevas de SVG au chapitre Les systèmes de coordonnées, les transformations et les unités.
tracé de rognage [N.d.T. clipping path]
Une combinaison de 'path', de 'text' et de formes de base, qui sert de délimitation (en l'absence d'anti-crénelage) à un masque de 1bit, où tout ce qui se trouve à « l'intérieur » de la délimitation peut être visible et tout se qui se trouve en dehors est masqué. Voir Les tracés de rognage.
élément conteneur [N.d.T. container element]
Un élément qui peut avoir des éléments graphiques et d'autres éléments conteneurs comme éléments enfants. Notamment : 'svg', 'g', 'defs' 'symbol', 'clipPath', 'mask', 'pattern', 'marker', 'a' et 'switch'.
fragment de document SVG interne courant [N.d.T. current innermost SVG document fragment]
Le sous-arbre de document XML qui commence avec l'élément 'svg' ancêtre le plus immédiat d'un élément SVG donné.
fragment de document SVG courant [N.d.T. current SVG document fragment]
Le sous-arbre de document XML qui commence avec l'élément 'svg' ancêtre le plus externe d'un élément SVG donné, avec l'obligation que tous les éléments conteneurs entre le 'svg' le plus externe et l'élément en question soient tous des éléments pour le langage SVG.
matrice de transformation courante (MTC) [N.d.T. current transformation matrix (CTM)]
Les matrices de transformation définissent la correspondance mathématique à partir d'un système de coordonnées vers un autre à l'aide d'une matrice 3x3 selon l'équation [x' y' 1] = [x y 1] * matrice. La matrice de transformation courante (MTC) définit la correspondance à partir du système de coordonnées utilisateur vers celui de la zone de visualisation. Voir L'établissement d'une nouvelle zone de visualisation.
remplir [N.d.T. fill]
L'opération de peinture de l'intérieur d'une forme ou à l'intérieur des glyphes de caractères dans une chaîne textuelle.
police [N.d.T. font]
Une police représente une collection organisée de glyphes dans laquelle les diverses représentations de glyphe partagent un aspect ou un style commun, de telle manière que, quand une chaîne de caractères est rendue en bloc, le résultat soit hautement lisible, transmette un style artistique particulier et offre un alignement et un espacement de l'interlettrage cohérents.
glyphe [N.d.T. glyph]
Un glyphe représente une unité de rendu d'un contenu dans une police. La correspondance entre les caractères qui doivent être dessinés et les glyphes correspondants s'effectue souvent un-à-un (par exemple, le caractère « A » est souvent rendu par un seul glyphe), mais parfois plusieurs glyphes sont nécessaires pour rendre un seul caractère (par exemple, pour les accents) ou, à l'inverse, un seul glyphe peut être utilisé pour rendre plusieurs caractères (par exemple, les ligatures). Typiquement, un glyphe se définit par un ou plusieurs contours, comme un tracé, avec éventuellement une information supplémentaire comme des indices de rendus qui aident le moteur de rendu de police à produire un texte lisible dans une petite taille.
élément graphique [N.d.T. graphics element]
Un parmi les types d'élément qui peuvent entraîner le dessin de graphiques sur le canevas cible. Notamment : 'path', 'text', 'rect', 'circle', 'ellipse', 'line', 'polyline', 'polygon', 'image' et 'use'.
élément appelant un graphique [N.d.T. graphics referencing element]
Un élément graphique qui utilise une référence vers un document ou un élément différents comme source de son contenu graphique. Notamment : 'use' et 'image'.
référence d'URI local [N.d.T. local URI reference]
Un Identifiant de Ressource Uniforme [URI] qui ne comprend pas un type de valeur <URI-absolu> ou <URI-relatif> et qui représente ainsi une référence vers un élément du document courant. Voir les Références et l'élément 'defs'.
masque [N.d.T. mask]
Un élément conteneur pouvant contenir des éléments graphiques ou d'autres éléments conteneurs, qui définissent un jeu de graphiques à employer comme masque semi-transparent pour la composition des objets de premier-plan dans l'arrière-plan courant. Voir Les masques.
référence d'URI non local [N.d.T. non-local URI reference]
Un Identifiant de Ressource Uniforme [URI] qui comprend un type de valeur <URI-absolu> ou <URI-relatif> et qui représente (habituellement) ainsi une référence vers un document différent ou un élément dans un document différent. Voir les Références et l'élément 'defs'.
peinture [N.d.T. paint]
Une peinture représente une manière de placer des valeurs de couleur dans un canevas. Une peinture peut consister à la fois en des valeurs de couleur et des valeurs alpha associées, ces valeurs alpha contrôle le mélange des couleurs avec celles qui sont déjà présentes sur le canevas. SVG gère en interne trois types de peinture : la couleur, les dégradés et les motifs.
attribut de présentation [N.d.T. presentation attribute]
Un attribut XML d'un élément SVG qui spécifie la valeur d'une propriété donnée de cet élément. Voir Le style.
propriété [N.d.T. property]
Un paramètre qui participe à la spécification de comment rendre un document. On peut trouver une liste complète de propriétés SVG dans l'Index des propriétés. On assigne une propriété à un élément dans le langage SVG soit par des attributs de présentation, soit en utilisant un langage de style, comme CSS [CSS2 vf.]. Voir Le style.
forme [N.d.T. shape]
Un élément graphique qui est défini par une certaine combinaison de lignes droites et de courbes. Notamment : 'path', 'rect', 'circle', 'ellipse', 'line', 'polyline', 'polygon'.
liserer [N.d.T. stroke]
L'opération de peindre le contour d'une forme ou celui de glyphes de caractère dans une chaîne textuelle.
canevas SVG [N.d.T. SVG canvas]
Le canevas sur lequel le contenu SVG est rendu. Voir la discussion sur le canevas SVG au chapitre Les systèmes de coordonnées, les transformations et les unités.
fragment de document SVG [N.d.T. SVG document fragment]
Le sous-arbre de document XML qui commence par un élément 'svg'. Un fragment de document SVG peut consister en un document SVG autonome ou en un frament de document XML parent englobé par un élément 'svg'. Quand un élément 'svg' est un descendant d'un autre élément 'svg', il y a deux fragments de document SVG, un pour chaque élément 'svg' et un des fragment de document SVG contenant l'autre.
zone de visualisation SVG [N.d.T. SVG viewport]
La zone de visualisation dans le canevas SVG qui définit la région rectangulaire dans laquelle le contenu SVG est rendu. Voir la discussion sur la zone de visualisation SVG au chapitre Les systèmes de coordonnées, les transformations et les unités.
élément à contenu textuel [N.d.T. text content element]
L'un parmi les éléments SVG qui peuvent définir une chaîne textuelle devant être rendue sur le canevas. Les éléments à contenu textuel de SVG sont les suivants : 'text', 'tspan', 'tref', 'textPath' et 'altGlyph'.
transformation [N.d.T. transformation]
Une modification de la matrice de transformation courante (MTC) apportée par une information supplémentaire sous la forme d'un jeu de spécifications de transformations simples (telles que mise à l'échelle, rotation ou translation) et/ou une ou plusieurs matrices de transformation. Voir L'établissement d'une nouvelle zone de visualisation.
matrice de transformation [N.d.T. transformation matrix]
Les matrices de transformation définissent la correspondance mathématique à partir d'un système de coordonnées vers un autre à l'aide d'une matrice 3x3 selon l'équation [x' y' 1] = [x y 1] * matrice. Voir la matrice de transformation courante (MTC) et L'établissement d'une nouvelle zone de visualisation.
référence d'URI [N.d.T. URI reference]
Un Identifiant de Ressource Uniforme [URI] qui sert comme référence vers un fichier ou l'élément d'un fichier. Voir les Références et l'élément 'defs'.
agent utilisateur [N.d.T. user agent]
Un agent utilisateur est généralement défini comme étant une application qui ramène et rend un contenu Web, entre autres du texte, des graphiques, des sons, de la vidéo, des images et d'autres types de contenu. Un agent utilisateur peut requérir l'aide d'autres agents utilisateurs pour prendre en charge certains types de contenu. Par exemple, un navigateur peut lancer un programme distinct ou un plug-in pour le rendu d'un son ou d'une vidéo. Parmi les agents utilisateurs, on trouve les navigateurs de station de travail graphique, les lecteurs multimédia, les navigateurs en mode texte, les navigateurs vocaux et les technologies d'assistance tels que les lecteurs d'écran, les agrandisseurs d'écran, les synthétiseurs vocaux, les écrans tactiles et les logiciels de commande à la voix.
Un « agent utilisateur » peut avoir, ou non, la capacité de ramener et de rendre un contenu SVG ; par contre, un « agent utilisateur SVG » ramène et rend un contenu SVG.
système de coordonnées utilisateur [N.d.T. user coordinate system]
En général, un système de coordonnées définit les emplacements et les distances sur le canevas courant. Le système de coordonnées utilisateur courant est celui qui est couramment actif et qui est utilisé pour définir comment les coordonnées et les longueurs sont respectivement situées et calculées sur le canevas courant. Voir le système de coordonnées initial de l'utilisateur et L'établissement d'une nouvelle zone de visualisation.
espace utilisateur [N.d.T. user space]
Un synonyme pour le système de coordonnées utilisateur.
unités utilisateur[N.d.T. user units]
Une valeur de coordonnée, ou de longueur, exprimée en unités utilisateur représente une valeur de coordonnée, ou de longueur, dans le système de coordonnées utilisateur courant. Ainsi, dix unités utilisateur représentent une longueur de 10 unités dans le système de coordonnées de l'utilisateur.
zone de visualisation [N.d.T. viewport]
Une région rectangulaire dans le canevas courant sur lequel doivent être rendus des éléments graphiques. Voir la discussion sur l'espace de visualisation SVG au chapitre Les systèmes de coordonnées, les transformations et les unités.
système de coordonnées de la zone de visualisation [N.d.T. viewport coordinate system]
En général, un système de coordonnées définit les emplacements et les distances sur le canevas courant. Le système de coordonnées de la zone de visualisation est celui qui est actif à l'instant du traitement d'un élément 'svg', avant le traitement de l'attribut optionnel viewBox. Au cas où un fragment de document SVG est incorporé dans un document parent qui emploie CSS pour sa disposition, alors le système de coordonnées de la zone de visualisation aura la même orientation et les mêmes dimensions que pour CSS, avec son origine en haut et à gauche de la zone de visualisation. Voir La zone de visualisation initiale et L'établissement d'une nouvelle zone de visualisation.
espace de la zone de visualisation [N.d.T. viewport space]
Un synonyme pour système de coordonnées de la zone de visualisation.
unités de la zone de visualisation [N.d.T. viewport units]
Une valeur de coordonnée, ou de longueur, exprimée en unités de la zone de visualisation représente une valeur de coordonnée, ou de longueur, dans le système de coordonnées de la zone de visualisation. Ainsi, dix unités de zone de visualisation représentent une longueur de 10 unités dans le système de coordonnées de la zone de visualisation.