Halbzeit im SVG-Jahr 2010
geschrieben von Pawel
Die Halbzeit ist Anlass für mich eine kleine Bilanz zu ziehen. Ich nehme damit Bezug zu meinem Artikel vom Anfang des Jahres.
Warum setzt sich der Standard nach 9 Jahren durch?
Der Brower aus Redmond ist zwar nicht mehr in der Lage „...sie alle zu knechten...“, hat aber anhaltend eine hohe Bedeutung. Das hat auch mit der hohen Verbreitung des Microsoft-Betriebssystems zu tun. Das der IE 9 SVG direkt unterstützen wird, hilft der Verbreitung des Webstandards SVG.
Egal wie sich jeder Webentwickler in der Auseinandersetzung Apple vs. Adobe positioniert, die Kunden wünschen Seiten, die auch auf dem Iphone und dem Ipad gut aussehen. Auf der SVG-Developer-Liste stellen sich jetzt wiederholt Newcomer vor, die bisher für Flash entwickelt haben.
Was muss ein Gestalter beachten?
(vermutete) Browserverteilung Ende 2010
Am Ende des Jahres werden die Browserstatistiken vermutlich so aussehen:
- IE bis 8 30%
- IE9 10%
- Firefox4 30%
- Chrome 15%
- Safari 6 %
- Opera 10.6 6%
Design
Safari und der IE verstehen keine filter-Anweisungen. Das betrifft auch den Unschärfefilter. Als workaround kann auf einen Farbverlauf ausgewichen werden. Ansonsten gilt das selbe, wie bei CSS und HTML: Browser, die höhere Darstellungsfähigkeiten haben, zeigen die Grafiken eben etwas hübscher an.
Zum Gestalten der Grafiken eignen sich der Adobe Illustrator und Inkscape. Beide Programme haben eine unterschiedliche Logik und erfordern eine gewisse Einarbeitungszeit. Beim Printdesign spielen die Dateigrößen von Vektorgrafiken normalerweise keine Rolle, da sie im Vergleich zu den Fotos verschwindend klein sind.Dateigrößen über 150 kb sind im Web jedoch nicht hinnehmbar.
Der Optimierungsprozess beginnt in der Gestaltung schon mit einer vernünftigen Reduktion auf die wesentlichsten Gestaltungselemente. Im AI ist die Grafik unbedingt für das Web abzuspeichern und in Inkscape ist die Einstellung optimiertes SVG zu wählen.
Einbettung
Inline – direkt ins (X)HTML
SVG können Inline in ein HTML5, XHTML5 und XHTML1.1 eingebettet werden. In der letzten Variante müssen alle Elemente den Namespace mitführen. Aus <svg> wird dann <svg:svg>, aus <g> wird <svg:g> u.s.w. Das geht zwar auch per Suchen und Ersetzen ist aber unkomfortabel.
Alle o.g. Browser zeigen bei XHTML5 die eingebetteten Grafiken an. Erforderlich ist dafür, aber eine weitestgehende Kontrolle über das Markup, da jeder Fehler zu einem Lesefehler der Seite führt. Der Einsatz eines WYSIWYG-Editors scheidet damit aus.
Firefox4 und IE9 zeigen direkt eingebettete Grafiken auch bei HTML5 an. Durchsetzen wird sich diese spannendste Form, wenn Opera und die Webkitbrowser es auch darstellen.
Einbettung per object-Tag
Diese Variante funktioniert in alle Browsern.
<object type="image/svg+xml" data="Grafik.svg"><img src="Grafikt.png" alt="Grafik" /></object>
Bei Infografiken läßt sich das uneingeschränkt empfehlen. Anhaltend haben die Webkitbrowser einen Bug, dass sie dem Hintergrund eines so eingebetten SVG unbedingt einen weißen Hintergrund mitgeben müssen. Sollte man die gesamte eckige Pracht nicht so mögen, kann mit einer anderen Hintergrundfarbe ein bisschen getrickst werden. Unter Linux kann mit einem beherzten
gzip -c < Grafik.svg t> Grafik.svgz
die Grafik gepackt werden. Damit diese angezeigt wird, muss aber der Apache dies verstehen, was am einfachsten mit einer Anpassung der .htaccess gelingt:
AddType image/svg+xml svgz
AddEncoding gzip .svgz
Einbettung per CSS
Kaum zu glauben aber wahr. Am Ende des Jahres sollen dies alle Browser beherrschen. Opera und Webkit können das schon länger, die Preview des IE beherrscht es und für den Firefox4 steht es auf der ToDo-Liste. Das geht sogar mit data/uri.
Ich rate im Moment aber noch davon ab, komplette Hintergründe damit zu gestalten. Opera 10.6 „friert“ dabei regelmäßig ein.
Eine empfehlenswerte Testseite findet sich bei deveria.com. Dort können alle Browser auf ihre Fähigkeiten überprüft werden. Zusätzlich werden noch weitere Einbettungsformen vorgestellt.
Fazit:
Am Ende des Jahres gibt es eine breite Unterstützung des Formates durch die Browser. Damit sind jetzt die Gestalter gefragt, um neue Ideen umzusetzen.
Kategorie: Ideen , Layout , SVG | Trackbacks (0) | Permalink
Spielerei in SVG
geschrieben von Pawel
SVG ist in diesem Jahr der erhoffte Durchbruch gelungen. Beim Gestalten einiger Grafiken habe ich einige Überraschungen erlebt. Die SVG-Unterstützung ist nicht nur ein kontinuierlicher Prozess, der Schritt für Schritt der Gesamtstandard implementiert. Alle Browserhersteller setzen andere Schwerpunkte. Jeff Schillers Blog stellt die aktuelle Fähigkeiten aller Browser dar.
Idee
Mich hat gereizt, ob sich durch das Ausnutzen der Unterschiede eine Browserweiche nur in SVG möglich wäre. Hier ist das aktuelle Ergebnis:
Die Weiche unterscheidet zwischen folgenden Browsern:
- Safari 4+5
- Chrome 5
- Firefox 3.6
- Firefox 4
- Opera 10
Beschreibung:
Zunächst wird ein weisses Rechteck als Hintergrund definiert. Weiss ist zwar häufig die Standardfarbe. Darauf wollte ich mich aber nicht verlassen. Die jeweiligen Browsernamen werden in Textfeldern definiert und übereinander gestapelt. Der Kniff besteht darin, dass der jeweilige Browser nur seinen Text anzeigen sollte.
Chrome 5 versteht schon einige filter und unterscheidet sich dadurch von Safari. Ich habe als Schriftfarbe weiss festgelegt. Dadurch ist die Schrift auf dem Hintergrund nicht sichtbar. Durch Verwendung von feFlood erhält der Text für Chrome, jedoch nicht für Safari eine andere Farbe für den Textr. Chrome zeigt Elemente nicht an, wenn auf diese und das gruppierende Element ein filter angewendet sind.
Firefox 3.6 versteht noch keine Animationen über die Beschreibungssprache SMIL. Über diese Anweisungen wird der Text für die Webkitbrowser eingeblendet, welches Firefox nicht interpretieren kann. Gleichzeitig wird via SMIL festgelegt, dass der Text für den Firefox 3.6 ausgeblendet werden soll, was er nicht interpretiert und dadurch sichtbar bleibt.
Safari 4+5 zeigen auch den Text an, der für Chrome unsichtbar wird, da filter komplett ignoriert werden.
Firefox 4 gewinnt wesentliche SMIL-Fähigkeiten dazu und interpretiert filter beinahe so gut, wie Opera. Ich habe ausgenutzt, dass man auch filter animieren kann. Der schon oben genutzte feFlood wird kombiniert mit feComposite, wodurch der filter im Chrome nicht sichtbar wird. Zusätzlich wird er noch per Animation eingeblendet. Dadurch wird er im Firefox 3.6 nicht gerendert.
Damit wird ein weisse Schicht über die anderen Texte gelegt. Aus einem weiteren Rechteck wird mittels clipPath nur der Text "ausgestanzt".
Opera 10 ist der SVG-Browser schlechthin. Auch bei Opera führt der doppelt angewandte filter für Element und Elternelement (wie bei Chrome beschrieben) dazu, dass es nicht dargestellt wird. Als bisher einziger Browser beherrscht er aber die Verwendung von externen Text via tref. Durch den verwendeten Platz überdeckt es noch sichtbare Texte.
Das Beispiel ist keine echte Browserweiche oder ein Hack. Er funktioniert zwar ohne Javascript, dient aber mehr der Demonstrationen der unterschiedlichen Fähigkeiten der Browser, die man als Gestalter berücksichtigen muss.
Kategorie: CSS , Ideen , Layout , SVG | Trackbacks (0) | Permalink