W3C

La liste des erreurs dans la recommandation SVG 1.0

Cette version :
http://www.w3.org/2001/09/REC-SVG-20010904-errata
Dernière modification :
$Date: 2002/11/15 09:46:31 $
Cet errata répertorie les erreurs connues dans le document :
http://www.w3.org/TR/2001/REC-SVG-20010904/
La dernière version de la spécification SVG 1.0 se trouve à :
http://www.w3.org/TR/SVG/

Les commentaires sur cette spécification peuvent être envoyés à www-svg@w3.org - (voir les archives publiques).

Les erreurs connues

Section 1.2

Dans la section 1.3, la spécification SVG 1.0 dit que l'identifiant public pour SVG 1.0 est :

"-//W3C//DTD SVG 1.0//EN"

alors que les exemples SVG dans la spécification même utilisent l'identifiant public suivant :

"-//W3C//DTD SVG 20010904//EN"

Au moment de la publication, ces deux identifiants signifient exactement la même chose. Ce pourrait ne plus être toujours le cas dans le futur, ainsi un choix est offert. Le premier est recommandé pour un contenu visant la version 1.0 de la spécification, y compris une possible republication comme une « seconde édition ». (Remarque : Il n'est pas envisagé pour l'instant de publier une seconde édition de la spécification SVG 1.0). Le second est recommandé pour un contenu visant explicitement la version datée 20010904 de la spécification SVG 1.0. Les implémentations qui se réclament de la Recommandation SVG 1.0 de 20010904 doivent accepter les deux identifiants publics.

Section 1.3

Dans la section 1.3, la spécification dit que l'identifiant système pour les documents SVG 1.0 est :

"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"

C'est la même chose que :

"http://www.w3.org/TR/SVG/DTD/svg10.dtd"

Le DTD peut également être sauvé localement ou placé sur des serveurs Web, en conséquence l'URL réel peut varier. Cette forme svg10.dtd se réfère à la forme courante du DTD de SVG 1.0, y compris les erreurs éventuelles. Sur le site Web du W3C, les identifiants système suivants :

"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg-20010904.dtd "

ou

"http://www.w3.org/TR/SVG/DTD/svg-20010904.dtd "

se réfèreront toujours exactement au DTD en date du 2001-09-04.

Au moment de la publication, ces deux identifiants signifient exactement la même chose. Ce pourrait ne plus être toujours le cas dans le futur, ainsi un choix est offert.

4.3 Les interfaces DOM de base

L'interface SVGExternalResourcesRequired

Changer la description associée à l'attribut externalResourcesRequired.

Attributs

readonly SVGAnimatedBoolean externalResourcesRequired

Correspond à l'attribut externalResourcesRequired sur l'élément en question. Remarquer que le DOM SVG définit l'attribut externalResourcesRequired comme étant de type SVGAnimatedBoolean, alors que la définition du langage SVG indique que l'attribut externalResourcesRequired n'est pas animé. Puisque la définition du langage SVG déclare que l'attribut externalResourcesRequired ne peut pas être animé, la valeur de animVal sera toujours la même que celle de baseVal.

5.1.2 L'élément 'svg'

Au moment de la publication de la recommandation du 4 septembre 2001, une ligne a été accidentellement oubliée dans la liste des attributs de l'élément 'svg'. Il faudrait rajouter la ligne suivante à la déclaration ATTLIST de 'svg' :

xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"

En résultat, le fragment de DTD courant de l'élément 'svg' est :

<!ATTLIST svg
	xmlns CDATA #FIXED "http://www.w3.org/2000/svg"
        xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
	%stdAttrs; 
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-All; 
	viewBox %ViewBoxSpec; #IMPLIED
	preserveAspectRatio %PreserveAspectRatioSpec; "xMidYMid meet"
	zoomAndPan (disable | magnify) "magnify"
	%graphicsElementEvents; 
	%documentEvents; 
	version %Number; #FIXED "1.0"
	x %Coordinate; #IMPLIED
	y %Coordinate; #IMPLIED
	width %Length; #IMPLIED
	height %Length; #IMPLIED
	contentScriptType %ContentType; "text/ecmascript"
	contentStyleType %ContentType; "text/css">

