<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Webkrauts &#187; Artikel</title>
	<atom:link href="http://www.webkrauts.de/category/artikel/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webkrauts.de</link>
	<description>Für mehr Qualität im Web</description>
	<lastBuildDate>Wed, 18 Jan 2012 19:04:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<item>
		<title>Wie barrierefrei ist barrierefrei?</title>
		<link>http://www.webkrauts.de/2011/11/25/wie-barrierefrei-ist-barrierefrei/</link>
		<comments>http://www.webkrauts.de/2011/11/25/wie-barrierefrei-ist-barrierefrei/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 05:00:25 +0000</pubDate>
		<dc:creator>Jan Eric Hellbusch</dc:creator>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[Barrierefreiheit]]></category>

		<guid isPermaLink="false">http://www.webkrauts.de/?p=1035</guid>
		<description><![CDATA[<p>Ende Oktober hat Webkraut Jan Eric Hellbusch seine eigene Webseite dem überfälligen Relaunch unterzogen. Als Spezialist für Barrierefreiheit liegt die Messlatte diesbezüglich natürlich recht hoch. Die Webkrauts-Redaktion hat einmal nachgehakt: Wie barrierefrei ist seine Webseite denn nun wirklich?</p>]]></description>
			<content:encoded><![CDATA[<p>Pünktlich zum zehnten Geburtstag seit dem Kauf der Domain www.barrierefreies-webdesign.de hat Jan Eric Hellbusch am 29. Oktober 2011 die neue Version der Webseite online gestellt. Da er im Frühling gerade erst zusammen mit Kerstin Probiesch das Buch »Barrierefreiheit verstehen und umsetzen &mdash; Webstandards für ein zugängliches und nutzbares Internet« veröffentlicht hat, stellt das natürlich hohe Ansprüche an den eigenen Auftritt.</p>
<div id="attachment_1037" class="wp-caption alignleft" style="width: 470px"><a href="http://www.webkrauts.de/wp-content/uploads/2011/11/startseite-mit-tilt.png"><img src="http://www.webkrauts.de/wp-content/uploads/2011/11/startseite-mit-tilt-460x327.png" alt="3D-Visualisierung des Codes der Startseite" title="startseite-mit-tilt" width="460" height="327" class="size-medium wp-image-1037" /></a><p class="wp-caption-text">Schlanker Code, dargestellt mit der Firefox-Erweiterung Tilt</p></div>
<p>Nicolai Schwarz von der Webkrauts-Redaktion fragt nach, wie barrierefrei der Auftritt über barrierefreies Webdesign ist.</p>
<dl>
<dt>Nicolai:</dt>
<dd>
<p>Jan, Du hast Ende Oktober Deinen Webauftritt <a href="http://www.barrierefreies-webdesign.de">www.barrierefreies-webdesign.de</a> mit neuem Design und neuen Inhalten online gestellt.  Da du ja Spezialist für barrierefreie Webseiten bist: Ist deine Seite nun barrierefrei? Nach dem Domainnamen zu urteilen, müsste sie es ja sein.</p>
</dd>
<dt>Jan:</dt>
<dd>
<p>Könnte man die Frage mit einem einfachen »Ja« oder »Nein« beantworten, wären heute alle professionellen Webauftritte barrierefrei. Nein, trotz der Webstandards zur Barrierefreiheit wird die tatsächliche Nutzbarkeit immer noch von Inhalten und nicht zuletzt den Nutzern abhängig sein. 100%ige Barrierefreiheit kann wohl nie erreicht werden. Barrierefreiheit ist ein Ziel und kein Zustand.</p>
<p>Dennoch: Ich habe mir alle Mühe gegeben, die Erfolgskriterien der Web Content Accessibility Guidelines 2.0 (WCAG 2.0 bzw. Richtlinien für barrierefreie Webinhalte 2.0) zu erfüllen. Das heißt, die Erfolgskriterien der Konformitätsstufen A und AA sind mit ziemlicher Sicherheit erfüllt, aber nicht alle Anforderungen der Konformitätsstufe AAA konnten mit der gleichen Selbstverständlichkeit umgesetzt werden.</p>
</dd>
<dt>Nicolai:</dt>
<dd>
<p>Kannst Du die Konformitätsstufen etwas näher erläutern?</p>
</dd>
<dt>Jan:</dt>
<dd>
<p>Das Konzept der Konformität in den WCAG 2.0 ist ein sehr ausgeklügeltes System. Die konkreten Anforderungen werden in 61 Erfolgskriterien formuliert. Ein Erfolgskriterium der WCAG 2.0 ist eine allgemeine Anforderung an Webinhalte, die die Zugänglichkeit und Nutzbarkeit durch Menschen mit Behinderungen sicherstellen soll.</p>
<p>Die Erfolgskriterien gehen über allgemeine Anforderungen der Nutzbarkeit und Zugänglichkeit hinaus und sind stets wichtiger für Menschen mit Behinderungen als für Menschen ohne Behinderung. Während beispielsweise Usability oder Standardkonformität durchaus allgemeine Anforderungen für ein Webangebot darstellen, decken die Erfolgskriterien der WCAG 2.0 ausschließlich solche Anforderungen der Nutzbarkeit und Zugänglichkeit ab, die aufgrund von Behinderungen entstehen.</p>
<p>Jedes Erfolgskriterium ist einer der drei Konformitätsstufen A, AA oder AAA zugeordnet. Allgemein können diese so beschrieben werden, dass Konformitätsstufe A wichtige Anforderungen darstellen und dass je höher die Konformitätsstufe wird, desto nachrangiger die Anforderung ist. Tatsächlich sind deutlich mehr Faktoren in diese Klassifizierung eingeflossen, etwa</p>
<ul>
<li>ob das Erfolgskriterium eine Voraussetzung für die Zugänglichkeit darstellt,</li>
<li>ob das Erfolgskriterium für alle Inhaltsformen umsetzbar ist,</li>
<li>ob Webworker das Erfolgskriterium mit vertretbarem Aufwand umsetzen bzw. erlernen können oder</li>
<li>ob das Erfolgskriterium Funktion und Design von Webseiten stark beeinflusst.</li>
</ul>
<p>Darüber hinaus gibt es einige Erfolgskriterien, die quasi zweimal in der WCAG 2.0 vorkommen. Das erste Erfolgskriterium ist dann zum Beispiel für die Konformitätsstufe A notwendig und ein zweites Erfolgskriterium mit erhöhten Anforderungen der Konformitätsstufe AAA zugeordnet. Beispiele dafür betreffen etwa die Tastaturbedienung, Audiodeskription oder Linktexten.</p>
<p>Ob nun eine Seite barrierefrei ist oder nicht, wird auf der Grundlage der WCAG 2.0 über die Konformitätsstufen definiert, d.h. wenn alle Erfolgskriterien der Stufe A erfüllt sind, ist die Konformität auf Stufe A erreicht. Für Stufe AA müssen die Erfolgskriterien der Stufen A und AA ohne Ausnahme erfüllt werden und für Konformitätsstufe AAA sämtliche Erfolgskriterien der WCAG 2.0.</p>
</dd>
<dt>Nicolai:</dt>
<dd>
<p>Die WCAG 2.0 wurde in diesem Jahr auch in der Barrierefreien Informationstechnik-Verordnung 2.0 übernommen. Wird das einen großen Einfluss auf die Webgestaltung in Deutschland haben?</p>
</dd>
<dt>Jan:</dt>
<dd>
<p>Mittelfristig leider nicht, aber langfristig wahrscheinlich schon. Die BITV 2.0 orientiert sich zwar an den WCAG 2.0, aber <a href="http://www.webkrauts.de/2011/09/22/bitv-2-0-in-kraft/">sie bricht mit wichtigen normativen Grundsätzen</a>, etwa den Konformitätsstufen. Letztlich wurden im Wesentlichen die Erfolgskriterien der WCAG 2.0 übernommen, mehr aber auch nicht. Außerdem gilt die BITV 2.0 nur für die Bundesverwaltung, was für die Vorgängerversion aus 2002 ebenfalls galt.</p>
<p>Es ist keine Frage, dass die BITV 2.0 als Selbstverpflichtung der Bundesregierung bedeutsam ist. Sie wurde auch gemeinsam mit Vertretern der Behindertenverbände in Deutschland entwickelt und drückt den Anspruch an die Gleichstellung aus. Aber sie ist aus mehreren Gründen nicht mit den WCAG 2.0 kompatibel; außerdem widerspricht die BITV 2.0 aus denselben Gründen EU-Vorgaben zur Barrierefreiheit im Netz. Erst wenn die EU-Vorgaben konkretere Formen annehmen, werden Behörden und auch die Wirtschaft stärker in die Pflicht genommen.</p>
<p>Der Maßstab für barrierefreies Webdesign ist die WCAG 2.0, die jetzt schon drei Jahre ein Webstandard sind. Neben dem bereits erwähnten Konzept der Konformität enthalten sie umfangreiche Dokumentationen, die regelmäßig an den Stand der Technik angepasst werden. Wer barrierefreies Webdesign erfolgreich umsetzen will, kommt um die Konformitätsstufen und den zusätzlichen Dokumenten der WCAG 2.0 nicht vorbei.</p>
</dd>
<dt>Nicolai:</dt>
<dd>
<p>Kommen wir zurück zu Deiner Seite. Du hast keine Erklärung zur Konformität. Welche Konformitätsstufe erreicht der Webauftritt denn?</p>
</dd>
<dt>Jan:</dt>
<dd>
<p>Eine Erklärung zur Konformität kommt sicher noch. Leider war die Luft kurz vor und nach dem Relaunch etwas raus, und die Überprüfung der Aussagen in einer solchen Erklärung ist eine nicht triviale Angelegenheit. Außerdem ist die Seite &mdash; wie so viele Webseiten &mdash; zwar online, aber noch lange nicht fertig.</p>
<p>Ich gehe davon aus, dass Konformitätsstufe AA erreicht ist, allerdings gibt es Grenzfälle. Beispielsweise habe ich die Codelistings und Multimedia von der <a href="http://www.barrierefreies-webdesign.de/beispiele/barrierefreies-webdesign/abschnitt-1-2/">CD-ROM meines Buchs aus 2004</a> integriert. Sie enthalten Beispielvideos; die Videos sind teils mit und teils ohne Ton und haben keine Alternativen &mdash; weder Audio-Deskription noch Untertitel &mdash; höchstens der dargestellte Code. Da es sich um Beispiele handelt, sind sie auf der Grundlage der Richtlinien in Ordnung, aber trotzdem könnte man hier einen Strick daraus drehen und sagen, der Webauftritt sei nicht barrierefrei bzw. erreiche nicht einmal die Konformitätsstufe A.</p>
<p>Natürlich sind auch etliche Anforderungen der Konformitätsstufe AAA erfüllt, aber nicht alle. Ich kann zum Beispiel nicht behaupten, dass das Leseniveau (Erfolgskriterium 3.1.5) auch für Schüler der sechsten Klasse geeignet ist; schlicht und einfach, weil ich das Leseniveau nicht darauf geprüft habe. Auch haben aufgezeichnete synchronisierte Multimedia mit Audio keine ergänzende Gebärdensprachfilme (Erfolgskriterium 1.2.6). Ich bin mir außerdem nicht sicher, ob wirklich alle Linktexte auch außerhalb ihres Kontextes jedem verständlich sind (Erfolgskriterium 2.4.9). An der Barrierefreiheit der Seiten werde ich zwar weiter arbeiten, aber ich behaupte jetzt auch, dass kein Auftritt dieses Umfangs Konformitätsstufe AAA erreichen kann &mdash; zumindest kenne ich keinen größeren Webauftritt, der alle Erfolgskriterien der WCAG 2.0 erfüllt.</p>
</dd>
<dt>Nicolai:</dt>
<dd>
<p>Was hast Du denn auf Konformitätsstufe AAA umgesetzt?</p>
</dd>
<dt>Jan:</dt>
<dd>
<p>Von den 23 Erfolgskriterien der Stufe AAA sind auf www.barrierefreies-webdesign.de nach aktueller Einschätzung vier nicht erfüllt und vier nicht anwendbar. Von den verbleibenden 15 Erfolgskriterien sind elf aller Wahrscheinlichkeit nach erfüllt und vier sind noch zu klären.</p>
<table>
<tr>
<th>Erfüllt</th>
<td>
<ul>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/leiser-oder-kein-hintergrund-audioinhalt.html">1.4.7 &mdash; leiser oder kein Hintergrund-Audioinhalt</a></li>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/bilder-eines-textes-keine-ausnahme.html">1.4.9 &mdash; Bilder eines Textes (keine Ausnahme)</a></li>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/tastatur-keine-ausnahme.html">2.1.3 &mdash; Tastatur (keine Ausnahme)</a></li>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/keine-zeiteinteilung.html">2.2.3 &mdash; keine Zeiteinteilung</a></li>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/position.html">2.4.8 &mdash; Position</a></li>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/abschnittsueberschriften.html">2.4.10 &mdash; Abschnittsüberschriften</a></li>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/ungewoehnliche-woerter.html">3.1.3 &mdash; ungewöhnliche Wörter</a> &mdash; wahrscheinlich</li>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/abkuerzungen.html">3.1.4 &mdash; Abkürzungen</a> &mdash; wahrscheinlich</li>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/aenderung-auf-anfrage.html">3.2.5 &mdash; Änderung auf Anfrage</a></li>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/hilfe.html">3.3.5 &mdash; Hilfe</a></li>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/fehlervermeidung-alle.html">3.3.6 &mdash; Fehlervermeidung (alle)</a></li>
</ul>
</td>
</tr>
<tr>
<th>In Arbeit</th>
<td>
<ul>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/kontrast-erhoeht.html">1.4.6 &mdash; Kontrast (erhöht)</a> &mdash; in Arbeit</li>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/visuelle-praesentation.html"> 1.4.8 &mdash; visuelle Präsentation</a> &mdash; in Arbeit</li>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/drei-blitze.html">2.3.2 &mdash; drei Blitze</a> &mdash; zu prüfen</li>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/linkzweck-reiner-link.html">2.4.9 &mdash; Linkzweck (reiner Link)</a> &mdash; zu prüfen</li>
</ul>
</td>
</tr>
<tr>
<th>Nicht erfüllt</th>
<td>
<ul>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/gebaerdensprache-aufgezeichnet.html">1.2.6 &mdash; Gebärdensprache (aufgezeichnet)</a></li>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/erweiterte-audiodeskription-aufgezeichnet.html">1.2.7 &mdash; erweiterte Audiodeskription (aufgezeichnet)</a></li>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/medienalternative-aufgezeichnet.html">1.2.8 &mdash; Medienalternative (aufgezeichnet)</a></li>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/leseniveau.html">3.1.5 &mdash; Leseniveau</a></li>
</ul>
</td>
</tr>
<tr>
<th>Nicht anwendbar</th>
<td>
<ul>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/reiner-audioinhalt-live.html">1.2.9 &mdash; reiner Audioinhalt (live)</a></li>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/unterbrechungen.html">2.2.4 &mdash; Unterbrechungen</a></li>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/erneute-authentifizierung.html">2.2.5 &mdash; erneute Authentifizierung</a></li>
<li><a href="http://www.barrierefreies-webdesign.de/richtlinien/aussprache.html">3.1.6 &mdash; Aussprache</a></li>
</ul>
</td>
</tr>
</table>
<p>Die beiden noch in Arbeit befindlichen Erfolgskriterien betreffen das visuelle Erscheinungsbild:</p>
<ul>
<li>Zum einen geht es um Kontraste: Es ist nicht einfach, harmonisierende Farben zu finden, die die erhöhten Kontrastanforderungen (Erfolgskriterium 1.4.6) erfüllen. Ich habe hierzu etliche Runden mit allen möglichen Leuten gedreht, bis ich eine zumindest für mich akzeptable Kombination von Farben gefunden habe. Dabei mussten viele Farbzuweisungen im Inhalt zurückgenommen werden oder sind ganz verschwunden, denn sogar die minimalen Kontrastverhältnisse auf Konformitätsstufe AA stellten sich als schwierig zu realisieren heraus. Weil die Farben in den letzten Monaten öfters geändert wurden, steht noch eine letzte Optimierungsrunde aus. Den Anspruch, überall AAA zu erreichen, habe ich allerdings nicht mehr. Sollten sich aber Nutzer beschweren, dann werde ich das Erfolgskriterium wohl wieder auf die Tagesordnung setzen.</li>
<li>Zum anderen geht es um diverse Anforderungen an die visuelle Präsentation (Erfolgskriterium 1.4.8). Umgesetzt ist beispielsweise die Begrenzung der Laufweite und das flüssige Layout. Hier zeigt sich, wie unterschiedlich die Umsetzung sein kann: Während die Laufweite mit einem Minimum an CSS festgelegt werden kann, ist die Gestaltung eines flüssigen Layouts komplexer: Nicht nur müssen wir Seitenzoom, Textvergrößerung und die Kombinationen von beiden überprüfen, wir müssen hier besonders intensiv mit verschiedenen Browsern und Browserversionen testen &mdash; ebenso wie mit unterschiedlichen Bildschirmauflösungen. Die Lösung mit JavaScript funktioniert inzwischen recht stabil; mittlerweile habe ich aber auch andere Lösungen gesehen, die ohne JavaScript auskommen und stattdessen mit Media-Queries arbeiten. Insgesamt handelt es sich bei diesem Erfolgskriterium um sehr testintensive Anforderungen, so dass eine 100%ige Erfüllung schwer zu überprüfen ist. (<a href="/beispiele/artikel2011/seitenzoom">siehe Demo</a>)</li>
</ul>
<p>Mehr als die Hälfte der Erfolgskriterien auf Konformitätsstufe AAA sind umgesetzt worden bzw. nicht anwendbar oder werden in Kürze umgesetzt sein. Auf dem Webauftritt sind beispielsweise folgende Punkte bereits erledigt:</p>
<p>Die Position einer einzelnen Seite innerhalb des Webauftritts (Erfolgskriterium 2.4.8) wird über mehrere Wege vermittelt: In der Navigation wird die Position mit Farbe, <a href="http://www.webkrauts.de/2011/03/27/barrierefreiheit-mehrfachkennzeichnung-in-der-praxis-teil-1/">border (für benutzerdefinierte Farbeinstellungen)</a> und einem Icon gekennzeichnet; ergänzt werden die Kennzeichnungen mit einem Brotkrumenpfad. Besonders tückisch war aber die Abbildung der Position auf der Strukturebene: Die Subnavigation auf der linken Seite musste als integrativer Bestandteil der Hauptnavigation ausgespielt werden, um die Anforderungen aus dem Erfolgskriterium in Verbindung mit der Linearisierbarkeit zu erfüllen.</p>
<div id="attachment_1038" class="wp-caption alignleft" style="width: 470px"><a href="http://www.webkrauts.de/wp-content/uploads/2011/11/navigation-mit-und-ohne-css.png"><img src="http://www.webkrauts.de/wp-content/uploads/2011/11/navigation-mit-und-ohne-css-460x263.png" alt="Darstellung der Navigation mit und ohne CSS" title="navigation-mit-und-ohne-css" width="460" height="263" class="size-medium wp-image-1038" /></a><p class="wp-caption-text">Die Subnavigation wird als Teil der Hauptnavigation ausgespielt.</p></div>
<p>Im konkreten Layout hatte die dadurch notwendige absolute Positionierung einen starken Einfluss auf den Fluss von Inhalt (rechts) und Info-Bereich (unten links). Es bedürfte eines Fine-Tunings mit JavaScript, um das Layout stabil zu halten.</p>
<p>Für möglichst eindeutige Linktexte (Erfolgskriterium 2.4.9) werden Icons eingesetzt, mit denen interne von externen Links unterschieden werden können oder die aktuelle Position in der Navigation gekennzeichnet wird. Die Grafiken wurden aus zwei Gründen als IMG im HTML eingebunden (statt als CSS-Hintergrundgrafik): Zum einen sollten sie bei benutzerdefinierten Farbeinstellungen wahrnehmbar sein und zum anderen benötigen sie einen Alternativtext. Hier musste ich einen etwas ungewöhnlichen Weg gehen und die Icons in den Links einbauen, um der Anforderung zu genügen.</p>
<p><a href="http://www.webkrauts.de/wp-content/uploads/2011/11/link-mit-symbol.png"><img src="http://www.webkrauts.de/wp-content/uploads/2011/11/link-mit-symbol-460x172.png" alt="Analyse eines Links: Im A-Element ist ein IMG-Element und der Linktext zu sehen" title="link-mit-symbol" width="460" height="172" class="alignleft size-medium wp-image-1039" /></a></p>
<p>An einigen Stellen &mdash; etwa beim <a href="http://www.barrierefreies-webdesign.de/richtlinien/wcag2-bitv2-vergleich.html">Vergleich zwischen WCAG 2.0 und BITV 2.0</a> &mdash; biete ich Auswahlmöglichkeiten an. Obwohl es sehr verlockend war, die Anzeige der ausgewählten Inhalte dynamisch zu gestalten, habe ich die Änderung von Inhalten nur nach expliziter Bestätigung durch den Nutzer (Erfolgskriterium 3.2.5) vorgesehen. Um genau zu sein, besteht die abhängige Auswahl von Inhalten zunächst aus einer Auswahlliste und Schaltfläche, die mit Progressive Enhancement vereinfacht wird; Inhalte der Seite werden aber nicht dynamisch ausgetauscht.</p>
</dd>
<dt>Nicolai:</dt>
<dd>
<p>Wenn deine Webseite also weitestgehend barrierefrei ist, willst du dir das irgendwie zertifizieren lassen?</p>
</dd>
<dt>Jan:</dt>
<dd>
<p>Nein, von wem denn? In Deutschland gibt es kein anerkanntes Zertifizierungsverfahren. Und wenn es ein solches Verfahren gäbe, würde es wahrscheinlich immer den falschen Eindruck vermitteln, nämlich dass die Barrierefreiheit in irgendeiner Weise vollendet sei.</p>
<p>Wenn es eines Tages Zertifizierungen für barrierefreies Webdesign geben sollte, dann muss man sich hier aber an der WCAG 2.0 orientieren und entweder ein A (für weniger Barrierefreiheit), ein AA (für mehr Barrierefreiheit) und AAA (für eine umfassende Barrierefreiheit) vergeben.</p>
</dd>
<dt>Nicolai:</dt>
<dd>
<p>Gibt es besondere Highlights auf der Seite?</p>
</dd>
<dt>Jan:</dt>
<dd>
<p>Das Rad habe ich nicht neu erfunden. Die eingesetzten Techniken sind seit Jahren bekannt. Es wurden aber viele Kriterien der Barrierefreiheit sehr detailliert berücksichtigt, die auf den ersten Blick nicht erkennbar sind. Eine der größten Herausforderungen war es, diese vielen Aspekte in Einklang zu bringen.</p>
<p>Wichtig sind natürlich die Inhalte. Viele Beiträge stammen aus den Jahren 2001 bis 2003 und mussten an die WCAG 2.0 angepasst werden. Leider habe ich einige Artikel aus dem Angebot rausnehmen müssen, weil sie so nicht mehr vertretbar waren. Insgesamt hat die redaktionelle Arbeit die meiste Zeit in Anspruch genommen.</p>
<p>Inzwischen gab es eine erste Feedbackrunde. Gut fand ich, dass vor allem blinde Nutzer besser zurechtkamen. Auch das flexible Layout, d.h. die Anpassung von Schriftgröße und Fenstergröße, funktioniert gut. Und wenn man mir mitteilt, dass die Farben gut gewählt sind, muss ich an die vielen Runden denken, die ich gedreht habe, bis die Anforderungen an Kontrastverhältnisse und &#034;visuell akzeptabel&#034; eine ausreichend große Schnittmenge aufwiesen. Gerade beim Design wird sehr deutlich, wie viele Meinungen es zu vermeintlichen Kleinigkeiten geben kann.</p>
<p>Das Highlight ist, dass die Seite endlich online ist. Sie ist öffentlich und nicht perfekt, aber entwickelt sich täglich weiter. Und sie gibt hoffentlich neue Impulse, das Web barrierefreier zu machen.</p>
</dd>
</dl>
<h5>Ein Interview mit</h5>
<p><img src="http://www.webkrauts.de/wp-content/uploads/2007/11/jehellbusch.jpg" alt="" title="Jan Eric Hellbusch" class="bild-links" height="70" width="70"/>Jan Eric Hellbusch bietet <a href="http://2bweb.de">Beratung und Schulung</a> zur Barrierefreiheit im Web. Er ist außerdem Buchautor: Zuletzt hat er mit Kerstin Probiesch das Buch <a href="http://www.amazon.de/gp/product/3898645207?ie=UTF8&#038;tag=barrierewebde-21&#038;linkCode=as2&#038;camp=1638&#038;creative=6742&#038;creativeASIN=3898645207">Barrierefreiheit verstehen und umsetzen &mdash; Webstandards für ein zugängliches und nutzbares Internet</a> geschrieben.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webkrauts.de/2011/11/25/wie-barrierefrei-ist-barrierefrei/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Was sind Webstandards?</title>
		<link>http://www.webkrauts.de/2011/08/29/was-sind-webstandards/</link>
		<comments>http://www.webkrauts.de/2011/08/29/was-sind-webstandards/#comments</comments>
		<pubDate>Mon, 29 Aug 2011 12:10:09 +0000</pubDate>
		<dc:creator>Mathias Schäfer</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Artikel]]></category>

		<guid isPermaLink="false">http://www.webkrauts.de/?p=1006</guid>
		<description><![CDATA[Mit HTML5 und CSS 3 entstehen zahlreiche neue Techniken, die breit in der Praxis eingesetzt werden, noch bevor sie als Webstandards verabschiedet werden. Mathias Schäfer erklärt, was das für die Konformität zu Webstandards  bedeutet.]]></description>
			<content:encoded><![CDATA[<p>Die Webkrauts setzen sich für Webstandards und Best Practices ein, so heißt es in ihrem <a href="http://www.webkrauts.de/mission-statement/">Mission Statement</a>. Doch was ist mit Webstandards gemeint?</p>
<p>Webstandards im engeren Sinne sind technische Spezifikationen, die von Industriegremien herausgegeben und öffentlich weiterentwickelt werden. Ziel dieser Spezifikationen ist es unter anderem, browserübergreifend einheitlich implementiert zu werden, sodass eine standardkonforme Website auf verschiedenen Browsern robust funktionieren kann. Im Vergleich zu Websites, die lediglich auf proprietäre (herstellereigene) Techniken setzen, ist eine standardkonforme Website zukunftsfähiger.</p>
<p>Konformität zu Webstandards heißt dabei, sowohl die konkreten Anforderungen als auch die dahinter stehenden Prinzipien umzusetzen. Die konkrete Konformität lässt sich teilweise automatisiert mit Validatoren und Lints testen, andere Anforderungen lassen sich zumindest manuell prüfen.</p>
<h4>W3C-Webstandards</h4>
<p>Das wichtigste Gremium für Webstandards war bisher das World Wide Web Consortium (W3C). Es gibt die Standards für HTML und CSS heraus, sogenannte W3C-Recommendations. Die W3C-Standards folgen gewissen <a href="http://jendryschik.de/wsdev/trans/designguide/">Designprinzipien</a>, die auf den <a href="http://www.w3.org/Consortium/mission.html">Idealen des W3Cs</a> basieren.</p>
<p>Über eine lange Zeit hinweg waren HTML 4.01, XHTML 1.0, CSS 2.0 und DOM 2 Core/HTML die Spezifikationen, auf die sich die Webstandards-Bewegung bezog. Sie stammen größtenteils aus den Jahren 1998 bis 2000. Die darauffolgenden Jahre kämpften die Webstandards-Verfechter dafür, dass diese auch einheitlich in den Browsern umgesetzt werden.</p>
<p>Die Situation hat sich seitdem verkompliziert. Dies hat verschiedene Gründe, die auch mit einem geänderten Prozedere des W3Cs zu tun haben: Damit ein Dokument eine Recommendation wird, bedarf es mindestens zwei konformer Browser-Umsetzungen. Stolze 13 Jahre wurde daher an dem Nachfolger von CSS 2.0 gearbeitet. Im Juni 2011 erschien mit Version 2.1 schließlich eine fehlerbereinigte, an die Praxis angepasste CSS-Spezifikation, die sich breiter Unterstützung erfreut.</p>
<h4>Zwei HTML5-Spezifikationen mit Unterschieden</h4>
<p>Die Weiterentwicklung der anderen Spezifikationen geriet ebenfalls ins Stocken. Das W3C hatte zunächst die Arbeit an HTML 4 und XHTML 1 aufgegeben und arbeitete an XHTML 2, welches seitens der Browserhersteller auf Ablehnung stieß. So gründeten diese die <a href="http://www.whatwg.org/">»Web Hypertext Application Technology Working Group« (WHATWG)</a> als Konkurrenz zum W3C, eine lose Arbeitsgruppe ohne einen formalen Rahmen. Die WHATGWG startete mit dem Ansatz, HTML 4, XHTML 1 sowie DOM 2 HTML unter dem Namen (X)HTML5 evolutionär weiterzuentwickeln. Ihr Ziel ist es, offener, pragmatischer und schneller zu arbeiten als das W3C, ihr Maßstab für Erfolg ist die Akzeptanz der Techniken bei den Browserherstellern.</p>
<p>Schließlich entschied sich das W3C im Jahr 2006, die Arbeit der WHATWG als Grundlage für den kommenden W3C-HTML-Standard zu verwenden. Seitdem entwickeln gleich zwei Arbeitsgruppen parallel am wichtigsten Webstandard: Die <a href="http://www.w3.org/html/wg/">HTML-Arbeitsgruppe des W3Cs</a> und die weniger scharf umgrenzte WHATWG. Die Spezifikation liegt in zwei Versionen vor, die sich aufgrund inhaltlicher Differenzen voneinander unterscheiden können. Auch in anderen Bereichen werden Spezifikationen jeweils von einer W3C-Arbeitsgruppe und der WHATWG gleichzeitig betreut.</p>
<p>Die gegenwärtige Lage der Webstandards ist nicht zu verstehen, wenn man diese Spaltung und ihre Auswirkungen nicht kennt. Die WHATWG arbeitet an einem versionslosen, nie abgeschlossenen <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/">»Living Standard«</a>, der gleichermaßen aus sehr stabilen und bereits implementierten wie aus rein experimentellen Techniken besteht. Konsequenterweise trägt HTML auf Seiten der WHATWG keine Versionsnummer mehr. Hingegen strebt das W3C an, <a href="http://www.w3.org/TR/html5/">ihre HTML5-Version</a> schnell abzuschließen und als Recommendation zu veröffentlichen. Zu diesem Zweck werden strittige, instabile und optionale Teile ausgeklammert. Am 2. August 2011 lief die »Last Call«-Phase ab, für 2014 ist die Verabschiedung der Spezifikation vorgesehen.</p>
<h4>Die neue Unsicherheit</h4>
<p>Von HTML5 als Webstandard zu sprechen, ist also nicht unproblematisch: Zwar wird eine traditionelle W3C-Recommendation erarbeitet, interessante Teile fehlen darin jedoch und sind auf W3C-Seite höchstens als Zusatzmodule ausgelagert.</p>
<p>Was CSS betrifft, so haben wir es mit zahlreichen proprietären Eigenschaften und W3C-Entwürfen zu tun, die sich noch stark im Fluss befinden. Die Hersteller haben ihre Erfindungen als Entwürfe beim W3C eingereicht. Deren CSS-Arbeitsgruppe arbeitet sie langsam ab und kodifiziert, was die Browser experimentell längst unterstützen. Dabei können sich durchaus noch Änderungen ergeben. Erst <a href="http://www.w3.org/Style/CSS/current-work">wenige Module von CSS 3</a> haben es bisher zu Candidate Recommendations, Proposed Recommendations oder gar Recommendations geschafft.</p>
<p>CSS 3 bedeutet also, ständig Eigenschaften mit Hersteller-Präfixen zu notieren. Uneinheitliche Browserunterstützung und proprietärer Code ist damit zur Regel geworden – genau das, was die Webstandards-Bewegung eigentlich abschaffen wollte.</p>
<p>Im JavaScript-Bereich lichtet sich langsam das Dunkel. Die HTML5-Spezifikation definiert nicht nur die Auszeichnungssprache, sondern auch gleich die zugehörigen JavaScript-Schnittstellen. Diese existieren teilweise seit den Anfangstagen von JavaScript, wurden vorher aber in keinem Standard normativ festgelegt. Techniken wie <code>XMLHttpRequest</code> sind Gegenstand weiterer W3C Working Drafts. Auch hier kann man mehr von einem anhaltenden, nachholenden Standardisierungsprozess sprechen, als von fertigen, etablierten Webstandards.</p>
<h4>Standardkonformität als Qualitätsmerkmal</h4>
<p>Lange dienten die W3C-Standards als Qualitätsmaßstab. W3C-Konformität schaffte Vertrauen gegenüber Kunden, denn das Industriegremium genoss eine hohe Autorität. <a href="http://molily.de/weblog/webstandards">Mittlerweile hat das W3C seine Autorität verloren</a>. Browserhersteller wollen die Fähigkeiten des Webs als Anwendungsplattform rapide ausbauen und entschließen sich zunehmend, die Sache selbst in die Hand zu nehmen. Sie arbeiten bloß aus taktischen Gründen mit dem W3C zusammen: Wenn ihnen das W3C dienlich ist, so nutzen sie es als Vehikel, um ihre Techniken zu etablieren, anderweitig entziehen sie sich dessen formalisierten Verfahren.</p>
<p>Zur Zeit ihrer Verabschiedung waren HTML 4 und CSS 2 die normativen Referenzen für Qualität im Webdesign. »Der Code validiert gemäß XHTML 1.0 Strict und CSS 2.0« war zusammen mit weiteren Coding- und Design-Guidelines Bestandteil vieler Pflichtenhefte. Bezüglich HTML5 und CSS 3 lassen sich solche harten Kriterien nicht mehr aufstellen. Es gibt zwar <a href="http://html5.validator.nu/">einen HTML5-Validator</a>, der sich jedoch nach dem »Living Standard« der WHATWG richtet. Das bedeutet, dass sich die Anforderungen – zumindest theoretisch – andauernd ändern können. Einen praxistauglichen CSS-3-Validator gibt es nicht, der <a href="http://jigsaw.w3.org/css-validator/">W3C-CSS-Validator</a> kann mit experimentellen Eigenschaften und Werten nicht umgehen.</p>
<p>Der Wegfall der einfachen Validierbarkeit ist problematisch, denn die Verwendung von HTML5 und CSS 3 kann die Qualität einer Website definitiv steigern, wie eine Vielzahl an Artikeln der Webkrauts gezeigt hat.</p>
<h4>Ambivalente Innovationen</h4>
<p>Für Webentwickler erweist sich die gegenwärtige Situation als ambivalent. Es gibt einen rasanten technischen Fortschritt. Browser implementieren ständig neue experimentelle Techniken, die die Webentwicklung vereinfachen und neue Möglichkeiten schaffen sollen. Für Webentwickler stellt die Aufsplittung in dutzende Spezifikationen und die oft undurchschaubare Browserunterstützung in erster Linie eine Herausforderung dar.</p>
<p>Zudem folgt die Standardisierung nicht mehr einheitlichen, absehbaren Verfahren. Einerseits haben wir es mit Spezifikationen zu tun, die zum Teil noch instabil und im Fluss sind. Andererseits sind viele Techniken schon praktisch nutzbar und für moderne Websites von entscheidendem Vorteil. Standardisierung kommt heutzutage nachher: »Paving the Cowpaths« (Pflastern der Trampelpfade) lautet das Credo der WHATWG. Es ist nicht zu erwarten, dass die Innovationsgeschwindigkeit nachlässt und der Großteil der verwendeten Techniken zu klassischen Recommendations »abkühlt«.</p>
<h4>Progressive Enhancement als neues Ziel</h4>
<p>Aus diesen Gründen wurde die Konformität zu abgeschlossenen, festen Standards bereits weitgehend abgelöst durch <a href="http://molily.de/weblog/progressive-enhancement">Progressive Enhancement</a>: Webentwickler nutzen Techniken bereits zu ihrem Vorteil und zum Vorteil ihrer Besucher, selbst wenn sie noch keine Standards im strengen Sinne sind und noch nicht einheitlich umgesetzt werden.</p>
<p>Beim Progressive Enhancement rechnet man damit, dass eine Website in Browsern mit unterschiedlichen Fähigkeiten unterschiedlich aussieht und gegebenenfalls ein wenig anders bedienbar ist. Ein verwandtes Konzept ist das <a href="http://www.alistapart.com/articles/responsive-web-design/">Responsive Design</a>, welches ein besonderes Augenmerk auf die Vielfalt der Webzugangsgeräte und deren Bedürfnisse legt.</p>
<p>Progressive Enhancement heißt derweil nicht, sämtliche Qualitätsansprüche und bewährte Verfahren zu verwerfen und beliebige proprietäre und inkompatible Techniken zu verwenden. Es bedeutet, auf vielversprechende Techniken zu setzen, die sich gerade in der Standardisierung befinden und bereits eine gewisse Praxistauglichkeit und Interoperabilität erreicht haben. Techniken, für die es klare Strategien der Anwendung und der Abwärtskompatibilität gibt, für die <a href="https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills">Polyfills</a> oder Fallback-Lösungen existieren. Der Unterschied einer Website mit Progressive Enhancement zu einer achtlos inkompatiblen und nicht anpassungsfähigen Website liegt darin, dass die alternativen und reduzierten Versionen bewusst geplant wurden und ihre User Experience stimmig bleibt.</p>
<h4>Fazit</h4>
<p>Die anhaltende technische Innovation hat eine klassische Auffassung von Webstandards-Konformität weitesgehend obsolet gemacht. Es ist für Webentwickler schwerer geworden, sich im Dschungel von entstehenden Standards zurecht zu finden. Sie müssen selbst in Erfahrung bringen, wie sie Techniken sicher und kompatibel verwenden können. Doch sie stehen nicht orientierungslos da: Es wurden längst neue Best Practices entwickelt, die den sinnvollen und robusten Einsatz neuer Techniken ermöglichen.</p>
<h4>Links</h4>
<ul>
<li><a href="http://molily.de/weblog/webstandards">Ergänzungsartikel: Die jüngsten Konflikte zwischen W3C und WHATWG</a></li>
<li><a href="http://molily.de/weblog/html5-specs">Übersicht über HTML5-Spezifikationen und -Literatur</a></li>
<li><a href="http://www.w3.org/html/wg/">Spezifikationen der W3C-HTML-Arbeitsgruppe</a></li>
<li><a href="http://www.w3.org/2008/webapps/wiki/PubStatus">Spezifikationen der W3C-Web-Apps-Arbeitsgruppe</a></li>
<li><a href="http://blogs.msdn.com/b/ie/archive/2011/06/28/css-2-1-complete-unblocking-faster-web-standards-progress.aspx">Übersicht bei Microsoft über den aktuellen Stand der Standardisierungen</a></li>
<li><a href="http://www.w3.org/Style/CSS/current-work">Übersicht über CSS-3-Spezifikationen</a></li>
<li><a href="http://www.w3.org/blog/CSS/">Blog der CSS-Arbeitsgruppe mit Entscheidungen und Aktualisierungen</a></li>
</ul>
<h5>Zum Autor</h5>
<p><img class="bild-links" src="http://www.webkrauts.de/wp-content/uploads/2011/08/mathias-schaefer.jpg" alt="" width="60" height="60" /><a href="http://molily.de">Mathias Schäfer (molily)</a> arbeitet als Web- und Software-Entwickler für <a href="http://9elements.com">9elements</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webkrauts.de/2011/08/29/was-sind-webstandards/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Barrierefreiheit: Mehrfachkennzeichnung in der Praxis – Teil 3</title>
		<link>http://www.webkrauts.de/2011/03/29/barrierefreiheit-mehrfachkennzeichnung-in-der-praxis-teil-3/</link>
		<comments>http://www.webkrauts.de/2011/03/29/barrierefreiheit-mehrfachkennzeichnung-in-der-praxis-teil-3/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 07:00:46 +0000</pubDate>
		<dc:creator>Jan Eric Hellbusch</dc:creator>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[Barrierefreiheit]]></category>

		<guid isPermaLink="false">http://www.webkrauts.de/?p=963</guid>
		<description><![CDATA[Dritter Teil unseres Auszugs aus dem Buch »Barrierefreiheit verstehen und umsetzen« von Kerstin Probiesch und Jan Eric Hellbusch. Siehe auch Teil 1 über Mehrfachauszeichnungen für Links und die Navigation und Teil 2 über Inhalte. 3 Formulare Bei Formularen gibt es über die bereits aufgeführten Techniken hinaus zwei Besonderheiten: Zum einen wird oft zwischen Pflichtfeldern und [...]]]></description>
			<content:encoded><![CDATA[<p>Dritter Teil unseres Auszugs aus dem Buch »Barrierefreiheit verstehen und umsetzen« von Kerstin Probiesch und Jan Eric Hellbusch. Siehe auch Teil 1 über <a href="http://www.webkrauts.de/2011/03/27/barrierefreiheit-mehrfachkennzeichnung-in-der-praxis-teil-1/">Mehrfachauszeichnungen für Links und die Navigation</a> und Teil 2 über <a href="http://www.webkrauts.de/2011/03/28/barrierefreiheit-mehrfachkennzeichnung-in-der-praxis-teil-2/">Inhalte</a>.</p>
<h4>3 Formulare</h4>
<p>Bei Formularen gibt es über die bereits aufgeführten Techniken hinaus zwei Besonderheiten: Zum einen wird oft zwischen Pflichtfeldern und optionalen Feldern unterschieden, zum anderen muss die Fehlerbehandlung besonders beachtet werden.</p>
<h5>3.1 Pflichtfelder</h5>
<p>Pflichtfelder werden gerne über Farbe hervorgehoben. Wie für andere Seitenelemente ist auch hier die Verwendung von Farbe empfehlenswert. Die farbige Kennzeichnung von Pflichtfeldern sollte jedoch durch zusätzliche, sichtbare Merkmale ergänzt werden. Die notwendigen Textangaben im LABEL-Element wurden bereits im Abschnitt »Kennzeichnung von Pflichtfeldern« [im Buch] vorgestellt. Einige Möglichkeiten sind das Asterisk, ein Text oder ein grafisches Symbol.</p>
<p>Wenn Pflichtfelder über Farbe gekennzeichnet sind, dann muss eine dieser Möglichkeiten genutzt werden. Dabei geht es nicht um die Zugänglichkeit für Screenreader-Nutzer, sondern ausdrücklich um Sehende bzw. Sehbehinderte.</p>
<p>Wenn beispielsweise ein Asterisk zusätzlich zur Farbe eingesetzt wird, dann sollte bei den (ebenfalls empfehlenswerten) Ausfüllhilfen ein Hinweis der Art »Bitte füllen Sie alle gelben und mit einem Asterisk (*) gekennzeichneten Felder aus« stehen. Das Asterisk ist zwar Konvention, aber wegen der geringen Größe des Zeichens ist es möglicherweise für Menschen mit einer Sehbehinderung nicht erkennbar.</p>
<p>Statt oder in Ergänzung eines solchen Zeichens empfiehlt sich zusätzlicher Text. Pflichtfelder können im zugehörigen LABEL-Element durch »Pflichtfeld« bzw. optionale Felder durch »optional« gekennzeichnet werden:</p>
<pre><code>&lt;p&gt;&lt;label for="wert"&gt;Mobiltelefon (optional)&lt;/label&gt;
&lt;input name="handy" id="wert" type=text" /&gt;&lt;/p&gt;</code></pre>
<p>Listing 5: Mehrfachkennzeichnung für Pflichtfelder durch Textergänzung</p>
<p>Eine weitere Technik der Mehrfachkennzeichnung besteht in der Verwendung strukturierender HTML-Elemente. Wenn die Beschriftung eines Pflichtfelds über STRONG ausgezeichnet wird, dann wird sie fett dargestellt. Formal genügt das den Anforderungen. In der Praxis kommt es darauf an, ob ein Nutzer mit einer Seheinschränkung dies gut erkennt oder nicht.</p>
<p>Die Vermittlung von Informationen über Farbe allein ist besonders dann kritisch, wenn Inhaltstypen voneinander unterschieden werden sollen. Das folgende Beispiel zeigt die Vermittlung einer wichtigen Information allein über Farbe im Administrationsbereich von DokuWiki (vgl. auch Abb. 8 bzw. 9): »Einstellungen mit einem hellroten Hintergrund sind gesichert und können nicht mit diesem Plug-in verändert werden, Einstellungen mit hellblauem Hintergrund sind Voreinstellungen, weiß hinterlegte Felder zeigen lokal veränderte Werte an. Sowohl die blauen als auch die weißen Felder können verändert werden.« </p>
<div id="attachment_965" class="wp-caption alignnone" style="width: 470px"><a href="http://www.webkrauts.de/wp-content/uploads/2011/03/19.8-farbliche-kennzeichnung.png"><img src="http://www.webkrauts.de/wp-content/uploads/2011/03/19.8-farbliche-kennzeichnung-460x235.png" alt="Abb. 8: Administrationsbereich in einem DokuWiki mit farblicher Kennzeichnung verschiedener Typen von Steuerelementen" title="19.8-farbliche-kennzeichnung" width="460" height="235" class="size-medium wp-image-965" /></a><p class="wp-caption-text">Abb. 8: Administrationsbereich in einem DokuWiki mit farblicher Kennzeichnung verschiedener Typen von Steuerelementen</p></div>
<p>Bei benutzerdefinierten Bildschirmfarben ist dieses Formular nicht mehr bedienbar:</p>
<div id="attachment_966" class="wp-caption alignnone" style="width: 470px"><a href="http://www.webkrauts.de/wp-content/uploads/2011/03/19.9-benutzerdefinierte-farben.png"><img src="http://www.webkrauts.de/wp-content/uploads/2011/03/19.9-benutzerdefinierte-farben-460x233.png" alt="Abb. 9: Bei benutzerdefinierten Farben ist der Administrationsbereich des DokuWiki nicht mehr bedienbar." title="19.9-benutzerdefinierte-farben" width="460" height="233" class="size-medium wp-image-966" /></a><p class="wp-caption-text">Abb. 9: Bei benutzerdefinierten Farben ist der Administrationsbereich des DokuWiki nicht mehr bedienbar.</p></div>
<h5>3.2 Fehlermeldungen</h5>
<p>Fehlermeldungen müssen unter dem Gesichtspunkt der Mehrfachkennzeichnung sorgfältig gestaltet werden. Fehlerbeschreibungen und Hilfen müssen nicht nur vorhanden, sondern auch wahrnehmbar sein. Es sind die Hinweise, Fehlermeldungen und Ausfüllhilfen, die es Nutzern ermöglichen, Logins, Bestellungen oder auch Online-Banking erfolgreich vornehmen bzw. abschließen zu können.</p>
<p>Eine über Farbe vermittelte Fehlermeldung wird deswegen durch zusätzliche Formatierungen (Schriftschnitt), Symbole oder Rahmen ergänzt. Hinweise wie »Fehlermeldungen in roter Farbe« sind nicht barrierefrei. Eine bessere Fehlermeldung ist: »Falsche Eingaben sind in Rot und fetter Schrift gekennzeichnet«.</p>
<p>Symbole für Fehlermeldungen sind ebenfalls positiv zu bewerten. Allerdings müssen allein stehende Symbole (ohne ergänzenden Text) im HTML stehen und dürfen nicht mittels CSS generiert werden, da sie wichtige Informationen transportieren. Außerdem müssen sie allgemein verständlich sein, wie z.B. ein Dreieck mit einem Ausrufezeichen.</p>
<p>Eine interessante Technik zur Mehrfachkennzeichnung fehlerhafter Eingaben wird beim Webangebot von »Sozialnetz Hessen« verwendet. Hier wird bei Fehleingaben das auch bei benutzerdefinierten Farbeinstellungen sichtbare FIELDSET-Element in Kombination mit LEGEND eingesetzt. Die Rahmen des FIELDSET-Elements werden dabei nicht unterdrückt und die Fehlermeldung hebt sich somit vom umgebenden Inhalt ab: </p>
<div id="attachment_967" class="wp-caption alignnone" style="width: 470px"><a href="http://www.webkrauts.de/wp-content/uploads/2011/03/19.10-fehlermeldungen.png"><img src="http://www.webkrauts.de/wp-content/uploads/2011/03/19.10-fehlermeldungen-460x196.png" alt="Abb. 10: In drei von vier Feldern werden fehlende Eingaben mithilfe von FIELDSET und LEGEND hervorgehoben." title="19.10-fehlermeldungen" width="460" height="196" class="size-medium wp-image-967" /></a><p class="wp-caption-text">Abb. 10: In drei von vier Feldern werden fehlende Eingaben mithilfe von FIELDSET und LEGEND hervorgehoben.</p></div>
<p>Mit dieser Form der Mehrfachkennzeichnung ist die Sichtbarkeit der fehlerhaft ausgefüllten Eingabefelder für alle Nutzer gleichermaßen gewährleistet. Sie sind bei benutzerdefinierten Farben erkennbar und zudem mit Screenreadern aufgrund der verwendeten HTML-Technik eindeutig identifizierbar.</p>
<h5>Das Buch</h5>
<p><img src="http://www.webkrauts.de/wp-content/uploads/2011/03/cover_barrierefreiheit_verstehen_100.jpg" alt="Cover: Barrierefreiheit verstehen und umsetzen" title="cover_barrierefreiheit_verstehen_100" width="100" height="147" class="alignleft size-full wp-image-949 bild-rechts" />Der Text ist ein Auszug aus »Barrierefreiheit verstehen und umsetzen – Webstandards für ein zugängliches und nutzbares Internet« von Kerstin Probiesch und Jan Eric Hellbusch. Das Buch ist im dpunkt.verlag erschienen. Wir veröffentlichen daraus das Kapitel »Mehrfachkennzeichnung in der Praxis«. Außerdem <a href="http://www.webkrauts.de/2011/03/27/verlosung-barrierefreiheit-verstehen-und-umsetzen/">verlosen wir drei Exemplare</a>.</p>
<h5>Die Autoren</h5>
<p>Jan Eric Hellbusch und Kerstin Probiesch sind beide freiberufliche Berater für barrierefreies Webdesign; sie beraten Unternehmen und Behörden und schulen Programmierer und Webredakteure. Nach seinem BWL-Studium war Jan Eric Hellbusch in verschiedenen Organisationen im Bereich »Internet« tätig. Seit 2000 veröffentlicht er Beiträge einschließlich zweier Bücher zur Barrierefreiheit im Web. Kerstin Probiesch prüft als freie Accessibility-Spezialistin Webseiten auf WCAG 2.0-Konformität, schreibt Fachartikel und begleitet beratend die Entwicklung barrierefreier Webangebote von der Konzeptionsphase an.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webkrauts.de/2011/03/29/barrierefreiheit-mehrfachkennzeichnung-in-der-praxis-teil-3/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Barrierefreiheit: Mehrfachkennzeichnung in der Praxis – Teil 2</title>
		<link>http://www.webkrauts.de/2011/03/28/barrierefreiheit-mehrfachkennzeichnung-in-der-praxis-teil-2/</link>
		<comments>http://www.webkrauts.de/2011/03/28/barrierefreiheit-mehrfachkennzeichnung-in-der-praxis-teil-2/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 07:00:58 +0000</pubDate>
		<dc:creator>Kerstin Probiesch</dc:creator>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[Barrierefreiheit]]></category>

		<guid isPermaLink="false">http://www.webkrauts.de/?p=957</guid>
		<description><![CDATA[Im zweiten Teil geht es um die Mehrfachauszeichnungen für Inhalte.]]></description>
			<content:encoded><![CDATA[<p>Zweiter Teil unseres Auszugs aus dem Buch »Barrierefreiheit verstehen und umsetzen« von Kerstin Probiesch und Jan Eric Hellbusch. Siehe auch Teil 1 über <a href="http://www.webkrauts.de/2011/03/27/barrierefreiheit-mehrfachkennzeichnung-in-der-praxis-teil-1/">Mehrfachauszeichnungen für Links und die Navigation</a>.</p>
<h4>2. Inhalte</h4>
<p>Die Mehrfachkennzeichnung beschränkt sich nicht auf Links. Ob Überschriften oder Tabellen, es gibt zahlreiche Inhaltstypen, die oft über Farbe allein und ohne zusätzliche Formatierung gestaltet werden. Im Folgenden werden einige typische Barrieren beschrieben, die insbesondere in Inhaltsbereichen entstehen können.</p>
<h5>2.1 Überschriften</h5>
<p>In der Regel werden Überschriften im Inhaltsbereich visuell durch Schriftgröße, Fettung und Farbe hervorgehoben. Während eine Hauptüberschrift i.d.R. größer als der Fließtext gestaltet wird, werden – je tiefer ein Dokument strukturiert ist – die Überschriftenebenen oft nur noch durch Farbe und somit nicht ausreichend gekennzeichnet.</p>
<p>Überschriften sind markante Informationspunkte. Sie ziehen die Aufmerksamkeit auf sich und geben im Idealfall eine Information über den nachstehenden Text. Zudem vermittelt die Überschriftenhierarchie, wo in der inhaltlichen Gliederung ein Text einzuordnen ist. Deswegen müssen Überschriften auf der Strukturebene entsprechend ihrer Hierarchie im HTML ausgezeichnet werden. Die Anforderung gilt selbstverständlich auch im Kontext der visuellen Wahrnehmung. Überschriftenebenen müssen unabhängig von einzelnen Formatierungen wie Farbe erkennbar sein. </p>
<p>Eine Möglichkeit, Überschriften hervorzuheben, ist über vorangestellte Symbole. Für jede vorhandene Überschriftenebene kann ergänzend zur Textgestaltung ein Symbol eingebunden werden, vgl. Listing 2.</p>
<pre><code>h1, h2, h3, h4 {
padding: 5px 0px 5px 25px;
display: list-item;
margin-left : 20px;
}
h1 {
list-style-image:url('lib/img/h1.gif');
}
h2 {
list-style-image:url('lib/img/h2.gif');
}
h3 {
list-style-image:url('lib/img/h3.gif');
}
h4 {
list-style-image:url('lib/img/h4.gif');
}</code></pre>
<p>Listing 2: CSS für vorangestellte Symbole bei Überschriften</p>
<p>Eine weitere Möglichkeit ist, Überschriften zusätzlich mit einem Rahmen auszuzeichnen, der links vor der Überschrift platziert wird. Horizontale Rahmen unterhalb der Überschriften sind ungeeignet, da sie wie Unterstreichungen wirken und als Links interpretiert werden könnten.</p>
<p>Natürlich kann mit Schriftgröße, Einrückungen und anderen Formatierungen (in Ergänzung zu Farbe) gearbeitet werden. Für die sechs Überschriftenebenen ist darauf zu achten, dass sie sich unabhängig von der Farbe unterscheiden. Bei längeren Dokumenten mit einer nummerierten Gliederung kann jedoch auf zusätzliche Formatierungen verzichtet werden, sofern die Ordnungszahlen der Gliederung nachvollziehbar sind.</p>
<h5>2.2 Listen</h5>
<p>Bei Aufzählungen und Listen kann es erwünscht sein, die Aufzählungspunkte durch CSS-Grafiken zu ersetzen. Dies ist unproblematisch, solange diese Grafiken keine Informationen transportieren. Wenn jedoch verschiedene Symbole zur Unterscheidung von Listeneinträgen eingesetzt werden, dann muss sichergestellt sein, dass die Bedeutung der Symbole klar ist. Ist dies nicht der Fall, dann ist ein weiterer beschreibender Text nötig, denn für über CSS eingebundene Grafiken gibt es keine Möglichkeit, Alternativtexte zu vergeben.</p>
<p>Bei verschiedenfarbigen Aufzählungszeichen (z.B. »rote und grüne Punkte«) kann ergänzend zur Farbe eine Form verwendet werden, etwa rote Kreise und grüne Quadrate. Werden unterschiedliche Symbole als Informationsträger in Listenpunkten eingesetzt, muss die Barrierefreiheit durch weitere Maßnahmen sichergestellt werden.</p>
<p>In einem anderen Beispiel haben wir eine Liste mit vier Links durch Grafiken ergänzt. Die ersten drei Grafiken waren identisch, aber die vierte Grafik machte deutlich, dass der nachstehende Link zu einer anderssprachigen Seite führt. Der letzte Eintrag wurde mit unsichtbarem Text ergänzt. Das ist so lange sinnvoll, wie der restliche Text einer Seite deutsch ist: Auf einer französischsprachigen Seite wäre es sinnvoll, auch die Links zu deutschsprachigen Seiten zu kennzeichnen.</p>
<h5>2.3 Hervorhebungen im Fließtext </h5>
<p>Zusätzlich zu einer Vermittlung durch Symbole oder über Farben können typografische Merkmale wie eine andere Schriftart und Schriftgröße, Unterstreichungen oder Durchstreichungen zum Hervorheben einzelner Inhalte eingesetzt werden. Die Verwendung von Farbe ist auch hier empfehlenswert, solange sie nicht der einzige Informationsträger ist.</p>
<p>Wenn Texte kollaborativ – z.B. in einem Wiki – geschrieben werden, können unterschiedliche Versionen angezeigt und eingefügte sowie gelöschte Texte eingesehen werden. Diese Informationen werden oft nur über Farbe vermittelt.</p>
<div id="attachment_959" class="wp-caption alignnone" style="width: 470px"><a href="http://www.webkrauts.de/wp-content/uploads/2011/03/19.5-hervorhebungen-fliesstext.gif"><img src="http://www.webkrauts.de/wp-content/uploads/2011/03/19.5-hervorhebungen-fliesstext-460x314.gif" alt="Abb. 5: Eingefügte und gelöschte Texte werden durch Hintergrund- und Vordergrundfarben hervorgehoben." title="19.5-hervorhebungen-fliesstext" width="460" height="314" class="size-medium wp-image-959" /></a><p class="wp-caption-text">Abb. 5: Eingefügte und gelöschte Texte werden durch Hintergrund- und Vordergrundfarben hervorgehoben.</p></div>
<p>Auch hier sind zusätzliche Formatierungen im Sinne einer Informationsvermittlung über mehrere Wege nötig. Eine Lösung wäre, die Textpassage sowohl in Rot als auch fett darzustellen – wobei die Fettung selbstverständlich mit HTML geschehen sollte – und wie folgt darauf zu verweisen: »Textänderungen sind in Rot und fett dargestellt.«</p>
<p>Auf der Strukturebene könnte ein eingefügter oder gelöschter Text mit einem STRONG-Element ausgezeichnet sein. Wird jedoch das STRONG-Element auch zur Hervorhebung anderer Texte genutzt, dann lässt sich die »normale« Hervorhebung nicht mehr von der für geänderte Texte unterscheiden. Die nach der HTML-Spezifikation für diesen Zweck vorgesehenen INS- und DEL-Elemente sind nicht geeignet. Sie werden von Screenreadern nicht ausgewertet und sind daher nicht zugänglichkeitsunterstützend.</p>
<p>In einem solchen Fall ist es am besten, Versionsunterschiede direkt im Fließtext zu kennzeichnen und dies bereits im Screendesign zu berücksichtigen, z.B. indem solche Bereiche so gestaltet werden, dass neben einer Textfarbe die geänderten Stellen vorher und hinterher ergänzt werden.</p>
<div id="attachment_960" class="wp-caption alignnone" style="width: 470px"><a href="http://www.webkrauts.de/wp-content/uploads/2011/03/19.6-hervorhebungen-fliesstext.gif"><img src="http://www.webkrauts.de/wp-content/uploads/2011/03/19.6-hervorhebungen-fliesstext-460x241.gif" alt="Abb. 6: Veränderungen im Dokument werden mit Farbe und Text gekennzeichnet." title="19.6-hervorhebungen-fliesstext" width="460" height="241" class="size-medium wp-image-960" /></a><p class="wp-caption-text">Abb. 6: Veränderungen im Dokument werden mit Farbe und Text gekennzeichnet.</p></div>
<h5>2.4 Farbig hinterlegte Bereiche</h5>
<p>Auf Webseiten werden oft Informationskästen für ergänzende oder hervorgehobene Informationen verwendet. Sie können allgemeine Hinweise, Merksätze, Linklisten u.v.m. enthalten. Meist werden solche Bereiche über Farbe (z.B. einen grauen Hintergrund) gekennzeichnet. Auch solche Informationskästen und ähnliche Seitenelemente benötigen zusätzliche Erkennungsmerkmale. In der Regel reicht ein Rahmen, hilfreich sind aber auch Bezeichnungen.</p>
<p>Wenn Absätze oder andere Textblöcke durch eine veränderte Farbe hervorgehoben werden, gehört auf der Strukturebene eine vorangestellte Überschrift als Bezeichnung zu den Minimalanforderungen.</p>
<pre><code>&lt;div class="hinweis"&gt;
&lt;h2&gt;Benötigen Sie Hilfe?&lt;/h2&gt;
&lt;p&gt;Einige Fragen und Antworten finden Sie in der &lt;a href="#">Hilfe&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Einige Begriffe finden Sie im &lt;a href="#"&gt;Glossar&lt;/a&gt; erläutert.&lt;/p&gt;
&lt;/div&gt;</code></pre>
<p>Listing 3</p>
<p>Auch sollte der Informationskasten einen ergänzenden, umschließenden Rahmen erhalten. Da er bei benutzerdefinierten Farben erkennbar ist, kann er die gleiche Farbe wie die farbige Hinterlegung selbst erhalten:</p>
<pre><code>.hinweis {
padding: 1em;
width: 320px;
height: 400px;
border: 2px solid #eee;
overflow: auto;
float: left;
margin: 0 2em 1em 0;
background-color: #eee;
}</code></pre>
<p>Listing 4: border-Technik für Info-Kästen</p>
<p>Ohne die border-Eigenschaft wird ein Info-Kasten bei benutzerdefinierten Farben nicht gut von anderen Inhalten zu differenzieren sein. Mit einem Rahmen kann die Hervorhebung hier sichergestellt werden, wie im untersten Bild von Abbildung 7 zu sehen ist.</p>
<div id="attachment_961" class="wp-caption alignnone" style="width: 454px"><img src="http://www.webkrauts.de/wp-content/uploads/2011/03/19.7-farbig-hinterlegt.gif" alt="Abb. 7: Eine farbliche Hervorhebung kann durch einen Rahmen bei benutzerdefinierten Farben besser wahrgenommen werden." title="19.7-farbig-hinterlegt" width="444" height="399" class="size-full wp-image-961" /><p class="wp-caption-text">Abb. 7: Eine farbliche Hervorhebung kann durch einen Rahmen bei benutzerdefinierten Farben besser wahrgenommen werden.</p></div>
<h5>2.5 Tabellen</h5>
<p>Auch in Tabellen können verschiedene Maßnahmen der Mehrfachkennzeichnung berücksichtigt werden. Ein Beispiel sind Spalten- und Zeilenüberschriften: Die farbige Gestaltung von Kopfzellen fördert die Leserlichkeit, aber durch Fettung und/oder Zentrierungen oder andere Ausrichtungen können die Zellen auch unabhängig von der Farbe visuell hervorgehoben werden.</p>
<p>Vor dem Hintergrund benutzerdefinierter Bildschirmfarben sollte auch bei der Gestaltung von Tabellen auf einige wenige weitere Zeilen CSS geachtet werden, um die Wahrnehmbarkeit zu fördern.</p>
<p>Sind beispielsweise in einer Datentabelle die Reihen abwechselnd nur mit zwei unterschiedlichen Hintergrundfarben gestaltet (Zebratabellen), dann geht diese visuelle Leseunterstützung bei benutzerdefinierten Farben verloren. Auch wenn die Tabelle noch zugänglich ist, kann das Lesen durch weitere Maßnahmen gefördert werden. Eine sehr einfache Technik sind Rahmen für Tabellenzellen bzw. -reihen, die in der gleichen Farbe wie der Zellenhintergrund gehalten sein können und bei benutzerdefinierten Farben Orientierungsmöglichkeiten in langen Datentabellen bieten. Dies ist vor allem bei wichtigen Informationen in großen Tabellen sinnvoll.</p>
<h5>2.6 Grafiken</h5>
<p>Auch in Schaubildern (z.B. Kursverläufe in Charts, Diagrammblöcke) darf nicht allein durch Farbe unterschieden werden. Neben Farbe können hier ergänzend Muster (z.B. eine gestrichelte rote und eine durchgezogene blaue Kurve) eingesetzt werden. Dies ist besonders bei Farben wichtig, die für farbfehlsichtige Menschen problematisch sind.</p>
<p>Um etwa in einem Geschäftsbericht die Gewinne und Verluste darzustellen, darf sich nicht allein auf eine farbige Markierung der Zahlen verlassen werden: Rot für negative Zahlen und Schwarz für positive Zahlen reicht nicht aus. Empfehlenswert ist hier ein zusätzliches Plus- bzw. Minuszeichen vor den jeweiligen Zahlen. Darstellungen von Flächen (z.B. Zufriedenheit oder Unzufriedenheit mit einem bestimmten Produkt) sind durch weitere Merkmale zu ergänzen, vor allem wenn für die Flächen die Farben Rot und Grün verwendet werden. Für diesen Fall bietet sich eine Schraffierung für eine der beiden Flächen an.</p>
<h5>Das Buch</h5>
<p><img src="http://www.webkrauts.de/wp-content/uploads/2011/03/cover_barrierefreiheit_verstehen_100.jpg" alt="Cover: Barrierefreiheit verstehen und umsetzen" title="cover_barrierefreiheit_verstehen_100" width="100" height="147" class="alignleft size-full wp-image-949 bild-rechts" />Der Text ist ein Auszug aus »Barrierefreiheit verstehen und umsetzen – Webstandards für ein zugängliches und nutzbares Internet« von Kerstin Probiesch und Jan Eric Hellbusch. Das Buch ist im dpunkt.verlag erschienen. Wir veröffentlichen daraus das Kapitel »Mehrfachkennzeichnung in der Praxis«, morgen erscheint der dritte Teil. Außerdem <a href="http://www.webkrauts.de/2011/03/27/verlosung-barrierefreiheit-verstehen-und-umsetzen/">verlosen wir drei Exemplare</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webkrauts.de/2011/03/28/barrierefreiheit-mehrfachkennzeichnung-in-der-praxis-teil-2/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Barrierefreiheit: Mehrfachkennzeichnung in der Praxis &#8211; Teil 1</title>
		<link>http://www.webkrauts.de/2011/03/27/barrierefreiheit-mehrfachkennzeichnung-in-der-praxis-teil-1/</link>
		<comments>http://www.webkrauts.de/2011/03/27/barrierefreiheit-mehrfachkennzeichnung-in-der-praxis-teil-1/#comments</comments>
		<pubDate>Sun, 27 Mar 2011 13:00:20 +0000</pubDate>
		<dc:creator>Jan Eric Hellbusch</dc:creator>
				<category><![CDATA[Artikel]]></category>

		<guid isPermaLink="false">http://www.webkrauts.de/?p=951</guid>
		<description><![CDATA[<p>Erster Teil unseres Auszugs aus dem Buch »Barrierefreiheit verstehen und umsetzen« von Kerstin Probiesch und Jan Eric Hellbusch: Mehrfachauszeichnungen für Links und die Navigation.</p>]]></description>
			<content:encoded><![CDATA[<p>Im Folgenden werden einige typische Beispiele der Mehrfachkennzeichnung vorgestellt, die bei der Gestaltung berücksichtigt werden sollten. Grundsätzlich wird davon ausgegangen, dass das HTML bereits so weit eine Struktur vorgibt, dass zumindest an dieser Stelle die Mehrfachkennzeichnung zur besseren Nutzbarkeit in Screenreadern nicht zusätzlich beachtet werden muss.</p>
<p>Zur Erinnerung – Inhalte müssen in den folgenden zwei Fällen wahrgenommen werden können:</p>
<ul>
<li>Wenn die Formatierung abgeschaltet ist oder nicht wahrgenommen werden kann, dann muss das HTML oder ein Text den Unterschied zum umgebenden Inhalt verdeutlichen.</li>
<li>Wenn eine Formatierung durch den Nutzer überschrieben wird, dann muss eine zusätzliche Formatierung oder ein Text den Unterschied zum umgebenden Inhalt am Bildschirm verdeutlichen. Bei Farbe werden dabei Vordergrund- und Hintergrundfarbe als die gleiche Formatierung behandelt.</li>
</ul>
<h4>1. Links </h4>
<p>Die Gestaltung von Links, vor allem auf der Struktur- und Textebene, wurde bereits ausführlich behandelt. Im Kontext der Mehrfachkennzeichnung kommen weitere Anforderungen hinzu. Damit Links in Fließtexten auch ohne Farbe erkennbar sind, benötigen sie eine Unterstreichung, eine Fettung oder eine andere sichtbare Hervorhebung. Linktexte müssen sich außerdem sowohl vom Hintergrund als auch vom umgebenden Fließtext deutlich abheben. Das bedeutet, dass die verwendeten Farben für Links gegenüber den Fließtexten ein Kontrastverhältnis von mindestens 3:1 aufweisen sollten.</p>
<p>Darüber hinaus gibt es besondere Maßnahmen, um Hervorhebungen bei benutzerdefinierten Farben zu optimieren. Bereits einige wenige CSS-Auszeichnungen können einen positiven Einfluss auf die Wahrnehmbarkeit haben, ohne in das Layout einzugreifen.</p>
<h5>1.1 Unterstreichung oder nicht?</h5>
<p>Ob ein Link unterstrichen werden soll oder nicht, ist oft Geschmackssache. Manchmal wird die Unterstreichung in den CSS unterdrückt, weil unterstrichene Links den Lesefluss stören können oder aus Layoutgründen nicht erwünscht sind. Die Links sind dann zwar meist farbig hervorgehoben, haben aber abgesehen davon die gleiche Schriftart und den gleichen Schriftschnitt wie der umgebende Fließtext.</p>
<p>Nur über Farbe gekennzeichnete Links haben meist einen Mouse-over-Effekt, der eine Unterstreichung bewirkt. Offenbar ist Designern klar, dass ein Link ohne Unterstreichung nicht automatisch als Link erkannt wird. Ein solcher Hover-Effekt reicht jedoch nicht, denn er setzt voraus, dass der Link identifiziert werden und der Nutzer ein Zeigegerät bedienen kann. Kann er aber aufgrund der Farbgebung einen Link nicht sehen, dann wird er ihn auch nicht mit der Maus ansteuern. Ein typisches Beispiel sind Links in roter Farbe, die bei einer Rotblindheit als Dunkelgrau oder gar Schwarz wahrgenommen werden können.</p>
<p><img src="http://www.webkrauts.de/wp-content/uploads/2011/03/19.2a-farbige-links.gif" alt="Abb. 1: Farbige Links (hier: rot) im Fließtext benötigen mindestens eine weitere Formatierung." title="19.2a-farbige-links" width="393" height="156" class="size-full wp-image-955" /><br />
<div id="attachment_956" class="wp-caption alignnone" style="width: 405px"><img src="http://www.webkrauts.de/wp-content/uploads/2011/03/19.2b-farbige-links.gif" alt="Abb. 2: Farbige Links (hier: grau) im Fließtext benötigen mindestens eine weitere Formatierung." title="19.2b-farbige-links" width="395" height="154" class="size-full wp-image-956" /><p class="wp-caption-text">Abb. 1 und 2: Farbige Links im Fließtext benötigen mindestens eine weitere Formatierung.</p></div></p>
<p>Ist eine Unterstreichung nicht vorgesehen oder durchsetzbar, dann können Links zusätzlich fett formatiert und/oder durch Symbole ergänzt werden. Eine weitere Möglichkeit ist der Verzicht auf Links in Fließtexten und eine Auflistung dieser als Linkliste »Weiterführende Links« am Ende des Inhalts. Auch ein Style Switcher oder Color Picker, für das Umstellen der Farben, kommt in Betracht. Links im Fließtext können unabhängig von einer Unterstreichung den Lesefluss stören. Obwohl es in den WCAG20 keine Anforderung gibt, die den Verzicht auf Links in Fließtexten nahelegt, muss dennoch über die Alternative einer Linkliste am Ende eines Artikels nachgedacht werden. Vor allem wenn Texte viele Links enthalten, kann die Umschaltung zwischen der Anzeige von Links im Fließtext und der Anzeige als ausführliche Linkliste am Ende des Dokuments sinnvoll sein.</p>
<p>Eine am Ende eines Textes platzierte Linkliste ist nicht nur eine Lösung im Sinne der Mehrfachkennzeichnung, sondern hilft außerdem die Anforderung an aussagekräftige Linktexte zu erfüllen, denn: Linktexte wie »hier« oder »mehr« sind dann nicht mehr möglich. Auch Brigitte Bornemann kommt in ihrem Artikel »Farbkontraste nach WCAG20« zum Schluss, dass auf Links im Fließtext zugunsten einer Linkliste verzichtet werden kann [1].</p>
<h5>1.2 Unterschiede im Kontrastverhältnis</h5>
<p>Links in Fließtexten sollten deutlich erkennbar sein und gegenüber dem umgebenden Text ein Kontrastverhältnis von mindestens 3:1 aufweisen. Wenn beispielsweise der Fließtext schwarz auf Weiß ist, dann ist das Kontrastverhältnis des Fließtextes zum Hintergrund 21:1; nach den WCAG20 sollte das Kontrastverhältnis für Links im Fließtext dann zwischen 7:1 (erweiterte Mindestanforderung an Kontrastverhältnisse) und 18:1 liegen.</p>
<p>Diese doppelte Anforderung an Links, d.h., ausreichendes Kontrastverhältnis zum Hintergrund und ausreichendes Kontrastverhältnis zum umgebenden Fließtext, unterstreicht die Bedeutung von Links als wichtiges Navigationselement. Gleichzeitig führt sie dazu, dass das »erlaubte« Farbschema eingeschränkt wird.</p>
<p>Wie so oft bei der Umsetzung der Barrierefreiheit ist auch die Anforderung nach ausreichenden Kontrastverhältnissen kein absolutes Kriterium, sondern von anderen Faktoren abhängig. Ist z.B. ein Link unterstrichen, dann muss diese Anforderung nicht unbedingt erfüllt werden, denn der Link ist bereits auf anderem visuellem Weg erkennbar. Gleiches gilt, wenn sich Links nicht im Fließtext, sondern in einer Linkliste am Ende des Textes befinden. Welche dieser Lösungen auch gewählt wird, es geht darum, durch bessere Lesbarkeit der Links den Spielraum des Farbdesigns zu bewahren.</p>
<h5>1.3 border-Technik für Navigationslinks</h5>
<p>Auch in Navigationsleisten sollten Links nicht nur über die Farbe erkennbar sein. Wenn die aktuelle Seite in der Navigation hervorgehoben wird, so wird dies oft durch eine Veränderung der Hintergrundfarbe, der Vordergrundfarbe oder beider signalisiert. Auch hier gilt: Haben Nutzer eigene Farbschemata eingestellt, dann sind die Hervorhebungen nicht mehr erkennbar und es muss mindestens ein weiteres Erkennungsmerkmal vorgesehen werden. Das kann eine Veränderung des Schriftschnitts, z.B. eine Fettung, oder ein vorangestelltes Symbol (mit geeigneten Alternativtexten für die Textebene) sein. Eine weitere und bewährte Technik sind sichtbare oder unsichtbare CSS-Rahmen (border).</p>
<p>An dieser Stelle werfen wir einen Blick auf die Gestaltung der Hauptnavigation unseres Beispielauftritts. Die optische Hervorhebung des aktuellen Navigationseintrags erfolgt über Farbe sowie eine CSS-Hintergrundgrafik. Die Vermittlung der Information (»Ich bin kein Link!«) muss durch weitere Merkmale ergänzt werden. Diese wurden im Layout berücksichtigt (vgl. Abb. 3).</p>
<div id="attachment_953" class="wp-caption alignnone" style="width: 470px"><a href="http://www.webkrauts.de/wp-content/uploads/2011/03/19.3-farbige-balken-im-menu.gif"><img src="http://www.webkrauts.de/wp-content/uploads/2011/03/19.3-farbige-balken-im-menu-460x55.gif" alt="Abb. 3: Hervorhebung eines Menüeintrags durch einen farbigen Balken (oben) und einen Pfeil (unten)" title="19.3-farbige-balken-im-menu" width="460" height="55" class="size-medium wp-image-953" /></a><p class="wp-caption-text">Abb. 3: Hervorhebung eines Menüeintrags durch einen farbigen Balken (oben) und einen Pfeil (unten)</p></div>
<p>Beide Techniken sind auf der rein visuellen Ebene und bei Standardfarben für die Anforderung an Mehrfachkennzeichnung ausreichend, nicht jedoch bei benutzerdefinierten Farbeinstellungen. Der Balken oberhalb des Eintrags wird mit einer Hintergrundgrafik bewirkt, die bei benutzerdefinierten Farben nicht sichtbar sein wird. Der Pfeil wurde ebenfalls über CSS als Hintergrundgrafik eingebunden und wird ebenfalls nicht sichtbar sein.</p>
<p>So schön die Hervorhebung durch Symbole also ist: Werden sie als Hintergrundgrafiken eingebunden, dann wird zur Anzeige der aktuellen Position in der Navigation mindestens ein weiteres Unterscheidungsmerkmal benötigt.</p>
<p>Wir greifen hier auf die bereits erwähnte und bewährte CSS-Eigenschaft border zurück, denn sie wird bei benutzerdefinierten Farbeinstellungen in der vom Nutzer eingestellten Textfarbe dargestellt. Das gilt vor allem für den Internet Explorer und für Mozilla-Browser. Der Rahmen ist also ein ausgezeichnetes Mittel, um einen Hinweis über den Zustand eines Navigationseintrags zu vermitteln. Dieser zusätzliche Rahmen muss bei Standardfarben nicht sichtbar sein, weil in diesem Fall die Symbole zu sehen sind.</p>
<p>Die CSS-Gestaltung wird wie folgt ergänzt:</p>
<pre>
<code>#navigation ul li.aktiv a {
border-color: #6392a9;
background-position: 0px 0px;
border-top: 6px solid #517C8F;
padding: 1.2em 1.8em 1.5em 1.8em;
background-color: #535353;
}
#navigation ul li.aktiv a:hover,
#navigation ul li.aktiv a:focus,
#navigation ul li.aktiv a:active {
padding: 1.2em 1.8em 1.5em 1.8em;
background-color: #535353;
border-top: 6px solid #ddd;
background-position: 0px 0px;
}
</code>
</pre>
<p>Listing 1: CSS-Eigenschaften für die border-Technik in der Hauptnavigation</p>
<p>Die Haupteinträge erhalten zur Verdeutlichung der Hierarchie eine obere Rahmendicke von 6px. Die Rahmenfarbe ist dieselbe wie die Hintergrundfarbe und nur bei benutzerdefinierten Farbeinstellungen sichtbar. In unserem Beispiel erfolgt die Mehrfachkennzeichnung also über Farbe, über ein Symbol und über Rahmen. Das Symbol ist bei Standardfarben sichtbar und die Rahmen sind bei benutzerdefinierten Bildschirmfarben erkennbar. Diese Hervorhebung wird dann auch für den Tastaturfokus und den Hover-Effekt berücksichtigt.</p>
<div id="attachment_952" class="wp-caption alignnone" style="width: 470px"><a href="http://www.webkrauts.de/wp-content/uploads/2011/03/19.4-border-technik-im-menu.gif"><img src="http://www.webkrauts.de/wp-content/uploads/2011/03/19.4-border-technik-im-menu-460x47.gif" alt="Abb. 4: Der aktive Menüpunkt bleibt bei benutzerdefinierten Farben wahrnehmbar" title="19.4-border-technik-im-menu" width="460" height="47" class="size-medium wp-image-952" /></a><p class="wp-caption-text">Abb. 4: Der aktive Menüpunkt bleibt bei benutzerdefinierten Farben wahrnehmbar</p></div>
<p>Auf die Border-Technik kann verzichtet werden, wenn die Symbole statt als Hintergrundgrafik als Listenaufzählungspunkte verwendet werden oder direkt in das HTML eingebunden sind. Die Symbole dienen als Informationsträger (»Aktueller Bereich«) und die Information muss selbstverständlich auch bei ausgeschaltetem CSS wahrnehmbar sein. Für den aktiven Eintrag reicht im Normalfall die Nichtverlinkung, aber ein zusätzlicher Text fördert die Nutzbarkeit.</p>
<p>[1] Vgl. Bornemann, B., <a href="http://www.bit-informationsdesign.de/blog/farbkontraste/">Farbkontraste nach WCAG20</a>.</p>
<h5>Das Buch</h5>
<p><img src="http://www.webkrauts.de/wp-content/uploads/2011/03/cover_barrierefreiheit_verstehen_100.jpg" alt="Cover: Barrierefreiheit verstehen und umsetzen" title="cover_barrierefreiheit_verstehen_100" width="100" height="147" class="alignleft size-full wp-image-949 bild-rechts" />Der Text ist ein Auszug aus »Barrierefreiheit verstehen und umsetzen – Webstandards für ein zugängliches und nutzbares Internet« von Kerstin Probiesch und Jan Eric Hellbusch. Das Buch ist im dpunkt.verlag erschienen. Wir veröffentlichen daraus das Kapitel »Mehrfachkennzeichnung in der Praxis«, morgen erscheint der zweite Teil. Außerdem <a href="http://www.webkrauts.de/2011/03/27/verlosung-barrierefreiheit-verstehen-und-umsetzen/">verlosen wir drei Exemplare</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webkrauts.de/2011/03/27/barrierefreiheit-mehrfachkennzeichnung-in-der-praxis-teil-1/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>Kleine Werkzeugkunde: Die API von Dreamweaver</title>
		<link>http://www.webkrauts.de/2010/08/09/kleine-werkzeugkunde-die-api-von-dreamweaver/</link>
		<comments>http://www.webkrauts.de/2010/08/09/kleine-werkzeugkunde-die-api-von-dreamweaver/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 06:00:21 +0000</pubDate>
		<dc:creator>Henry Zeitler</dc:creator>
				<category><![CDATA[Artikel]]></category>

		<guid isPermaLink="false">http://www.webkrauts.de/?p=802</guid>
		<description><![CDATA[Jeder kennt den kommerziellen Editor Dreamweaver, einige nutzen ihn, doch nur wenige wissen von seinen versteckten Stärken. Getreu dem Motto »(er)kenne Dein Werkzeug« gibt Henry Zeitler einen kleinen Einblick in die Nutzung der <abbr title="Application Programming Interface">API</abbr> von <span lang="en">Dreamweaver</span> anhand von praktischen Beispielen. ]]></description>
			<content:encoded><![CDATA[<p>Dreamweaver ist ein Editor mit Tradition. Bereits im Dezember 1997 veröffentlichte Macromedia seine erste Version und bereits von Anfang an wird sein Nutzen und die Qualität des erzeugten <span lang="en">Codes</span> kontrovers diskutiert.<br />
<br />Ich habe auf <span lang="en">Dreamweaver MX</span> gelernt und meine erste Internetseite entstand mit seiner Hilfe&nbsp;&ndash; damals noch ein Tabellenlayout in der WYSIWYG-Ansicht und der Code war schlecht. Das lag nicht unbedingt am Editor&hellip;<br />Heute benutze ich ihn immer noch mit Version CS3 und das nicht aus Gewohnheit. Ich arbeite ausschließlich in der <span lang="en">Code</span>-Ansicht, erstelle standardkonforme Webseiten und genieße die Vorteile seines großen Funktionsumfangs, die einen schnellen und optimierten <span lang="en">Workflow</span> ermöglichen.</p>
<p><span lang="en">Dreamweaver</span> ist ein mächtiges Werkzeug. Es wartet von Hause aus schon mit vielen Funktionen und <span lang="en">Shortkeys</span> auf. Trotzdem kommt irgendwann die Situation, in welcher der Entwickler einen <span lang="en">Shortkey</span> und eine bestimmte Automatisierung vermisst. Die begrenzte Funktionalität der <span lang="en">Snippets</span> kann da nicht immer weiterhelfen. Um meinen <span lang="en">Workflow</span> zu optimieren und nervige Tipperei zu vermeiden möchte ich meine eigene Funktion schreiben und diese auf ein Tastaturkürzel legen.<br />Hier kommt die <abbr title="Application Programming Interface">API</abbr> ins Spiel. Über sie bin ich in der Lage, das Programm zu reorganisieren, meinen Bedürfnissen anzupassen und um fehlenden Funktionen zu erweitern oder bestehende umzuschreiben.</p>
<h4>Die Vorbereitung</h4>
<p>Um zu starten brauchen wir natürlich in erster Linie den Adobe <span lang="en">Dreamweaver</span> (zum Probieren reicht auch erstmal eine <a href="https://www.adobe.com/downloads/" title="Dreamweaver CS5-Testversion"><span lang="en">Dreamweaver</span> CS5-Testversion</a>). Befehle in <span lang="en">Dreamweaver</span> bestehen aus zwei Komponenten&nbsp;&ndash; einer HTML- und einer JavaScript-Datei&nbsp;&ndash; und sie werden über einen XML-Baum in die Benutzeroberfläche eingebunden. Grundkenntnisse in den drei Bereichen erleichtern den Einstieg erheblich.</p>
<p>Desweiteren muss nach der Installation der »<span lang="en">Dreamweaver</span>«-Ordner mit den Unterordnern »<span lang="en">Configuration</span>« und weiter »<span lang="en">Menus</span>« auf der Festplatte ausfindig gemacht werden. Dieser befindet sich nicht im Installationsordner, sondern in den Benutzer- bzw. <span lang="en">User</span>-Ordnern (bei Vista z. B. <em>C:\Users\&#034;Name&#034;\AppData\Roaming\Macromedia\Dreamweaver\Configuration\Menus</em>).</p>
<p><img src="http://www.webkrauts.de/wp-content/uploads/2010/08/dreamweaver_screen_02.gif" alt="der Menues-Ordner"  /></p>
<p>Um Problemen vorzubeugen, sollte vorher eine Kopie der aktuellen Datei menus.xml angelegt werden. </p>
<p>Ladet nun die vorbereitete <a href="Webkrauts_Menue.zip">zip-Datei</a> (52 KB) herunter und kopiert den Inhalt in den <span lang="en">Menus</span>-Ordner. Die neuen Befehle werden nach dem nächsten Start von <span lang="en">Dreamweaver</span> angezeigt und sind aktiv. <br />Um die folgenden Erläuterungen besser nachvollziehen zu können, sollten alle Dateien des entpackten ZIPs mit <span lang="en">Dreamweaver</span> geöffnet werden.</p>
<h4>Ärmel hochkrempeln und los geht&#039;s!</h4>
<p>Dem aufmerksamen Beobachter fällt natürlich sofort der neue Menüpunkt in der horizontalen Menüleiste auf. Beim anklicken von »Webkrauts« öffnet sich ein <span lang="en">Dropdown</span> mit »<span lang="en">ListAll</span>«, »<span lang="en">BreakAll</span>« und »<span lang="en">AllToNav</span>« und den zugewiesenen <span lang="en">Shortkey</span>. Wenn wir jetzt mehrere Zeilen Text markieren und zum Beispiel <code>Strg+Alt+D</code> drücken oder den entsprechenden Menüpunkt auswählen, werden automatisch die Zeilenumbrüche erkannt und in Listenpunkte umgewandelt. Das Gleiche gilt für die Funktionen »<span lang="en">BreakAll</span>« (erzeugt einen <code>br</code> am Zeilenende) und »<span lang="en">AllToNav</span>«, welche die Listenfunktion  »<span lang="en">ListAll</span>« erweitert und einen <span lang="en">Anchor</span>-Tag ergänzt, um die Basis für eine Navigation zu erstellen.</p>
<p>Diese vorgefertigten Befehle dienen natürlich nur als Beispiele für den Einstieg. Ich denke, je nach Ausprägung der JavaScript-Kenntnisse lässt sich da allerhand anstellen und es sind nicht nur HTML-<span lang="en">Tags</span> möglich.</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/B0ZRRsVFoGM&#038;hl=de&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/B0ZRRsVFoGM&#038;hl=de&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p><em>So werden die Befehle angewendet &#8211; <span lang="en">Screencast</span></em></p>
<p><span lang="en">Dreamweaver</span> liest den Code im Bearbeitungsfenster genau wie den Quell<span lang="en">code</span> einer Internetseite. Dadurch wird die direkte Manipulation durch JavaScript erst möglich. Bevor die Befehle also greifen können, muss <span lang="en">Dreamweaver</span> das <a href="http://www.w3.org/DOM/"><abbr title="Document Object Model">DOM</abbr></a> vollständig erfasst haben. Sollte mal keine Reaktion auf die Befehle erfolgen, hilft deshalb ein Klick auf den Button »Aktualisieren«. Das gilt allgemein für die Anwendung von Funktionen in <span lang="en">Dreamweaver</span>.</p>
<h4>Der neue Befehl</h4>
<p>Befehle in <span lang="en">Dreamweaver</span> bestehen immer aus zwei Komponenten: einer HTML- und einer JavaScript-Datei. Die <strong>HTML-Datei</strong> ist lediglich dafür zuständig, die Javascript-Datei zu laden, einzubetten und die entsprechende Funktion im <span lang="en">Body-Tag</span> durch »<span lang="en">onLoad</span>« auszuführen. Wichtig ist es, daran zu denken, die Bezeichnungen der Datei und der Funktion hier anzupassen.</p>
<p>Der HTML-Code am Beispiel der <span lang="en">ListAll()</span>-Funktion sieht (etwas gekürzt) so aus:</p>
<p><code>&lt;head&gt;</code><br />
  <code>&lt;title&gt;Listen erstellen &lt;/title&gt;</code><br />
  <code>&lt;script language=&quot;JavaScript&quot; src=&quot;ListAll.js&quot;&gt;</code><br />
<code>Menu_HC_AddLineBreaks = dreamweaver.latin1ToNative(&quot;Listen erstellen &lt;br&gt;&quot;);</code><br />
  <code>&lt;/script&gt;</code><br />
  <code>&lt;/head&gt;</code><br />
  <code>&lt;body onload=&quot;ListAll()&quot;&gt;</code><code><br />
  </code><code>&lt;/body&gt;</code><code><br />
  </code><code>&lt;/html&gt;</code></p>
<p>Die <strong>JavaScript-Datei</strong> dagegen enthält die Programmierung für den Befehl. Hier bekommen wir es mit allerhand <span lang="en">Dreamweaver</span>-spezifischen Funktionen zu tun. Die Funktion »<span lang="en">canAcceptCommand()</span>« testet zum Beispiel, ob das Menüelement abgeblendet werden soll (Rückgabe: <em lang="en">false</em>) oder aktiv geschaltet wird. Außerdem wird hier noch festgestellt, auf welchem Teil innerhalb von <span lang="en">Dreamweaver</span> der Eingabefokus liegt (»<span lang="en">dw.getFocus()</span>«) und die Selektion aus dem DOM  ausgelesen (»<span lang="en">dw.getDocumentDOM()</span>«). <br />Diese komplette erste Funktion ist ein Standard und muss für unsere Zwecke nicht modifiziert werden. Wer will, kann sich im API-Referenzhandbuch unter der »Hilfe« damit näher befassen. <br />
Den Kern bildet die jeweils zweite Funktion »<span lang="en">ListAll()</span>«, »<span lang="en">BreakAll()</span>« bzw. »<span lang="en">AllToNav()</span>« und hier können wir uns austoben. Jeder, der Grundkenntnisse in JavaScript besitzt, kann leicht nachvollziehen was hier passiert. Kurz beschrieben am Beispiel der Funktion »<span lang="en">ListAll()</span>«:</p>
<ol>
<li>Zuerst wird die Selektion im DOM aufgerufen.</li>
<li>Es werden die Zeilenumbrüche durch <code>&lt;/li&gt;\n\t&lt;li&gt;</code> ersetzt. Bei \n und \t handelt es sich um <a href="http://msdn.microsoft.com/en-us/library/az24scfc.aspx">Regular Expressions</a> für einen Zeilenumbruch und einen Tab.</li>
<li>Am Ende der Liste wird <code>&lt;/li&gt;\n&lt;/ul&gt;</code> eingefügt.</li>
<li>Am Anfang der Liste wird <code>&lt;ul&gt;\n\t&lt;li&gt;</code> eingefügt.</li>
</ol>
<p>Für eine bessere Übersicht habe ich die wichtigsten Zeilen nochmal in der Datei kommentiert. Ein Blick auf den Quell<span lang="en">code</span> der jeweiligen Datei verdeutlicht, wie sie modifiziert wird. Wer will, kann hier auch seine eigene Funktion einmal ausprobieren. Man kann nicht viel kaputt machen.</p>
<h4>Der neue Menüpunkt</h4>
<p>Die dritte und letzte Datei im Bunde ist eine .xml-Datei (menus.xml). Sie hat mit dem Befehl selbst nichts zu tun, denn hier werden alle Menüs und ihre Inhalte samt <span lang="en">Shortkeys</span> festgelegt und beim Start von <span lang="en">Dreamweaver</span> initiiert. Über diese Datei lässt sich die gesamte Menüstruktur und ihre Funktionen sowie deren Tastaturkürzel reorganisieren. Der Aufbau des XML-Baums ist leicht nachzuvollziehen.<br />Ganz am Ende der Datei habe ich unsere zusätzlichen Menüpunkte eingefügt.  Ein neuer Hauptmenüpunkt wird in unserem Beispiel mit <code>&lt;menu id=&quot;Webkraut_Edit&quot; name=&quot;Webkrauts&quot;&gt;</code> erstellt und alle Unterpunkte mit <code>&lt;menuitem id=&quot;WK_Edit_ListAll&quot; name=&quot;ListAll&quot; key=&quot;Cmd+Alt+L&quot; file=&quot;Menus/ListAll.htm&quot; arguments=&quot;'ListAll'&quot; /&gt;</code>  aufgelistet. Dabei gilt: »<span lang="en">key</span>« bezeichnet den <span lang="en">Shortkey</span>, »<span lang="en">file</span>« den Pfad und Dateinamen der HTML-Datei und »<span lang="en">name</span>« den Menüeintrag. Der Pfad kann beliebig angegeben werden. Ab einer gewissen Anzahl von eigenen Funktionen sollte man über eine eigene Ordnerstruktur nachdenken. Will man ein eigenes Tastaturkürzel anlegen, sollte man mit der Suchfunktion vorher prüfen, ob es wirklich noch nicht anderweitig genutzt wird.</p>
<p>Der neue Menüpunkt und seine Funktionen und überhaupt alle Änderungen werden immer erst nach dem nächsten Start von <span lang="en">Dreamweaver</span> initiiert.</p>
<h4>Lust bekommen?</h4>
<p>Ich hoffe ich konnte mit diesem Artikel einen schnellen Einstieg in ein komplexes Themengebiet schaffen, dessen Vertiefung durchaus lohnenswert ist. Die Idee, sich mit der API von <span lang="en">Dreamweaver</span> zu befassen und das Programm ein wenig anzupassen, entstand mit der Version 8. Die neuen Funktionen habe ich einfach in Version CS3 migriert. Bleibt abzuwarten welche Möglichkeiten sich mit <a href="http://www.adobe.com/de/products/dreamweaver/whatsnew/">Version CS5</a> ergeben werden.</p>
<h4>Die Dateien als .zip-Archiv zum downloaden</h4>
<p><a href="http://www.webkrauts.de/wp-content/uploads/2010/08/webkrauts_menue.zip">Webkrauts_Menue.zip</a> (52 KB)</p>
<h4>Weiterführende Links</h4>
<p><a href="http://www.oreillynet.com/pub/a/javascript/2001/06/01/essential_js.html?page=1">Accessing Dreamweaver&#039;s JavaScript API</a><br />
<a href="http://www.adobe.com/livedocs/dreamweaver/8_de/extending/wwhelp/wwhimpl/js/html/wwhelp.htm?href=09_men30.htm">Dreamweaver erweitern</a></p>
<p><a href="http://help.adobe.com/en_US/Dreamweaver/10.0_Extending/WS5b3ccc516d4fbf351e63e3d117f53d5f9f-7ffe.html">Extending Dreamweaver CS4</a></p>
<h5>Zum Autor</h5>
<p><img src="http://www.webkrauts.de/wp-content/uploads/2010/06/hzeitler1.jpg" alt="Henry Zeitler" width="60" height="60" class="bild-links" />Henry Zeitler ist gelernter Mediengestalter und arbeitet als <span lang="en">Webproducer</span> in Düsseldorf. Barrierefreiheit, Semantik und Codeoptimierung haben sich zu seiner Leidenschaft entwickelt, die über das berufliche Engagement hinaus geht. In seinem privaten Blog <a href="http://www.freizeitler.de">Freizeitler.de</a> veröffentlicht er Experimente und Erkenntnisse.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webkrauts.de/2010/08/09/kleine-werkzeugkunde-die-api-von-dreamweaver/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Warenkörbe als Datentabelle – und wie man es mit HTML &amp; CSS schön umsetzt</title>
		<link>http://www.webkrauts.de/2010/06/08/warenkoerbe-als-datentabelle-und-wie-man-es-mit-html-css-schoen-umsetzt/</link>
		<comments>http://www.webkrauts.de/2010/06/08/warenkoerbe-als-datentabelle-und-wie-man-es-mit-html-css-schoen-umsetzt/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 16:59:41 +0000</pubDate>
		<dc:creator>Nils Pooker</dc:creator>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.webkrauts.de/?p=767</guid>
		<description><![CDATA[Shop-Systeme sind immer mit einer Menge Arbeit verbunden. Oft freuen sich Webworker und Kunde gegen Ende, wenn die einzelnen Bereiche tatsächlich so funktionieren, wie sie sollen. Das Design bleibt dabei manchmal auf der Strecke. Nils Pooker zeigt, wie ein Warenkorb in wenigen Schritten aufgehübscht werden kann.]]></description>
			<content:encoded><![CDATA[<h5>Hinweis zum Artikel</h5>
<p>Dieser Text erschien zuerst im <a href="http://webstandards-magazin.de/">Webstandards-Magazin 01/2009</a>.</p>
<p><strong>Das Letzte, das der Nutzer eines Online-Shops vor dem Button »Bestellung absenden« zu sehen bekommt, ist der so genannte Warenkorb. Der Warenkorb stammt, wie die meisten anderen Elemente eines Shopsystems, aus dem Bereich des klassischen Einkaufserlebnisses in einem Ladengeschäft und wird meist in Form einer Datentabelle generiert und angezeigt.</strong></p>
<p>Da der Warenkorb die Summe der im Shop gesammelten Waren bildet, sollte er im Idealfall noch einmal den Kaufanreiz erhöhen, wirklich alle Produkte auch tatsächlich zu bestellen. Diese Funktion wäre also mit der Wirkung eines perfekt dekorierten Hochzeitstisches zu vergleichen, auf dem ein Brautpaar alle gewünschten Objekte der Kaufbegierde von Deko-Spezialisten des Ladengeschäftes so präsentieren lässt, dass die Gäste möglichst viel und gerne einkaufen.</p>
<p>Nutzer besitzen also nicht nur ein Grundrecht auf angemessene Gestaltung des Warenkorbs – es ist auch verkaufsfördernd, auf eine benutzerfreundlich und motivierend gestaltete Produktanzeige zu achten. Soweit jedenfalls die schöne Theorie.</p>
<h4>Der Warenkorb als Datenkasten</h4>
<p>Betrachten wir uns die Praxis vieler Online-Shopsysteme, begegnet uns leider oft genug ein Warenkorb, der ein ähnlich sprödes Einkaufserlebnis vermittelt, wie der verregnete Spaziergang durch eine ostrussische Plattenbausiedlung im November. Da empfängt uns ein Tabellenkonstrukt mit Rändern, die wie Eisenstäbe die sprichwörtlichen Zellen umschließen, einbetoniert in das kahle Nichts einer trostlosen Seite. Die Hintergrundfarbe solcher Tabellen reicht von depressivem Eternitgrau bis zu tristem Bahndammgrün, macht aber auch vor großen Flächen in Windows-95-Blau und Feuerlöscherrot keinen Halt. Kurz gesagt: Allein das Vorhandensein solcher Warenkörbe grenzt für sensible Nutzer an optische Körperverletzung und sorgt schon vor dem Bestellvorgang eher für Frust als für positive Kaufanreize.</p>
<p>Moderne Webseiten trennen den Inhalt strikt vom Design. Die Ausgabe der HTML-Tabellen können Sie deshalb bequem per CSS optisch ansprechend gestalten. Der hier vorgestellte Umfang der Gestaltung richtet sich freilich auch nach der Flexibilität Ihres Shopsystems.</p>
<p>HTML stellt uns zunächst verschiedene Elemente zur Strukturierung von Tabellen zur Verfügung. Neben <code>&lt;td&gt;</code>, <code>&lt;tr&gt;</code> und <code>&lt;tbody&gt;</code> gibt es mit <code>&lt;thead&gt;</code> und <code>&lt;tfoot&gt;</code> die weniger bekannten Kopf- und Fußelemente einer Tabelle, die vor den Inhalten von <code>&lt;tbody&gt;</code> steht.</p>
<h4>Exkurs: Tabellen und Barrierefreiheit</h4>
<p>Man sollte bei Tabellen nicht nur die gestalterischen Aspekte betrachten, bei der Planung ist auch auf eine barrierefreie Umsetzung für Menschen mit Behinderungen zu achten. Ideal ist es, wenn Ihr Warenkorb mit dem Element <code>&lt;caption&gt;</code> eine sinnvolle Überschrift zu Beginn der Produkttabelle bietet, und das Element summary im <code>&lt;table&gt;</code>-Tag assistiven Technologien ein rasches Auslesen einer Zusammenfassung erlaubt. Mit dem Attribut <code>scope</code> kann man Tabellenbereiche schließlich noch für assistive Technologien so zusammenfassen, dass beispielsweise Screenreader-Nutzer vorhandene Zelleninformationen der entsprechenden Kopfzeile zuordnen können. Dieser Bezug wird durch <code>col</code> oder <code>row</code> festgelegt, je nachdem ob die Kopfzeilen sich auf Spalten oder Zeilen beziehen.</p>
<h4>Eine neue Digitalkamera </h4>
<p>Als einfaches Beispiel soll hier der Warenkorb eines x-beliebigen Shops für Digitalkameras und Zubehör umgesetzt werden. Unser Warenkorb enthält nach dem Einkauf des Nutzers neben einer aktuellen Fuji-Kamera noch zwei Speicherkarten, ein Ersatzakku und eine passende Kameratasche. Die schlichte, aber gut strukturierte und barrierefreie Warenkorb-Tabelle sieht dann ohne jegliche Gestaltung so aus:</p>
<div id="attachment_768" class="wp-caption alignleft" style="width: 470px"><a href="http://www.webkrauts.de/wp-content/uploads/2010/06/warenkorb0.jpg"><img src="http://www.webkrauts.de/wp-content/uploads/2010/06/warenkorb0-460x343.jpg" alt="In der Quellcode-Ansicht sieht die Grundstruktur der Tabelle so aus" title="warenkorb0" width="460" height="343" class="size-medium wp-image-768" /></a><p class="wp-caption-text">In der Quellcode-Ansicht sieht die Grundstruktur der Tabelle so aus</p></div>
<div id="lst1">
<pre><code>&lt;table summary=&quot;Summe der Artikel im Warenkorb&quot;&gt;
&lt;caption&gt;Produkte in Ihrem Warenkorb&lt;/caption&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th scope=&quot;col&quot;&gt;Anzahl&lt;/th&gt;
&lt;th scope=&quot;col&quot;&gt;Produkt&lt;/th&gt;
&lt;th scope=&quot;col&quot;&gt;Einzelpreis&lt;/th&gt;
&lt;th scope=&quot;col&quot;&gt;Gesamt&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tfoot&gt;
&lt;tr&gt;
&lt;td colspan=&quot;3&quot;&gt;Summe Warenkorb:&lt;/td&gt;
&lt;td&gt;269,47 EUR&lt;/td&gt;
&lt;/tr&gt;
&lt;/tfoot&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;input type=&quot;text&quot; size=&quot;3&quot; value=&quot;1&quot;&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;#&quot;&gt;Digitalkamera: FujiFilm FinePix F100fd
&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;209,19 EUR&lt;/td&gt;
&lt;td&gt;209,19 EUR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;input type=&quot;text&quot; size=&quot;3&quot; value=&quot;2&quot;&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;#&quot;&gt;Speicherkarte: SanDisk Extreme III SD 4GB
&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;21,75 EUR&lt;/td&gt;
&lt;td&gt;43,50 EUR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;input type=&quot;text&quot; size=&quot;3&quot; value=&quot;1&quot;&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;#&quot;&gt;Akku: Fuji AccuPower&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;6,29 EUR&lt;/td&gt;
&lt;td&gt;6,29 EUR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;input type=&quot;text&quot; size=&quot;3&quot; value=&quot;1&quot;&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;#&quot;&gt;Tasche: Fujifilm Softcase SC-F&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;10,49 EUR&lt;/td&gt;
&lt;td&gt;10,49 EUR&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</code></pre>
<p>Listing 1: HTML</p>
</div>
<p>Zur Gestaltung: <code>border: 1px solid #555;</code> definiert den 1-Pixel-Rand, <code>border-collapse: collapse;</code> sorgt dafür, dass  mögliche Rahmen innerhalb der Tabelle zusammenfallen.</p>
<div id="attachment_769" class="wp-caption alignleft" style="width: 470px"><a href="http://www.webkrauts.de/wp-content/uploads/2010/06/warenkorb1.jpg"><img src="http://www.webkrauts.de/wp-content/uploads/2010/06/warenkorb1-460x343.jpg" alt="Warenkorb in klassischem Grau" title="warenkorb1" width="460" height="343" class="size-medium wp-image-769" /></a><p class="wp-caption-text">Warenkorb in klassischem Grau</p></div>
<h4>Datentabellen hübsch machen</h4>
<p>Schlanker HTML-Code und ein paar Zeilen CSS garantieren also noch keine schöne Datentabelle, doch mittels CSS kann man die Gestaltung noch weiter verbessern. Beachten Sie bei allen Möglichkeiten von CSS allerdings immer, dass Sie hier einen kommerziellen Warenkorb gestalten und nicht eine schicke Designer-Webseite. Wichtig sind also Usability- und Zugänglichkeits-Aspekte der Datentabelle – analog zum Zitat »form follows function« hat die Gestaltung dieser Funktion zu folgen, nicht umgekehrt. Schick aussehen darf es aber trotzdem.</p>
<p>Da die Tabelle über mehrere Elemente verfügt, lassen sich diese Elemente per CSS separat gestalten, auch ohne in den HTML-Code einzugreifen. Dieses Vorgehen ist wichtig, weil Sie bei vielen Shopsystemen oft nur eingeschränkt in den Code eingreifen können. Das wichtigste für den Nutzer ist die transparente Darstellung der Preise und die klare Zuordnung der gewählten Produkte. In der üblichen Darstellung werden die Preise der Tabelle per <code>text-align: right;</code> rechtsbündig dargestellt, nur die Tabellenüberschrift <code>&lt;caption&gt;</code> soll linksbündig über der Tabelle stehen. Mittels padding können Sie die Innenabstände für die Tabellenzellen festlegen und verschiedene Farben für Zellenhintergründe und -ränder definieren. Die Gestaltung der Schrift dient schließlich der eindeutigen Klassifizierung der Zellinhalte.</p>
<p>Unser Warenkorb sieht nun so aus:</p>
<div id="attachment_770" class="wp-caption alignleft" style="width: 470px"><a href="http://www.webkrauts.de/wp-content/uploads/2010/06/warenkorb2.jpg"><img src="http://www.webkrauts.de/wp-content/uploads/2010/06/warenkorb2-460x343.jpg" alt="Warenkorb in frischen Farben" title="warenkorb2" width="460" height="343" class="size-medium wp-image-770" /></a><p class="wp-caption-text">Warenkorb in frischen Farben</p></div>
<p>Die Links, die in den Zellen des Warenkorbes normalerweise wieder zur Produktbeschreibung im Shopsystem führen, zeigen eine Grafik als Hintergrundbild. </p>
<div id="lst2">
<pre><code>td a {
padding-left: 20px;
background: url(img/u_list.gif) no-repeat left center;
}</code></pre>
<p>Listing 2: CSS</p>
</div>
<p>
Für den Tabellenkopf <code>&lt;thead&gt;</code> wurde übrigens ein Rand definiert. Das Fehlen dieser Definition hätte zur Folge, dass durch die Anweisung <code>border-collapse: collapse;</code> der Tabellenrand zu sehen wäre und daraus folgend eine unschöne Einbindung des Tabellenkopfes. Vermieden wird das mit Hilfe von:</p>
<div id="lst3">
<pre><code>thead th {
background: #681400;
border: 1px solid #681400;
}</code></pre>
<p>Listing 3: CSS</p>
</div>
<h4>Zucker zum Kaffee: Das HTML bearbeiten</h4>
<p>Unser Warenkorb hat sich gestalterisch bereits von der mausgrauen Kastenoptik der ursprünglichen Tabelle abgesetzt. Sofern Sie keine andere Möglichkeit haben, in den HTML-Code Ihres Shops einzugreifen, sind Ihre weiteren Möglichkeiten hier natürlich begrenzt. Sie können noch durch Hintergrundgrafiken einzelne Tabellenteile optisch aufwerten oder auf die allgemeine Browserunterstützung von CSS3 warten. Hierauf gehe ich noch kurz gesondert ein. Sofern Sie den HTML-Code für die Datenausgabe des Warenkorbes bearbeiten können, haben Sie durch zusätzliche Klassen die Möglichkeit, die Darstellung der Tabelle weiter zu verfeinern. Das selten genutzte Element <code>&lt;colgroup&gt;</code> können Sie nicht nur dazu verwenden, mittels der Attribute <code>width</code> und <code>span</code> dem Browser Anzahl und prozentuale Größe der Tabellenspalten mitzuteilen, die Attribute steuern damit auch die optische Darstellung der Spalten. Die erste Spalte mit der Angabe der Produktmenge soll möglichst nicht breiter sein als das <code>&lt;input&gt;-Feld</code>. Dafür muss die Bezeichnung im Tabellenkopf auf »Anz.« abgekürzt werden. Die breiteste Spalte soll den Produkten vorbehalten sein. Einzel- und Gesamtpreis sollen dagegen eine einheitliche Breite erhalten. Im HTML-Code sieht das dann so aus:</p>
<div id="lst4">
<pre><code>&lt;colgroup&gt;
&lt;col width="8%" /&gt;
&lt;col width="56%" /&gt;
&lt;col width="18%" span="2" /&gt;
&lt;/colgroup&gt;</code></pre>
<p>Listing 4: HTML</p>
</div>
<p>Da wir in unserem Warenkorb nur die Preise rechtsbündig dargestellt sehen wollen, können Sie auch eine entsprechende Klasse <code>&lt;td class="preis"&gt;</code> mit der CSS-Anweisung <code>text-align: right;</code> für diese Spalten definieren.Wenn Sie schon den HTML-Code bearbeiten, können Sie auch gleich den »Zebra-Effekt« farblich unterschiedlicher Zeilen umsetzen, der für eine bessere visuelle Orientierung in Datentabellen sorgt.<br />
Damit haben wir dann Zellen mit <code>&lt;td class="zebra"&gt;</code>, bzw. <code>&lt;td class="preis zebra"&gt;</code> definiert. Für die Tabellenzellen definieren wir einen zarten Verlauf als Hintergrundgrafik, die »Zebra-Zellen« sollen dagegen in einem leichten Grünton und ohne Hintergrundgrafik dargestellt werden.</p>
<div id="lst5">
<pre><code>td {
background: #fff url(img/verlauf.gif) repeat-x left
bottom; }
td.zebra {
background-image: none;
background-color: #ebfbc1;
}</code></pre>
<p>Listing 5: CSS</p>
</div>
<p>Wenn der Tabellenkopf eine Hintergrundgrafik enthält, sollten Sie die Tabellenbreite in em definieren, um bei Schriftskalierung ein Überlappen des Textes über das Bild zu vermeiden. Erweitert wird auch die Gestaltung des Tabellenfußes, der ein dekoratives und zum Thema passendes Hintergrundbild erhält:</p>
<div id="lst6">
<pre><code>tfoot td {
background: #fff url(img/cam_comp.gif) no-repeat
5px 15px;
}</code></pre>
<p>Listing 6: CSS</p>
</div>
<p>Die dortige Tabellenzelle mit der Gesamtsumme des Warenkorbs wird über eine <code>id="total"</code> separat gestaltet, ohne Hintergrundbild und mit differenzierter Hintergrundfarbe:</p>
<div id="lst7">
<pre><code>tfoot td#total {
background-image: none;
color: #681400;
font-size: 120%;
background-color: #f4d37d;
}</code></pre>
<p>Listing 7: CSS</p>
</div>
<p>Das Ergebnis sieht dann so aus:</p>
<div id="attachment_771" class="wp-caption alignleft" style="width: 470px"><a href="http://www.webkrauts.de/wp-content/uploads/2010/06/warenkorb3.jpg"><img src="http://www.webkrauts.de/wp-content/uploads/2010/06/warenkorb3-460x343.jpg" alt="komplex gestalteter Warenkorb" title="warenkorb3" width="460" height="343" class="size-medium wp-image-771" /></a><p class="wp-caption-text">komplex gestalteter Warenkorb</p></div>
<h4>CSS3: Warenkorb der Zukunft</h4>
<p>Tabellen in Zebraoptik sind sehr gut wahrnehmbar, aber es ist nur selten möglich, zusätzliche Klassen in einer Datentabelle generieren zu lassen. Es gibt zwar JavaScript-Lösungen, doch da ist die Angemessenheit der Mittel zumindest diskussionswürdig.</p>
<p>Noch nicht ganz alltagstauglich, aber dennoch interessant sind deshalb die Möglichkeiten reiner CSS3-Lösungen, die bereits von einigen aktuellen Browsern unterstützt werden. Komplett und korrekt werden die nun folgenden Möglichkeiten bisher allerdings nur vom Firefox 3.1 (beta), Google Chrome und dem aktuellen Safari-Browser ab Version 3.1 dargestellt.</p>
<p>Für gestreifte Tabellenzeilen bietet CSS3 das Pseudoattribut <code>:nth-child</code>. Dieses Pseudoattribut wird auch im Opera-Browser korrekt dargestellt:</p>
<div id="lst7">
<pre><code>tr:nth-child(odd) { background: #fff
url(img/verlauf.gif) repeat-x left bottom; }
tr:nth-child(even) {
background-image: none;
background-color: #ebfbc1;
}</code></pre>
<p>Listing 7: CSS</p>
</div>
<p>Immer wieder gefragt sind auch abgerundete Ecken, die ebenfalls nur über JavaScript-Lösungen oder mit reichlich zusätzlichem Markup umgesetzt werden können – für einen Warenkorb sicherlich zu aufwendig. CSS3 bietet auch hier eine schnelle und unkomplizierte Lösung, die zusätzlich mit interessanten Schatteneffekten kombiniert werden kann. Wir ergänzen lediglich einen zusätzlichen, die Tabelle umschließenden, DIV-Container:</p>
<div id="lst8">
<pre><code>#tablediv {
border: 3px solid #bbb;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
border-radius: 15px;
-moz-box-shadow: 5px 5px 15px #ccc;
-webkit-box-shadow: 5px 5px 15px #ccc;
box-shadow: 15px;
padding: 25px;
width: 50em;
font-size: 75%;
background: #d6e8ec url(img/back_tablediv.gif) repeatx
0 0;
}</code></pre>
<p>Listing 8: CSS</p>
</div>
<p>Das Ergebnis sieht dann im Safari so aus:</p>
<div id="attachment_772" class="wp-caption alignleft" style="width: 470px"><a href="http://www.webkrauts.de/wp-content/uploads/2010/06/warenkorb4.jpg"><img src="http://www.webkrauts.de/wp-content/uploads/2010/06/warenkorb4-460x343.jpg" alt="Warenkorb als CSS3-Lösung" title="warenkorb4" width="460" height="343" class="size-medium wp-image-772" /></a><p class="wp-caption-text">Warenkorb als CSS3-Lösung</p></div>
<h4>Fazit</h4>
<p>Mit zeitgemäßenWebstandards lassen sich auch triste Datensätze in einfach strukturierten Tabellen ansprechend und professionell gestalten. CSS2 bietet bereits heute eine Unmenge von gestalterischen Möglichkeiten – man sollte aber schon einen Blick in die Zukunft und damit auf CSS3 werfen, auch wenn die Umsetzung bei relevanten Inhalten noch nicht hoffähig ist.</p>
<p>Sämtliche Beispieldateien sind auch als ZIP-Datei erhältlich:<br />
<a href="http://www.webstandards-magazin.de/artikel/01-09-warenkorb.zip">www.webstandards-magazin.de/artikel/01-09-warenkorb.zip</a></p>
<h5>Zum Autor</h5>
<p><img id="image299" src="http://www.webkrauts.de/wp-content/uploads/2007/11/nils_pooker.jpg" alt="Nils Pooker" class="bild-links"/>Nils Pooker (Jahrgang 1965) war von 1993 bis 2001 als Gemäldekopist tätig. Seit 2001 arbeitet er als selbstständiger Webdesigner. Nils Pooker ist Mitglied der Webkrauts und Fachbuchautor. Er hält Vorträge und schreibt über Kundenkommunikation, Wahrnehmung, Webstandards und Webdesign.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webkrauts.de/2010/06/08/warenkoerbe-als-datentabelle-und-wie-man-es-mit-html-css-schoen-umsetzt/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ein verspielter One-Pager II: Handwerk</title>
		<link>http://www.webkrauts.de/2010/05/19/ein-verspielter-one-pager-ii-handwerk/</link>
		<comments>http://www.webkrauts.de/2010/05/19/ein-verspielter-one-pager-ii-handwerk/#comments</comments>
		<pubDate>Wed, 19 May 2010 05:45:02 +0000</pubDate>
		<dc:creator>Nicolai Schwarz</dc:creator>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[Barrierefreiheit]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[Relaunch]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.webkrauts.de/?p=765</guid>
		<description><![CDATA[<p>Gestern hat Nicolai Schwarz über den langen Weg zum Relauch seines Portfolios berichtet. Heute geht es um die konkrete Umsetzung: Usability, Performance und all die anderen Kleinigkeiten, an die ein Webworker denken muss.</p>]]></description>
			<content:encoded><![CDATA[<p>Kurzer <a href="http://www.webkrauts.de/2010/05/18/ein-verspielter-one-pager-i-prelude/">Rückblick</a>: Bei <a href="http://textformer.de">meinem Relaunch</a> sollte es um einen verspielten One-Pager gehen. Ich habe mich für knappe Inhalte entschieden, die alle erst einmal nebeneinander liegen: Leistungen, News, Portfolio, Fachvorträge, Fachartikel, Datenschutz und Impressum. Alles in einem festen Raster angeordnet. Die Menüpunkte Leistungen und Impressum haben etwas mehr Inhalt und erscheinen erst einmal breiter als die anderen Inhalte</p>
<h4>Startvorbereitungen</h4>
<p>Per JavaScript wird die Seite nun ein wenig zurechtgefaltet. Bei den Leistungen und im Impressum werden Inhalte zusammengerückt, sie lassen sich per Klick umschalten. Die Inhaltsleiste startet etwas verschoben mit dem Portfolio. Es sei denn, jemand hat das Kontaktformular falsch ausgefüllt und klickt auf »Zurück«, dann startet die Seite direkt mit dem Kontaktformular. Zunächst gab es nur die kleinen Pfeile, über die der Besucher dann navigieren sollte.</p>
<p><a href="http://www.textformer.de"><img src="http://www.webkrauts.de/wp-content/uploads/2010/05/textformer-startseite-460x345.jpg" alt="Die aktuelle Startseite von textformer.de" title="textformer-startseite" class="alignleft size-medium wp-image-764" height="345" width="460"/></a></p>
<h4>Usability</h4>
<p>Soweit, so klar. Habe ich gedacht. Ich habe probeweise eine Freundin an meinen Rechner gesetzt, die dann auch prompt fragte: »Und nun?«</p>
<p>Nur weil ich weiß, dass der Besucher scrollen kann, muss es ja der Besucher nicht begreifen. Also habe ich eine bekannte Navigation hinzugefügt. Da sich das Menü nun aber unter dem eigentlichen Inhalt befindet, habe ich zusätzlich den kleinen Pfeil in grün hinzugefügt. In der Hoffnung, dass mehr Leute die Navigation finden. Zusätzlich steht beim Portfolio die Aufforderung, sich durch selbiges zu klicken. Sobald der User einmal gesehen hat, wie sich der Inhalt bewegt, weiß er hoffentlich, wie die Seite zu bedienen ist.<br />
Ob das bei allen Usern klappt, werden die nächsten Wochen zeigen.</p>
<h4>Mit ohne alles</h4>
<p>Als professioneller Webworker kommen wir nun nicht umhin zu fragen: Was passiert, wenn?</p>
<p>Was passiert, wenn der User gar kein JavaScript hat? In dem Fall sieht er alle Inhalte in dem kleinen Fenster mit einen horizontalen Scroll-Balken und kann einfach nach links und rechts scrollen. Erst, wenn JavaScript aktiviert ist, erscheint die untere Navigation und diverse Inhalte werden anders angeordnet.</p>
<p>Was passiert, denn der User die Schrift vergrößert? Bei einem reinen Text-Zoom wächst die Seite schön mit. Im Firefox übersteht das Design bei 1280&#215;1054 Pixeln drei Vergrößerungen per Strg+, danach muss der Nutzer den Bildschirm nach unten scrollen.</p>
<p>Was ist mit Bild-Zoom? Opera und Safari schaffen den Bild-Zoom problemlos. Der inkompetente Internet Explorer 7 zerstört leider das Design. Für mich aber kein Grund, irgendetwas an meinem Code zu ändern.</p>
<p>Was passiert, denn der User die Seite mit 800&#215;600 Pixeln anschaut? Pech!</p>
<p>Und ohne CSS? In dem Fall sind die Inhalte zunächst zu sehen. Falls aber JavaScript aktiv ist, schiebt ein Klick auf die Navigation aber Inhalte aus dem Sichtfenster. Ich könnte das Problem umschiffen; aber den Aufwand spare ich mir hier.</p>
<h4>Performance</h4>
<p>Das große Problem an einem One-Pager ist natürlich: Es muss ziemlich viel auf einmal geladen werden. Insbesondere die Bilder machen sich bemerkbar. Die Navigation ist als <a href="http://www.webkrauts.de/2007/10/20/hovereffekte-mit-css-sprites/">CSS-Sprite</a> angelegt. Ich habe darin das Menü, die Links-Rechts-Pfeile und auch den Text im Kopf zusammengefasst. Das spart zwar keinen Speicherplatz, aber einige HTTP-Requests.</p>
<p>In der fast finalen Version kam ich trotzdem auf 33 <a href="http://www.webkrauts.de/2008/12/13/sehr-sehr-schnelle-seiten-website-performance-best-practice/">HTTP-Requests</a>: 1 HTML-File, 3x JavaScript, 2 Style-Sheets, 1 CSS-Image und 26 weitere Bilder. Die Bilder haben mit 732 Kilobyte den größten Anteil; insgesamt liege ich bei 851 kb.</p>
<p>Bei den Bildern habe ich bereits vorher darauf geachtet, dass sie jeweils möglichst klein sind. Im Gegensatz zu anderen Projekten habe ich bei jpgs schon mal eine höhere Komprimierung gewählt, um ein paar kb zu sparen. Ich jage trotzdem alle Bilder noch einmal durch <a href="http://developer.yahoo.com/yslow/smushit/">Smush It</a> (ist Teil von Firebug) und spare so noch einmal 26,2 kb. Bei anderen Projekten lässt sich da deutlich mehr herausholen. Die beiden Style-Sheets fasse ich zu einem zusammen.</p>
<p>In dem Versuch, richtig clever zu sein, kam ich auf die Idee, auf die kleinen Bilder im Portfolio zu verzichten. Schließlich muss ich ja ohnehin die großen Bilder laden, da kann ich sie eigentlich doppelt nutzen und den Browser daraus Thumbnails kleinrechnen lassen. D.h. ich packe die Bilder in ein zusätzliches &lt;span&gt;, lasse das Bild dann skalieren und durch das span in der Höhe abschneiden. Das spart zehn HTTP-Requests und noch einmal knapp 100 kb.<br />
Leider bringt das einige Nachteile mit sich. Zum einen rechnet ein Browser die Bilder zwar kleiner, hübsch sehen sie aber nicht aus. Zum anderen wird die Animation langsamer, wenn das kleingerechnete Portfolio ins Bild kommt. Da überwiegen also die Nachteile – übrigens <a href="http://textformer.de/relaunch/v4">hier zu sehen</a>. So nehme ich lieber die zusätzlichen 100kb in Kauf und bin flexibler, weil das kleine Bild nun was anderes zeigen könnte als das große.</p>
<p><a href="https://addons.mozilla.org/de/firefox/addon/5369/">YSlow</a> zählt übrigens noch ein paar Punkte auf, die ich verbessern könnte, etwa jQuery per <a href="http://de.wikipedia.org/wiki/Content_Distribution_Network">CDN</a> auslagern. Davon halte ich jedoch nicht allzuviel; irgendwer könnte dann meine Besucher mitzählen. Ich könnte mein JavaScript noch minifzieren, vermutlich lässt sich alles auch cleverer programmieren, viel ist daran aber nicht zu sparen, es ist ja nur 3kb groß.</p>
<h4>Barrierefreiheit</h4>
<p>Zum Thema Accessibility gab es einen Mini-Mini-Test der Seite mit dem Screenreader. So viel war danach nicht zu optimieren. Die Bilder hatten bereits einen entsprechenden alternativen Text, das Captcha beim Formular ist absichtlich nur eine einfache Frage.</p>
<p>Ich habe ein paar Links der Marke »Webseite ansehen« um die Domain erweitert, damit die Links auch eindeutig sind. Die dynamischen Links bei Leistungen/Zur Person funktionieren auch im Screenreader, allerdings sprang der Screenreader danach zum Bild. Mit etwas JavaScript wird nun nach einem Klick die neue Überschrift fokussiert.</p>
<p>Ein ausführlicher Test mag hier mehr Stellen finden, die optimiert werden könnten. Für den Moment reicht mir der aktuelle Stand.</p>
<h4>Suchmaschinenoptimierung</h4>
<p>Gibt es nicht.</p>
<p>Ich feile zwar immer noch an den Texten, es geht mir aber nur noch darum, lockerer zu werden. Dabei verschwende ich keinen einzigen Gedanken an Suchmaschinenoptimierung. Wenn ein Keyword auftaucht, ist es eben so, aber ich setze sie nicht absichtlich ein, um ein höheres Maß an SEO zu erreichen. </p>
<h4>Sonderbehandlungen</h4>
<p>Ich brate zwei Extrawürste: Eine bekommt der Internet Explorer 6, die andere ist fürs iPhone.</p>
<p>Die Seite würde im Internet Explorer 6 grundsätzlich funktionieren. Es gäbe keinen Durchsicht-Effekt in der Navigation und ich müsste die Elemente mit einem Extra-Stylesheet etwas anders formatieren, aber den Look der Seite schafft auch der IE6. Allein, ich gönne mir auf meiner eigenen Seite den Luxus, den IE6 zu ignorieren. Bzw. ignorieren ist das falsche Wort, der IE6 bekommt von mir ganz anderen Inhalt ausgeliefert. Es gibt ein anderes Foto und den mehr oder weniger freundlichen Hinweis, doch bitte den Browser zu wechseln.<br />
Alles andere dazu habe ich schon vor eineinhalb Jahren <a href="http://pisto-magazin.de/artikel/abschied-vom-ie6">im Pisto-Magazin erörtert</a>.</p>
<div id="attachment_766" class="wp-caption alignleft" style="width: 470px"><img src="http://www.webkrauts.de/wp-content/uploads/2010/05/textformer-ie6.jpg" alt="Die Webseite im Internet Explorer 6" title="textformer-ie6" width="460" height="293" class="size-full wp-image-766" /><p class="wp-caption-text">Die Webseite im Internet Explorer 6</p></div>
<p>Auf dem iPhone würde die Seite auch funktionieren. Und zwar so wie sie ist. Allerdings zoomt sich das iPhone das Inhaltsfenster etwas klein zurecht. Und die Animationen sind in dieser Größe eher hinderlich. Also verzichte ich ganz auf JavaScript und ordne die Inhalte untereinander an statt nebeneinander. Die Portfolio-Übersicht fliegt ganz raus und von den Bildern für die Rubriken News etc. kommt nur noch das Leistungen-Bild zum Zuge, damit zum Start ein Bild zu sehen ist. Das spart zehn kleine Portfolio-Bilder und sechs Fotos bei den Rubriken. So müssen nur noch knapp 460kb geladen werden. Durchaus sinnvoll für einen mobilen Browser.<br />
Die iPhone-Sonderbehandlung gibt es nur, weil ich zufällig selbst ein iPhone habe. Weitere Anpassungen für andere mobile Geräte erspare ich mir.</p>
<p>In dem Fall nutze ich übrigens eine Weiche per PHP. Wird entweder ein iPhone oder der IE6 erkannt, wird per PHP anderer oder reduzierter Inhalt ausgeliefert. Sonst wird die normale Seite gezeigt. Wer genau hinschaut, stellt fest, dass ich den Text im Kopf jeweils leicht angepasst habe.</p>
<h4>Die ewige Baustelle</h4>
<p>Ich habe die Seite online gestellt, damit ich überhaupt weiterkomme. Sonst bringe ich noch zwei weitere Jahre damit zu, hohe Ansprüche nicht erfüllen zu können. Natürlich habe ich noch ein paar Punkte auszusetzen:</p>
<ul>
<li>Die Stockfotos sind zwar für den Moment ok, aber eigentlich sollte auch das Design deutlich verspielter sein. Ich träume immer noch von eigenen Robotern, die ich für mein Corporate Design nutzen kann. Ich mag eben Character Design. Vielleicht fange ich erst einmal mit einem Twitter-Vogel rechts über dem Inhalt an.</li>
<li>Das Print-CSS könnte auch etwas mehr Sorgfalt vertragen. Für den Ausdruck stelle ich aber lieber ein zusätzliches PDF-Portfolio zur Verfügung.</li>
</ul>
<p>Trotz aller Dinge, die ich noch auszusetzen hätte, ist diese Version aber schon mal online. Und nicht wieder halb fertig am eigenen Anspruch gescheitert.</p>
<h5>Zum Autor</h5>
<p><img id="image125" src="http://www.webkrauts.de/wp-content/uploads/2006/11/nicolai_schwarz_60x60.jpg" alt="Autorenfoto: Nicolai Schwarz" class="bild-links"/>Nicolai Schwarz arbeitet unter dem Namen <a href="http://www.textformer.de">textformer mediendesign</a> als selbstständiger Designer und Webentwickler in Dortmund. Gelegentlich schreibt er darüber, zum Beispiel für das Webstandards-Magazin, t3n, PHP User oder eben auf webkrauts.de</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webkrauts.de/2010/05/19/ein-verspielter-one-pager-ii-handwerk/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Ein verspielter One-Pager I: Prelude</title>
		<link>http://www.webkrauts.de/2010/05/18/ein-verspielter-one-pager-i-prelude/</link>
		<comments>http://www.webkrauts.de/2010/05/18/ein-verspielter-one-pager-i-prelude/#comments</comments>
		<pubDate>Tue, 18 May 2010 05:06:06 +0000</pubDate>
		<dc:creator>Nicolai Schwarz</dc:creator>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[Konzeption]]></category>
		<category><![CDATA[Relaunch]]></category>

		<guid isPermaLink="false">http://www.webkrauts.de/?p=760</guid>
		<description><![CDATA[<p>Im täglichen Geschäft bleibt das eigene Design, der eigene Internetauftritt von Webworkern oft außen vor. Irgendein Projekt für Kunden ist immer wichtiger; schließlich ist der Kunde König. Aber irgendwann ist der Relaunch einfach fällig. Nicolai Schwarz berichtet aus der Praxis, der erste Teil einer Art »Logbuch eines Relaunchs«.</p> ]]></description>
			<content:encoded><![CDATA[<p>Die letzte Version meiner Webseite textformer.de ist im Mai 2006 online gegangen. In Webjahren ist das eine Ewigkeit her. Anfang 2009 habe ich deshalb angefangen, an einem Relaunch zu arbeiten. Nebenbei, und dementsprechend zog es sich hin. Schlimmer noch: Alle paar Monate habe ich in Teilen wieder von vorne angefangen, weil mir die alte Aufteilung nicht mehr gefallen hat. Oft fehlte nur ein Element: Illustrationen. Weil ich mir in den Kopf gesetzt hatte, die Webseite mit Illustrationen aufzupeppen. Das ist leider kontraproduktiv, wenn man selbst nicht zeichnen kann, aber auch keinen befreundeten Illustrator heranziehen möchte, weil man wirklich alles selbst machen will.</p>
<p><a href="http://www.textformer.de"><img src="http://www.webkrauts.de/wp-content/uploads/2010/05/textformer-startseite-460x345.jpg" alt="Die aktuelle Startseite von textformer.de" title="textformer-startseite" width="460" height="345" class="alignleft size-medium wp-image-764" /></a></p>
<p>Mittlerweile ist die <a href="http://textformer.de">neue Webseite online</a>. Endlich. Und im Gegensatz zu Kundenprojekten kann ich hier etwas ausführlicher über das Wie, Warum und Wieso erzählen. Viele Aspekte dieses ersten Teils sind rein subjektiv. Es gibt gute Gründe, zu anderen Schlüssen zu kommen.</p>
<h4>Alles auf Null</h4>
<p>Dieser Relaunch startete ganz am Anfang: beim Namen. Ich firmiere seit 2003 unter dem Namen »textformer«. Ursprünglich sollte es bedeuten: Der Kunde liefert den Text, den Inhalt &ndash; ich sorge für die äußere Form, das Design. Nun denken die meisten Leute aber, dass ich texte. Was ich bei einigen Kunden mittlerweile zwar mache, was aber nicht meine eigentliche Dienstleistung ist. Insofern ist der Name &ndash; sagen wir mal &ndash; zumindest suboptimal gewählt.</p>
<p>Also habe ich mehrere Wochen überlegt, ob ich vielleicht nur unter meinem Namen firmiere. Das funktioniert für andere Dienstleister schließlich auch ganz gut. Die arbeiten dann oft mit ihren Initialen &ndash; da bin ich beim Namen »Nicolai Schwarz« schon mal äußerst schlecht bedient. Außerdem läuft mein twitter-Account auf den Namen textformer; diverse andere Seiten verlinken auf und nennen textformer.de, Text ist mir wirklich wichtig und vor allem: Ich mag das Signet. Das t und das f verbinden ideal Text und Form. Leute erkennen in dem Zeichen ein Reagenzglas, eine Leier, ein Drachenschiff, ein chinesisches Schriftzeichen &ndash; alles Ideen, mit denen ich sehr gut leben kann.</p>
<p>Ich habe mich also dazu entschieden, bei textformer.de zu bleiben.</p>
<h4>Formulierungsschwierigkeiten</h4>
<p>Ein Firmenname lädt dazu ein, sich hinter ihm zu verstecken. Alles hat dann eben textformer mediendesign erledigt. Das habe ich auf der alten Webseite so gehandhabt. Nun bin ich aber selbstständig  und arbeite erst einmal alleine. Das sollen Besucher ruhig deutlich sehen. Außerdem finde ich die Ich-Form bei einigen Kollegen ganz charmant. Also habe ich mich bemüht, die meisten Text auf ein Ich umzuschreiben.</p>
<p>Eine gewisse Unentschlossenheit ist trotzdem zu erkennen: Im Kopf ist zwar das Signet zu sehen. Statt textformer.de oder textformer mediendesign steht dort aber mein Name. Ideal ist es noch nicht; lediglich das beste, was mir bisher für den Kopf eingefallen ist &ndash; und ich habe einige Dutzend Versionen ausprobiert und verworfen.</p>
<p>Charmant finde ich hier übrigens die Lösung von Vibor Viskovic. Er verbindet mit einem einfachen Satz seinen Namen mit dem Firmennamen <a href="http://creativeswitch.net/">CreativeSwitch</a>.</p>
<h4>Design und Webentwicklung</h4>
<p>Eine andere Schwierigkeit bei unsereins ist ja, den Leuten zu erklären, was wir genau machen. Ich mache mehr als Screendesign; bin aber kein Programmierer. Webworker hört sich zwar gut an, ist aber genauso schwammig. Außerdem gestalte ich für einige Kunden auch Logos, was auch nicht alle Webleute machen. Mittlerweile nenne ich mich Designer und Webentwickler – schön kurz und knapp. So handhabt es zum Beispiel auch <a href="http://www.matthamm.com/">Matt Hamm</a>, der seine Tätigkeiten ebenfalls schön plakativ in den Vordergrund stellt.</p>
<p>Gut, Design und Webentwicklung also. Das sollte im Idealfall auch auf der Webseite rüberkommen. Webentwicklung lässt sich gut mit ein paar JavaScript-Effekten darstellen; ist nicht so kompliziert, macht sich aber bei vielen Kunden ganz gut. Was das Design angeht: Ich hatte mir früh in den Kopf gesetzt, Illustrationen zu nutzen. Die bastle ich zwar nie für Kunden, wollte sie aber auf meiner Seite haben.</p>
<p>Außerdem habe ich nicht so viele Inhalte, dass ich sie unbedingt auf mehrere Seiten verteilen müsste. Es sollte daher ein One-Pager werden. Und es sollte verspielter wirken als früher. Insofern lautete das kurze Briefing an mich selbst: Verspielter One-Pager, der für Design und Webentwicklung steht.</p>
<p>Die Webseite dient ansonsten nur als erweiterte Visitenkarte. Ich bekomme meine Kunden in der Regel über Empfehlungen oder Vorträge, die ich halte. Ich bin also nicht darauf angewiesen, über die Webseite nach neuen Kunden zu fischen.</p>
<h4>Und eins, und zwei, und drei</h4>
<p>Es hat mehrere Anläufe und etwas über ein Jahr gebraucht, bis ich tatsächlich eine neue Webseite online geschaltet habe. Zwei, drei erste Varianten liegen immer noch halbfertig auf meinem Server rum.</p>
<p>Bei <a href="http://textformer.de/relaunch/v1">Version 1</a> ist bereits alles als One-Pager angerichtet. Eine Infobox am linken Rand gibt eine ständige kurze Beschreibung über das Unternehmen, das Portfolio steht im Mittelpunkt, kleine Boxen enthalten die weiteren Infos. Es war von Anfang so geplant, dass nur wenig Platz für Texte zur Verfügung stehen sollte; ich wollte mich möglichst kurz fassen. Oben sollte es eine Illustration von Dortmund geben, die per <a href="http://en.wikipedia.org/wiki/Parallax_scrolling">Parallax-Scrolling</a> hübsch anzusehen wäre.<br />
Wenig später dachte ich mir: Text-Boxen zu klein, und die Illustration hätte das <a href="http://de.wikipedia.org/wiki/Dortmunder_U">Dortmunder U</a> enthalten, das hier in der Gegend mittlerweile zu oft für alles mögliche verwendet wird.</p>
<div id="attachment_761" class="wp-caption alignleft" style="width: 470px"><a href="http://www.webkrauts.de/wp-content/uploads/2010/05/textformer-relaunch-v1.jpg"><img src="http://www.webkrauts.de/wp-content/uploads/2010/05/textformer-relaunch-v1-460x145.jpg" alt="Relaunch von textformer.de - 1. Versuch" title="textformer-relaunch-v1" width="460" height="145" class="size-medium wp-image-761" /></a><p class="wp-caption-text">Relaunch von textformer.de - 1. Versuch</p></div>
<p><a href="http://textformer.de/relaunch/v2">Variante 2</a> ist der Versuch, doch stärker meinen Namen (also: Schwarz) zu berücksichtigen. Das heißt alles eher dunkel zu halten. Hier gibt es zwei getrennte Bereiche: Oben allein das Portfolio, hell und damit hervorgehoben. Unten kleine Boxen, die hin- und hergeschoben werden können und wirklick nur Platz für minimale Infos bieten.<br />
Wertung: Schon besser (finde ich zumindest), aber wirklich tierisch wenig Platz unten.</p>
<div id="attachment_762" class="wp-caption alignleft" style="width: 470px"><a href="http://www.webkrauts.de/wp-content/uploads/2010/05/textformer-relaunch-v2.jpg"><img src="http://www.webkrauts.de/wp-content/uploads/2010/05/textformer-relaunch-v2-460x401.jpg" alt="Relaunch von textformer.de - 2. Versuch" title="textformer-relaunch-v2" width="460" height="401" class="size-medium wp-image-762" /></a><p class="wp-caption-text">Relaunch von textformer.de - 2. Versuch</p></div>
<p>Die <a href="http://textformer.de/relaunch/v3">nächste Iteration</a> ist nur eine Abwandlung. Keine Kästen mehr unten, stattdessen eine Navigation mit den wichtigsten Punkten. Die Inhalte selbst kann man oben schon in einem Rutsch durchscrollen, wenn man will. Das Portfolio bot vorher Platz für 15 Beispiele, das war mir dann doch etwas zuviel. So wurden daraus zehn Beispiele. Eines ist absichtlich hervorgehoben, um es dem Besucher einfacher zu machen, einen Link als ersten anzuklicken. Dazu kommt kurzer Text, der nur den Zweck hat zu sagen: »Ja, hier kann man klicken, also klick!«.<br />
Diese Fassung war eigentlich schon fertig. Kollegen haben mich überzeugt, auf die Anfangsanimation (das Herausfahren der Elemente) zu verzichten; es wäre nicht mehr so viele daran zu tun gewesen. Allein, ich wollte Illustrationen haben, für die ich nie Zeit (oder Talent) hatte.</p>
<div id="attachment_763" class="wp-caption alignleft" style="width: 470px"><a href="http://www.webkrauts.de/wp-content/uploads/2010/05/textformer-relaunch-v3.jpg"><img src="http://www.webkrauts.de/wp-content/uploads/2010/05/textformer-relaunch-v3-460x401.jpg" alt="Relaunch von textformer.de - 3. Versuch" title="textformer-relaunch-v3" width="460" height="401" class="size-medium wp-image-763" /></a><p class="wp-caption-text">Relaunch von textformer.de - 13 Versuch</p></div>
<h4>und vier</h4>
<p>Bis ich dann wieder Zeit für die Seite hatte, gefiel mir das dunkle Design schon wieder nicht mehr. In dem Fall habe ich mir selbst ein Datum gesetzt, an dem die Seite in jedem Fall online gehen sollte. So ist sie nun in der <a href="http://textformer.de">aktuellen Form online</a> &ndash; ohne Illustrationen.</p>
<p>Der eigentliche Inhalt ist auf einer üblichen Breite von 960 Pixeln untergebracht. Im Kopf gibt es eine Mini-Vorstellung. Ich gehe davon aus, dass die meisten Besucher schon vorher wissen, was ich mache. Das bestätige ich noch einmal im Kopf und zeige dann gleich das Portfolio. Die Kurzinfo im Kopf ist noch eine Grafik, ich habe aber absichtlich die <a href="http://www.josbuivenga.demon.nl/museo.html">Museo als Schrift</a> gewählt, um den Part irgendwann mal als reinen Text zu implementieren.</p>
<p>Idealerweise startet die Seite später mit einer Mischung aus aktuellem Inhalt plus Illustration. Die Hilfsfarbe grün werde ich je nach Jahreszeit wechseln. In der Navigation schiebt sich der grüne Balken lustig unter die Schrift hindurch &ndash; auch wenn es kaum jemandem auffallen wird.</p>
<p>Soviel zum Vorspiel. Morgen geht es weiter mit der Umsetzung und dem Handwerk.</p>
<p>Links zum Thema:</p>
<ul>
<li><a href="http://pisto-magazin.de/artikel/reduziert-aufs-wesentliche">Reduziert aufs Wesentliche</a> &#8211; Ein Plädoyer für One-Pager (zufällig auch ein Artikel von mir)</li>
<li><a href="http://onepagelove.com/">One Page Love</a> &#8211; eine Sammlung von One-Pagern</li>
<li><a href="http://www.designmeltdown.com/chapters/OnePageSites/Part7.aspx">One Page Sites</a> &#8211; eine weitere Sammlung bei Design Meltdown</li>
</ul>
<h5>Zum Autor</h5>
<p><img id="image125" src="http://www.webkrauts.de/wp-content/uploads/2006/11/nicolai_schwarz_60x60.jpg" alt="Autorenfoto: Nicolai Schwarz" class="bild-links"/>Nicolai Schwarz arbeitet unter dem Namen <a href="http://www.textformer.de">textformer mediendesign</a> als selbstständiger Designer und Webentwickler in Dortmund. Gelegentlich schreibt er darüber, zum Beispiel für das Webstandards-Magazin, t3n, PHP User oder eben auf webkrauts.de</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webkrauts.de/2010/05/18/ein-verspielter-one-pager-i-prelude/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Frühjahrsputz in einem Hochhaus</title>
		<link>http://www.webkrauts.de/2010/05/04/fruehjahrsputz-in-einem-hochhaus/</link>
		<comments>http://www.webkrauts.de/2010/05/04/fruehjahrsputz-in-einem-hochhaus/#comments</comments>
		<pubDate>Tue, 04 May 2010 05:37:34 +0000</pubDate>
		<dc:creator>Martin Labuschin</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Artikel]]></category>

		<guid isPermaLink="false">http://www.webkrauts.de/?p=758</guid>
		<description><![CDATA[<p>Webseiten sind nie fertig. Immer ist was zu tun - zu streichen, zu aktualisieren, zu löschen. Manche Webseiten sind über Jahre immer größer geworden; eine wilde Sammlung an Einzelseiten, die nun irgendwie gepflegt werden müssen. Martin Labuschin stellt Gedanken, Erfahrungen und Ideen vor, wie solch organisch gewachsene Webseiten modernisiert werden können.</p>]]></description>
			<content:encoded><![CDATA[<p>Ein Teil meiner Arbeit besteht darin, die komplexen und organisch gewachsenen Webseiten von Trusted Shops daraufhin zu optimieren, dass sie leichter erweiterbar sind und dem technischen Stand von heute entsprechen. Die Webseiten bestehen zu einem Teil aus »semi-statischen« HTML/PHP-Dateien, zum anderen aus WordPress-Blogs. Die einzelnen Lokalisierungen der <a href="http://trustedshops.de/shopbetreiber">B2B-Webseite</a> (deutsch, englisch, französisch etc.) und die <a href="http://trustedshops.de/">B2C-Webseite</a> laufen jeweils eigenständig.</p>
<h3>Welche Herausforderungen bestehen konkret?</h3>
<p>Der Großteil der Unterseiten hat jeweils eigene Header, Sidebars und Footer. Zentrale Dateien (php-includes) für Bereiche, die sich auf jeder Seite wiederholen, gibt es nicht. Trotz identischer Layouts werden in jeder Webseite eigene Javascript-, CSS- und Grafikdateien, sowie Inline-Javascript und -CSS verwendet. Dass es bessere Vorgehensweisen gibt, wissen wir natürlich mittlerweile.</p>
<p>Da wir zur Zeit an vielen umfangreichen Erweiterungen aller Bereiche der Webseite arbeiten, ist die Entwicklung schlanker Work-Flows ein wichtiges Ziel. Es sind sehr viele <a href="http://de.wikipedia.org/wiki/Rewrite-Engine">RewriteRules</a> im Einsatz, die teilweise mehrfach weiterleiten. Das macht die Organisation der URLs sehr umfangreich. Es finden sich etwa sehr viele Wiederholungen aufgrund der Mehrsprachigkeit auf den Webseiten wieder.</p>
<p>Außerdem müssen alle Optimierungen im laufenden Betrieb erfolgen.</p>
<h3>Was tun mit bestehenden Seiten?</h3>
<p>Der Einsatz eines CMS kommt für uns vorerst nicht in Frage, da uns die Zeit fehlt, die große Auswahl an System auf Basis unserer Sicherheits- und Flexibilitätsansprüche zu evaluieren. Es gilt, einen guten Kompromiss zu finden &#8211; einerseits wollen wir die bestehenden Work-Flows optimieren, andererseits müssen wir den laufenden Betrieb aufrechterhalten. Wir gehen bei bestehenden Seiten, an denen Änderungen vorgenommen werden müssen, wie folgt vor:</p>
<p>Sich wiederholende Bereiche &#8211; wie Header, Navigation, Sidebar oder Footer &#8211; ersetzen wir durch Include-Dateien. CSS-Angaben holen wir aus dem Body-Element und sammeln die Angaben im Head-Element. So sparen wir wiederholte Angaben und können Gestaltungsänderungen schneller vornehmen. Wenn der Umfang der CSS-Angaben zu groß wird, lagern wir diese in einer seperaten CSS-Datei aus. Analog sammeln wir die Javascript-Angaben am Ende des Body-Elements. Wenn auch hier der Umfang zu groß wird, greifen wir hier ebenso auf eine seperate Datei zurück. Javascript-Dateien werden am Ende des Dokuments eingebunden, um die Performance zu steigern.</p>
<p>Aufgrund eines eingespannten Zeitplanes können wir meist nicht die gesamte Datei nach Optimierungsmöglichkeiten durchsuchen. Wenn uns jedoch während unserer Arbeit Syntaxfehler auffallen, korrigieren wir diese. Wenn wir bspw. Teile der deutschen Webseite für fremdsprachige Seiten benötigen, überprüfen wir den Code vor dem Kopieren auf Fehler und bereinigen ihn ggf.</p>
<p>Wir erreichen somit zwar kein absolut valides Markup, aber eine höhere Performance und werden flexibler für künftige Weiterentwicklungen. Bestehendes Markup wird stetig qualitativ hochwertiger, Fehler werden nicht weitergetragen. </p>
<h3>Was tun mit neuen Seiten?</h3>
<p>Neue Unterseiten erhalten automatisch eine höhere Priorität in der Entwicklungsphase. Daher kann hier die Qualität gesteigert werden. Hier gilt folgendes Vorgehen:</p>
<p>Wir wenden möglichst häufig das <a href="http://de.wikipedia.org/wiki/Don%E2%80%99t_repeat_yourself">DRY</a>-Prinzip an. Daher nutzen wir fertige Templates. Diese fügen wiederholte Elemente mittels Include-Dateien zu einem Layout zusammen. Bevor wir mit der formalen Qualitätssicherung beginnen, legen wir ein besonderes Augenmerk auf valides Markup. Wir evaluieren den Bedarf an externen Resourcen (CSS, Javascript), um Overhead zu vermeiden, und setzen auf Open-Source-Lösungen (<a href="http://jquery.com/">jQuery</a>, <a href="http://getkirby.com/">Kirby</a>), um Zeit einzusparen, die wir dann weiteren Optimierungen widmen.</p>
<h3>Was tun mit mittlerweile ungenutzen Seiten?</h3>
<p>Zunächst ist zu definieren, ab wann eine Unterseite als nicht mehr verwendet gilt und ggf. gelöscht werden kann.</p>
<ol>
<li>Wenn sie nicht mehr intern verlinkt ist?</li>
<li>Wenn sie durch eine neue Seite ersetzt wurde?</li>
<li>Wenn sie keine Besucher mehr hat?</li>
<li>Wenn sie ihre Bedeutung verloren hat, da der Inhalt abgelaufen ist?</li>
</ol>
<p>Dabei kamen wir zu folgendem Ergebnis: Wenn sowohl 1. als 3. zutreffen, können wir die Datei höchstwahrscheinlich löschen. Doch letztendlich ist das Risiko, Fehler zu produzieren höher, als der Vorteil, der durch das Löschen entsteht.</p>
<p>Der Großteil dieser mittlerweile unnützen Dateien besteht aus Seiten für Aktionen, ehemaligen Partner und anderen zeitlich begrenzten Inhalten. Wenn ein solcher Fall eintrifft, sehen wir  folgende Optionen vor: </p>
<ul>
<li>Wenn es sich um eine Seite handelt, die Teil einer Sammlung ist (z. B. eine Partnerseite), leiten wir auf die Übersichtsseite weiter. Meist mit einer permanenten Weiterleitung.</li>
<li>Wenn es sich um eine abgelaufene Aktion oder Ähnliches handelt, wird auf die Startseite der jeweiligen Webseite weitergeleitet, wo dann ein Hinweis erscheint.</li>
<li>Wenn es sich um Informationen handelt, die nicht mehr kommuniziert werden (Produktentfernung) entscheiden wir von Fall zu Fall, ob wir einen 404-Fehler-Code ausliefern oder zur entsprechenden Startseite weiterleiten.</li>
</ul>
<p>Diese Ansätze führen dazu, dass sich der Umfang der RewriteRules weiter erhöhen wird. Das <a href="http://de.wikipedia.org/wiki/Refactoring">Refactoring</a> der RewriteRules und das damit zusammenhängende Anpassen ihrer <a href="http://de.wikipedia.org/wiki/Software-Test">Tests</a> ist in der Prioritätenliste nachgeordnet. </p>
<h3>Fazit: Ist das der heilige Gral?</h3>
<p>Die verfügbare Zeit für das Verbessern von bestehenden Seiten ist ausschlaggebend. Je ambitionierter die Zeitpläne für eine Optimierung veranschlagt sind, desto sorgsamer müssen die Prioritäten festgelegt werden: Validität? Semantik? Performance? Das muss jedes Web-Entwicklungs-Team für sich selbst entscheiden.</p>
<h4>Über den Autor</h4>
<p><img src="http://www.webkrauts.de/wp-content/uploads/2010/05/martin_labuschin.jpg" alt="Autorenfoto: Martin Labuschin"  class="bild-links" />Martin Labuschin ist Web-Entwickler und Usability-Experte bei der <a href="http://www.trustedshops.de/">Trusted Shops GmbH</a> (Köln). Er führt ein <a href="http://labuschin.com">Blog</a> über die Themen Design, Usabilty, Produktivität und Web-Entwicklung. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.webkrauts.de/2010/05/04/fruehjahrsputz-in-einem-hochhaus/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

