Skalierbare Vektorgrafiken
Scalable Vector Graphics, die skalierbare Vektorgrafik, ist ein XML-Format für zweidimensionale Bilder, mit Unterstützung für Interaktion und für Animation. Die Spezifikation ist ein offener Standard. Das World Wide Web Consortium arbeitet daran seit 1999. Ein SVG-Bild wird als Text gespeichert. Weil das Bild aus Vektoren besteht und nicht aus einem Gitter von Pixeln, lässt es sich skalieren, ohne dass die Kanten auseinanderfallen. Weil die Datei Text ist, lässt sie sich durchsuchen, indizieren, mit Skripten versehen und komprimieren. Schreiben lässt sie sich in einem Texteditor oder in einem Programm für Vektorzeichnung. Die meisten Webbrowser zeichnen sie.
Eine Datei kann auch JavaScript enthalten. Das ist nützlich, wenn es so gemeint war, und ein Grund zur Vorsicht, wenn die Datei von jemand anderem stammt.
Sechs Vorschläge, dann eine neue Sprache
Im Lauf des Jahres 1998 wurden sechs konkurrierende Vorschläge für eine Vektorsprache im Web an das W3C geschickt.
- Web Schematics, von CCLRC
- Precision Graphics Markup Language, von Adobe, IBM, Netscape und Sun
- Vector Markup Language, von Autodesk, Hewlett-Packard, Macromedia, Microsoft und Vision
- Hyper Graphics Markup Language, von Orange UK und PRP
- WebCGM, von Boeing, PTC, InterCAP, Inso, CCLRC und Xerox
- DrawML, von Excosoft
Die frühe Arbeitsgruppe für SVG, geleitet von Chris Lilley, beschloss, keine der kommerziellen Einreichungen so zu übernehmen, wie sie vorlag. Geschrieben wurde eine neue Auszeichnungssprache, angeregt von diesen Vorschlägen und auf keinen einzelnen davon wirklich gegründet. Dieser Beschluss ist der Grund, warum SVG sich nicht liest wie „das Format von Adobe mit geänderten Namen“, und auch nicht wie das von Microsoft. Wer einen Vorschlag eingereicht hatte, erkennt noch Stücke. Das Ergebnis hat niemand zu eigen bekommen.
Die frühe Übernahme war dünn, vor allem weil ältere Versionen des Internet Explorer das Format nicht zeichneten. Bis 2011 hatte jeder große Browser für den Desktop ein gewisses Maß an Unterstützung. Native Unterstützung hat schlichte Vorteile. Ein Plugin wird nicht gebraucht. SVG kann im selben Dokument sitzen wie anderer Inhalt. Rendern und Skripten sind verlässlicher, wenn der Browser selbst zuständig ist und nicht ein Stück Software, das angeschraubt wurde. Auf Mobilgeräten kam die Unterstützung stückweise. Verschiedene Geräte und Browser implementierten SVG Tiny 1.1 oder 1.2, reduzierte Profile der vollen Sprache. Auf einer Webseite ist die nützliche Form oft Inline-SVG: die Zeichnung steht im HTML-Dokument, statt als eigenes Bild geholt zu werden. Flache Bilder erklärt, warum eine Beschreibung in Vektoren das richtige Werkzeug für ein Zeichen ist, das scharf bleiben muss. SVG ist diese Beschreibung, als Norm aufgeschrieben.
Die Versionen
SVG 1.0 wurde am 4. September 2001 eine Empfehlung des W3C (Recommendation). SVG 1.1 folgte am 14. Januar 2003. Die wesentliche Änderung in 1.1 war die Zerlegung der Spezifikation in Module, damit Teilmengen als Profile festgelegt werden konnten. Abgesehen davon liegen 1.1 und 1.0 nah beieinander. Am selben Tag wurden auch SVG Tiny und SVG Basic, die Profile für Mobilgeräte, Empfehlungen. Sie sind Profile von 1.1, keine andere Sprache.
SVG Tiny 1.2 wurde am 22. Dezember 2008 eine Empfehlung. Angefangen hatte es als Profil eines geplanten SVG Full 1.2. Diese volle Version wurde zugunsten von SVG 2 fallengelassen, und Tiny 1.2 wurde als eigene Spezifikation neu aufgebaut. Die Unterstützung dafür ist im Allgemeinen dürftig geblieben. SVG 1.1 Second Edition, veröffentlicht am 16. August 2011, sammelt die Errata und die Klarstellungen. Neue Merkmale kommen nicht hinzu. 2020 beschrieb ein Entwurf der IETF SVG Tiny 1.2 Portable/Secure, eine engere Teilmenge, auch SVG Tiny P/S genannt. Diese Teilmenge ist eine Anforderung des Entwurfs BIMI, der Arbeit an Markenzeichen in E-Mail. Eine winzige, abgeriegelte Zeichnung ist ein anderes Produkt als eine Zeichnung, die ein Skript ausführen kann, und der Fall E-Mail will die erste.
SVG 2 entfernt einiges aus 1.1 oder erklärt es für veraltet und übernimmt Merkmale aus HTML5 und aus dem Web Open Font Format. Mehrere Elemente für Schriften, darunter glyph und altGlyph, fallen weg und werden durch WOFF ersetzt. Das Attribut xml:space gilt zugunsten von CSS als veraltet. Merkmale aus HTML wie die Attribute translate und data-* kommen hinzu. Einige Ideen zur Behandlung von Text aus Tiny 1.2 sind zur Aufnahme markiert und noch nicht formalisiert. SVG 2 ist im Allgemeinen keine Obermenge von Tiny 1.2. Den Status Candidate Recommendation erreichte es am 15. September 2016. Überarbeitete Kandidatentexte erschienen am 7. August 2018 und am 4. Oktober 2018. Ein späterer Entwurf ist auf den 14. September 2025 datiert. Die praktische Folge für jemanden, der heute eine Datei schreibt, ist fad und nützlich. SVG 1.1 ist das, worauf die Browser sich tatsächlich geeinigt haben. SVG 2 ist der Weg, den die Spezifikation geht. Eine Datei, die sich an den weit implementierten Teil von 1.1 hält, wird gezeichnet. Eine Datei, die von einem Merkmal der Version 2 abhängt, braucht eine Prüfung am Browser, nicht am Entwurf.
Wofür die Datei taugt
SVG wird für Zeichnungen im Web benutzt und für den Druck. Mit gzip lässt es sich gut komprimieren. Eine komprimierte Datei heißt SVGZ und ist typischerweise 20 bis 50 Prozent kleiner als das Original. Das Format trägt auch Metadaten. Dadurch sind Indizieren und Suchen weniger ein Raten, als sie es bei einer Fotografie sind. Was eine SVG-Datei enthält, ist das Inventar dieser Stücke: Pfade, Text, Farbe, Filter, Animation. Die Spezifikation pflegt das W3C, und der aktuelle Text liegt dort.