Le DTD « comprenant l'errata » sur le site du W3C a également été mis à jour pour inclure le fragment ci-dessus :

« http://www.w3.org/TR/SVG/DTD/svg10.dtd »

En conséquence, la validation des contenus, obtenus à partir des DTD des précédents avant-projets et de la recommandation candidate, va continuer d'être correcte. Les copies locales de svg10.dtd devraient être mises à jour pour refléter ce changement.

En outre, pour une raison chronologique, une copie du DTD incorporant cet errata a été mise en place à la localisation datée :

« http://www.w3.org/TR/SVG/DTD/svg-20021115.dtd »

5.6 L'élément 'use'

En-dessous, dans la section « Définition des attributs », changer les descriptions des attributs width et height pour :

width = "<longueur>"

La largeur de la région rectangulaire dans laquelle l'élément appelé se place. Une valeur négative constitue une erreur (voir Le traitement des erreurs). Une valeur de zéro désactive le rendu de l'élément.

Animable : oui.

height = "<longueur>"

La hauteur de la région rectangulaire dans laquelle l'élément appelé se place. Une valeur négative constitue une erreur (voir Le traitement des erreurs). Une valeur de zéro désactive le rendu de l'élément.

Animable : oui.

5.7 L'élément 'image'

Changer la première phrase du troisième paragraphe au sujet des images pixélisées :

« Quand un élément 'image' appelle le fichier d'une image pixélisée, tel qu'un fichier PNG ou JPEG, alors l'image pixélisée est enchâssée dans la région spécifié par les attributs x, y, width et height. »

pour :

« Quand un élément 'image' appelle le fichier d'une image pixélisée, tel qu'un fichier PNG ou JPEG, alors l'élément 'image' établit une nouvelle zone de visualisation pour l'image pixélisée, comme décrit dans la section L'établissement d'une nouvelle zone de visualisation. L'élément 'image' possède également un attribut viewBox implicite [0, 0, largeur-image-pixélisée, hauteur-image-pixélisée], où « largeur-image-pixélisée » et « hauteur-image-pixélisée » représentent respectivement la largeur et la hauteur réelles de l'image pixélisée. L'image pixélisée est enchâssée dans la région spécifié par les attributs x, y, width et height (voir L'établissement d'une nouvelle zone de visualisation) ».

11.4 Les propriétés de liseré

Dans la description de la propriété 'stroke-miterlimit', changer la propriété 'stroke-linewidth' par 'stroke-width'.

13.2.4 Les arrêts de dégradé

Changer l'entrée dans la liste de "Valeur" de la propriété 'stop-opacity' pour : <valeur-opacité> | inherit

14.5 L'opacité de l'objet et du groupe : la propriété 'opacity'

Changer l'entrée dans la liste de "Valeur" de la propriété 'opacity' pour : <valeur-opacité> | inherit

Changer le nom de la section <valeur-alpha> par : <valeur-opacité>.

15.10 La primitive de filtre 'feColorMatrix'

Dans la section « L'exemple feColorMatrix illustre les quatre types d'opérations de feColorMatrix »

Changer :

<feColorMatrix type="saturate" in="SourceGraphic" values="40%"/>

par :

<feColorMatrix type="saturate" in="SourceGraphic" values="0.4"/>

15.16 La primitive de filtre 'feFlood'

Changer l'entrée dans la liste de "Valeur" de la propriété 'flood-opacity' pour : <valeur-opacité> | inherit

15.18 La primitive de filtre 'feImage'

Par conséquent, le fragment de DTD courant pour l'élément 'feImage' est :

<!ELEMENT feImage (animate | set | animateTransform)*>
<!ATTLIST feImage
	%stdAttrs; 
	%xlinkRefAttrsEmbed; 
	xlink:href %URI; #REQUIRED
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-All; 
	%filter_primitive_attributes;
         preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
>

15.25 Les interfaces du DOM

L'interface SVGFEConvolveMatrixElement

Changer la définition IDL et la description associée de l'attribut kernelUnitLength.

readonly attribute SVGAnimatedNumber kernelUnitLengthX
readonly attribute SVGAnimatedNumber kernelUnitLengthY

Attributs

