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 :
- SVG étant une application de XML est compatible avec la recommandation du « Langage de Balisage
eXtensible (XML) version 1.0 » [XML10 vf.] ;
- SVG est compatible avec la recommandation pour les « espaces de nommage dans XML »
[XML-NS vf.] ;
- SVG utilise le « Langage de Lien de XML (XLink) » [XLINK]
pour les références d'URI et requiert le support des spécifications d'URI de base, définies
dans « XML Base » [XML-BASE vf.] ;
- La syntaxe SVG pour la référence des IDs des éléments est un sous-ensemble compatible avec
la syntaxe de référence d'ID du « Langage de Pointeur de XML (XPointer) »
[XPTR] ;
- Un contenu SVG peut être stylé soit par CSS (voir la spécification pour les « feuilles
de styles en cascade (CSS) niveau 2 » [CSS2 vf.]), soit par XSL
(voir les « Transformations XSL (XSLT) version 1.0 » [XSLT]).
(Voir les chapitres Le style avec CSS et
Le style avec XSL) ;
- SVG reconnaît les propriétés et les approches concernées communes à CSS et XML, avec
en plus des syntaxes et des fonctions sélectionnées de CSS (voir les chapitres
Les propriétés de style de SVG et
L'utilisation des facilités de CSS et XSL par SVG) ;
- Les feuilles de style externes sont référencées à l'aide du mécanisme indiqué
dans « L'association des feuilles de style et des documents XML version 1.0 »
[XML-SS] ;
- SVG comprend un Modèle Objet du Document (DOM) complet qui est conforme à la recommandation pour le
« Modèle Objet du Document (DOM) niveau 1 » [DOM1 vf.].
Le DOM de SVG a un haut degré de compatibilité et de cohérence avec le DOM de HTML qui est défini
dans la spécification DOM niveau 1. De surcroît, le DOM de SVG reconnaît et incorpore plusieurs des
facilités décrites dans le « Modèle Objet du Document (DOM) niveau 2 »
[DOM2], dont le modèle objet de CSS et la gestion des
événements ;
- SVG incorpore quelques fonctions et approches qui font partie de la spécification pour le « Langage
d'Intégration Multimédia Synchronisé (SMIL) version 1.0 »
[SMIL1], dont l'élément
'switch' et l'attribut
systemLanguage ;
- Les fonctions d'animation de SVG (voir le chapitre L'animation) ont été
développées en collaboration avec le Groupe de Travail Multimédia Synchronisé (SYMM) du W3C,
à l'origine de la spécification du Langage d'Intégration Multimédia Synchronisé (SMIL) version 1.0
[SMIL1]. Les fonctions d'animation de SVG incorporent et étendent les
possibilités d'animation d'emploi général de XML, décrites dans la spécification de
« l'animation SMIL » [SMILANIM] ;
- SVG a été conçu pour permettre aux versions ultérieures de SMIL l'emploi d'un contenu SVG
animé ou statique comme composants de médias ;
- SVG vise à une compatibilité maximale avec à la fois HTML [HTML4 vf.]
et XHTML™ 1.0 [XHTML vf.]. Plusieurs des fonctionnalités de SVG sont
directement modelées d'après HTML, dont son utilisation de CSS [CSS2 vf.],
son approche de la gestion des événements et son approche du Modèle Objet du Document
[DOM2] ;
- SVG est compatible avec les travaux du W3C sur l'internationalisation. Les références (W3C et autres)
en étant [UNICODE]
et [CHARMOD]. Voir aussi le chapitre
Le soutien de l'internationalisation ;
- SVG est compatible avec les travaux du W3C sur l'accessibilité au Web [WAI].
Voir également le chapitre Le soutien de l'accessibilité.
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.