Tuesday 9 May 2017

Filter 2. Ordnung

Heutige Börse Nachrichten amp Analyse Realzeit nach Stunden Pre-Market Nachrichten Blitz Zitat Zusammenfassung Zitat Interaktive Diagramme Voreinstellung Bitte beachten Sie, dass, sobald Sie Ihre Auswahl treffen, es für alle zukünftigen Besuche der NASDAQ gelten. Wenn Sie zu einem beliebigen Zeitpunkt daran interessiert sind, auf die Standardeinstellungen zurückzukehren, wählen Sie bitte die Standardeinstellung oben. Wenn Sie Fragen haben oder Probleme beim Ändern Ihrer Standardeinstellungen haben, senden Sie bitte eine E-Mail an isfeedbacknasdaq. Bitte bestätigen Sie Ihre Auswahl: Sie ausgewählt haben Ihre Standardeinstellung für die Quote Suche zu ändern. Dies ist nun Ihre Standardzielseite, wenn Sie Ihre Konfiguration nicht erneut ändern oder Cookies löschen. Sind Sie sicher, dass Sie Ihre Einstellungen ändern möchten, haben wir einen Gefallen zu bitten Bitte deaktivieren Sie Ihren Anzeigenblocker (oder aktualisieren Sie Ihre Einstellungen, um sicherzustellen, dass Javascript und Cookies aktiviert sind), damit wir Sie weiterhin mit den erstklassigen Marktnachrichten versorgen können Und Daten, die Sie von uns erwarten können.10.1 Einleitung Der Text, der als Teil eines SVG-Dokumentfragments dargestellt werden soll, wird mit dem Textelement angegeben. Die zu zeichnenden Zeichen werden als XML-Zeichendaten (XML10, Abschnitt 2.4) innerhalb des Textelements ausgedrückt. Jedes Textelement bewirkt, dass ein einzelner String von Text gerendert wird. SVG führt keine automatische Zeilenumbruch oder Wortumbruch durch. Verwenden Sie eine der folgenden Methoden, um die Wirkung mehrerer Textzeilen zu erzielen: Der Autor oder das Authoring-Paket muss die Zeilenumbrüche vorberechnen und mehrere Textelemente verwenden (eine für jede Textzeile). Das Author - oder Authoring-Paket muss die Zeilenumbrüche vorberechnen und ein einzelnes Textelement mit einem oder mehreren tspan-Child-Elementen mit entsprechenden Werten für die Attribute x verwenden. Y ist. Dx und dy, um neue Startpositionen für diejenigen Zeichen zu setzen, die neue Zeilen starten. (Dieser Ansatz ermöglicht die Auswahl von Textauswahl über mehrere Textzeilen - siehe Textauswahl und Zwischenablageoperationen.) Ausdruck des zu gerendernden Textes in einem anderen XML-Namespace wie XHTML XHTML, eingebettet inline in einem fremdenObjektelement. (Beachten Sie, dass die genaue Semantik dieses Ansatzes zu diesem Zeitpunkt noch nicht vollständig definiert ist.) Die Textzeichenfolgen in Textelementen können in einer geraden Linie gerendert oder entlang der Kontur eines Pfadelements gerendert werden. SVG unterstützt die folgenden internationalen Textverarbeitungs - merkmale sowohl für geradlinigen Text als auch für Text auf einem Pfad: horizontale und vertikale Ausrichtung des Textes von links nach rechts oder bidirektionaler Text (dh Sprachen, die von rechts nach links und von links nach rechts mischen Wie zB Arabisch und Hebräisch), wenn SVG - Schriftarten verwendet werden, automatische Auswahl der korrekten Glyphe entsprechend der aktuellen Form für Arabisch und Han - Text (Die Layoutregeln für Geradentext werden im Textlayout beschrieben Pfad werden in Text auf einem Pfadlayout beschrieben.) Da SVG-Text als XML-Zeichendaten verpackt ist: Textdaten im SVG-Inhalt sind für Sehbehinderte leicht zugänglich (siehe Barrierefreiheit) In vielen Betrachtungsszenarien ist der Benutzer in der Lage Suchen und markieren Sie Textzeichenfolgen und kopieren Sie ausgewählte Textzeichenfolgen in die Systemzwischenablage (siehe Textauswahl und Zwischenablageoperationen) XML-kompatible Web-Suchmaschinen finden Textzeichenfolgen im SVG-Inhalt ohne zusätzlichen Aufwand über das, was sie tun müssen, um Textzeichenfolgen zu finden In anderen XML-Dokumenten Aus Gründen der Zugänglichkeit wird empfohlen, dass Text, der in einem Dokument enthalten ist, über entsprechende semantische Markierungen verfügt, um seine Funktion anzuzeigen. Weitere Informationen finden Sie in den Richtlinien für die Zugänglichkeit der SVG. 10.2 Zeichen und ihre entsprechenden Glyphen In XML XML10 werden Textinhalte in Form einer Folge von XML-Zeichen definiert. Wobei jedes Zeichen durch einen bestimmten Unicode-Codepunkt UNICODE definiert ist. Fonts, auf der anderen Seite, bestehen aus einer Sammlung von Glyphen und andere zugehörige Informationen, wie Schriftart-Tabellen. Eine Glyph ist eine darstellbare Form eines oder mehrerer Zeichen (oder eines Teils eines Zeichens in einigen Fällen). Jede Glyphe besteht aus einer Art von Bezeichner (in einigen Fällen eine Zeichenfolge, in anderen Fällen eine Zahl) zusammen mit Zeichnungsanweisungen für die Wiedergabe dieser bestimmten Glyphe. In vielen Fällen gibt es eine Eins-zu-eins-Abbildung von Unicode-Zeichen (d. h. Unicode-Codepunkte) zu Glyphen in einer Schriftart. Zum Beispiel ist es üblich für eine Schrift, die für lateinische Sprachen (wo der Begriff Latein für europäische Sprachen wie Englisch mit Alphabeten ähnlich wie andor Ableitung auf die lateinische Sprache verwendet wird), um eine einzelne Glyphe für jedes der Standard-ASCII-Zeichen Dh A-to-Z, a-to-z, 0 bis 9 sowie die verschiedenen im ASCII gefundenen Interpunktionszeichen). Daher würde in den meisten Situationen die Zeichenfolge XML, die aus drei Unicode-Zeichen besteht, durch die drei Glyphen entsprechend X, M bzw. L wiedergegeben werden. In verschiedenen anderen Fällen gibt es jedoch keine strenge Eins-zu-Eins-Zuordnung von Unicode-Zeichen zu Glyphen. Einige der Umstände, wenn das Mapping nicht eins zu eins ist: Ligaturen - Für das am besten aussehende Setzen ist es oft wünschenswert, dass bestimmte Zeichenfolgen als eine einzige Glyphe dargestellt werden. Ein Beispiel ist das Wortbüro. Viele Fonts definieren eine ffi-Ligatur. Wenn das Wortbüro wiedergegeben wird, wird der Benutzeragent manchmal das Glyphe für die ffi-Ligatur rendern, statt für jedes der drei Zeichen unterschiedliche Glyphen (d. H. F, f und i) zu machen. Somit werden für Ligaturen mehrere Unicode-Zeichen einer einzigen Glyphe zugeordnet. (Für die korrekte Wiedergabe einiger Sprachen sind Ligaturen für bestimmte Zeichenkombinationen erforderlich.) Zusammengesetzte Zeichen - In verschiedenen Situationen werden häufig verwendete Verzierungen, wie diakritische Zeichen, einmal in einer Schriftart als eine bestimmte Glyphe gespeichert und dann mit einem oder zusammengesetzt Weitere Glyphen zu dem gewünschten Charakter führen. Beispielsweise ist es möglich, dass eine Schriftart-Engine das Zeichen wiedergibt, indem sie zuerst die Glyphe für e wiedergibt und dann die Glyphe (die Akzentmarke) wiedergibt, so dass die Akzentmarkierung über der e erscheint. In dieser Situation wird ein einziges Unicode-Zeichen auf mehrere Glyphen abgebildet. Glyphsubstitution - Einige Typografiesysteme untersuchen die Natur des Textinhalts und verwenden verschiedene Glyphen unter verschiedenen Umständen. Beispielsweise kann auf Arabisch das gleiche Unicode-Zeichen als vier verschiedene Glyphen dargestellt werden, abhängig davon, ob das Zeichen am Anfang, am Ende oder in der Mitte einer Folge von kursiv verbundenen Zeichen erscheint. Verschiedene Glyphen können für ein Interpunktionszeichen abhängig von Inline-Progression-Richtung (z. B. horizontal gegen vertikal) verwendet werden. In diesen Situationen kann ein einziges Unicode-Zeichen einer von mehreren alternativen Glyphen zugeordnet werden. In einigen Sprachen werden bestimmte Sequenzen von Zeichen in mehrere Glyphen umgewandelt, so dass Teile eines bestimmten Zeichens in einer Glyphe sind und der Rest dieses Zeichens in einer anderen Glyphe ist. Alternative Glyphenspezifikation - SVG enthält eine Möglichkeit für den Autor, explizit anzugeben, dass eine bestimmte Sequenz von Unicode-Zeichen mit einer bestimmten Glyphe gerendert werden soll. (Siehe Alternative Glyphen.) Wenn diese Funktion verwendet wird, werden mehrere Unicode-Zeichen einer einzigen Glyphe zugeordnet. In vielen Situationen sind die Algorithmen für das Mapping von Zeichen zu Glyphen systemabhängig, was zu der Möglichkeit führt, dass das Rendern von Text (normalerweise etwas) unterschiedlich sein kann, wenn er in unterschiedlichen Benutzerumgebungen betrachtet wird. Wenn der Autor von SVG-Inhalt eine genaue Auswahl von Schriften und Glyphen erfordert, dann empfiehlt es sich, dass die notwendigen Schriften (die möglicherweise nur untergliedert sind, um nur die für das jeweilige Dokument benötigten Glyphen einzuschließen) entweder als SVG-Fonts, die in den SVG-Inhalt eingebettet sind, oder als WebFonts verfügbar sind (CSS2, Abschnitt 15.1), die an demselben Webstandort wie der SVG-Inhalt veröffentlicht werden. In diesem Kapitel muss der Begriff Zeichen der Definition eines Zeichens in XML XML10 entsprechen. 10.3 Schriftarten, Schriftarttabellen und Basislinien Eine Schriftart besteht aus einer Sammlung von Glyphen zusammen mit den Informationen (den Schriftarttabellen), die für die Verwendung von Zeichen auf einem Medium erforderlich sind. Die Kombination aus der Sammlung von Glyphen und den Font-Tabellen wird als Font-Daten bezeichnet. Die Schriftart-Tabellen enthalten die Informationen, die erforderlich sind, um Zeichen zu Glyphen zuzuordnen, die Größe von Glyphenbereichen zu bestimmen und den Glyphenbereich zu positionieren. Jede Schriftart-Tabelle besteht aus einem oder mehreren Schriftmerkmalen, wie Schriftart-Schrift und Schriftart. Die geometrischen Schrifteigenschaften werden in einem Koordinatensystem ausgedrückt, das auf dem EM-Feld basiert. (Die EM ist ein relatives Maß für die Höhe der Glyphen im Font siehe Koordinateneinheiten auf dem em-Quadrat in CSS2, Abschnitt 15.4.3.) Die Box 1 EM high und 1 EM wide wird als Design-Space bezeichnet. Dieser Raum wird durch Unterteilung der EM in eine Anzahl von Einheiten pro em geometrischen Koordinaten gegeben. Hinweis: Units per em ist ein Font-Merkmal. Ein typischer Wert für Einheiten pro em ist 1000 oder 2048. Der Koordinatenraum der EM-Box wird als Konstruktionsraumkoordinatensystem bezeichnet. Für skalierbare Schriften werden die Kurven und Linien, die zum Zeichnen einer Glyphe verwendet werden, unter Verwendung dieses Koordinatensystems dargestellt. Hinweis: Am häufigsten befindet sich der (0,0) Punkt in diesem Koordinatensystem auf der linken Kante der EM-Box, nicht jedoch in der linken unteren Ecke. Die Y-Koordinate der Unterseite eines römischen Großbuchstabens ist normalerweise null. Und die Unterlängen auf Kleinbuchstaben haben negative Koordinatenwerte. SVG geht davon aus, dass die Font-Tabellen mindestens drei Font-Merkmale bereitstellen: einen Aufstieg, einen Abstieg und einen Satz von Basistabellen. Der Aufstieg ist der Abstand zur Oberseite der EM-Box vom (0,0) Punkt der Schrift, der Abstieg ist der Abstand zum unteren Rand der EM-Box vom (0,0) Punkt der Schriftart. Die Basistabelle wird unten erklärt. Hinweis: Innerhalb einer OpenType-Schriftart werden für horizontale Schreibmodi die Auf - und Abstiege durch die Einträge sTypoAscender und sTypoDescender in der OS2-Tabelle angegeben. Für vertikale Schreibmodi ist der Abstieg (der Abstand, in diesem Fall vom (0,0) - Punkt zum linken Rand der Glyphe) normalerweise Null, da der (0,0) - Punkt auf der linken Kante liegt. Der Aufstieg für vertikale Schreibmodi ist entweder 1 em oder wird durch den ideografischen oberen Baseline-Wert in der OpenType-Basistabelle für vertikale Schreibmodi angegeben. In horizontalen Schreibmodi sind die Glyphen eines gegebenen Skripts so positioniert, dass ein bestimmter Punkt auf jeder Glyphe, dem Ausrichtungspunkt, angeordnet ist. Ist mit den Ausrichtungspunkten der anderen Glyphen in diesem Skript ausgerichtet. Die Glyphen verschiedener Skripts, zum Beispiel westliche, nordindische und fernöstliche Skripte, sind typischerweise an verschiedenen Punkten der Glyphe ausgerichtet. Zum Beispiel sind westliche Glyphen auf den Böden der Großbuchstaben ausgerichtet, werden nördliche Zeichenglyphen an der Oberseite eines horizontalen Strichs in der Nähe der Spitze der Glyphen ausgerichtet, und weit-östliche Glyphen werden entweder an der Unterseite oder der Mitte der Glyphe ausgerichtet. Innerhalb eines Skripts und innerhalb einer Textzeile mit einer einzelnen Schriftgröße definiert die Folge von Ausrichtungspunkten in der Inline-Progressionsrichtung eine geometrische Zeile, die als Baseline bezeichnet wird. Die westlichen und die meisten anderen alphabetischen und syllabischen Glyphen sind auf eine alphabetische Grundlinie ausgerichtet, die nördlichen Indikatogramme sind auf eine hängende Basislinie ausgerichtet und die fernöstlichen Glyphen sind auf eine ideographische Grundlinie ausgerichtet. Eine Baseline-Tabelle legt die Position einer oder mehrerer Basislinien im Koordinatensystem des Konstruktionsraumes fest. Die Funktion der Basistabelle besteht darin, die Ausrichtung der verschiedenen Skripts zueinander zu erleichtern, wenn sie auf derselben Textzeile gemischt werden. Da die gewünschten relativen Ausrichtungen davon abhängen können, welches Skript in einer Zeile (oder einem Block) dominant ist, kann es für jedes Skript eine andere Baseline-Tabelle geben. Zusätzlich sind für horizontale und vertikale Schreibmodi unterschiedliche Ausrichtpositionen erforderlich. Daher kann die Schriftart einen Satz von Basistabellen aufweisen: typischerweise eine oder mehrere für horizontale Schreibmodi und null oder mehr für vertikale Schreibmodi. Hinweis: Einige Schriftarten haben möglicherweise keine Werte für die Basistabellen. Heuristiken werden vorgeschlagen, um die Basistabellen zu approximieren, wenn eine gegebene Schrift keine Basistabellen liefert. SVG geht ferner davon aus, dass für jede Glyphe in den Schriftartdaten für eine Schriftart zwei Breitenwerte, zwei Ausrichtungsbasislinien und zwei Ausrichtungspunkte jeweils eine für horizontale Schreibmodi und die andere für vertikale Schreibmodi vorliegen. (Auch wenn es als Breite angegeben ist, wird bei vertikalen Schreibmodi die Breite in vertikaler Richtung verwendet.) Das Skript, zu dem eine Glyphe gehört, bestimmt eine Ausrichtungsbasislinie, auf die die Glyphe ausgerichtet werden soll. Die Inline-Progressions-Position des Ausrichtungspunkts befindet sich auf der Anfangskante des Glyphen. Eigenschaften, die sich auf Basislinien beziehen, werden unten unter Baseline-Ausrichtungseigenschaften beschrieben. Zusätzlich zu den oben beschriebenen Schriftartmerkmalen kann eine Schriftart auch Ersatz - und Positionierungstabellen liefern, die von einem Formatierer verwendet werden können, um eine Folge von Glyphen neu zu sortieren, zu kombinieren und zu positionieren, um ein oder mehrere zusammengesetzte Glyphen herzustellen. Die Kombination kann so einfach sein wie eine Ligatur oder so komplex wie eine Indikator-Silbe, die, meist mit einigen Nachbestellungen, mehrere Konsonanten und Vokal-Glyphen kombiniert. 10.4 Das Textelement Das Textelement definiert ein grafisches Element aus Text. Die XML-Zeichendaten innerhalb des Textelements, zusammen mit relevanten Attributen und Eigenschaften und Zeichen-zu-Glyph-Abbildungstabellen innerhalb der Schriftart selbst, definieren die zu gerendenden Glyphen. (Siehe Zeichen und ihre entsprechenden Glyphen.) Die Attribute und Eigenschaften auf dem Textelement bezeichnen solche Dinge wie die Schreibrichtung, die Schriftart-Spezifikation und die Malattribute, die beschreiben, wie genau die Zeichen dargestellt werden sollen. Nachfolgende Abschnitte dieses Kapitels beschreiben die relevanten textspezifischen Attribute und Eigenschaften, insbesondere Textlayout und Bidirektionalität. Da Textelemente mit denselben Rendering-Methoden wie andere Grafik-Elemente gerendert werden, werden alle dieselben Koordinatensystem-Transformationen verwendet. Malerei. Clipping - und Maskierungsfunktionen, die für Formen wie Pfade und Rechtecke gelten, gelten auch für Textelemente. Es ist möglich, einen Gradienten, ein Muster, einen Beschneidungspfad, eine Maske oder einen Filter auf Text anzuwenden. Wenn eine dieser Einrichtungen auf den Text und das Schlüsselwort objectBoundingBox angewendet wird (siehe Object bounding box units), um einen grafischen Effekt relativ zu dem objektbindenden Feld festzulegen, werden die objektbasierenden Kasteneinheiten in allen Fällen relativ zum gesamten Textelement berechnet , Auch wenn verschiedene Effekte auf verschiedene tspan-Elemente innerhalb desselben Textelements angewendet werden. Das Textelement macht seine erste Glyphe (nach bidirektionaler Neuordnung) an der anfänglichen aktuellen Textposition. Die durch die x - und y-Attribute auf dem Textelement (mit möglichen Anpassungen aufgrund des Wertes der Textanker-Eigenschaft, des Vorhandenseins eines textPath-Elements, das das erste Zeichen enthält, und oder eines xy-dx - oder dy-Attributs auf einem tspan festgelegt ist. Tref oder altGlyph-Element, das das erste Zeichen enthält). Nachdem die Glyphe (n), die dem gegebenen Zeichen entsprechen, wiedergegeben wird, wird die aktuelle Textposition für das nächste Zeichen aktualisiert. Im einfachsten Fall handelt es sich bei der neuen aktuellen Textposition um die vorherige aktuelle Textposition plus den Vorlaufwert (horizontal oder vertikal). Eine Beschreibung der Glyphenplatzierung und des Glyphenvorschubs finden Sie im Textlayout. X ltlist-of-coordinatesgt Wenn ein einzelner ltcoordinategt bereitgestellt wird, dann repräsentiert der Wert die neue absolute X-Koordinate für die aktuelle Textposition zum Rendern der Glyphen, die dem ersten Zeichen in diesem Element oder einem seiner Nachkommen entsprechen. Wenn eine komma - oder raumgetrennte Liste von n ltcoordinaten s vorgesehen ist, repräsentieren die Werte neue absolute X-Koordinaten für die aktuelle Textposition, um die Glyphen entsprechend jedem der ersten n Zeichen innerhalb dieses Elements oder irgendeiner seiner Nachkommen wiederzugeben. Weitere Verarbeitungsregeln finden Sie in der Beschreibung des x-Attributs auf dem tspan - Element. Wenn das Attribut nicht angegeben wird, ist der Effekt, als wäre ein Wert von 0 angegeben. Animierbar. ja. Y ltlist-of-coordinatesgt Die entsprechende Liste der absoluten Y-Koordinaten für die Glyphen, die den Zeichen in diesem Element entsprechen. Die Verarbeitungsregeln für das y-Attribut verlaufen parallel zu den Verarbeitungsregeln für das x-Attribut. Wenn das Attribut nicht angegeben wird, ist der Effekt, als wäre ein Wert von 0 angegeben. Animierbar. ja. Dx ltlist-of-lengthsgt Verschiebungen der aktuellen Textposition entlang der x-Achse für die Zeichen innerhalb dieses Elements oder eines seiner Abkömmlinge. Siehe Beschreibung des dx-Attributs auf dem tspan - Element. Wenn das Attribut nicht auf diesem Element oder einem seiner Nachkommen spezifiziert wird, treten keine zusätzlichen Verschiebungen entlang der x-Achse auf. Animierbar. ja. Dy ltlist-of-lengthsgt Verschiebungen der aktuellen Textposition entlang der y-Achse für die Zeichen innerhalb dieses Elements oder eines seiner Abkömmlinge. Siehe Beschreibung des dy-Attributs auf dem tspan - Element. Wenn das Attribut nicht auf diesem Element oder einem seiner Nachkommen spezifiziert wird, treten keine zusätzlichen Verschiebungen entlang der y-Achse auf. Animierbar. ja. Drehen ltlist-of-numbersgt Die zusätzliche Rotation um die aktuelle Textposition, die auf alle Glyphen angewendet wird, die jedem Zeichen in diesem Element entsprechen. Siehe Beschreibung des rotate-Attributs auf dem tspan - Element. Wenn das Attribut nicht auf diesem Element oder einem seiner Nachkommen spezifiziert wird, treten keine zusätzlichen Rotationen auf. Animierbar. Ja (nicht additiv). TextLength ltlengthgt Die Autoren berechnen die Gesamtsumme aller Vorschubwerte, die den Zeichendaten innerhalb dieses Elements entsprechen, einschließlich des Vorschubwertes auf der Glyphe (horizontal oder vertikal), die Wirkung von Eigenschaftenkerning. Buchstaben-Abstand und Wort-Abstand und Anpassungen aufgrund der Attribute dx und dy auf tspan Elemente. Dieser Wert wird verwendet, um die Berechnungen der Benutzeragenten mit denen des Autors zu kalibrieren. Der Zweck dieses Attributs ist es, dem Autor zu ermöglichen, eine exakte Ausrichtung in der visuellen Rendering-Reihenfolge nach jeder bidirektionalen Neuordnung zu erreichen. Für das erste und letzte gerenderte Glyphen, die diesem Element entsprechen, wird somit für das letzte gerenderte Zeichen (in der visuellen Rendering-Reihenfolge nach irgendeiner bidirektionalen Umordnung) jeder zusätzliche Zwischenzeichenabstand über normale Glyphenvorschübe (bei den meisten Fällen) ignoriert Agent bestimmt den entsprechenden Betrag, um expandcompress den Textstring, um in eine Länge von textLength passen. Ein negativer Wert ist ein Fehler (siehe Fehlerbehandlung). Wenn das Attribut nicht angegeben ist, ist der Effekt so, als ob die Autorenberechnung exakt mit dem vom Benutzeragenten berechneten Wert übereinstimmt. Animierbar. ja. LengthAdjust spacingspacingAndGlyphs Gibt die Art der Anpassungen an, die der Benutzeragenten machen muss, damit die gerenderte Länge des Textes mit dem im textLength-Attribut angegebenen Wert übereinstimmt. Der Abstand gibt an, dass nur die Vorschubwerte eingestellt werden. Die Glyphen selbst sind nicht gestreckt oder komprimiert. Dass die Vorschubwerte eingestellt werden und die Glyphen selbst in einer Achse gestreckt oder komprimiert werden (d. h. eine Richtung parallel zur Inline-Progressionsrichtung). Der Benutzeragent muss korrekte Start - und Endpositionen für die Textzeichenfolgen erzielen, aber die Orte von Zwischenglyphen sind nicht vorhersehbar, da Benutzeragenten erweiterte Algorithmen verwenden können, um Textzeichenfolgen zu dehnen oder zu komprimieren, um die korrekte Start - und Endpositionierung optimal auszugleichen Typografie. Beachten Sie, dass für eine Textzeichenkette, die n Zeichen enthält, die Anpassungen der Vorschubwerte häufig nur für n 1 Zeichen auftreten (siehe Beschreibung der Attributtextlänge), während das Strecken oder Komprimieren der Glyphen auf alle n Zeichen angewendet wird. Wenn das Attribut nicht angegeben wird, wird der Effekt als ein Abstandswert angegeben. Animierbar. ja. Beispieltext01 unten enthält die Textzeichenfolge Hallo, da draußen, die auf die Leinwand mit der Verdana Schriftfamilie gerendert wird, wobei die Glyphen mit der Farbe Blau gefüllt sind. 10.5 Das tspan-Element Innerhalb eines Textelements können die Text - und Schriftart-Eigenschaften und die aktuelle Textposition mit absoluten oder relativen Koordinatenwerten durch Einfügen eines tspan-Elements eingestellt werden. X ltlist-of-coordinatesgt Wenn ein einzelner ltcoordinategt bereitgestellt wird, dann repräsentiert der Wert die neue absolute X-Koordinate für die aktuelle Textposition zum Rendern der Glyphen, die dem ersten Zeichen in diesem Element oder einem seiner Nachkommen entsprechen. Wenn eine komma - oder raumgetrennte Liste von n ltcoordinaten s vorgesehen ist, stellen die Werte neue absolute X-Koordinaten für die aktuelle Textposition dar, um die Glyphen entsprechend jedem der ersten n Zeichen innerhalb dieses Elements oder irgendeiner seiner Nachkommen wiederzugeben. Wenn mehr ltcoordinategt als Zeichen vorhanden sind, dann haben die extra ltcoordinategt keinen Einfluss auf die Glyphenpositionierung. Wenn mehr Zeichen vorhanden sind als ltcoordinategt s, dann für jedes dieser zusätzlichen Zeichen: (a) wenn ein Ahnentext oder tspan-Element eine absolute X-Koordinate für das gegebene Zeichen über ein x-Attribut spezifiziert, dann wird diese absolute X-Koordinate als Start verwendet X-Koordinate für dieses Zeichen (der nächste Vorfahr hat Vorrang), andernfalls (b) ist die X-Anfangskoordinate zum Wiedergeben der Glyphen, die dem gegebenen Zeichen entsprechen, die X-Koordinate der resultierenden aktuellen Textposition aus der zuletzt wiedergegebenen Glyphe für das aktuelle Textelement . Wenn das Attribut nicht angegeben ist: (a) Wenn ein Vorgängertext oder tspan - Element eine absolute X - Koordinate für ein bestimmtes Zeichen über ein x - Attribut angibt, wird die absolute X - Koordinate verwendet (nächste Vorfahren hat Vorrang), andernfalls (b) Start-X-Koordinate zum Rendern der Glyphen, die einem gegebenen Zeichen entsprechen, ist die X-Koordinate der resultierenden aktuellen Textposition aus der zuletzt wiedergegebenen Glyphe für das aktuelle Textelement. Animierbar. ja. Y ltlist-of-coordinatesgt Die entsprechende Liste der absoluten Y-Koordinaten für die Glyphen, die den Zeichen in diesem Element entsprechen. Die Verarbeitungsregeln für das y-Attribut verlaufen parallel zu den Verarbeitungsregeln für das x-Attribut. Animierbar. ja. Dx ltlist-of-lengthsgt Wenn ein einziges ltlengthgt bereitgestellt wird, repräsentiert dieser Wert die neue relative X-Koordinate für die aktuelle Textposition zum Rendern der Glyphen, die dem ersten Zeichen innerhalb dieses Elements oder irgendeiner seiner Nachkommen entsprechen. Die aktuelle Textposition wird entlang der x-Achse des aktuellen Benutzer-Koordinatensystems um ltlengthgt verschoben, bevor die ersten Zeichen-Glyphen wiedergegeben werden. Wenn eine komma - oder raumgetrennte Liste von n Längengraden bereitgestellt wird, dann repräsentieren die Werte inkrementale Verschiebungen entlang der x-Achse für die aktuelle Textposition, bevor die Glyphen entsprechend den ersten n Zeichen innerhalb dieses Elements oder irgendeiner seiner Nachkommen wiedergegeben werden . Somit wird, bevor die Glyphen entsprechend jedem Zeichen wiedergegeben werden, die aktuelle Textposition, die sich aus dem Zeichnen der Glyphen für das vorhergehende Zeichen innerhalb des aktuellen Textelements ergibt, entlang der X-Achse des aktuellen Benutzer-Koordinatensystems um ltlengthgt verschoben. Wenn mehr ltlengthgt s als Zeichen zur Verfügung gestellt werden, werden keine extra ltlengthgt s keine Auswirkung auf die Glyphenpositionierung haben. Wenn mehr Zeichen als ltlengthgt s vorhanden sind, dann für jedes dieser zusätzlichen Zeichen: (a) wenn ein Vorgängertext oder tspan-Element eine relative X-Koordinate für das gegebene Zeichen über ein dx-Attribut angibt, wird die aktuelle Textposition entlang der x verschoben - Achse des aktuellen Benutzer-Koordinatensystems um diesen Betrag (nächster Vorfahr hat Vorrang), sonst (b) es erfolgt keine zusätzliche Verschiebung entlang der x-Achse. Wenn das Attribut nicht angegeben wird: (a) wenn ein Ahnentext oder tspan-Element eine relative X-Koordinate für ein gegebenes Zeichen über ein dx-Attribut angibt, wird die aktuelle Textposition entlang der x-Achse des aktuellen Benutzer-Koordinatensystems um x verschoben (Nächster Vorfahr hat Vorrang), sonst (b) es erfolgt keine zusätzliche Verschiebung entlang der x-Achse. Animierbar. ja. Dy ltlist-of-lengthsgt Die entsprechende Liste der relativen Y-Koordinaten für die Zeichen im tspan-Element. Die Verarbeitungsregeln für das dy-Attribut entsprechen den Verarbeitungsregeln für das dx-Attribut. Animierbar. ja. Drehen ltlist-of-numbersgt Die zusätzliche Rotation um die aktuelle Textposition, die auf alle Glyphen angewendet wird, die jedem Zeichen in diesem Element entsprechen. Wenn eine komma - oder raumgetrennte Liste von ltnumbergts vorhanden ist, repräsentiert das erste ltnumbergt die zusätzliche Rotation für die Glyphen, die dem ersten Zeichen in diesem Element oder einem seiner Nachkommen entsprechen, das zweite ltnumbergt die zusätzliche Rotation für die Glyphen Die dem zweiten Zeichen entsprechen, und so weiter. Wenn mehr ltnumbergt s als Zeichen vorhanden sind, werden die zusätzlichen ltnumbergts ignoriert. Sind mehr Zeichen als ltnumbergt s vorhanden, so muß für jeden dieser zusätzlichen Zeichen der durch die letzte Zahl angegebene Drehwert verwendet werden. Wenn das Attribut nicht angegeben ist und wenn ein Vorgängertext oder tspan-Element eine Zusatzdrehung für ein bestimmtes Zeichen über ein rotates Attribut angibt, wird die gegebene zusätzliche Rotation auf das gegebene Zeichen angewendet (der nächste Vorfahren hat Vorrang). Wenn es mehr Zeichen gibt als ltnumbergts, die in dem Vorgänger-Rotationsattribut spezifiziert sind, dann muß für jeden dieser zusätzlichen Zeichen der durch die letzte Zahl angegebene Drehwert verwendet werden. Diese zusätzliche Rotation hat keine Auswirkung auf die Regeln, durch die die aktuelle Textposition modifiziert wird, wenn Glyphen wiedergegeben werden, und ist ergänzend zu jeglicher Rotation aufgrund von Text auf einem Pfad und zu einer Glyph-Orientierung-horizontalen oder Glyph-Orientierungs-Vertikalen. Animierbar. Ja (nicht additiv). TextLength ltlengthgt Die Autoren berechnen die Gesamtsumme aller Vorschubwerte, die den Zeichendaten innerhalb dieses Elements entsprechen, einschließlich des Vorschubwertes auf der Glyphe (horizontal oder vertikal), die Wirkung von Eigenschaftenkerning. Buchstaben-Abstand und Wort-Abstand und Anpassungen aufgrund der Attribute dx und dy auf diesem tspan Element oder alle Nachkommen. Dieser Wert wird verwendet, um die Berechnungen der Benutzeragenten mit denen des Autors zu kalibrieren. Der Zweck dieses Attributs ist es, dem Autor zu ermöglichen, eine exakte Ausrichtung in der visuellen Rendering-Reihenfolge nach jeder bidirektionalen Neuordnung zu erreichen. Für das erste und letzte gerenderte Glyphen, die diesem Element entsprechen, wird somit für das letzte gerenderte Zeichen (in der visuellen Rendering-Reihenfolge nach irgendeiner bidirektionalen Umordnung) jeder zusätzliche Zwischenzeichenabstand über normale Glyphenvorschübe (bei den meisten Fällen) ignoriert Agent bestimmt den entsprechenden Betrag, um expandcompress den Textstring, um in eine Länge von textLength passen. Wird Attribut textLength auf einem gegebenen Element angegeben und auch auf einem Vorfahren spezifiziert, werden die Anpassungen an allen Zeichendaten innerhalb dieses Elements ausschließlich durch den Wert textLength an diesem Element gesteuert, mit der möglichen Nebenwirkung, dass das Einstellungsverhältnis für den Inhalt Dieses Elements kann anders sein als das Einstellungsverhältnis, das für andere Inhalte verwendet wird, die denselben Vorgänger teilen. Der Benutzeragent muss davon ausgehen, dass die Gesamtvorverstellwerte für den anderen Inhalt innerhalb dieses Vorfahren die Differenz zwischen dem Vorschubwert für diesen Vorfahren und dem Vorschubwert für dieses Element ist. Ein negativer Wert ist ein Fehler (siehe Fehlerbehandlung). Wenn das Attribut nicht irgendwo innerhalb eines Textelements angegeben wird, ist der Effekt so, als ob die Autorenberechnung genau dem vom Benutzeragenten errechneten Wert entsprach, dh es werden keine Vorabeinstellungen vorgenommen. Animierbar. ja. Die x. Y ist. Dx. Dy und rotate auf dem tspan-Element sind in High-End-Typografie Szenarien nützlich, wo einzelne Glyphen genaue Platzierung erfordern. Diese Attribute sind für kleinere Positionierungsanpassungen zwischen Zeichen oder für wichtige Positionierungsanpassungen nützlich, wie zum Beispiel das Bewegen der aktuellen Textposition an eine neue Position, um den visuellen Effekt einer neuen Textzeile zu erzielen. Mehrzeilige Textelemente sind durch die Definition verschiedener tspan-Elemente für jede Textzeile mit den Attributen x möglich. Y ist. Dx andor dy definiert die Position der einzelnen tspan. (Ein Vorteil eines solchen Ansatzes besteht darin, dass Benutzer in der Lage sind, eine mehrzeilige Textauswahl durchzuführen.) In Situationen, in denen eine Einstellung auf der Mikropositionsebene für eine fortgeschrittene typografische Steuerung erforderlich ist, muss der SVG-Inhaltsentwickler sicherstellen, dass die erforderliche Schriftart vorliegt Die für alle Betrachter des Dokuments verfügbar sind (zB Paketierung der erforderlichen Fontdaten in Form eines SVG-Zeichensatzes oder eines alternativen WebFont-Formats, das auf derselben Web-Site wie der SVG-Inhalt gespeichert ist) und dass die Betrachtungssoftware die Schriftart verarbeitet (Die Fähigkeiten, Merkmale und Schriftart-Layout-Mechanismen unterscheiden sich stark von System zu System). Wenn der SVG-Inhalt x enthält. Y ist. Dx oder dy-Attributwerte, die einer bestimmten Schriftart entsprechen sollen, die von einem bestimmten Satz von Betrachtungssoftware verarbeitet wird, und einer dieser Anforderungen nicht erfüllt ist, dann kann der Text mit schlechter Qualität angezeigt werden. Für die Attribute x gelten die folgenden zusätzlichen Regeln. Y ist. Dx. Dy und drehen, wenn sie eine Liste von Zahlen enthalten: Wenn ein einzelnes XML-Zeichen einer einzigen Glyphe zugeordnet wird - In diesem Fall wird der i-te Wert für die x. Y ist. Dx. Dy und rotate Attribute wird auf die Glyphe angewendet, die dem i-ten Zeichen entspricht. Wenn ein einzelnes XML-Zeichen mehreren Glyphen zugeordnet wird (z. B. wenn eine Akzentglyphe über einer Basisglyphe platziert wird) - In diesem Fall wird der i-te Wert für die x - Y ist. Dx und dy-Werte angewendet werden (d. h. die aktuelle Textposition wird eingestellt), bevor die erste Glyphe wiedergegeben wird. Die Drehungstransformation, die dem i-ten Drehwert entspricht, wird auf die Glyphen und die Zwischenglyphenvorschubwerte, die diesem Zeichen entsprechen, auf Gruppenbasis zugeführt (dh der Drehwert erzeugt ein temporäres neues gedrehtes Koordinatensystem und die Glyphen oder entsprechend Das Zeichen wird in dieses gedrehte Koordinatensystem übertragen). Wenn mehrere XML-Zeichen einer einzelnen Glyphe zugeordnet werden (z. B. wenn eine Ligatur verwendet wird) - Angenommen, dass die i-ten und (i1) - ten XML-Zeichen einer einzigen Glyphe zugeordnet sind. In diesem Fall wird der i-te Wert für die x. Y ist. Dx. Dy und rotate Attribute gelten alle beim Rendern der Glyphe. Die (i1) - ten Werte für x. Y und rotate werden ignoriert (Ausnahme: der endgültige Rotationswert in der Liste gilt für nachfolgende Zeichen), während dx und dy auf das nachfolgende XML-Zeichen (dh das (i2) - te Zeichen) angewendet werden, Indem die aktuelle Textposition um die angegebenen Beträge übersetzt wird, bevor die erste Glyphe, die diesem Zeichen zugeordnet ist, wiedergegeben wird. Wenn viele Zeichen zu Glyphen vorliegen (zB wenn drei Zeichen auf zwei Glyphen abgebildet sind, zB wenn die erste Glyphe das erste Zeichen und die Hälfte des zweiten Zeichens ausdrückt und die zweite Glyphe die andere Hälfte ausgibt Das zweite Zeichen plus das dritte Zeichen) - Angenommen, dass die i-ten, (i1) - ten und (i2) - ten XML-Zeichen zwei Glyphen zugeordnet sind. In diesem Fall wird der i-te Wert für die x. Y ist. Dx und dy-Werte angewendet werden (d. h. die aktuelle Textposition wird eingestellt), bevor die erste Glyphe wiedergegeben wird. Die Rotationstransformation, die dem i-ten Rotationswert entspricht, wird auf die beiden Glyphen und die Glyph-Fortschrittswerte für die erste Glyphe auf Gruppenbasis angewendet (dh der Drehwert erzeugt ein temporäres neues gedrehtes Koordinatensystem, und die beiden Glyphen werden gerendert In das temporär gedrehte Koordinatensystem). Die (i1) - ten und (i2) - ten Werte für die x. y and rotate attributes are not applied (exception: the final rotate value in the list would still apply to subsequent characters), whereas the (i1) - th and (i2) - th values for the dx and dy attributes are applied to the subsequent XML character (i. e. the (i3) - th character), if one exists, by translating the current text position by the given amounts before rendering the first glyph associated with that character. Relationship to bidirectionality - As described below in the discussion on bidirectionality. text is laid out in a two-step process, where any bidirectional text is first re-ordered into a left-to-right string, and then text layout occurs with the re-ordered text string. Whenever the character data within a tspan element is re-ordered, the corresponding elements within the x. y. dx. dy and rotate are also re-ordered to maintain the correspondence. For example, suppose that you have the following tspan element: and that the word Hebrew will be drawn right-to-left. First, the character data and the corresponding values in the dx list will be reordered, such that the text string will be Latin and werbeH and the list of values for the dx attribute will be 11 12 13 14 15 0 21 22 23 0 36 35 34 33 32 31. After this re-ordering, the glyphs corresponding to the characters will be positioned using standard left-to-right layout rules. The following examples show basic use of the tspan element. Example tspan01 uses a tspan element to indicate that the word not is to use a bold font and have red fill. Example tspan02 uses the dx and dy attributes on the tspan element to adjust the current text position horizontally and vertically for particular text strings within a text element. lr-tb lr Sets the initial inline-progression-direction to left-to-right, as is common in most Latin-based documents. For most characters, the current text position is advanced from left to right after each glyph is rendered. (When the character data includes characters which are subject to the Unicode bidirectional algorithm, the text advance rules are more complex. See Relationship with bidirectionality ). rl-tb rl Sets the initial inline-progression-direction to right-to-left, as is common in Arabic or Hebrew scripts. (See Relationship with bidirectionality .) tb-rl tb Sets the initial inline-progression-direction to top-to-bottom, as is common in some Asian scripts, such as Chinese and Japanese. Though hardly as frequent as horizontal, this type of vertical layout also occurs in Latin based documents, particularly in table column or row labels. In most cases, the vertical baselines running through the middle of each glyph are aligned. 10.7.3 Glyph orientation within a text run In some cases, it is required to alter the orientation of a sequence of characters relative to the inline-progression-direction. The requirement is particularly applicable to vertical layouts of East Asian documents, where sometimes narrow-cell Latin text is to be displayed horizontally and other times vertically. Two properties control the glyph orientation relative to the reference orientation for each of the two possible inline-progression-directions. glyph-orientation-vertical controls glyph orientation when the inline-progression-direction is vertical. glyph-orientation-horizontal controls glyph orientation when the inline-progression-direction is horizontal. Fullwidth ideographic and fullwidth Latin text will be set with a glyph-orientation of 0-degrees. Ideographic punctuation and other ideographic characters having alternate horizontal and vertical forms will use the vertical form of the glyph. Text which is not fullwidth will be set with a glyph-orientation of 90-degrees. This reorientation rule applies only to the first-level non-ideographic text. All further embedding of writing-modes or bidi processing will be based on the first-level rotation. This is equivalent to having set the non-ideographic text string horizontally honoring the bidi-rule, then rotating the resultant sequence of inline-areas (one area for each change of glyph direction) 90-degrees clockwise. It should be noted that text set in this rotated manner may contain ligatures or other glyph combining and reordering common to the language and script. (This rotated presentation form does not disable auto-ligature formation or similar context-driven variations.) The determination of which characters should be auto-rotated may vary across user agents. The determination is based on a complex interaction between country, language, script, character properties, font, and character context. It is suggested that one consult the Unicode TR 11 and the various JIS or other national standards. ltanglegt The value of the angle is restricted to 0, 90, 180, and 270 degrees. The user agent shall round the value of the angle to the closest of the permitted values. A value of 0deg indicates that all glyphs are set with the top of the glyphs oriented towards the reference orientation. A value of 90deg indicates an orientation of 90 degrees clockwise from the reference orientation. This property is applied only to text written in a vertical writing-mode . The glyph orientation affects the amount that the current text position advances as each glyph is rendered. When the inline-progression-direction is vertical and the glyph-orientation-vertical results in an orientation angle that is a multiple of 180 degrees, then the current text position is incremented according to the vertical metrics of the glyph. Otherwise, if the glyph-orientation-vertical results in an orientation angle that is not a multiple of 180 degrees, then the current text position is incremented according to the horizontal metrics of the glyph. The text layout diagrams in this section use the following symbols: wide-cell glyph (e. g. Han) which is the n - th glyph in the text run narrow-cell glyph (e. g. Latin) which is the n - th glyph in the text run The orientation which the above symbols assume in the diagrams corresponds to the orientation that the Unicode characters they represent are intended to assume when rendered in the user agent. Spacing between the glyphs in the diagrams is usually symbolic, unless intentionally changed to make a point. The diagrams below illustrate different uses of glyph-orientation-vertical. The diagram on the left shows the result of the mixing of full-width ideographic glyphs with narrow-cell Latin glyphs when glyph-orientation-vertical for the Latin characters is either auto or 90. The diagram on the right show the result of mixing full-width ideographic glyphs with narrow-cell Latin glyphs when Latin glyphs are specified to have a glyph-orientation-vertical of 0 . ltanglegt The value of the angle is restricted to 0, 90, 180, and 270 degrees. The user agent shall round the value of the angle to the closest of the permitted values. A value of 0deg indicates that all glyphs are set with the top of the glyphs oriented towards the reference orientation. A value of 90deg indicates an orientation of 90 degrees clockwise from the reference orientation. This property is applied only to text written in a horizontal writing-mode . The glyph orientation affects the amount that the current text position advances as each glyph is rendered. When the reference orientation direction is horizontal and the glyph-orientation-horizontal results in an orientation angle that is a multiple of 180 degrees, then the current text position is incremented according to the horizontal metrics of the glyph. Otherwise, if the glyph-orientation-horizontal results in an orientation angle that is not a multiple of 180 degrees, then the current text position is incremented according to the vertical metrics of the glyph. 10.7.4 Relationship with bidirectionality The characters in certain scripts are written from right to left. In some documents, in particular those written with the Arabic or Hebrew script, and in some mixed-language contexts, text in a single line may appear with mixed directionality. This phenomenon is called bidirectionality, or bidi for short. The Unicode standard (UNICODE , specifically UAX9 ) defines a complex algorithm for determining the proper directionality of text. The algorithm consists of an implicit part based on character properties, as well as explicit controls for embeddings and overrides. The SVG user agent applies this bidirectional algorithm when determining the layout of characters within a text content block element. The direction and unicode-bidi properties allow authors to override the inherent directionality of the content characters and thus explicitly control how the elements and attributes of a document language map to this algorithm. These two properties are applicable to all characters whose glyphs are perpendicular to the inline-progression-direction. In many cases, the bidirectional algorithm from Unicode UNICODE produces the desired result automatically, and in such cases the author does not need to use these properties. For other cases, such as when using right-to-left languages, it may be sufficient to add the direction property to the rootmost svg element. and allow that direction to inherit to all text elements, as in the following example (which may be used as a template): Below is another example, where where implicit bidi reordering is not sufficient: Within text content elements. the alignment of text with regards to the text-anchor property is determined by the value of the direction property. For example, given a text element with a text-anchor value of end. for a direction value of ltr. the text will extend to the left of the position of the text elements x attribute value, while for direction value of rtl. the text will extend to the right of the position of the text elements x attribute value. A more complete discussion of bidirectionality can be found in the Text direction section of CSS 2 (CSS2 , section 9.10). The processing model for bidirectional text is as follows. The user agent processes the characters which are provided in logical order (i. e. the order the characters appear in the original document, either via direct inclusion or via indirect reference due a tref element). The user agent determines the set of independent blocks within each of which it should apply the Unicode bidirectional algorithm. Each text chunk represents an independent block of text. Additionally, any change in glyph orientation due to processing of properties glyph-orientation-horizontal or glyph-orientation-vertical will subdivide the independent blocks of text further. After processing the Unicode bidirectional algorithm and properties direction and unicode-bidi on each of the independent text blocks, the user agent will have a potentially re-ordered list of characters which are now in left-to-right rendering order. Simultaneous with re-ordering of the characters, the dx. dy and rotate attributes on the tspan and tref elements are also re-ordered to maintain the original correspondence between characters and attribute values. While kerning or ligature processing might be font-specific, the preferred model is that kerning and ligature processing occurs between combinations of characters or glyphs after the characters have been re-ordered. This property specifies the base writing direction of text and the direction of embeddings and overrides (see unicode-bidi ) for the Unicode bidirectional algorithm. For the direction property to have any effect on an element that does not by itself establish a new text chunk (such as a tspan element without absolute position adjustments due to x or y attributes), the unicode-bidi propertys value must be embed or bidi-override . Except for any additional information provided in this specification, the normative definition of the direction property is in CSS2 (CSS2 , section 9.10). The direction property applies only to glyphs oriented perpendicular to the inline-progression-direction. which includes the usual case of horizontally-oriented Latin or Arabic text and the case of narrow-cell Latin or Arabic characters rotated 90 degrees clockwise relative to a top-to-bottom inline-progression-direction. normal embed bidi-override inherit Except for any additional information provided in this specification, the normative definition of the unicode-bidi property is in CSS2 (CSS2 , section 9.10). 10.8 Text rendering order The glyphs associated with the characters within a text element are rendered in the logical order of the characters in the original document, independent of any re-ordering necessary to implement bidirectionality. Thus, for text that goes right-to-left visually, the glyphs associated with the rightmost character are rendered before the glyphs associated with the other characters. Additionally, each distinct glyph is rendered in its entirety (i. e. it is filled and stroked as specified by the fill and stroke properties) before the next glyph gets rendered. 10.9 Alignment properties 10.9.1 Text alignment properties The text-anchor property is used to align (start-, middle - or end-alignment) a string of text relative to a given point. The text-anchor property is applied to each individual text chunk within a given text element. Each text chunk has an initial current text position, which represents the point in the user coordinate system resulting from (depending on context) application of the x and y attributes on the text element, any x or y attribute values on a tspan. tref or altGlyph element assigned explicitly to the first rendered character in a text chunk, or determination of the initial current text position for a textPath element. Values have the following meanings: start The rendered characters are aligned such that the start of the resulting rendered text is at the initial current text position. For an element with a direction property value of ltr (typical for most European languages), the left side of the text is rendered at the initial text position. For an element with a direction property value of rtl (typical for Arabic and Hebrew), the right side of the text is rendered at the initial text position. For an element with a vertical primary text direction (often typical for Asian text), the top side of the text is rendered at the initial text position. middle The rendered characters are aligned such that the geometric middle of the resulting rendered text is at the initial current text position. end The rendered characters are aligned such that the end of the resulting rendered text is at the initial current text position. For an element with a direction property value of ltr (typical for most European languages), the right side of the text is rendered at the initial text position. For an element with a direction property value of rtl (typical for Arabic and Hebrew), the left side of the text is rendered at the initial text position. For an element with a vertical primary text direction (often typical for Asian text), the bottom of the text is rendered at the initial text position. 10.9.2 Baseline alignment properties An overview of baseline alignment and baseline tables can be found above in Fonts, font tables and baselines . One of the characteristics of international text is that there are different baselines (different alignment points) for glyphs in different scripts. For example, in horizontal writing, ideographic scripts, such as Han Ideographs, Katakana, Hiragana, and Hangul, alignment occurs with a baseline near the bottoms of the glyphs alphabetic based scripts, such as Latin, Cyrillic, Hebrew, Arabic, align a point that is the bottom of most glyphs, but some glyphs descend below the baseline and Indic based scripts are aligned at a point that is near the top of the glyphs. When different scripts are mixed on a line of text, an adjustment must be made to ensure that the glyphs in the different scripts are aligned correctly with one another. OpenType OPENTYPE fonts have a Baseline table (BASE) OPENTYPE-BASETABLE that specifies the offsets of the alternative baselines from the current baseline. SVG uses a similar baseline table model that assumes one script (at one font-size) is the dominant run during processing of a text element that is, all other baselines are defined in relation to this dominant run. The baseline of the script with the dominant run is called the dominant baseline. So, for example, if the dominant baseline is the alphabetic baseline, there will be offsets in the baseline table for the alternate baselines, such as the ideographic baseline and the Indic baseline. There will also be an offset for the math baseline which is used for some math fonts. Note that there are separate baseline tables for horizontal and vertical writing-modes. The offsets in these tables may be different for horizontal and vertical writing. The baseline table established at the start of processing of a text element is called the dominant baseline table . Because the value of the font-family property is a list of fonts, to insure a consistent choice of baseline table we define the nominal font in a font list as the first font in the list for which a glyph is available. This is the first font that could contain a glyph for each character encountered. (For this definition, glyph data is assumed to be present if a font substitution is made or if the font is synthesized.) This definition insures a content independent determination of the font and baseline table that is to be used. The value of the font-size property on the text element establishes the dominant baseline table font size . The model assumes that each glyph has a alignment-baseline value which specifies the baseline with which the glyph is to be aligned. (The alignment-baseline is called the Baseline Tag in the OpenType baseline table description.) The initial value of the alignment-baseline property uses the baseline identifier associated with the given glyph. Alternate values for alignment-baseline can be useful for glyphs such as a which are ambiguous with respect to script membership. The model assumes that the font from which the glyph is drawn also has a baseline table, the font baseline table. This baseline table has offsets in units-per-em from the (0,0) point to each of the baselines the font knows about. In particular, it has the offset from the glyphs (0,0) point to the baseline identified by the alignment-baseline. The offset values in the baseline table are in design units which means fractional units of the EM. CSS calls these units-per-em (CSS2 , section 15.3.4). Thus, the current font-size is used to determine the actual offset from the dominant baseline to the alternate baselines. The glyph is aligned so that its baseline identified by its alignment-baseline is aligned with the baseline with the same name from the dominant baseline table. The offset from the dominant baseline of the parent to the baseline identified by the alignment-baseline is computed using the dominant baseline table and dominant baseline table font size. The font baseline table and font size applicable to the glyph are used to compute the offset from the identified baseline to the (0,0) point of the glyph. This second offset is subtracted from the first offset to get the position of the (0,0) point in the shift direction. Both offsets are computed by multiplying the baseline value from the baseline table times the appropriate font size value. If the alignment-baseline identifies the dominant baseline, then the first offset is zero and the glyph is aligned with the dominant baseline otherwise, the glyph is aligned with the chosen alternate baseline. The baseline-identifiers below are used in this specification. Some of these are determined by baseline-tables contained in a font as described in XSL (XSL , section 7.9.1). Others are computed from other font characteristics as described below. This identifies the baseline used by most alphabetic and syllabic scripts. These include, but are not limited to, many Western, Southern Indic, Southeast Asian (non-ideographic) scripts. This identifies the baseline used by ideographic scripts. For historical reasons, this baseline is at the bottom of the ideographic EM box and not in the center of the ideographic EM box. See the central baseline. The ideographic scripts include Chinese, Japanese, Korean, and Vietnamese Chu Nom. This identifies the baseline used by certain Indic scripts. These scripts include Devanagari, Gurmukhi and Bengali. This identifies the baseline used by mathematical symbols. This identifies a computed baseline that is at the center of the EM box. This baseline lies halfway between the text-before-edge and text-after-edge baselines. For ideographic fonts, this baseline is often used to align the glyphs it is an alternative to the ideographic baseline. This identifies a baseline that is offset from the alphabetic baseline in the shift-direction by 12 the value of the x-height font characteristic. The position of this baseline may be obtained from the font data or, for fonts that have a font characteristic for x-height, it may be computed using 12 the x-height. Lacking either of these pieces of information, the position of this baseline may be approximated by the central baseline. This identifies the before-edge of the EM box. The position of this baseline may be specified in the baseline-table or it may be calculated. The position of this baseline is normally around or at the top of the ascenders, but it may not encompass all accents that can appear above a glyph. For these fonts the value of the ascent font characteristic is used. For ideographic fonts, the position of this baseline is normally 1 EM in the shift-direction from the ideographic baseline. However, some ideographic fonts have a reduced width in the inline-progression-direction to allow tighter setting. When such a font, designed only for vertical writing-modes, is used in a horizontal writing-mode, the text-before-edge baseline may be less than 1 EM from the text-after-edge. This identifies the after-edge of the EM box. The position of this baseline may be specified in the baseline-table or it may be calculated. For fonts with descenders, the position of this baseline is normally around or at the bottom of the descenders. For these fonts the value of the descent font characteristic is used. For ideographic fonts, the position of this baseline is normally at the ideographic baseline. There are, in addition, two computed baselines that are only defined for line areas. Since SVG does not support the notion of computations based on line areas, the two computed baselines are mapped as follows: before-edge For SVG, this is equivalent to text-before-edge . after-edge For SVG, this is equivalent to text-after-edge . There are also four baselines that are defined only for horizontal writing-modes. This baseline is the same as the before-edge baseline in a horizontal writing-mode and is undefined in a vertical writing mode. This baseline is the same as the text-before-edge baseline in a horizontal writing-mode and is undefined in a vertical writing mode. This baseline is the same as the after-edge baseline in a horizontal writing-mode and is undefined in a vertical writing mode. This baseline is the same as the text-after-edge baseline in a horizontal writing-mode and is undefined in a vertical writing mode. The baseline-alignment properties follow. auto use-script no-change reset-size ideographic alphabetic hanging mathematical central middle text-after-edge text-before-edge inherit The dominant-baseline property is used to determine or re-determine a scaled-baseline-table. A scaled-baseline-table is a compound value with three components: a baseline-identifier for the dominant-baseline, a baseline-table and a baseline-table font-size. Some values of the property re-determine all three values other only re-establish the baseline-table font-size. When the initial value, auto. would give an undesired result, this property can be used to explicitly set the desire scaled-baseline-table. Values for the property have the following meaning: If this property occurs on a text element, then the computed value depends on the value of the writing-mode property. If the writing-mode is horizontal, then the value of the dominant-baseline component is alphabetic, else if the writing-mode is vertical, then the value of the dominant-baseline component is central. If this property occurs on a tspan. tref. altGlyph or textPath element, then the dominant-baseline and the baseline-table components remain the same as those of the parent text content element. If the computed baseline-shift value actually shifts the baseline, then the baseline-table font-size component is set to the value of the font-size property on the element on which the dominant-baseline property occurs, otherwise the baseline-table font-size remains the same as that of the element. If there is no parent text content element. the scaled-baseline-table value is constructed as above for text elements. use-script The dominant-baseline and the baseline-table components are set by determining the predominant script of the character data content. The writing-mode. whether horizontal or vertical, is used to select the appropriate set of baseline-tables and the dominant baseline is used to select the baseline-table that corresponds to that baseline. The baseline-table font-size component is set to the value of the font-size property on the element on which the dominant-baseline property occurs. no-change The dominant-baseline, the baseline-table, and the baseline-table font-size remain the same as that of the parent text content element. reset-size The dominant-baseline and the baseline-table remain the same, but the baseline-table font-size is changed to the value of the font-size property on this element. This re-scales the baseline-table for the current font-size. ideographic The baseline-identifier for the dominant-baseline is set to be ideographic, the derived baseline-table is constructed using the ideographic baseline-table in the nominal font, and the baseline-table font-size is changed to the value of the font-size property on this element. alphabetic The baseline-identifier for the dominant-baseline is set to be alphabetic, the derived baseline-table is constructed using the alphabetic baseline-table in the nominal font, and the baseline-table font-size is changed to the value of the font-size property on this element. hanging The baseline-identifier for the dominant-baseline is set to be hanging, the derived baseline-table is constructed using the hanging baseline-table in the nominal font, and the baseline-table font-size is changed to the value of the font-size property on this element. mathematical The baseline-identifier for the dominant-baseline is set to be mathematical, the derived baseline-table is constructed using the mathematical baseline-table in the nominal font, and the baseline-table font-size is changed to the value of the font-size property on this element. central The baseline-identifier for the dominant-baseline is set to be central. The derived baseline-table is constructed from the defined baselines in a baseline-table in the nominal font. That font baseline-table is chosen using the following priority order of baseline-table names: ideographic, alphabetic, hanging, mathematical. The baseline-table font-size is changed to the value of the font-size property on this element. middle The baseline-identifier for the dominant-baseline is set to be middle. The derived baseline-table is constructed from the defined baselines in a baseline-table in the nominal font. That font baseline - table is chosen using the following priority order of baseline-table names: alphabetic, ideographic, hanging, mathematical. The baseline-table font-size is changed to the value of the font-size property on this element. text-after-edge The baseline-identifier for the dominant-baseline is set to be text-after-edge. The derived baseline-table is constructed from the defined baselines in a baseline-table in the nominal font. The choice of which font baseline-table to use from the baseline-tables in the nominal font is implementation defined. The baseline-table font-size is changed to the value of the font-size property on this element. NOTE: using the following priority order of baseline-table names: alphabetic, ideographic, hanging, mathematical is probably a reasonable strategy for determining which font baseline-table to use. text-before-edge The baseline-identifier for the dominant-baseline is set to be text-before-edge. The derived baseline-table is constructed from the defined baselines in a baseline-table in the nominal font. The choice of which baseline-table to use from the baseline-tables in the nominal font is implementation defined. The baseline-table font-size is changed to the value of the font-size property on this element. NOTE: Using the following priority order of baseline-table names: alphabetic, ideographic, hanging, mathematical is probably a reasonable strategy for determining which font baseline-table to use. If there is no baseline table in the nominal font or if the baseline table lacks an entry for the desired baseline, then the user agent may use heuristics to determine the position of the desired baseline. auto baseline before-edge text-before-edge middle central after-edge text-after-edge ideographic alphabetic hanging mathematical inherit The baseline-shift property allows repositioning of the dominant-baseline relative to the dominant-baseline of the parent text content element. The shifted object might be a sub - or superscript. Within the shifted object, the whole baseline-table is offset not just a single baseline. The amount of the shift is determined from information from the parent text content element. the sub - or superscript offset from the nominal font of the parent text content element. percent of the line-height of the parent text content element or an absolute value. In SVG, the baseline-shift property represents a supplemental adjustment to the baseline tables. The baseline-shift property shifts the baseline tables for each glyph to temporary new positions, for example to lift the glyph into superscript or subscript position, but it does not effect the current text position. When the current text position is adjusted after rendering a glyph to take into account glyph advance values, the adjustment happens as if there were no baseline shift. baseline-shift properties can nest. Each nested baseline-shift is added to previous baseline shift values. Values for the property have the following meaning: baseline There is no baseline shift the dominant-baseline remains in its original position. sub The dominant-baseline is shifted to the default position for subscripts. The offset to this position is determined using the font data for the nominal font. Because in most fonts the subscript position is normally given relative to the alphabetic baseline, the user agent may compute the effective position for subscripts for superscripts when some other baseline is dominant. The suggested computation is to subtract the difference between the position of the dominant baseline and the position of the alphabetic baseline from the position of the subscript. The resulting offset is determined by multiplying the effective subscript position by the dominant baseline-table font-size. If there is no applicable font data the user agent may use heuristics to determine the offset. super The dominant-baseline is shifted to the default position for superscripts. The offset to this position is determined using the font data for the nominal font. Because in most fonts the superscript position is normally given relative to the alphabetic baseline, the user agent may compute the effective position for superscripts when some other baseline is dominant. The suggested computation is to subtract the difference between the position of the dominant baseline and the position of the alphabetic baseline from the position of the superscript. The resulting offset is determined by multiplying the effective superscript position by the dominant baseline-table font-size. If there is no applicable font data the user agent may use heuristics to determine the offset. ltpercentagegt The computed value of the property is this percentage multiplied by the computed line-height of the text element. The dominant-baseline is shifted in the shift direction (positive value) or opposite to the shift direction (negative value) of the parent text content element by the computed value. A value of 0 is equivalent to baseline. ltlengthgt The dominant-baseline is shifted in the shift direction (positive value) or opposite to the shift direction (negative value) of the parent text content element by the ltlengthgt value. A value of 0cm is equivalent to baseline. 10.10 Font selection properties SVG uses the following font specification properties. Except for any additional information provided in this specification, the normative definition of these properties is in CSS2 (CSS2 , chapter section 15.2). Any SVG-specific notes about these properties are contained in the descriptions below. ltfamily-namegt ltgeneric-familygt , ltfamily-namegt ltgeneric-familygt inherit Shorthand property for setting font-style. font-variant. font-weight. font-size. line-height and font-family. The line-height property has no effect on text layout in SVG. For the purposes of the font property, line-height is assumed to be equal to the value of the font-size property. Conforming SVG Viewers are not required to support the various system font options (caption, icon, menu, message-box, small-caption and status-bar) and can use a system font or one of the generic fonts instead. Except for any additional information provided in this specification, the normative definition of the property is in CSS2 (CSS2 , section 15.2.5). 10.11 Spacing properties Three properties affect the space between characters and words: kerning indicates whether the user agent should adjust inter-glyph spacing based on kerning tables that are included in the relevant font (i. e. enable auto-kerning) or instead disable auto-kerning and instead set inter-character spacing to a specific length (typically, zero). letter-spacing indicates an amount of space that is to be added between text characters supplemental to any spacing due to the kerning property. word-spacing indicates the spacing behavior between words. This property specifies spacing behavior between words. For SVG, if a ltlengthgt is provided without a unit identifier (e. g. an unqualified number such as 128 ), the SVG user agent processes the ltlengthgt as a width value in the current user coordinate system. If a ltlengthgt is provided with one of the unit identifiers (e. g. 25em or 1 ), then the SVG user agent converts the ltlengthgt into a corresponding value in the current user coordinate system by applying the rules described in Units . Except for any additional information provided in this specification, the normative definition of the property is in CSS2 (CSS2 , section 16.4). 10.12 Text decoration none underline overline line-through blink inherit This property describes decorations that are added to the text of an element. Conforming SVG Viewers are not required to support the blink value. Except for any additional information provided in this specification, the normative definition of the property is in CSS2 (CSS2 , section 16.3.1). The CSS2 specification defines the behavior of the text-decoration property using the terminology block-level elements and inline elements. For the purposes of the text-decoration property and SVG, a text element represents a block-level element and any of the potential children of a text element (e. g. a tspan ) represent inline elements. Also, the CSS2 definition of text-decoration specifies that the color of the decorations remain the same on descendant elements. Since SVG offers a painting model consisting of the ability to apply various types of paint (see Painting: Filling, Stroking and Marker Symbols ) to both the interior (i. e. the fill) and the outline (i. e. the stroke) of text, for SVG the text-decoration property is defined such that, for an element which has a specified value for the text-decoration property, all decorations on its content and that of its descendants are rendered using the same fill and stroke properties as are present on the given element. If the text-decoration property is specified on a descendant, then that overrides the ancestor. Because SVG allows text to be both filled and stroked, drawing order matters in some circumstances with text decorations. Text decoration drawing order should be as follows: All text decorations except line-through should be drawn before the text is filled and stroked thus, the text is rendered on top of these decorations. Line-through should be drawn after the text is filled and stroked thus, the line-through is rendered on top of the text. Example textdecoration01 provides examples for text-decoration. The first line of text has no value for text-decoration. so the initial value of text-decoration:none is used. The second line shows text-decoration:line-through. The third line shows text-decoration:underline. The fourth line illustrates the rule whereby decorations are rendered using the same fill and stroke properties as are present on the element for which the text-decoration is specified. Since text-decoration is specified on the text element, all text within the text element has its underline rendered with the same fill and stroke properties as exist on the text element (i. e. blue fill, red stroke), even though the various words have different fill and stroke property values. However, the word different explicitly specifies a value for text-decoration thus, its underline is rendered using the fill and stroke properties as the tspan element that surrounds the word different (i. e. yellow fill, darkgreen stroke): 10.13 Text on a path 10.13.1 Introduction to text on a path In addition to text drawn in a straight line, SVG also includes the ability to place text along the shape of a path element. To specify that a block of text is to be rendered along the shape of a path. include the given text within a textPath element which includes an xlink:href attribute with an IRI reference to a path element. 10.13.2 The textPath element startOffset ltlengthgt An offset from the start of the path for the initial current text position, calculated using the user agents distance along the path algorithm. If a ltlengthgt other than a percentage is given, then the startOffset represents a distance along the path measured in the current user coordinate system. If a percentage is given, then the startOffset represents a percentage distance along the entire path. Thus, startOffset0 indicates the start point of the path and startOffset100 indicates the end point of the path . If the attribute is not specified, the effect is as if a value of 0 were specified. Animatable. ja. method align stretch Indicates the method by which text should be rendered along the path. A value of align indicates that the glyphs should be rendered using simple 2x3 transformations such that there is no stretchingwarping of the glyphs. Typically, supplemental rotation, scaling and translation transformations are done for each glyph to be rendered. As a result, with align. fonts where the glyphs are designed to be connected (e. g. cursive fonts), the connections may not align properly when text is rendered along a path. A value of stretch indicates that the glyph outlines will be converted into paths, and then all end points and control points will be adjusted to be along the perpendicular vectors from the path, thereby stretching and possibly warping the glyphs. With this approach, connected glyphs, such as in cursive scripts, will maintain their connections. If the attribute is not specified, the effect is as if a value of align were specified. Animatable. ja. spacing auto exact Indicates how the user agent should determine the spacing between glyphs that are to be rendered along a path. A value of exact indicates that the glyphs should be rendered exactly according to the spacing rules as specified in Text on a path layout rules . A value of auto indicates that the user agent should use text-on-a-path layout algorithms to adjust the spacing between glyphs in order to achieve visually appealing results. If the attribute is not specified, the effect is as if a value of exact were specified. Animatable. ja. xlink:href ltirigt An IRI reference to the path element onto which the glyphs will be rendered. If ltirigt is an invalid reference (e. g. no such element exists, or the referenced element is not a path ), then the textPath element is in error and its entire contents shall not be rendered by the user agent. Animatable. ja. The path data coordinates within the referenced path element are assumed to be in the same coordinate system as the current text element, not in the coordinate system where the path element is defined. The transform attribute on the referenced path element represents a supplemental transformation relative to the current user coordinate system for the current text element, including any adjustments to the current user coordinate system due to a possible transform attribute on the current text element. For example, the following fragment of SVG content: should have the same effect as the following: Note that the transformtranslate(25,25) has no effect on the textPath element, whereas the transformrotate(45) applies to both the text and the use of the path element as the referenced shape for text on a path. Example toap01 provides a simple example of text on a path: Example toap02 shows how tspan elements can be included within textPath elements to adjust styling attributes and adjust the current text position before rendering a particular glyph. The first occurrence of the word up is filled with the color red. Attribute dy is used to lift the word up from the baseline. Example toap03 demonstrates the use of the startOffset attribute on the textPath element to specify the start position of the text string as a particular position along the path. Notice that glyphs that fall off the end of the path are not rendered (see text on a path layout rules ). 10.13.3 Text on a path layout rules Conceptually, for text on a path the target path is stretched out into either a horizontal or vertical straight line segment. For horizontal text layout flows, the path is stretched out into a hypothetical horizontal line segment such that the start of the path is mapped to the left of the line segment. For vertical text layout flows, the path is stretched out into a hypothetical vertical line segment such that the start of the path is mapped to the top of the line segment. The standard text layout rules are applied to the hypothetical straight line segment and the result is mapped back onto the target path. Vertical and bidirectional text layout rules also apply to text on a path. The reference orientation is determined individually for each glyph that is rendered along the path. For horizontal text layout flows, the reference orientation for a given glyph is the vector that starts at the intersection point on the path to which the glyph is attached and which points in the direction 90 degrees counter-clockwise from the angle of the curve at the intersection point. For vertical text layout flows, the reference orientation for a given glyph is the vector that starts at the intersection point on the path to which the glyph is attached and which points in the direction 180 degrees from the angle of the curve at the intersection point. Example toap04 will be used to illustrate the particular layout rules for text on a path that supplement the basic text layout rules for straight line horizontal or vertical text. The following picture does an initial zoom in on the first glyph in the text element. The small dot above shows the point at which the glyph is attached to the path. The box around the glyph shows the glyph is rotated such that its horizontal axis is parallel to the tangent of the curve at the point at which the glyph is attached to the path. The box also shows the glyphs charwidth (i. e. the amount which the current text position advances horizontally when the glyph is drawn using horizontal text layout). The next picture zooms in further to demonstrate the detailed layout rules. For left-to-right horizontal text layout along a path (i. e. when the glyph orientation is perpendicular to the inline-progression-direction ), the layout rules are as follows: Determine the startpoint-on-the-path for the first glyph using attribute startOffset and property text-anchor. For text-anchor:start. startpoint-on-the-path is the point on the path which represents the point on the path which is startOffset distance along the path from the start of the path, calculated using the user agents distance along the path algorithm. For text-anchor:middle. startpoint-on-the-path is the point on the path which represents the point on the path which is startOffset minus half of the total advance values for all of the glyphs in the textPath element distance along the path from the start of the path, calculated using the user agents distance along the path algorithm. For text-anchor:end. startpoint-on-the-path is the point on the path which represents the point on the path which is startOffset minus the total advance values for all of the glyphs in the textPath element . Before rendering the first glyph, the horizontal component of the startpoint-on-the-path is adjusted to take into account various horizontal alignment text properties and attributes, such as a dx attribute value on a tspan element. (In the picture above, the startpoint-on-the-path is the leftmost dot on the path.) Determine the glyphs charwidth (i. e. the amount which the current text position advances horizontally when the glyph is drawn using horizontal text layout). (In the picture above, the charwidth is the distance between the two dots at the side of the box.) Determine the point on the curve which is charwidth distance along the path from the startpoint-on-the-path for this glyph, calculated using the user agents distance along the path algorithm. This point is the endpoint-on-the-path for the glyph. (In the picture above, the endpoint-on-the-path for the glyph is the rightmost dot on the path.) Determine the midpoint-on-the-path. which is the point on the path which is halfway (user agents can choose either a distance calculation or a parametric calculation) between the startpoint-on-the-path and the endpoint-on-the-path. (In the picture above, the midpoint-on-the-path is shown as a white dot.) Determine the glyph-midline. which is the vertical line in the glyphs coordinate system that goes through the glyphs x-axis midpoint. (In the picture above, the glyph-midline is shown as a dashed line.) Position the glyph such that the glyph-midline passes through the midpoint-on-the-path and is perpendicular to the line through the startpoint-on-the-path and the endpoint-on-the-path. Align the glyph vertically relative to the midpoint-on-the-path based on property alignment-baseline and any specified values for attribute dy on a tspan element. In the example above, the alignment-baseline property is unspecified, so the initial value of alignment-baseline:baseline will be used. There are no tspan elements thus, the baseline of the glyph is aligned to the midpoint-on-the-path. For each subsequent glyph, set a new startpoint-on-the-path as the previous endpoint-on-the-path, but with appropriate adjustments taking into account horizontal kerning tables in the font and current values of various attributes and properties, including spacing properties and tspan elements with values provided for attributes dx and dy. All adjustments are calculated as distance adjustments along the path, calculated using the user agents distance along the path algorithm. Glyphs whose midpoint-on-the-path are off either end of the path are not rendered. Continue rendering glyphs until there are no more glyphs. Comparable rules are used for top-to-bottom vertical text layout along a path (i. e. when the glyph orientation is parallel with the inline-progression-direction ), the layout rules are as follows: Determine the startpoint-on-the-path using the same method as for horizontal text layout along a path, except that before rendering the first glyph, the horizontal component of the startpoint-on-the-path is adjusted to take into account various vertical alignment text properties and attributes, such as a dy attribute value on a tspan element. Determine the glyphs charheight (i. e. the amount which the current text position advances vertically when the glyph is drawn using vertical text layout). Determine the point on the curve which is charheight distance along the path from the startpoint-on-the-path for this glyph, calculated using the user agents distance along the path algorithm. This point is the endpoint-on-the-path for the glyph. Determine the midpoint-on-the-path, which is the point on the path which is halfway (user agents can choose either a distance calculation or a parametric calculation) between the startpoint-on-the-path and the endpoint-on-the-path. Determine the glyph-midline, which is the horizontal line in the glyphs coordinate system that goes through the glyphs y-axis midpoint. Position the glyph such that the glyph-midline passes through the midpoint-on-the-path and is perpendicular to the line through the startpoint-on-the-path and the endpoint-on-the-path. Align the glyph horizontally (where horizontal is relative to the glyphs coordinate system) relative to the midpoint-on-the-path based on property alignment-baseline and any specified values for attribute dx on a tspan element. For each subsequent glyph, set a new startpoint-on-the-path as the previous endpoint-on-the-path, but with appropriate adjustments taking into account vertical kerning tables in the font and current values of various attributes and properties, including spacing properties and tspan elements with values provided for attributes dx and dy. All adjustments are calculated as distance adjustments along the path, calculated using the user agents distance along the path algorithm. Glyphs whose midpoint-on-the-path are off either end of the path are not rendered. Continue rendering glyphs until there are no more glyphs. In the calculations above, if either the startpoint-on-the-path or the endpoint-on-the-path is off the end of the path, then extend the path beyond its end points with a straight line that is parallel to the tangent at the path at its end point so that the midpoint-on-the-path can still be calculated. When the inline-progression-direction is horizontal, then any x attributes on text. tspan. tref or altGlyph elements represent new absolute offsets along the path, thus providing explicit new values for startpoint-on-the-path. Any y attributes on text. tspan. tref or altGlyph elements are ignored. When the inline-progression-direction is vertical, then any y attributes on text. tspan. tref or altGlyph elements represent new absolute offsets along the path, thus providing explicit new values for startpoint-on-the-path. Any x attributes on text. tspan. tref or altGlyph elements are ignored. 10.14 Alternate glyphs There are situations such as ligatures, special-purpose fonts (e. g. a font for music symbols) or alternate glyphs for Asian text strings where it is required that a different set of glyphs is used than the glyph(s) which normally corresponds to the given character data. 10.14.1 The altGlyph element The altGlyph element provides control over the glyphs used to render particular character data. xlink:href ltirigt An IRI reference either to a glyph element in an SVG document fragment or to an altGlyphDef element. If the reference is to a glyph element and that glyph is available, then that glyph is rendered instead of the character(s) that are inside of the altGlyph element. If the reference is to an altGlyphDef element, then if an appropriate set of alternate glyphs is located from processing the altGlyphDef element, then those alternate glyphs are rendered instead of the character(s) that are inside of the altGlyph element. glyphRef ltstringgt The glyph identifier, the format of which is dependent on the format of the given font. (Same meaning as the glyphRef attribute on the glyphRef element.) Animatable. no. format ltstringgt The format of the given font. If the font is in one of the formats listed in CSS2 (CSS2 , section 15.3.5), such as TrueDoc Portable Font Resource or Embedded OpenType . then the ltstringgt must contain the corresponding font format string, such as truedoc-pfr or embedded-opentype . (This attribute has the same meaning as the format attribute on the glyphRef element.) Animatable. no. x ltlist-of-coordinatesgt The ltcoordinategt values are processed in the same manner as the x attribute on the tspan element, with the following exception: If the referenced alternate glyphs are rendered instead of the Unicode characters inside the altGlyph element, then any absolute X coordinates specified via an x attribute on this element or any ancestor text or tspan elements for Unicode characters 2 through n within the altGlyph element are ignored. Any absolute X coordinate specified via an x attribute on this element or any ancestor text or tspan elements for the first Unicode character within the altGlyph element sets a new absolute X coordinate for the current text position before rendering the first alternate glyph. Animatable. ja. y ltlist-of-coordinatesgt The corresponding absolute Y coordinates for rendering the altGlyph element. Animatable. ja. dx ltlist-of-lengthsgt The ltlengthgt values are processed in the same manner as the dx attribute on the tspan element, with the following exception: If the referenced alternate glyphs are rendered instead of the Unicode characters inside the altGlyph element, then any relative X coordinates specified via an dx attribute on this element or any ancestor text or tspan elements for Unicode characters 2 through n within the altGlyph element are ignored. Any relative X coordinate specified via an dx attribute on this element or any ancestor text or tspan elements for the first Unicode character within the altGlyph element sets a new relative X coordinate for the current text position before rendering the first alternate glyph. Animatable. ja. dy ltlist-of-lengthsgt The corresponding relative Y coordinates for rendering the altGlyph element. Animatable. ja. rotate ltlist-of-numbersgt The ltnumbergt values are processed in the same manner as the rotate attribute on the tspan element, with the following exception: If the referenced alternate glyphs are rendered instead of the Unicode characters inside the altGlyph element, then any supplemental rotation values specified via an rotate attribute on this element or any ancestor text or tspan elements for Unicode characters 2 through n within the altGlyph element are ignored. Supplemental rotation values specified via an rotate attribute on this element or any ancestor text or tspan elements for the first Unicode character within the altGlyph element sets a new supplemental rotation angle before rendering the alternate glyphs. Animatable. yes (non-additive). If the references to alternate glyphs do not result in successful identification of alternate glyphs to use, then the character(s) that are inside of the altGlyph element are rendered as if the altGlyph element were a tspan element instead. An altGlyph element either references a glyph element or an altGlyphDef element via its xlink:href attribute or identifies a glyph by means of font selection properties. a glyph identifier and a font format. If the xlink:href attribute is specified, it takes precedence, and the other glyph identification attributes and properties are ignored. 10.14.2 The altGlyphDef. altGlyphItem and glyphRef elements The altGlyphDef element defines a set of possible glyph substitutions. An altGlyphDef can contain either of the following: In the simplest case, an altGlyphDef contains one or more glyphRef elements. Each glyphRef element references a single glyph within a particular font. If all of the referenced glyphs are available, then these glyphs are rendered instead of the character(s) inside of the referencing altGlyph element. If any of the referenced glyphs are unavailable, then the character(s) that are inside of the altGlyph element are rendered as if there were not an altGlyph element surrounding those characters. In the more complex case, an altGlyphDef contains one or more altGlyphItem elements. Each altGlyphItem represents a candidate set of substitute glyphs. Each altGlyphItem contains one or more glyphRef elements. Each glyphRef element references a single glyph within a particular font. The first altGlyphItem in which all referenced glyphs are available is chosen. The glyphs referenced from this altGlyphItem are rendered instead of the character(s) that are inside of the referencing altGlyph element. If none of the altGlyphItem elements result in a successful match (i. e. none of the altGlyphItem elements has all of its referenced glyphs available), then the character(s) that are inside of the altGlyph element are rendered as if there were not an altGlyph element surrounding those characters. The altGlyphItem element defines a candidate set of possible glyph substitutions. The first altGlyphItem element whose referenced glyphs are all available is chosen. Its glyphs are rendered instead of the character(s) that are inside of the referencing altGlyph element. The glyphRef element defines a possible glyph to use. xlink:href ltirigt An IRI reference to a glyph element in an SVG document fragment. The referenced glyph is rendered as an alternate glyph. Animatable. no. glyphRef ltstringgt The glyph identifier, the format of which is dependent on the format of the given font. Animatable. no. format ltstringgt The format of the given font. If the font is in one of the formats listed in CSS2 (CSS2 , section 15.3.5), such as TrueDoc Portable Font Resource or Embedded OpenType . then the ltstringgt must contain the corresponding font format string, such as truedoc-pfr or embedded-opentype . Animatable. no. x ltnumbergt This value represents the new absolute X coordinate within the fonts coordinate system for this glyph. The font coordinate system is based on the em square model described in the Fonts chapter of CSS2 (CSS2 , chapter 15). If the attribute is not specified, for the first glyphRef child element, the effect is as if the attribute were set to 0, whereas for subsequent glyphRef child elements, the effect is as if the attribute were set to the end X coordinate from the previous glyphRef element. Animatable. no. y ltnumbergt The corresponding new absolute Y coordinate within the fonts coordinate system for this glyph. Animatable. no. dx ltnumbergt This value represents the relative X coordinate within the fonts coordinate system for this glyph. The glyph is thus shifted by ltnumbergt units along the positive X axis within the fonts coordinate system supplemental to the absolute X coordinate established by the x attribute (either due to an explicit x attribute or due to default value processing for the x attribute). The font coordinate system is based on the em square model described in the Fonts chapter of CSS2 (CSS2 , chapter 15). If the attribute is not specified, the effect is as if the attribute were set to 0. Animatable. no. dy ltnumbergt The corresponding number of units within the fonts coordinate system to shift the glyph along the positive Y axis relative to the absolute Y coordinate established by the y attribute. Animatable. no. A glyphRef either references a glyph element in an SVG document fragment via its xlink:href attribute or identifies a glyph by means of font selection properties. a glyph identifier and a font format. If insufficient attributes and properties have been specified to identify a glyph, then the glyphRef is processed in the same manner as when a glyph reference is fully specified, but the given glyph is not available. If the xlink:href attribute is specified, it takes precedence, and the other glyph identification attributes and properties are ignored. 10.15 White space handling SVG supports the standard XML attribute xml:space to specify the handling of white space characters within a given text elements character data. Note that any child element of a text element may also have an xml:space attribute which will apply to that child elements text content. The SVG user agent has special processing rules associated with this attribute as described below. These are behaviors that occur subsequent to XML parsing XML10 and any construction of a DOM. xml:space is an inheritable attribute which can have one of two values: default (The initialdefault value for xml:space .) When xml:spacedefault. the SVG user agent will do the following using a copy of the original character data content. First, it will remove all newline characters. Then it will convert all tab characters into space characters. Then, it will strip off all leading and trailing space characters. Then, all contiguous space characters will be consolidated. preserve When xml:spacepreserve. the SVG user agent will do the following using a copy of the original character data content. It will convert all newline and tab characters into space characters. Then, it will draw all space characters, including leading, trailing and multiple contiguous space characters. Thus, when drawn with xml:spacepreserve. the string a b (three spaces between a and b) will produce a larger separation between a and b than a b (one space between a and b). The following example illustrates that line indentation can be important when using xml:spacedefault. The fragment below show two pairs of similar text elements, with both text elements using xml:spacedefault. For these examples, there is no extra white space at the end of any of the lines (i. e. the line break occurs immediately after the last visible character). The first pair of text elements above show the effect of indented character data. The attribute xml:spacedefault in the first text element instructs the user agent to: convert all tabs (if any) to space characters, strip out all line breaks (i. e. strip out the line breaks at the end of lines 01, 02 and 03), strip out all leading space characters (i. e. strip out space characters before WS example on line 02), strip out all trailing space characters (i. e. strip out space characters before lttextgt on line 04), consolidate all intermediate space characters (i. e. the space characters before indented lines on line 03) into a single space character. The second pair of text elements above show the effect of non-indented character data. The attribute xml:spacedefault in the third text element instructs the user agent to: convert all tabs (if any) to space characters, strip out all line breaks (i. e. strip out the line breaks at the end of lines 07, 08 and 09), strip out all leading space characters (there are no leading space characters in this example), strip out all trailing space characters (i. e. strip out space characters before lttextgt on line 10), consolidate all intermediate space characters into a single space character (in this example, there are no intermediate space characters). Note that XML parsers are required to convert the standard representations for a newline indicator (e. g. the literal two-character sequence xDxA or the stand-alone literals xD or xA) into the single character xA before passing character data to the application. Thus, each newline in SVG will be represented by the single character xA, no matter what representation for newlines might have been used in the original resource. (See XML end-of-line handling .) Any features in the SVG language or the SVG DOM that are based on character position number, such as the x. y. dx. dy and rotate attributes on the text. tspan. tref and altGlyph elements, are based on character position after applying the white space handling rules described here. In particular, if xml:spacedefault. it is often the case that white space characters are removed as part of processing. Character position numbers index into the text string after the white space characters have been removed per the rules in this section. Note that a glyph corresponding to a whitespace character should only be displayed as a visible but blank space, even if the glyph itself happens to be non-blank. See display of unsupported characters UNICODE . 10.16 Text selection and clipboard operations Conforming SVG viewers on systems which have the capacity for text selection (e. g. systems which are equipped with a pointer device such as a mouse) and which have system clipboards for copypaste operations are required to support: user selection of text strings in SVG content the ability to copy selected text strings to the system clipboard A text selection operation starts when all of the following occur: the user positions the pointing device over a glyph that has been rendered as part of a text element, initiates a select operation (e. g. pressing the standard system mouse button for select operations) and then moves the pointing device while continuing the select operation (e. g. continuing to press the standard system mouse button for select operations) no other visible graphics element has been painted above the glyph at the point at which the pointing device was clicked no links or events have been assigned to the text. tspan or textPath element(s) (or their ancestors) associated with the given glyph. As the text selection operation proceeds (e. g. the user continues to press the given mouse button), all associated events with other graphics elements are ignored (i. e. the text selection operation is modal) and the SVG user agent shall dynamically indicate which characters are selected by an appropriate highlighting technique, such as redrawing the selected glyphs with inverse colors. As the pointer is moved during the text selection process, the end glyph for the text selection operation is the glyph within the same text element whose glyph cell is closest to the pointer. All characters within the text element whose position within the text element is between the start of selection and end of selection shall be highlighted, regardless of position on the canvas and regardless of any graphics elements that might be above the end of selection point. Once the text selection operation ends (e. g. the user releases the given mouse button), the selected text will stay highlighted until an event occurs which cancels text selection, such as a pointer device activation event (e. g. pressing a mouse button). Detailed rules for determining which characters to highlight during a text selection operation are provided in Text selection implementation notes . For systems which have system clipboards, the SVG user agent is required to provide a user interface for initiating a copy of the currently selected text to the system clipboard. It is sufficient for the SVG user agent to post the selected text string in the systems appropriate clipboard format for plain text, but it is preferable if the SVG user agent also posts a rich text alternative which captures the various font properties associated with the given text string. For bidirectional text, the user agent must support text selection in logical order, which will result in discontinuous highlighting of glyphs due to the bidirectional reordering of characters. User agents can provide an alternative ability to select bidirectional text in visual rendering order (i. e. after bidirectional text layout algorithms have been applied), with the result that selected character data might be discontinuous logically. In this case, if the user requests that bidirectional text be copied to the clipboard, then the user agent is required to make appropriate adjustments to copy only the visually selected characters to the clipboard. When feasible, it is recommended that generators of SVG attempt to order their text strings to facilitate properly ordered text selection within SVG viewing applications such as Web browsers. 10.17 DOM interfaces 10.17.1 Interface SVGTextContentElement For the methods on this interface that refer to an index to a character or a number of characters, these references are to be interpreted as an index to a UTF-16 code unit or a number of UTF-16 code units, respectively. This is for consistency with DOM Level 2 Core, where methods on the CharacterData interface use UTF-16 code units as indexes and counts within the character data. Thus for example, if the text content of a text element is a single non-BMP character, such as U10000, then invoking getNumberOfChars on that element will return 2 since there are two UTF-16 code units (the surrogate pair) used to represent that one character. Constants in group lengthAdjust Types: LENGTHADJUSTUNKNOWN (unsigned short) The enumeration was set to a value that is not one of predefined types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type. LENGTHADJUSTSPACING (unsigned short) Corresponds to value spacing. LENGTHADJUSTSPACINGANDGLYPHS (unsigned short) Corresponds to value spacingAndGlyphs. Corresponds to attribute textLength on the given element. Corresponds to attribute lengthAdjust on the given element. The value must be one of the length adjust constants defined on this interface. Operations: long getNumberOfChars () Returns the total number of characters available for rendering within the current element, which includes referenced characters from tref reference, regardless of whether they will be rendered. Effectively, this is equivalent to the length of the Node::textContent attribute from DOM Level 3 Core (DOM3 , section 1.4), if that attribute also expanded tref elements. Total number of characters. The total sum of all of the advance values from rendering all of the characters within this element, including the advance value on the glyphs (horizontal or vertical), the effect of properties kerning. letter-spacing and word-spacing and adjustments due to attributes dx and dy on tspan elements. For non-rendering environments, the user agent shall make reasonable assumptions about glyph metrics. The text advance distance. float getSubStringLength (in unsigned long charnum. in unsigned long nchars ) The total sum of all of the advance values from rendering the specified substring of the characters, including the advance value on the glyphs (horizontal or vertical), the effect of properties kerning. letter-spacing and word-spacing and adjustments due to attributes dx and dy on tspan elements. For non-rendering environments, the user agent shall make reasonable assumptions about glyph metrics. If multiple consecutive characters are rendered inseparably (e. g. as a single glyph or a sequence of glyphs, or because the range encompasses half of a surrogate pair), and nchars is greater than 0 then the measured range shall be expanded so that each of the inseparable characters are included. unsigned long charnum The index of the first character in the substring, where the first character has an index of 0. unsigned long nchars The number of characters in the substring. If nchars specifies more characters than are available, then the substring will consist of all characters starting with charnum until the end of the list of characters. The text advance distance. Exceptions DOMException. code INDEXSIZEERR Raised if charnum or nchars is negative or if charnum is greater than or equal to the number of characters at this node. SVGPoint getStartPositionOfChar (in unsigned long charnum ) Returns the current text position before rendering the character in the user coordinate system for rendering the glyph(s) that correspond to the specified character. The current text position has already taken into account the effects of any inter-character adjustments due to properties kerning. letter-spacing and word-spacing and adjustments due to attributes x. y. dx and dy. If multiple consecutive characters are rendered inseparably (e. g. as a single glyph or a sequence of glyphs), then each of the inseparable characters will return the start position for the first glyph. unsigned long charnum The index of the character, where the first character has an index of 0. The characters start position. Exceptions DOMException. code INDEXSIZEERR Raised if the charnum is negative or if charnum is greater than or equal to the number of characters at this node. SVGPoint getEndPositionOfChar (in unsigned long charnum ) Returns the current text position after rendering the character in the user coordinate system for rendering the glyph(s) that correspond to the specified character. This current text position does not take into account the effects of any inter-character adjustments to prepare for the next character, such as properties kerning. letter-spacing and word-spacing and adjustments due to attributes x. y. dx and dy. If multiple consecutive characters are rendered inseparably (e. g. as a single glyph or a sequence of glyphs), then each of the inseparable characters will return the end position for the last glyph. unsigned long charnum The index of the character, where the first character has an index of 0. The characters end position. Exceptions DOMException. code INDEXSIZEERR Raised if the charnum is negative or if charnum is greater than or equal to the number of characters at this node. SVGRect getExtentOfChar (in unsigned long charnum ) Returns a tightest rectangle which defines the minimum and maximum X and Y values in the user coordinate system for rendering the glyph(s) that correspond to the specified character. The calculations assume that all glyphs occupy the full standard glyph cell for the font. If multiple consecutive characters are rendered inseparably (e. g. as a single glyph or a sequence of glyphs), then each of the inseparable characters will return the same extent. unsigned long charnum The index of the character, where the first character has an index of 0. The rectangle which encloses all of the rendered glyph(s). Exceptions DOMException. code INDEXSIZEERR Raised if the charnum is negative or if charnum is greater than or equal to the number of characters at this node. float getRotationOfChar (in unsigned long charnum ) Returns the rotation value relative to the current user coordinate system used to render the glyph(s) corresponding to the specified character. If multiple glyph(s) are used to render the given character and the glyphs each have different rotations (e. g. due to text-on-a-path), the user agent shall return an average value (e. g. the rotation angle at the midpoint along the path for all glyphs used to render this character). The rotation value represents the rotation that is supplemental to any rotation due to properties glyph-orientation-horizontal and glyph-orientation-vertical thus, any glyph rotations due to these properties are not included into the returned rotation value. If multiple consecutive characters are rendered inseparably (e. g. as a single glyph or a sequence of glyphs), then each of the inseparable characters will return the same rotation value. unsigned long charnum The index of the character, where the first character has an index of 0. The rotation angle. Exceptions DOMException. code INDEXSIZEERR Raised if the charnum is negative or if charnum is greater than or equal to the number of characters at this node. long getCharNumAtPosition (in SVGPoint point ) Returns the index of the character whose corresponding glyph cell bounding box contains the specified point. The calculations assume that all glyphs occupy the full standard glyph cell for the font. If no such character exists, a value of -1 is returned. If multiple such characters exist, the character within the element whose glyphs were rendered last (i. e. take into account any reordering such as for bidirectional text) is used. If multiple consecutive characters are rendered inseparably (e. g. as a single glyph or a sequence of glyphs), then the user agent shall allocate an equal percentage of the text advance amount to each of the contributing characters in determining which of the characters is chosen. A point in user space. The index of the character which is at the given point, where the first character has an index of 0. void selectSubString (in unsigned long charnum. in unsigned long nchars ) Causes the specified substring to be selected just as if the user selected the substring interactively. unsigned long charnum The index of the start character which is at the given point, where the first character has an index of 0. unsigned long nchars The number of characters in the substring. If nchars specifies more characters than are available, then the substring will consist of all characters starting with charnum until the end of the list of characters. Exceptions DOMException. code INDEXSIZEERR Raised if charnum or nchars is negative or if charnum is greater than or equal to the number of characters at this node.10.17.2 Interface SVGTextPositioningElement Corresponds to attribute x on the given element. Corresponds to attribute y on the given element. Corresponds to attribute dx on the given element. Corresponds to attribute dy on the given element. Corresponds to attribute rotate on the given element. 10.17.3 Interface SVGTextElement The SVGTextElement interface corresponds to the text element. 10.17.4 Interface SVGTSpanElement The SVGTSpanElement interface corresponds to the tspan element. 10.17.5 Interface SVGTRefElement The SVGTRefElement interface corresponds to the tref element. 10.17.6 Interface SVGTextPathElement The SVGTextPathElement interface corresponds to the textPath element. Constants in group textPath Method Types: TEXTPATHMETHODTYPEUNKNOWN (unsigned short) The enumeration was set to a value that is not one of predefined types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type. TEXTPATHMETHODTYPEALIGN (unsigned short) Corresponds to value align. TEXTPATHMETHODTYPESTRETCH (unsigned short) Corresponds to value stretch. Constants in group textPath Spacing Types: TEXTPATHSPACINGTYPEUNKNOWN (unsigned short) The enumeration was set to a value that is not one of predefined types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type. TEXTPATHSPACINGTYPEAUTO (unsigned short) Corresponds to value auto. TEXTPATHSPACINGTYPEEXACT (unsigned short) Corresponds to value exact. Corresponds to attribute startOffset on the given textPath element. Corresponds to attribute method on the given textPath element. Corresponds to attribute spacing on the given textPath element. 10.17.7 Interface SVGAltGlyphElement The SVGAltGlyphElement interface corresponds to the altGlyph element. Attributes: glyphRef (DOMString) Corresponds to attribute glyphRef on the given element. Exceptions on setting DOMException. code NOMODIFICATIONALLOWEDERR Raised on an attempt to change the value of a read only attribute. format (DOMString) Corresponds to attribute format on the given element. Exceptions on setting DOMException. code NOMODIFICATIONALLOWEDERR Raised on an attempt to change the value of a read only attribute. 10.17.8 Interface SVGAltGlyphDefElement 10.17.9 Interface SVGAltGlyphItemElement 10.17.10 Interface SVGGlyphRefElement The SVGGlyphRefElement interface corresponds to the glyphRef element. Attributes: glyphRef (DOMString) Corresponds to attribute glyphRef on the given element. Exceptions on setting DOMException. code NOMODIFICATIONALLOWEDERR Raised on an attempt to change the value of a read only attribute. format (DOMString) Corresponds to attribute format on the given element. Exceptions on setting DOMException. code NOMODIFICATIONALLOWEDERR Raised on an attempt to change the value of a read only attribute. x (float) Corresponds to attribute x on the given element. Exceptions on setting DOMException. code NOMODIFICATIONALLOWEDERR Raised on an attempt to change the value of a read only attribute. y (float) Corresponds to attribute y on the given element. Exceptions on setting DOMException. code NOMODIFICATIONALLOWEDERR Raised on an attempt to change the value of a read only attribute. dx (float) Corresponds to attribute dx on the given element. Exceptions on setting DOMException. code NOMODIFICATIONALLOWEDERR Raised on an attempt to change the value of a read only attribute. dy (float) Corresponds to attribute dy on the given element. Exceptions on setting DOMException. code NOMODIFICATIONALLOWEDERR Raised on an attempt to change the value of a read only attribute.


No comments:

Post a Comment