readonly SVGAnimatedNumber kernelUnitLengthX
Correspond à l'attribut kernelUnitLength sur l'élément 'feConvolveMatrix' donné.
readonly SVGAnimatedNumber kernelUnitLengthY
Correspond à l'attribut kernelUnitLength sur l'élément 'feConvolveMatrix' donné.

L'interface SVGFEDiffuseLightingElement

La définition IDL et la définition de l'attribut kernelUnitLength sont manquantes. Par conséquent, il faut ajouter les deux attributs suivants à l'interface SVGFEDiffuseLigthingElement.

readonly attribute SVGAnimatedNumber kernelUnitLengthX
readonly attribute SVGAnimatedNumber kernelUnitLengthY

Attributs

readonly SVGAnimatedNumber kernelUnitLengthX
Correspond à l'attribut kernelUnitLength sur l'élément 'feDiffuseLighting' donné.
readonly SVGAnimatedNumber kernelUnitLengthY
Correspond à l'attribut kernelUnitLength sur l'élément 'feDiffuseLighting' donné.

L'interface SVGFEMorphologyElement

Changer la définition IDL et la description associée de l'attribut radius.

readonly attribute SVGAnimatedNumber radiusX
readonly attribute SVGAnimatedNumber radiusY

Attributs

readonly SVGAnimatedNumber radiusX
Correspond à l'attribut radius sur l'élément 'feMorphology' donné.
readonly SVGAnimatedNumber radiusY
Correspond à l'attribut radius sur l'élément 'feMorphology' donné.

19.2.6 Les attributs pour contrôler la synchronisation de l'animation

En-dessous de l'item de liste offset-value ::= ( S? "+" | "-" S? )? ( Clock-value )

B.5 Les relations avec le modèle des événements de DOM2

Appendice N : Index des propriétés

Changer la valeur <valeur-alpha> des propriétés 'flood-opacity', 'opacity' et 'stop-opacity' par : <valeur-opacité>

Clarifications

5.6 L'élément 'use'

Sous le paragraphe :

« Si des attributs événementiels sont assignés à un élément appelé, alors la cible effective pour l'événement sera l'objet SVGElementInstance dans "l'arbre d'instance" correspondant à l'élément appelé en question. »

Rajouter la clarification suivante :

« La gestion des événements pour l'arbre non exposé fonctionne comme si l'élément appelé avait été littéralement inclus comme enfant cloné en profondeur de l'élément 'use', sauf que les événements sont distribués sur les objets SVGElementInstance, et la cible de l'événement et les attributs currentTarget sont réglés sur l'objet SVGElementInstance correspondant à la cible et ses éléments courants dans le sous-arbre appelé. Un événement se propage dans les parties exposées et non exposées de l'arbre, de la même manière qu'il le ferait dans l'arbre d'un document normal : tout d'abord en allant de l'élément racine vers l'élément 'use', puis dans les éléments non exposés de l'arbre dans la phase de capture, en poursuivant par la phase de la cible sur la cible de l'événement, puis en bouillonnant en retour dans l'arbre non exposé vers l'élément 'use' et ensuite en revenant dans l'arbre normal vers l'élément racine dans la phase de bouillonnement »
« Un élément et tous ses objets SVGElementInstance correspondants partagent une liste de guetteurs d'événement. On peut utiliser un attribut currentTarget de l'événement pour déterminer au travers de quels objets un guetteur d'événement a été invoqué. »

5.7 L'élément 'image'

Ajouter le paragraphe suivant après le quatrième paragraphe :

« Remarquer que quand un élément 'image' appelle une image SVG, les règles de traitement décrites dans le paragraphe précédent signifient que l'attribut preserveAspectRatio ainsi que les propriétés 'clip' et 'overflow' sur l'élément racine dans l'image SVG appelée sont ignorés (comme les attributs x, y, width et height sont ignorés). »
« Plutôt, l'attribut preserveAspectRation sur l'élément 'image' appelant définit comment le contenu de l'image SVG est logé dans la zone de visualisation et les propriétés 'clip' et 'overflow' sur l'élément 'image' définissent comment le contenu de l'image SVG est rogné (ou pas) par rapport à la zone de visualisation. »

5.8.1 Aperçu sur le traitement conditionnel

De manière similaire à la propriété 'display', les attributs de traitement conditionnel n'affectent que le rendu direct d'un élément donné, puisque celle-ci n'interdit pas aux éléments d'être appelés par d'autres éléments.

En conséquence :

6.7 Le style avec CSS

Seconde liste, ajouter au premier item :

« Du fait que SVG soit prévu pour être utilisé comme un seul composant dans une application XML avec plusieurs espaces de nommage et que CSS ne reconnaisse pas les espaces de nommage, les sélecteurs de type ne trouveront de correspondance que sur la partie locale du nom qualifié de l'élément. »

10.9.1 Les propriétés d'alignement de texte

Rajouter cette remarque à la fin de la section :

« La spécification est ambiguë et certaines implémentations sont incohérentes vis-à-vis de la propriété 'text-anchor' dans le cas particulier où on a plusieurs valeurs pour l'attribut x et moins de valeurs pour l'attribut y (ou vice versa). Ainsi, on recommande au développeurs de contenu SVG 1.0 de fournir des réglages équilibrés pour les attributs x et y parce que cette approche évite les ambiguïtés de la spécification et permet vraisemblablement d'obtenir des résultats similaires d'une implémentation à l'autre. »
Les versions futures de SVG vont vraisemblablement lever ces ambiguïtés.

15.11 La primitive de filtre 'feComponentTransfer'

Sous la section « Définition des attributs », changer la description de l'attribut tableValues par :

tableValues = "(liste de valeurs <nombre>)"

Quand l'attribut type="table" ou type="discrete", la liste des valeurs de <nombre> v0,v1,...vn, séparées par des blancs et/ou des virgules, qui définit la table de conversion. Une liste vide correspond à une fonction de transfert identité. Si l'attribut n'est pas spécifié, alors l'effet produit est comme si on avait fourni une liste vide.

Animable : oui.

16.2 La liste complète des événements reconnus

Changer la description (contenue dans la deuxième colonne) de événements SVGScroll, SVGResize et SVGZoom par :

SVGResize
Survient quand une vue d'un document est redimensionnée. Cet événement, qui ne s'applique qu'aux éléments 'svg' les plus externes, est distribué après que l'opération de redimensionnement a eu lieu. La cible de l'événement est l'élément 'svg'.
SVGZoom
Survient quand le niveau d'agrandissement d'une vue du document est modifié, soit au travers d'une action directe de l'utilisateur, soit à la suite d'un quelconque changement de la propriété 'currentScale' disponible sur l'interface SVGSVGElement. Cet événement, qui ne s'applique qu'aux éléments 'svg' les plus externes, est distribué après que la modification du niveau d'agrandissement a eu lieu. La cible de l'événement est l'élément 'svg'.
SVGScroll
Survient quand la vue d'un document est déplacée le long de l'axe X ou Y, ou les deux, soit au travers d'une action directe de l'utilisateur, soit à la suite d'un quelconque changement de la propriété 'currentScale' disponible sur l'interface SVGSVGElement. Cet événement, qui ne s'applique qu'aux éléments 'svg' les plus externes, est distribué après que la modification en glissement a eu lieu.La cible de l'événement est l'élément 'svg'.

B.5 Les relations avec le modèle des événements de DOM2

Ajouter cette remarque après la liste des types d'événement, après le premier paragraphe :

« Les implémenteurs peuvent regarder le paramétrage des attributs d'événement comme la création et l'enregistrement d'un guetteur d'événement sur la cible de l'événement. La valeur de l'attribut useCapture prend la valeur par défaut de 'false'. Ce guetteur d'événement se comporte de la même manière que n'importe quel autre guetteur d'événement qui serait enregistré sur la cible de l'événement. »
« Si l'attribut représentant le guetteur d'événement est modifié, ceci peut être regardé comme le retrait du guetteur d'événement enregistré précédemment et comme l'enregistrement d'un nouveau. Par ailleurs, on ne spécifie pas l'ordre dans lequel les attributs d'événement vont recevoir l'événement par rapport aux autres guetteurs d'événements sur la cible de l'événementt. »

Appendice D : La corrélation avec le langage Java

Retirer le modificateur 'abstract' de la classe SVGException.


Dean Jackson
Thierry Kormann
Chris Lilley