<?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; Adventskalender 2006</title>
	<atom:link href="http://www.webkrauts.de/category/adventskalender/adventskalender-2006/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webkrauts.de</link>
	<description>Für mehr Qualität im Web</description>
	<lastBuildDate>Fri, 03 Sep 2010 07:54:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Die Webkrauts blicken zurück</title>
		<link>http://www.webkrauts.de/2006/12/24/die-webkrauts-blicken-zurueck/</link>
		<comments>http://www.webkrauts.de/2006/12/24/die-webkrauts-blicken-zurueck/#comments</comments>
		<pubDate>Sat, 23 Dec 2006 23:10:09 +0000</pubDate>
		<dc:creator>Nicolai Schwarz</dc:creator>
				<category><![CDATA[Adventskalender 2006]]></category>
		<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Internet Explorer 7]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Rückblick]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://www.webkrauts.de/2006/12/24/die-webkrauts-blicken-zurueck/</guid>
		<description><![CDATA[Das Jahresende ist traditionell die Zeit der großen Jahresrückblicke. Was ist in der Welt passiert? Wer hat die Charts dominiert? Und war die Fußballweltmeisterschaft nicht ein grandioses Ereignis? Wir Webkrauts schließen uns an und werfen einen Rückblick darauf, was sich im weltweiten Netz getan hat.]]></description>
			<content:encoded><![CDATA[<p>Was hat sich in diesem Jahr im Netz getan? Wir haben die Webkrauts gefragt: <strong>Welcher Trend, welches Ereignis, welches Produkt hat Dich 2006 besonders beeindruckt?</strong></p>
<h4>Der späte Siegeszug von Javascript</h4>
<p>Der Trend des Jahres 2006 waren in meinen Augen ganz klar Javascript-Frameworks. Die schiere Menge an wirklich gut gemachten Klassensets ist geradezu erschlagend. Neben dem Platzhirsch <a href="http://prototype.conio.net/">Prototype</a> haben die &#034;jungen Wilden&#034; wie <a href="http://jquery.com/">jQuery</a>, <a href="http://developer.yahoo.com/yui/">YUI</a>, <a href="http://mootools.net/">Mootools</a> und Konsorten kräftig aufgeholt. Inzwischen kann man dank der findigen Framework-Entwickler jedes Webprojekt mit wenigen Handgriffen um viele sinnvolle und natürlich auch sinnfreie Gimmicks anreichern.</p>
<p>Es ist absolut fantastisch zu sehen, wie aus den &#034;Scripts&#034; der letzten Jahre auf einmal Objekt-Orientierte Klassen, mit komplexer Vererbung, Erweiterung und allem was dazugehört, wurden. Eine Sprache, die eigentlich längst als nutzlos und teilweise sogar als böse verstanden wurde, ist auf einmal salonfähig und sogar sehr gefragt. Fast keines der &#034;großen Portale&#034; hat im vergangen Jahr darauf verzichtet, sich, mit <a href="http://de.wikipedia.org/wiki/JavaScript">Javascript</a> im Allgemeinen und <a href="http://de.wikipedia.org/wiki/Ajax_(Programmierung)">Ajax</a> im Besonderen, eine Frischzellenkur zu verabreichen.</p>
<p>Dieser frische Wind ist einer der treibenden Kräfte des &#034;Web 2.0&#034; und wird wohl (im Gegensatz zu dem Begriff, den schon jetzt keiner mehr hören mag) auch weiterhin für Furore sorgen.</p>
<p><em>Dirk Ginader</em></p>
<h4>Webstandards mit Frameworks</h4>
<p>Der Trend zu Frameworks (<a href="http://www.rubyonrails.org/">Rails</a>, <a href="http://www.djangoproject.com/">Django</a>, <a href="http://www.cakephp.org/">CakePHP</a> usw.), weil dadurch Entwickler eine vollständige Kontrolle über die Einhaltung von Webstandards bekommen. Bei vielen CMS oder deren Plugins war bzw. ist dies häufig nur durch die Modifikation des Cores möglich. Man muss also Code jenseits der Templates modifizieren, um zum gewünschten Ergebnis zu kommen.</p>
<p><em>Kai Schaper</em></p>
<h4>Websites analysieren mit Firebug</h4>
<p>Das mit Abstand wichtigste Tool bei der Entwicklung von Websites ist für mich <a href="http://www.getfirebug.com">Firebug</a> geworden, eine spektakuläre Erweiterung für den <a href="http://www.mozilla-europe.org/de/">Firefox-Browser</a>, mit dem man die DOM- und CSS-Struktur unglaublich einfach und schnell analysieren kann. Ein JavaScript-Debugger ist auch mit dabei, und viele weitere nützliche Funktionen wird die Version 1.0 mit sich bringen. Ohne Firebug fasse ich inzwischen keine Website mehr an, und mit dieser Meinung bin ich nicht alleine!</p>
<p><em>Gerrit van Aaken</em></p>
<h4>Jede Menge</h4>
<p><em>Trend:</em> <a href="http://www.webkrauts.de/2006/12/05/was-ist-web2/">Web 2.0</a>, <a href="http://de.wikipedia.org/wiki/Ajax_(Programmierung)">AJAX</a>, Weblogs</p>
<p><em>Ereignis:</em> <a href="http://www.webmontag.de/">Webmontag</a>, <a href="http://de.wikipedia.org/wiki/BarCamp">Barcamp</a>, <a href="http://www.geektogether.org/">Geektogether</a></p>
<p><em>Produkte:</em> <a href="http://www.yaml.de/">YAML</a></p>
<p><em>Buch:</em> <a href="http://www.amazon.de/Little-Boxes-Webseiten-gestalten-Grundlagen/dp/3833448695">Little Boxes</a> von Peter Müller (Jaa, man kann auch interessante, nichttechnische Bücher über Webdesign und CSS schreiben, die trotzdem lehrreich und gut zu lesen sind&#8230;und auch noch Spaß machen!)</p>
<p><em>CD/DVD-Schulungen:</em></p>
<ol>
<li><a href="http://www.amazon.com/Designers-Molly-Holzschlag-Andy-Clarke/dp/159671252X">CSS for Designers</a> von Andy Clarke und Molly Holzschlag, erschienen bei Lynda.com (Lynda Weinman)</li>
<li><a href="http://www.amazon.de/Pearson-Education-GmbH-Kunst-CSS-Designs/dp/3827360668">Die Kunst des CSS-Designs</a> von Cornelia Lange, erschienen bei Addison-Wesley</li>
</ol>
<p><em>Browser:</em> <a href="http://www.microsoft.com/germany/windows/ie/default.mspx">Internet Explorer 7</a></p>
<p><em>Arne Kriedemann</em></p>
<h4>It&#039;s all so Two-Oh</h4>
<p>Im Jahr 2006 besonders beeindruckt hat mich der große Web2Null-Boom an verschiedenen Plattformen und Möglichkeiten. Beispiele wie <a href="http://www.studivz.net/">StudiVZ</a>, die Videocommunitys oder die verschiedensten Webangebote, besonders auch der stetige Ausbau beispielsweise vom Webdienst Google zeigt, dass sich immer mehr Kommunikation und Arbeit ins Web verlagert.</p>
<p>Täglich starten neue Web2Null-Angebote. Im Gegensatz zum Vorjahr für mich eine klarer Angebotssteigerung, die aber manchmal auch die Sicht auf die wirklich guten Dienste versperrt.</p>
<p><em><a href="http://johannesries.de">Johannes Ries</a> aus Kahl am Main schreibt unter <a href="http://metafakten.de">metafakten.de</a> über Netzgeschehen und freie Software</em></p>
<h4>Warten aufs X</h4>
<p>Im Bezug auf Webstandards war das besonders die Ankündigung, dass XHTML zugunsten von HTML erst einmal zurückgestellt wird und nun eine neue HTML-Version geplant ist. Das Web ist aufgrund der derzeitigen Browserdominanz durch den Internet Explorer für XHTML einfach noch nicht bereit. Leider.</p>
<p><em>Markus Wulftange</em></p>
<h4>Besuche in der realen Welt</h4>
<p><a href="http://www.webmontag.de/">Webmontage</a> und <a href="http://de.wikipedia.org/wiki/BarCamp">Barcamps</a> waren eine willkommene Gelegenheit Leute zu treffen, die man eigentlich nur in der virtuellen Welt kennt. Das fand ich beeindruckend, vor allem wenn dies in lockerer Atmosphäre geschieht und nicht zu businesslastig wird. Beeindruckt bin ich außerdem von MacOS, ein Betriebssystem, das fast inspirierend wirkt.</p>
<p><em>Eric Eggert studiert Medieninformatik an der Uni Wien und schreibt unter <a href="http://www.yatil.de">yatil.de</a></em></p>
<h4>Neue Äpfel</h4>
<p>2006 ist auch das Jahr des Macintosh. Apple hat es geschafft, in guten halben Jahr die komplette Produktpalette auf x86-Prozessoren umzustellen. Erstaunlich war dabei auch, wie reibungslos der Umstieg geklappt hat. Die meisten PowerPC-Programme funktionieren problemlos auch auf Intel-CPUs und viele Softwarehersteller haben inzwischen schon Universal Binaries veröffentlicht. Hier zeigt sich auch, dass das Festhalten an alten Überbleibseln nicht immer gut ist. Zwar wurde eine gewisse Rückwärtskompatibilität eingebaut (Rosetta), aber letztlich führt doch kaum ein Weg daran vorbei, die Programme an die neue Architektur anzupassen.</p>
<p>Ähnliches würde auch dem Web gut tun. Es lebt vom Fortschritt. Manchmal ist es besser, einen großen, möglicherweise unangenehmen Schritt zu wagen – bereuen wird man nicht, aber man hat Angst davor.</p>
<p><em>Konstantin Käfer</em></p>
<h4>Zoom to Doom</h4>
<p>Der Vergrößerungs-Effekt beim <a href="http://www.microsoft.com/germany/windows/ie/default.mspx">Internet Explorer 7</a>.<br />Nein, beeindruckt ist vielleicht nicht das richtige Wort: erschüttert trifft es eher. <a href="http://www.webkrauts.de/2006/11/03/ie7-einfacher-und-sicherer-aber-auch-besser/">Mit der neuen Version 7</a> ist der Internet Explorer in Lage, Webseiten zu vergrößern. Soweit so gut. Leider vergrößert er nicht nur die Schriften, sondern auch die Bilder, schlichtweg alles.</p>
<p>Das Tragische daran ist, dass mit der großen Verbreitung, die der IE7 im nächsten Jahr erfahren wird, das Konzept der <a href="http://www.webkrauts.de/2004/12/16/festes-vs-flexibles-layout/">flexiblen Layouts</a> ad absurdum geführt wird. Flexible Layouts sind darauf ausgerichtet, dass &#8211; im Normalfall &#8211; lediglich die Schriften vergrößert werden. Wenn der IE nun durch die Bank weg alles vergrößert, also sowohl Schriftgrößen als auch Abstände, Bildern und Grafiken, sind flexible Layouts überflüssig.</p>
<p><em>Nicolai Schwarz betreibt die kleine Agentur <a href="http://www.textformer.de">textformer mediendesign</a> in Dortmund</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webkrauts.de/2006/12/24/die-webkrauts-blicken-zurueck/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Denn Sie tun es – CSS und JavaScript</title>
		<link>http://www.webkrauts.de/2006/12/23/css-und-javascript/</link>
		<comments>http://www.webkrauts.de/2006/12/23/css-und-javascript/#comments</comments>
		<pubDate>Fri, 22 Dec 2006 23:01:37 +0000</pubDate>
		<dc:creator>Christian Heilmann</dc:creator>
				<category><![CDATA[Adventskalender 2006]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.webkrauts.de/2006/12/23/css-und-javascript/</guid>
		<description><![CDATA[In den letzten zwei Jahren gab es mehr und mehr Beispiele im Netz die vorgaben, ehemalige JavaScript-Effekte wie dynamisch aufklappbare Menüs rein mit CSS erreichen zu können. Der Grund war, daß es scheinbar geht und daß JavaScript ja sowieso schwarze Magie sei, die jeden Webdesigner überfordert.
CSS allein kann nicht soo viel…
Diese “CSS only”-Lösungen sind ganz [...]]]></description>
			<content:encoded><![CDATA[<p><strong>In den letzten zwei Jahren gab es mehr und mehr Beispiele im Netz die vorgaben, ehemalige <span lang="en">JavaScript</span>-Effekte wie dynamisch aufklappbare Menüs rein mit <acronym>CSS</acronym> erreichen zu können. Der Grund war, daß es scheinbar geht und daß <span lang="en">JavaScript</span> ja sowieso schwarze Magie sei, die jeden Webdesigner überfordert.</strong></p>
<h4><acronym>CSS</acronym> allein kann nicht soo viel…</h4>
<p>Diese <span lang="en">“<acronym>CSS</acronym> only”</span>-Lösungen sind ganz tolle technische Beispiele, aber im echten Anwendungsbereich auch großer Unfug. Ich habe mich lang und breit darüber in <a href="http://www.wait-till-i.com/index.php?p=327">einem englischen Artikel ausgelassen</a><!-- (will den jemand übersetzen?) -->, doch hier sind die Hauptgründe:</p>
<ul>
<li><acronym>CSS</acronym> hat nur eine Möglichkeit um dynamische Effekte zu erstellen: Pseudoselektoren wie <code>:focus</code> und <code>:hover</code>. <span lang="en">Microsoft Internet Explorer</span> versteht diese nur für <span lang="en">Links</span> und Textfelder.</li>
<li><acronym>CSS</acronym> hat nur eine begrenzte Möglichkeit zusätzliches <abbr>HTML</abbr> und Inhalte zu erstellen, wenn sie nötig sind, und ein dynamisches Menü sollte weder <span lang="en">JavaScript</span> noch <acronym>CSS</acronym> zwangsweise erfordern.</li>
<li><acronym>CSS</acronym> kann nur binär ein- oder ausschalten, in <span lang="en">JavaScript</span> kann man Effekte zeitlich verzögern, um es dem Besucher zu erlauben, auch mal mit der Maus auszurutschen. </li>
<li>Es gibt keine Möglichkeit zu testen ob <acronym>CSS</acronym> eingeschaltet ist, was bedeuten kann, daß man den Besucher mit viel zu vielen <span lang="en">Links</span> verwirrt.</li>
</ul>
<h4><span lang="en">JavaScript</span> kann viel mehr…</h4>
<p><span lang="en">JavaScript</span> dahingegen kann einiges mehr was <acronym>CSS</acronym> nicht kann:</p>
<ul>
<li>Mittels des <acronym title="Document Object Model">DOM</acronym> und <acronym title="Browser Object Model">BOM</acronym> kann man das Dokument nach Belieben verändern und erweitern.</li>
<li>Mittels <code>timeout()</code> kann man Besuchern erlauben Fehler zu machen.</li>
<li>Mittels <span lang="en">Event Handling</span> kann man auf alles, was im Dokument passiert, reagieren – egal ob das per Maus oder Tastatur geschieht.</li>
<li>Ich kann in <span lang="en">JavaScript</span> jederzeit überprüfen ob das, was ich erreichen will, auch von dem Anzeigeprogramm unterstützt wird. Wenn das der Fall ist, kann es losgehen, ansonsten nicht (der klassische Fall von “Tiefe des Wassers prüfen bevor man reinspringt”)</li>
<li>Ich kann Daten, die nur mit <acronym>CSS</acronym> und <span lang="en">JavaScript</span> Sinn machen, per Ajax laden, nachdem die eigentliche Seite geladen ist.</li>
</ul>
<h4>Gemeinsam sind sie stark!</h4>
<p>Diese Pro-<span lang="en">JavaScript</span>-Punkte bedeuten allerdings nicht, daß man nur <span lang="en">JavaScript</span> verwenden sollte, sondern wann immer möglich den <span lang="en"><acronym>CSS</acronym>-Parser</span> seine Arbeit erledigen lassen.</p>
<p>Hier ein paar Beispiele wie <span lang="en">JavaScript</span> und <acronym>CSS</acronym> zusammen arbeiten können:</p>
<h5>Ist <acronym>CSS</acronym> eingeschaltet?</h5>
<p>Einer der Hauptpunkte, den selbsternannte Barrierefreiheit-<span lang="en">Sheriffs</span> immer gerne anbringen, ist, daß Produkte nicht funktionieren, wenn <span lang="en">JavaScript</span> eingeschaltet, aber das passende <acronym>CSS</acronym> nicht erreichbar oder durch ein <span lang="en">User Style Sheet</span> überschrieben wurde.</p>
<p>In <span lang="en">JavaScript</span> ist es allerdings mit einem kleinen Trick ganz einfach möglich zu überprüfen, ob ein <span lang="en">Style Sheet</span> geladen wurde. Der Trick ist, die Höhe oder Breite eines Elementes (was extra dafür angefügt werden kann oder eines, das sowieso auf der Seite ist) zu definieren:</p>
<pre>#ichkannCSS{height:20px;}</pre>
<p>Dann überprüft man in <span lang="en">JavaScript</span>, ob die <code>offsetHeight</code> beziehungsweise <code>offsetWidth</code> des Elementes den gleichen Wert hat:</p>
<pre>var CSStestDingen = document.getElementById(‘ichkannCSS’);
if(CSStestDingen !== undefined){
  if(CSStestDingen.offsetHeight === 20){
     // hier wird CSS gekonnt!
  } else {
    // der kann fei kei CSS ned.
  }
}</pre>
<h5>Unterschiedliches <span lang="en">Styling</span> für <span lang="en">JavaScript</span>- und nicht-<span lang="en">JavaScript</span>-Versionen</h5>
<p>Oft ist es nötig, daß die Seite mit und ohne <span lang="en">JavaScript</span> unterschiedlich daherkommt – gerade wenn man beispielsweise eine Liste in ein Menü verwandelt. Die einfachste Möglichkeit ist es, in <span lang="en">JavaScript</span>, nachdem die Seite geladen wurde, eine <acronym>CSS</acronym> Klasse an das <code>BODY</code>-Element anzufügen und es damit dem <span lang="en"><acronym>CSS</acronym>-Designer</span> zu erlauben, zwei verschiedene <span lang="en">Styles</span> zu erstellen.</p>
<pre>window.onload = function(){
  var klasse = document.body.className ? ‘ dynamisch’:’dynamisch’;
  document.body.className = klasse;
}</pre>
<p>Natürlich gibt das die normalen Ladeprobleme und man sollte statt eines <code>onloads</code> eben <code>addEvent</code> verwenden. Mehr dazu gibt es bei <a href="http://ichwill.net/chapter4.html">“Barrierefreies <span lang="en">JavaScript</span>”</a> nachzulesen.</p>
<h5>Schnelleres <span lang="en">JavaScript</span> als Gratiszugabe</h5>
<p>Diese Technik hat auch noch einen anderen Vorteil: Man kann die schwere Arbeit, Teile der Seite zu verstecken, dem <acronym>CSS</acronym>-Parser überlassen, der dafür erstellt wurde. Wenn man ältere <span lang="en">JavaScript</span>e analysiert, findet man des öfteren solche Schoten:</p>
<pre>var n = document.getElementById(‘nav’);
if(n!==undefined){
  var uls = n.getElementsByTagName(‘ul’);
  for(var i=0; i&lt;uls.length;i++){
    uls[i].style.display = ‘none’;
  }
}</pre>
<p>Schleifen sind hübsch im Haar, doch machen Sie <span lang="en">JavaScript</span> langsam, und wenn man Sie vermeiden kann, sollte man das tun.</p>
<p>Mit einer <code>BODY-ID</code> kann man diese Schleife durch eine Zeile im <acronym>CSS</acronym> ersetzen:</p>
<pre>body.dynamisch #nav ul {display:none;}</pre>
<h4>Hausaufgabe</h4>
<p>Als Hausaufgabe bitte ich darum, einige <span lang="en">“<acronym>CSS</acronym> only”</span>-Lösungen mal mit der Tastatur oder einer wackligen Maus zu testen und generell darüber nachzudenken, wie praktisch doch gute <span lang="en">JavaScript</span> Lösungen sind, die es dem <span lang="en">Designer</span> erlauben, sie einfach im <span lang="en">Style Sheet</span> anzupassen und neu zu gestalten.</p>
<h4>Zum Autor</h4>
<p><img id="image134" src="http://www.webkrauts.de/wp-content/uploads/2006/12/cheilmann.jpg" alt="Autorenfoto: Christian Heilmann" /> Christian Heilmann lebt seit 1999 im Ausland (<abbr>USA</abbr>, England, Indien) und arbeitet derzeit als lei(d|t)ender Entwickler bei <span lang="en">Yahoo!</span> in <span lang="en">London</span>, England. In seiner Freizeit bloggt er bei <a href="http://wait-till-i.com" hreflang="en">wait-till-i.com</a> und schreibt Bücher für <span lang="en">Apress</span> und <span lang="en">Friends Of Ed</span>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webkrauts.de/2006/12/23/css-und-javascript/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Internetauftritte für mobile Endgeräte</title>
		<link>http://www.webkrauts.de/2006/12/22/internetauftritte-fuer-mobile-endgeraete/</link>
		<comments>http://www.webkrauts.de/2006/12/22/internetauftritte-fuer-mobile-endgeraete/#comments</comments>
		<pubDate>Thu, 21 Dec 2006 23:10:24 +0000</pubDate>
		<dc:creator>Manuel Bieh</dc:creator>
				<category><![CDATA[Adventskalender 2006]]></category>
		<category><![CDATA[endgeräte]]></category>
		<category><![CDATA[mobi]]></category>
		<category><![CDATA[mobil]]></category>

		<guid isPermaLink="false">http://www.webkrauts.de/2006/12/22/internetauftritte-fuer-mobile-endgeraete/</guid>
		<description><![CDATA[Jedes neue Handy oder PDA ist heutzutage in der Lage online zu gehen. Doch die wenigsten Webdesigner haben sich bisher Gedanken darüber gemacht, wie sie eine Website für mobile Endgeräte optimieren. Manuel Bieh zeigt Ihnen verschiedene Möglichkeiten dazu und erläutert die Vor- und Nachteile.]]></description>
			<content:encoded><![CDATA[<p>Viele werden sich bisher nicht mit dem Thema befasst haben, viele werden das vielleicht auch in näherer Zukunft erst einmal nicht tun, doch spätestens seit es UMTS und die ersten einigermaßen vernünftigen Browser für Mobiltelefone und PDAs gibt ist das Thema aktueller denn je: die Optimierung von Internetauftritten für mobile Endgeräte.</p>
<p>Fast jeder kennt das, man ist bei Bekannten, hat ein oder zwei Gläschen Wein (wahlweise auch Bier) getrunken, und möchte nun bald heimfahren. Doch natürlich hat man keine Ahnung wann der ÖPNV Richtung Heimat geht. Der Bekannte hat aber leider gerade nicht die Möglichkeit ins Internet zu schauen. Es wäre also jetzt ein leichtes, mit dem Handy samt eingebauten Browser die elektronische Fahrplanauskunft anzusurfen, und sich bequem den nächsten Bus zu suchen.</p>
<p>Leider spielen auch in Zeiten des <a href="http://de.wikipedia.org/wiki/Wap#WAP_2.0">WAP 2.0</a> die wenigsten Internetseiten da mit. Zwar erlauben es moderne Mobilgerätebrowser wie der <a href="http://mini.opera.com">Opera Mini</a> oder der <a href="http://www.mozilla.org/projects/minimo/">Minimo</a> mittlerweile auch rein für das Web optimierte Seiten auf Handys etc. anzuzeigen, dennoch sind diese oft aufgrund großer Datenmengen oder vorausgesetztem JavaScript nur mit Einschränkungen benutzbar.</p>
<p>Dabei muss in einen Webauftritt, der für mobile Geräte angepasst werden soll, nicht einmal viel Aufwand gesteckt werden. Der angesehene amerikanische Entwickler <a href="http://www.cameronmoll.com">Cameron Moll</a> spricht dabei von 4 Methoden:</p>
<ol>
<li>Nichts tun</li>
<li>Styling von Elementen entfernen und ungestaltetes HTML ausgeben</li>
<li>Angepasste <code>media=&quot;handheld&quot;</code>-Stylesheets verwenden</li>
<li>Inhalte, Code und Bilder speziell für Benutzer mobiler Geräte anpassen</li>
</ol>
<p>All diese Methoden haben Vor- und Nachteile, auf die hier kurz eingegangen werden soll.</p>
<h4>Nichts tun und hoffen</h4>
<p>Natürlich macht es am wenigsten Aufwand, nämlich ziemlich genau gar keinen, wenn man eine Seite nicht für mobile Browser optimiert, und darauf hofft, dass ein Benutzer von Handys oder PDAs alle relevanten Informationen auch ohne eine spezielle Anpassung findet. Wenn alles gut verläuft, so findet der User sogar genau die Informationen, welche er beim surfen mit dem Webbrowser vorfindet. Die Seite wird somit sozusagen „unverfälscht“ auf dem Handy wiedergegeben. Allerdings wird bei dieser Methode auch am wenigsten auf die Bedürfnisse von eben solchen Benutzern eingegangen. Es werden unter Umständen eine Menge an unnötiger Daten, große Bilder, Stylesheets, aufgeblähter Code und so weiter übertragen. Das verursacht dem Benutzer auch in der heutigen Zeit noch recht hohe Übertragungskosten. Ein wenig freundlicher ist da schon die nächste Methode.</p>
<h4>„Rohes“ HTML ausgeben</h4>
<p>Bei dieser Methode, bei der die Website im Optimalfall zwischen Inhalt (HTML) und Styling (CSS) trennt, wird auf sämtliche Stylesheets verzichtet, der Handheld-Browser somit dazu gebracht browsereigene Stildefinitionen beim Rendern der Seite zu benutzen. Dies spart zumindest ein wenig Code ein, da keine extra Stylesheets, und somit auch keine möglicherweise definierten, speicherintensiven Hintergrundbilder geladen werden müssen. Doch auch hier besteht die Seite eigentlich aus gewöhnlichem HTML Output, welcher in der Regel für die Ausgabe am Bildschirm erstellt wird.</p>
<h4>Handheld-Stylesheets einbinden</h4>
<p>Eine bessere Variante ist, ein Stylesheet für Mobilgeräte zu optimieren, und dieses für nur eben solche Geräte, mittels <code>media=&quot;handheld&quot;</code>-Attribut mit in die Seite einzubinden. Das bietet uns den Vorteil unnötige Elemente ausblenden zu können oder speicherintensive Bilder gar nicht erst laden zu lassen. Der User muss sich somit auch keine zusätzliche Adresse merken (beispielsweise eine Subdomain wie <a href="http://mobile.google.com">mobile.google.com</a> oder <a href="http://google.com/mobile">google.com/mobile</a>) und das Prinzip der Geräteunabhängigkeit von Dokumenten bleibt somit außerdem gewahrt. Dennoch muss man bei dieser Methode beachten, dass das <code>media=&quot;handheld&quot;</code>-Attribut teilweise immer noch unzureichend unterstützt wird, und selbst dann auch nur einige wenige CSS-Eigenschaften letztendlich vom Browser korrekt interpretiert werden. Der Entwicklungs- und Wartungsaufwand hält sich aber auch bei dieser Methode noch in Grenzen.</p>
<h4>Eigenen Content, Code und Bilder für mobile Geräte</h4>
<p>Die vierte und somit auch letzte Methode ist wohl die, mit meisten Vor- aber auch Nachteilen. Nämlich die Bereitstellung von eigenen Inhalten speziell für Handhelds. Hierbei wird der Code von allen, für die mobile Darstellung irrelevanten Seitenelementen bereinigt. Beispielsweise werden wohl kaum „Seite drucken“ Links, Bilder in hoher Auflösung und dergleichen auf kleinen Handydisplays benötigt. Der Aufwand ist bei dieser Methode wohl am höchsten, da der Entwickler hierbei für gewöhnlich 2 verschiedene Seiten entwickeln muss. Dies widerspricht außerdem dem Prinzip der geräteunabhängigen Erstellung von Dokumenten für das Web. Weiter muss eine solche Seitenversion meist unter einer separaten Adresse aufgerufen werden, was nicht immer für Jedermann logisch und ersichtlich ist. Ein Aufwand der eines Tages umsonst gewesen sein könnte, wenn Mobile Endgeräte später einmal so leistungsfähig wie Desktop PCs sind. Doch bis dahin sollte wohl noch einiges an Zeit vergehen.</p>
<p>Eine kurze Anleitung wie man einen ersten Schritt in die letzte genannte Methode gehen kann, beschreibt Mike Davidson in seinem Artikel „<a href="http://www.mikeindustries.com/blog/archive/2005/07/make-your-site-mobile-friendly">Make your Site Mobile-Friendly in Two Minutes</a>“ (englisch). Dort wird darauf eingegangen wie man mittels eigener Subdomain, binnen 2 Minuten, eine Seite von unnötigen Elementen bereinigen, und den Code durch entfernen von Leerzeilen verkleinern kann.</p>
<h4>Das Ergebnis rechtfertigt den Aufwand</h4>
<p>Lohnt sich ein solcher Aufwand für eine verschwindend kleine Minderheit an Benutzern, die unterwegs ins Internet gehen möchten? Das bisher nur wenige Benutzer vom Handy gebrauch machen um ins Internet zu gehen, dürfte momentan jedoch primär daran liegen, dass sich viele Entwickler die gleiche Frage stellen.</p>
<ul>
<li>Der Benutzer hat stets die volle Kontrolle darüber wo er die Inhalte einer Website lesen möchte. Im Bus auf dem Weg zur Arbeit, zuhause auf dem Sofa oder heimlich im stinklangweiligen Seminar.</li>
<li>Anbieter von Klingeltönen haben es erfolgreich vorgemacht, schon 12-jährige geben jeden Monat viel Geld für Klingeltöne und Handyvideos aus. Das Handy ist längst als neues Medium neben Internet, TV, Radio und Print anerkannt. Wieso sollte man einem Markt, für vergleichsweise so geringen Aufwand so wenig Beachtung schenken? Nach der Kamera wird auch das Internet in Handys von immer mehr Leuten benutzt. Wieso nicht einfach einmal einer der ersten sein, der diesen Markt für sich erschließt?</li>
<li>GPS macht es heute bereits möglich durch fremde Orte und Städte zu navigieren. In Zukunft wird noch viel mehr mit dem Handy in Verbindung mit dem Internet möglich sein. Beispielsweise eine GPS-gesteuerte Suche nach dem nächsten Restaurant in der Umgebung. Ein Handy ist standortunabhängig und kann auch heute schon als Navigationsgerät benutzt werden, entsprechende Software vorausgesetzt.</li>
<li>Durch so genannten Semacode ist es möglich, beispielsweise Informationen mit Wikipedia Artikeln zu verknüpfen. <a href="http://semapedia.org/">Semapedia</a> ist nur ein praktisches Beispiel wie man die Außenwelt über das Handy mit dem Internet in Verbindung bringen kann. Durch Semapedia ist es z. B. möglich, Sehenswürdigkeiten oder interessante Bauwerke mit einem Aufkleber zu bekleben welcher so genannten Semacode enthält (zu finden übrigens auch auf jeder Handyrechnung zur leichteren Auffindung von Kundendaten). Fotografiert man nun mit seiner Handykamera diesen Sticker ist es (ähnlich wie beim EAN-Barcode) möglich, durch diesen auf den entsprechenden Wikipedia-Artikel oder andere Zusatzinformationen geleitet zu werden.</li>
<li>Neben dem Internet hat in letzter Zeit vor allem das Handy unsere Welt verändert wie kaum etwas anderes. Mittlerweile ist es möglich nicht mehr nur beides separat zu benutzen, die Übergänge sind mittlerweile fließend. Über Dienste wie <a href="http://www.skype.com">Skype</a> oder <a href="http://Jajah.com">Jajah</a> ist es möglich über das Internet mit dem Handy zu telefonieren. Mit jedem modernen Handy kommt man problemlos ins Internet. Eine Technologie die sich in den nächsten Jahren mit hoher Wahrscheinlichkeit noch viel weiter entwickeln wird.</li>
</ul>
<h4>Fazit</h4>
<p>Auch wenn viele Stimmen, aus teilweise berechtigten Gründen, gegen die .mobi Top-Level-Domain sind: Die bereits abgeschlossene Einführung einer Domain speziell für Mobile Geräte ist ein weiterer Punkt in einer Liste, welche verdeutlichen soll, welchen Stellenwert die Anpassung von Internetseiten für portable Geräte in Zukunft haben wird. Das Internet wird viele neue Möglichkeiten bieten welche mit dem Handy genutzt werden können. Jemand der im Internet Erfolg haben möchte, sollte nicht davor zurückschrecken zumindest einmal einen Blick auf das „mobile Web“ zu wagen.</p>
<h4>Weiterführende Links</h4>
<ul>
<li><a href="http://www.cameronmoll.com/archives/001304.html">Buchtipp: Cameron Moll &#8211; Mobile Web Design (Englisch)</a> <span>.</span></li>
<li><a href="http://mobiledesign.org/articles/10_reasons_to_publish_to_mobile.php">10 Reasons to Publish to Mobile (Englisch) </a> <span>.</span></li>
<li><a href="http://www.mikeindustries.com/blog/archive/2005/07/make-your-site-mobile-friendly">Make your Site Mobile Friendly in 2 Minutes (Englisch) </a> <span>.</span></li>
<li><a href="http://semapedia.org/">Semapedia Projekt</a> <span>.</span></li>
<li><a href="http://de.wapedia.mobi/">Positivbeispiel: Mobile Wikipedia</a> <span>.</span></li>
<li><a href="http://kicker.mobi/">Positivbeispiel: Kicker.mobi</a> <span>.</span></li>
</ul>
<h4>Zum Autor</h4>
<p><img id="image162" src="http://www.webkrauts.de/wp-content/uploads/2006/12/manuel_bieh_60x60.jpg" alt="Autorenfoto: Manuel Bieh" /><a href="http://www.manuelbieh.de/www/blog">Manuel Bieh</a> aus Dortmund arbeitet als Web-Entwickler und beschäftigt sich seit etwa 4 Jahren intensiv mit der Entwicklung standardkonformer Websites. Als Betreiber eines Fachweblogs und freier Autor für das Dr. Web Magazin veröffentlicht er regelmäßig Artikel zum Thema Usability, XHTML, CSS und Webstandards. Zu seiner großen Liebe, dem Internet, ist er stets verbunden. Auch unterwegs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webkrauts.de/2006/12/22/internetauftritte-fuer-mobile-endgeraete/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Content-Management und Webstandards: CMSMadeSimple</title>
		<link>http://www.webkrauts.de/2006/12/21/content-management-und-webstandards-cmsmadesimple/</link>
		<comments>http://www.webkrauts.de/2006/12/21/content-management-und-webstandards-cmsmadesimple/#comments</comments>
		<pubDate>Wed, 20 Dec 2006 23:10:14 +0000</pubDate>
		<dc:creator>Ansgar Hein</dc:creator>
				<category><![CDATA[Adventskalender 2006]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[CMSMadeSimple]]></category>

		<guid isPermaLink="false">http://www.webkrauts.de/2006/12/21/content-management-und-webstandards-cmsmadesimple/</guid>
		<description><![CDATA[Ansgar Hein beschreibt im letzten Teil unserer Berichte über Content-Management-Systeme Vor und Nachteile von <strong>CMSMadeSimple</strong>, welches die Template-Engine Smarty benutzt.]]></description>
			<content:encoded><![CDATA[<p>Inhalte ganz einfach pflegen – das verspricht jedes Content-Management-System, einige Systeme tragen diesen Anspruch sogar im Namen, manche davon sogar zurecht. Wie einfach es sein kann, Inhalte zu erstellen und einer breiten Masse an Lesern zugänglich zu machen, hat die Blog-Welle gezeigt, die ab Anfang 2003 um den Globus schwappte. Im Windschatten dieser Bewegung wurden aber auch einige nennenswerte Content-Management-Systeme entwickelt, die ohne <span lang="en">Layout</span>-Tabellen und anderen lästigen Ballast auskommen, hoch flexibel sind und Webstandards sowie Zugänglichkeit in den Vordergrund stellen. Eines dieser Systeme ist <a href="http://www.cmsmadesimple.org/" lang="en" hreflang="en"><abbr title="Content-Management-System">CMS</abbr> made simple</a>, das im Juni 2004 in der Version 0.1 öffentlich zugänglich gemacht wurde und sich seither in vielen kleinen Schritten zur Version 1.0x weiterentwickelt hat.</p>
<h4>Grundlegendes</h4>
<p>Bei <span lang="en"><abbr title="Content-Management-System">CMS</abbr> made simple</span> handelt es sich um ein <span lang="en">Open Source</span>-<abbr title="Content-Management-System">CMS</abbr>, das unter der <abbr title="General Public Licence">GPL</abbr> veröffentlicht wurde und auf allen gängigen Betriebssystemen lauffähig ist, sofern <abbr>PHP</abbr> und ein <span lang="en">Webserver</span> vorhanden sind. Hinsichtlich der zugrunde liegenden Datenbank ist man sehr tolerant und akzeptiert neben <span lang="en">MySQL</span> auch <span lang="en">PostgreSQL</span>. Viel wichtiger aber ist: Die Installation ist kinderleicht und wird Schritt für Schritt von einem interaktiven Assistenten begleitet, so dass eine Komplettinstallation mit Demo-Inhalten auch für <abbr title="Content-Management-System">CMS</abbr>-Neulinge schon nach wenigen Minuten lauffähig ist.</p>
<h4><span lang="en">Back-End</span>: Für Redakteure, <span lang="en">Webdesigner</span> und Administratoren</h4>
<p>Internetseiten erfordern zumeist ein arbeitsteiliges Vorgehen. In der Praxis sieht es meist so aus, dass ein <span lang="en">Webdesigner</span> für einen Kunden eine <span lang="en">Website</span> layoutet, programmiert und lauffähig auf einem Server mit <abbr title="Content-Management-System">CMS</abbr> installiert. Dem Kunden obliegt dann die Pflege der Inhalte und die Erweiterung der Navigation, sofern letzteres gewünscht ist. Genau an dieser Rollenverteilung orientiert sich <span lang="en"><abbr title="Content Management System">CMS</abbr> made simple</span> und bietet drei vordefinierte Benutzergruppen, denen man eine Vielzahl von Rechten zuordnen oder entziehen kann. Auf diese Weise bleiben Funktionen zur <span lang="en">Template</span>-Erstellung, Benutzerverwaltung und Modul-Verwaltung vor den Augen eines Nur-Redakteurs verborgen und tragen so zur Fokussierung auf das Wesentliche bei: Der Inhaltserstellung und -pflege.</p>
<h4>Einfach für Webdesigner</h4>
<p>Hand aufs Herz: Spezialist kann man nur in einer Sache sein. Wenn man Webkraut ist, gehen <a href="http://www.webkrauts.de/mission-statement/">Standards über alles</a> und man ist mit Leib und Seele den Quelltexten in <abbr title="Hypertext Markup Language">HTML</abbr> und <abbr title="Cascading Stylesheets">CSS</abbr> verschrieben, mag <abbr title="Really Simple Syndication">RSS</abbr> beziehungsweise <abbr title="Extensible Markup Language">XML</abbr> und freut sich über saubere <abbr title="Uniform Ressource Locator">URL</abbr>s. Wenn man dafür allerdings erst den kompletten <abbr title="Active Server Pages">ASP</abbr>-, <abbr title="JavaServer Pages">JSP</abbr>- oder <abbr>PHP</abbr>-<span lang="en">Code</span> eines Systems auseinandernehmen und wieder zusammensetzen muss, hört der Spaß für <span lang="en">Webdesigner</span> auf und die Arbeit eines Programmierers beginnt. Die gute Nachricht: <span lang="en"><abbr title="Content Management System">CMS</abbr> made simple</span> kommt ohne <span lang="en">Tweaks</span>, <span lang="en">Hacks</span> und Frickeleien am <abbr>PHP</abbr>-<span lang="en">Code</span> aus und bietet sehr viel mehr Flexibilität als man auf den ersten Blick vermuten könnte.</p>
<p><img id="image159" src="http://www.webkrauts.de/wp-content/uploads/2006/12/insert_cmsms_schaltzentrale.png" alt="Schaltzentrale für Webdesigner mit Templates-, Stylesheet- und Menüverwaltung" /></p>
<p>Der Grund dafür liegt im Aufbau des Systems, denn dieses <abbr title="Content Management System">CMS</abbr> setzt auf der <a href="http://smarty.php.net/manual/de/" lang="en">Template Engine Smarty</a> auf. Die mächtige Syntax und die ausgezeichnete <span lang="en">Performance</span> von <span lang="en">Smarty</span> machen einen Großteil der Flexibilität aus und sorgen in der Praxis dafür, dass <span lang="en">Webdesigner</span> die volle Kontrolle über den augegebenen <span lang="en">Code</span> behalten, ohne in den kreativen Möglichkeiten eingeschränkt zu werden. Was sehr theoretisch klingt ist <span lang="en">Webdesigner</span>-Alltag: Gestreifte Tabellen, bei denen der Tabellenkopf anders aussehen soll als die übrigen Zeilen und wo man am Ende oder nach jedem zehnten Datensatz noch eine Schmuckgestaltung mit einbeziehen möchte. Dank <span lang="en">Smarty</span> kein Problem, denn man kann mit <code lang="en"><i>{foreach}{/foreach}</i></code> oder <code lang="en"><i>{cycle}</i></code> durch ganze <span lang="en">Arrays</span> arbeiten und entsprechende Formatierungen vornehmen. Jede zehnte Zeile kann man dann wie folgt formatieren, ohne Programmierer zu sein:</p>
<p class="bsp"><code><i>{if $smarty.foreach.ListenName.iteration % 10 == 1}<br />
    &lt;tr class="zeileZehn"><br />
      &lt;td colspan="3">&lt;img src="zeilezehn.gif" alt="" />Eine Schmuckzeile&lt;/td><br />
    &lt;/tr><br />
  {/if}</i></code></p>
<p>Derartige <span lang="en">Smarty</span>-Schnippsel kann man beispielsweise für die Ausgabe von kategorisierten <span lang="en">News</span>-Meldungen sehr vorteilhaft einsetzen, um Anleser zu erzeugen, Link-Listen darzustellen oder eine tabellarische Übersicht zu generieren. Oder alles zusammen, je nach Geschmack. Letzteres wird durch einen weiteren Flexibilitäts-Vorteil des Systems möglich: Beliebig viele <span lang="en">Templates</span> und Sub-<span lang="en">Templates</span>.</p>
<h4>Modular: Inhalte, Erweiterungen, Menüs und Vorlagen</h4>
<p>Für viele Content Management Systeme ist die Verwaltung von Inhalten, die in mehreren Spalten angeordnet sein sollen, problematisch. Das beginnt schon bei der Zurodnung der Seitenvorlagen zu den Inhalten und zieht sich wie ein roter Faden bis hin zur Befüllung zusätzlicher Spalten oder dem Verhalten des Content Management Systems, wenn man von einem zweispaltigen <span lang="en">Layout</span> auf ein einspaltiges <span lang="en">Layout</span> umstellt. Benutzerfreundlich und flexibel präsentiert sich <span lang="en"><abbr title="Content Management System">CMS</abbr> made simple</span> in dieser Hinsicht und offeriert dem Vorlagen-Ersteller ohne Programmierkenntnisse zahlreiche Möglichkeiten, die sich alleine mit Worten nicht erklären lassen.</p>
<p><img id="image160" src="http://www.webkrauts.de/wp-content/uploads/2006/12/insert_cmsms_modul.png" alt="Beispiel für Integration eines Moduls mit XML-Schnittstelle" /></p>
<p>Seiteninhalte beispielsweise werden wie folgt im <span lang="en">Template</span> aufgerufen:</p>
<p class="bsp"><code><i>{content}</i></code></p>
<p>Zusätzliche Inhaltsblöcke oder Spalten definiert man dann einfach so:</p>
<p class="bsp"><code><i>{content block="spalte_rechts"}<br /> <br />
  {content block="teaser"}</i></code></p>
<p>Nun erhält man beim Editieren der Seite nicht nur ein einzelnes Eingabefeld &#8211; das man wahlweise mit oder ohne <acronym title="What you see is what you get" lang="en">WYSIWYG</acronym> bearbeiten kann beziehungsweise sogar mit dem Editor seiner Wahl &#8211; sondern derer gleich drei. Jedes Eingabefeld ist dann mit dem Namen des Blocks verbunden, der bearbeitet wird. Bei guter Planung durch den <span lang="en">Webdesigner</span> kann man auf diese Weise sogar das grundlegende <span lang="en">Template</span> von einem dreispaltigen auf ein einspaltiges <span lang="en">Layout</span> ändern, vorausgesetzt der Haupt-Inhalt wurde mit <code><i>{content}</i></code> erfasst. Alle anderen Inhalte bleiben in der Datenbank bestehen.</p>
<p>Ähnlich flexibel wie bei den <span lang="en">Templates</span> oder den Inhalten präsentiert sich das System bei Modulaufrufen. Das wichtigste Modul, das gleichzeitig zum Kern des Systems gehört, ist der <a href="http://wiki.cmsmadesimple.org/index.php/User_Handbook/Admin_Panel/Layout/Menu_Manager">Menü-Manager</a>. Was simpel klingt, entpuppt sich in der Anwendung als Killer-Applikation für die Aufbereitung und Ausgabe von Menüs. Standardmäßig wird bereits ein <span lang="en">Accessibility</span>-Menü mitgeliefert, das man hierzulande aus <a href="http://www.einfach-fuer-alle.de/artikel/menues/"><acronym title="Einfach für Alle">EfA</acronym>-<span lang="en">Tutorials</span></a> kennt und das wohl zu den barriereärmsten Varianten gehört, die man im <span lang="en">Web</span> antreffen kann. Aktive Menüpunkte sind nicht mehr als Links ausgezeichnet, zudem hat man über Sub-<span lang="en">Templates</span> die Möglichkeit, alle Menüs den eigenen Anforderungen anzupassen. Dank <span lang="en">Smarty</span> keine allzu komplexe Angelegenheit. Gleiches gilt für mehrere Menüs, die aus der gleichen Menüstruktur generiert werden. Diese können unterschiedlichster Art gestaltet, formatiert und in <abbr title="Hypertext Markup Language">HTML</abbr> und <abbr title="Cascading Stylesheets">CSS</abbr> ausgezeichnet werden, man kann den Seitenbaum und den Menü-Manager sogar zur Generierung einer <span lang="en">Sitemap</span> benutzen. Ein Modulaufruf in <span lang="en"><abbr title="Content Management System">CMS</abbr> made simple</span> erfolgt über</p>
<p class="bsp"><code><i>{cms_module module="news" detailpage="presse" category="Presse" number="5" template="presse_teaser.tpl" lang="de_DE"}</i></code></p>
<p>Damit wird das Modul &#034;<span lang="en">News</span>&#034; aufgerufen, das ebenfalls zum Kern des Systems gehört. Dargestellt werden fünf Meldungen aus der Kategorie Presse und zwar wird dafür die Vorlage <i>&#034;presse_teaser.tpl&#034;</i> genutzt, die man via <abbr title="File Transfer Protocol">FTP</abbr> in den <span lang="en">Template</span>-Ordner des entsprechenden Moduls spielen kann &#8211; sonst wird die Standard-Vorlage für <span lang="en">News</span> verwendet. Wenn man eine Pressemitteilung anklickt werden die Details in der Seite mit dem Alias &#034;presse&#034; dargestellt und alle Seiteneinstellungen, inklusive Menü und <a href="http://www.contentmanager.de/magazin/artikel_755_ariadne_klick_pfad_orientierung_navigation.html">Ariadne-Pfad</a> (<span lang="en">Breadcrums</span>), entsprechend angepasst.</p>
<h4>Qualitätssicherung: Aktion sauberer Quelltext</h4>
<p>Gegenwärtig hat man die Qual der Wahl zwischen acht <a href="http://www.geniisoft.com/showcase.nsf/WebEditors">verschiedenen <acronym title="What you see is what you get" lang="en">WYSIWYG</acronym>-Editoren</a> zur Inhalts-Eingabe. Der standardmäßig gelieferte <a href="http://www.fckeditor.net/demo/"><acronym>FCKeditor</acronym></a> wird wohl in Kürze <a href="http://tinymce.moxiecode.com/example.php?example=true"><acronym lang="en">TinyMCE</acronym></a> weichen. Hinsichtlich eines validen Quelltextes offeriert <acronym>FCKeditor</acronym> zwar eine solide Basis, allerdings muss man die Möglichkeiten der Werkezeugleisten und somit des Redakteurs auf ein Minimum beschneiden und selbst dann ist Gefahr im Verzug: Durch <span lang="en">Copy &#038; Paste</span> aus anderen (<span lang="en">Windows</span>-)Anwendungen kopierte Inhalte müssen dringend über die &#034;aus <abbr title="Microsoft">MS</abbr> <span lang="en">Word</span> einfügen&#034;-Funktion in den <acronym title="What you see is what you get" lang="en">WYSIWYG</acronym>-Editor eingebracht werden, da sonst schlimmstmögliche <abbr title="Hypertext Markup Language">HTML</abbr>-Fehler mit eingeschleust werden können. Doch auch die bereinigte Version von <span lang="en">Word</span>-<abbr title="Hypertext Markup Language">HTML</abbr> bleibt leider hinter den Erwartungen zurück, allerdings ist dies kein spezieller Fehler dieser Systemkombination, sondern ein Problem von vielen <span lang="en">Richtext</span>-Editoren im Zusammenspiel mit Content Management Systemen.</p>
<p>Das Ausweichen auf einen alternativen <abbr title="Hypertext Markup Language">HTML</abbr>-Editor ist dann unausweichlich. Im praktischen Einsatz hat sich unter anderem <a href="http://www.themaninblue.com/experiment/widgEditor/" lang="en">widgEditor</a> bewährt, aber auch <a href="http://xinha.gogo.co.nz/xinha-nightly/examples/ext_example.html" lang="en">Xinha/<acronym>HTMLArea</acronym></a> bieten hier deutlich besseren Quell<span lang="en">code</span> in der Ausgabe. Interessant ist in diesem Zusammenhang sicherlich auch die Arbeit an einem <span lang="en">Tidy</span>-Modul, das man sowohl im <span lang="en">Pre-</span> als auch im <span lang="en">Post-Rendering</span> der Inhalte einsetzen kann. Allerdings befindet sich dieses Modul noch im Aufbau, dürfte aber im Hinblick auf zukünftige Versionen und das Commitment der Entwickler zu <a href="http://www.barrierekompass.de/weblog/index.php?itemid=268"><abbr title="Web Content Accessibility Guidelines">WCAG</abbr> und <acronym title="Authoring Tools Accessibility Guidelines">ATAG</acronym></a> an Bedeutung gewinnen. Momentan muss man sich mit alternativen Modulen oder Regie-Anweisungen an die Redakteure behelfen.</p>
<p>An anderer Stelle funktioniert die Qualitätssicherung jedoch schon hervorragend, beispielsweise beim Anlegen von Seiten: Dort werden bereits Möglichkeiten zum <a href="http://www.barrierefreies-webdesign.de/knowhow/accesskey/accesskey.html">Vorbelegen von <span lang="en">Accesskeys</span></a> oder Tab-Index angeboten, für jene, die es mögen oder brauchen. Zudem verfügt jeder Eintrag über ein Hilfe-Menü, das gerade über das Wiki sukzessive ausgebaut wird, momentan aber nur in englischer Sprache wirklich ausführlich ist.</p>
<h4>Stärken und Schwächen</h4>
<p>Ein Content Management System, das nicht einmal drei Jahre alt ist, darf sich Schwächen leisten. Zumal, wenn es so viele Stärken vereint und eine derart aktive Community in der Hinterhand hat. Davon zeugt nicht zuletzt das ausführliche <a href="http://forum.cmsmadesimple.org/index.php/board,11.0.html">deutschsprachige Forum</a> mit eigenen Unterbereichen. Wer Fragen hat, findet in der Regel bereits bestehende Antworten oder offene Ohren für neue Lösungen.</p>
<p>Schon heute gibt es eine Vielzahl an <a href="http://dev.cmsmadesimple.org/">vorgefertigten Modulen</a>, <span lang="en">Tags</span> und <span lang="en">Templates</span>. Daraus kann sich jeder Nutzer bedienen und so entweder bestehende Seiten mit Hilfe von <span lang="en"><abbr title="Content Management System">CMS</abbr> made simple</span> umbauen oder neue <span lang="en">Websites</span> entwickeln. Einarbeitungszeit, Arbeitsgeschwindigkeit, Flexibilität und Standardkonformität sind dabei eindeutige Stärken. Saubere <abbr title="Uniform Ressource Locator">URL</abbr>s sind über verschiedene Wege möglich und in der Konfiguration einstellbar, gleiches gilt für das serverseitige <span lang="en">Caching</span> von Seiten mit Hilfe von <span lang="en">Smarty</span>. Hervorzuheben ist der Menü-Manager, der in der <span lang="en">Open-Source</span>-<abbr title="Content-Management-System">CMS</abbr>-Welt nahezu einzigartig in dieser Form ist. Mit der integrierten Suchfunktion, die auch alle Modulinhalte wahlweise mit einbezieht, hat man seit Version 1.0 endlich auch den Schritt zu mehr Benutzerfreundlichkeit getan. Prinzipiell werden Inhalt &#038; Gestaltung voneinander getrennt und dank <span lang="en">Smarty</span> bleibt auch die Logik außerhalb der <span lang="en">Templates</span> – ein deutliches Plus gegenüber anderen Content-Management-Systemen.</p>
<p>Schwächen offenbart das System vor allem beim Einsatz diverser <acronym title="What you see is what you get" lang="en">WYSIWYG</acronym>-Editoren und den damit einhergehenden Problemen: Formatierung, Bilder und Tabellen. Die Probleme sind bekannt und werden mit Version 1.5 weitestgehend behoben sein. Gleiches gilt für andere Problemstellungen, wie <span lang="en">Workflow</span>-Management oder Mehrsprachigkeit. Hier besteht noch Nachholbedarf gegenüber manch anderem Content-Management-System. Gegenwärtig gibt es nicht für jeden Spezialfall ein eigenes Modul, so dass es zum Teil notwendig ist, eigene Module zu entwickeln. In der Frage <abbr title="Extensible Hypertext Markup Language">XHTML</abbr> oder <abbr title="Hypertext Markup Language">HTML</abbr> hat man ein klares <span lang="en">Statement</span> zugunsten von X gesetzt. Allerdings kann man mit ein paar kleinen Änderungen auch <abbr title="Hypertext Markup Language">HTML</abbr>-Seiten ohne X ausliefern, allerdings muss man in diesem Fall bei den meisten Modulen die Standard-Ausgabe-<span lang="en">Templates</span> anpassen und ist in der Wahl des <acronym title="What you see is what you get" lang="en">WYSIWYG</acronym>-Editors etwas eingeschränkter.</p>
<p><img id="image161" src="http://www.webkrauts.de/wp-content/uploads/2006/12/insert_cmsms_drag-and-drop.png" alt="Neues Ordnen der Menü-Struktur mit AJAX" /></p>
<h4>Fazit</h4>
<p>Dass man mit <span lang="en"><abbr title="Content Management System">CMS</abbr> made simple</span> hochwertige <span lang="en">Websites</span> unter Beachtung aktueller <span lang="en">Web</span>standards erstellen kann und dabei auch den Geldbeutel der Kunden schont, zeigen Positivbeispiele wie <a href="http://www.wfd-duesseldorf.de">Wohnungsbau <abbr title="Gesellschaft mit beschränkter Haftung">GmbH</abbr> Familienhilfe Düsseldorf</a> oder die <a href="http://www.natko.de/">Website der <acronym title="Nationale Koordinationsstelle Tourismus für Alle">NatKo</acronym></a>. Letztere schaffte im vergangenen Jahr die Nominierung für die <a href="http://www.biene-award.de/"><acronym title="Barrierefreies Internet eröffnet neue Einsichten">BIENE</acronym></a> und das mit einer minimal angepassten Pre-Alpha-Version des Systems. Seit Version 1.0 ist man in eine stabile Phase eingetreten und hat deutliche <span lang="en">Performance</span>-Verbesserungen und Arbeitserleichterungen für den Redakteur eingeführt. Dazu zählt die Content-Reorganisation mit <acronym title="Asynchronous Javascript and XML" lang="en">AJAX</acronym> ebenso wie <span lang="en">Front-Side</span>-Editing oder die neue Vorschau, die dank <acronym title="Asynchronous Javascript and XML" lang="en">AJAX</acronym> nun ebenfalls deutlich schneller ist.</p>
<p>Eine Empfehlung ist <span lang="en"><abbr title="Content Management System">CMS</abbr> made simple</span> für kleine bis mittelgroße Projekte, bei denen wenig erfahrene Internetnutzer als Redakteure in Frage kommen und <span lang="en">Web</span>standards beziehungsweise Barrierefreiheit dennoch eine Rolle spielt.</p>
<h4>Weiterführende Links:</h4>
<ul>
<li><span lang="en">opensourcecms.com</span>: <a href="http://www.opensourcecms.com/index.php?option=com_content&#038;task=view&#038;id=452">Aktuelle Demo-Version</a></li>
<li><span lang="en">Themes &#038; Templates</span>: <a href="http://themes.cmsmadesimple.org/Home.html">Vorlagen für Front- und <span lang="en">Back</span>end</a></li>
<li>Wiki: <a href="http://wiki.cmsmadesimple.org/index.php/Main_Page/de">Deutsche Hilfe-Seiten</a></li>
</ul>
<h4>Über den Autor:</h4>
<p><img id="image131" src="http://www.webkrauts.de/wp-content/uploads/2006/12/ansgar_hein_60x60.jpg" alt="Autorenfoto: Ansgar Hein" /> Ansgar Hein beschäftigt sich schon seit 1994 mit den Anforderungen komplexer Internet-Lösungen und Content Management Systeme. Als Geschäftsführer der Agentur anatom5 in Düsseldorf und Mitbegründer des Barrierekompass engagiert er sich für barrierefreie <span lang="en">Websites</span>. Dieses Engagement spiegelt sich in zahlreichen Publikationen und Vorträgen wider, unter anderem zum Thema <acronym>TYPO3</acronym> und Barrierefreiheit. Anfang des Jahres erschien unter dem Titel &#034;Einkaufsführer Barrierefreies Internet 2006&#034; eine Marktübersicht mit Agenturen für Barrierefreies <span lang="en">Webdesign</span>, für das Ansgar Hein als Herausgeber und Redakteur mitverantwortlich zeichnet.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webkrauts.de/2006/12/21/content-management-und-webstandards-cmsmadesimple/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Webentwicklung auf Safari</title>
		<link>http://www.webkrauts.de/2006/12/20/webentwicklung-auf-safari/</link>
		<comments>http://www.webkrauts.de/2006/12/20/webentwicklung-auf-safari/#comments</comments>
		<pubDate>Tue, 19 Dec 2006 23:10:28 +0000</pubDate>
		<dc:creator>Tomas Caspers</dc:creator>
				<category><![CDATA[Adventskalender 2006]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[Webentwicklung]]></category>
		<category><![CDATA[Webstandards]]></category>

		<guid isPermaLink="false">http://www.webkrauts.de/2006/12/20/webentwicklung-auf-safari/</guid>
		<description><![CDATA[Für die professionelle Webentwicklung eignet sich neben dem Browser Firefox auch Safari als nützliches Tool. Tomas Caspers stellt Ihnen den Mac-Browser samt hilfreicher Erweiterungen vor. ]]></description>
			<content:encoded><![CDATA[<p> <strong><span lang="en">Apples</span> Betriebssystem hat in den letzten Jahren große Fortschritte als Plattform für die <span lang="en">Web</span>entwicklung gemacht. War das <span lang="en">MacOS</span> lange Zeit als Klickibunti-System für (<span lang="en">Print</span>-) Grafiker verschrien, so hat der Sprung von 9 auf X das System nicht nur auf ein solides <span lang="en">Unix</span>-Fundament gestellt, sondern zu einem Werkzeug für <span lang="en">Webdesigner</span> und -programmierer gemacht. Daher schauen wir uns im heutigen Türchen die Möglichkeiten an, die der hauseigene <span lang="en">Webbrowser Safari</span> und das um ihn herum entstandene Biotop mit sich bringen.</strong></p>
<p><a class="bild-verweis" href="http://www.webkrauts.de/img/mac_nn4.png"><img alt="Netscape 4" class="bild-rechts" id="image100" src="http://www.webkrauts.de/wp-content/uploads/2006/11/mac_nn4_small.png" /></a><span lang="en">Web</span>entwicklung am <span lang="en">Mac</span> hat lange Zeit nicht wirklich Spaß gemacht – zu Zeiten von <span lang="en">Netscape</span> 4 selig musste man sogar den Rechner neustarten, wenn der <span lang="en">Browser</span> sich mal wieder mit einer Bombe verabschiedet hatte. Das änderte sich erst, als <span lang="en">Microsoft</span> den <a lang="en" hreflang="en" href="http://tantek.com/log/2005/03.html#d27t2359">IE5/Mac</a> herausbrachte: der erste Browser, bei dem man <a hreflang="en" href="http://www.alistapart.com/articles/ie5mac/"><abbr>HTML</abbr> &#038; <acronym>CSS</acronym> entsprechend der <abbr>W3C</abbr>-Spezifikation</a> einsetzen konnte, ohne dass der <span lang="en">Browser</span> daraus <a href="http://www.google.com/search?q=IE5%2FWin+box+model+sucks"><span lang="en">Layout</span>-Brei</a> machte.</p>
<p><span lang="en">Microsoft</span> hatte dann aber nach einiger Zeit das Interesse am Nischenmarkt <a lang="en" hreflang="en" href="http://darrel.knutson.com/mac/www/browsers.html">Mac-Browser</a> verloren, und die <span lang="en">Gecko</span>-basierten <span lang="en">Browser</span> waren, vorsichtig ausgedrückt, noch nicht so weit – <span lang="en">Apple</span> musste sich also nach Alternativen umsehen. Fündig wurde man beim <acronym lang="en">KDE</acronym>-Projekt und dessen <span lang="en">Framework</span> <abbr lang="en">KHTML</abbr>, so dass <span lang="en">MacOS X</span> 10.3 im Juni 2003 mit einem neuen <span lang="en">Browser</span> ausgeliefert wurde: <a href="http://web.archive.org/web/20030608182922/http://www.apple.com/de/safari"><strong><span lang="en">Safari</span> 1.0</strong></a>.</p>
<p><a class="bild-verweis" href="http://webkit.org/"><img alt="WebKit" class="bild-rechts" id="image103" src="http://www.webkrauts.de/wp-content/uploads/2006/11/webkit.png" /></a><span lang="en">Apple</span> hat mittlerweile die Quellen offengelegt, im <a lang="en" hreflang="en" href="http://webkit.org/">WebKit Open Source Project</a> kann sich auch die <span lang="en"><acronym>KDE</acronym>-Community</span> bedienen, um die <span lang="en">Linux</span>-Pendants von <span lang="en">Apples Browser</span> zu verbessern. <span lang="en">WebKit</span> ist dabei nur ein <span lang="en">Framework</span>, daß unter anderem aus den Komponenten <span lang="en">WebCore</span> und <span lang="en">JavaScriptCore</span> besteht. <span lang="en">WebCore</span> ist der Kern des <span lang="en">Browsers Safari</span> und dort zuständig für die Verarbeitung und Darstellung von <abbr>HTML</abbr> &#038; <acronym>CSS</acronym>. Er entspricht in den neueren Versionen der <span lang="en"><abbr>KHTML</abbr>-Engine</span>, was das Testen ungemein vereinfacht. Diesen Kern machen sich auch eine Reihe weitere Programme wie <span lang="en">mail.app</span>, die <span lang="en">Dashboard-Widgets</span>, <a hreflang="en" href="http://www.s60.com/business/productinfo/applicationsandtechnologies/webrowser/">mobile <span lang="en">Webbrowser</span></a> und <a hreflang="en" href="http://casario.blogs.com/mmworld/2006/10/apollo_will_use.html">viele</a> <a hreflang="en" href="http://googlewebtoolkit.blogspot.com/2006/11/its-official-gwt-12-released.html">mehr</a> zunutze, um Inhalte darzustellen.</p>
<h4>Standards? Standards!</h4>
<p>Spulen wir vor ins Jahr 2005. Der <span lang="en">Safari</span> 2.0.2 ist der erste <span lang="en">Browser</span>, der den harten <a lang="en" hreflang="en" href="http://www.webstandards.org/2005/04/28/acid2-goes-on-safari/">Acid2-Test</a> des <span lang="en">Web Standards Project</span> <a hreflang="en" href="http://weblogs.mozillazine.org/hyatt/archives/2005_04.html#008042">besteht</a>. Kurz darauf folgen <a lang="en" href="http://www.icab.de/">iCab</a> (ein <span lang="en">Mac-Browser</span> des deutschen Entwicklers Alexander Clauss), <a lang="en" hreflang="en" href="http://www.konqueror.org/features/browser.php">Konqueror</a> (ein ebenfalls auf <abbr lang="en">KHTML</abbr> basierender <span lang="en">Linux-Browser</span>) und später auch <a hreflang="en" href="http://www.webstandards.org/2006/03/28/acid2-supported-in-opera-one-year-later/"><span lang="en">Opera</span> in der Version 9</a>. Damit war der dringend nötige Beweis erbracht: <strong><span lang="en">Web</span>standards <em>funktionieren</em>.</strong></p>
<p>Für <span lang="en">Web</span>entwickler eine frohe Botschaft, aber auch ein zweischneidiges Schwert: bisher konnte man sich immer mit unzureichenden <span lang="en">Browsern</span> herausreden, wenn etwas nicht lief. Mit der zunehmenden Verbreitung standardkonformer <span lang="en">Browser</span> wird diese Ausrede immer unwahrscheinlicher – wenn in einem modernen <span lang="en">Webbrowser</span> etwas nicht funktioniert, dann liegt es in den weitaus meisten Fällen an Fehlern im eigenen Quelltext, also am <abbr>HTML</abbr>, <acronym>CSS</acronym> oder <span lang="en">JavaScript</span> der Seite oder Anwendung und <em>nicht</em> am <span lang="en">Browser</span>.</p>
<p><a class="bild-verweis" href="http://www.webstandards.org/action/acid2/"><img alt="Acid2" class="bild-rechts" id="image99" src="http://www.webkrauts.de/wp-content/uploads/2006/11/acid2.png" /></a>Spätestens seit dem Bestehen des <span lang="en">Acid2-Tests</span> meistert <span lang="en">Safari</span> den <acronym>CSS1</acronym>-Standard vollständig, das <a hreflang="en" href="http://developer.apple.com/internet/safari/safari_css.html">meiste aus <acronym>CSS2.1</acronym></a> (<a hreflang="en" href="http://www.w3.org/Style/CSS/Test/CSS2.1/current/">Testreihe des <abbr>W3C</abbr></a>) und auch schon vieles aus dem noch in der Entwicklung befindlichen <span lang="en"><acronym>CSS</acronym> Level 3</span>. Die <a lang="en" hreflang="en" href="http://nightly.webkit.org/">Nightly Builds</a> genannten Entwicklerversionen von <span lang="en">WebKit</span> gibt es auch mit eingebauter <acronym lang="en">SVG</acronym>-Unterstützung (wenn auch, wie bei allen anderen <span lang="en">Browsern</span>, nur teilweise), wobei sich <span lang="en">Apple</span> gemeinsam mit anderen Herstellern im Augenblick eher auf die Implementierungen der <a lang="en" hreflang="en" href="http://www.whatwg.org/"><abbr>WhatWG</abbr></a>-Spezifikationen wie <a href="http://developer.apple.com/opensource/internet/nightlywebkit.html"><code>&lt;canvas&gt;&lt;/canvas&gt;</code></a> und damit auf <a href="http://www.webkrauts.de/2006/11/08/beteiligen-sie-sich-an-der-zukunft-von-html/">HTML 5</a> zu konzentrienen scheint.</p>
<h4>Bauen und Testen</h4>
<p>Reine Standard-Konformität ist zwar schön, aber <span lang="en">Web</span>entwickler brauchen zum Bau von <span lang="en">Websites</span> und Applikationen weitergehende Infos, die über die rein visuelle Kontrolle hinausgehen. Dazu gibt es für die meisten <span lang="en">Browser</span> Erweiterungen, mit denen sich Informationen auslesen oder darstellen lassen, die man zum Beispiel bei der Erstellung von <span lang="en"><acronym>CSS</acronym>-Layouts</span> benötigt. <span lang="en">Safari</span> versteht zwar die <span lang="en">Netscape</span>-typischen <span lang="en">Plugins</span>, hat aber keine eigene Architektur für Erweiterungen nach Art von <span lang="en">Mozilla</span> <a href="http://www.mozilla.org/projects/xul/"><abbr title="XML User Interface Language">XUL</abbr></a>. Die meisten Erweiterungen lassen sich aber <span lang="en">Mac</span>-typisch einfach installieren und rüsten Funktionen nach, die der <span lang="en">Safari</span> in der Werkseinstellung nicht bietet.</p>
<p>Die zentrale Anlaufstelle für alle, die ihren <span lang="en">Safari</span> erweitern wollen ist die <span lang="en">Website</span> <a lang="en" hreflang="en" href="http://pimpmysafari.com/">»PimpMySafari.com«</a> von <a lang="en" hreflang="en" href="http://www.hicksdesign.co.uk/">Jon Hicks</a>, der neben vielen anderen Erweiterungen auch eine Sparte für <a lang="en" hreflang="en" href="http://pimpmysafari.com/plugins/?c=Web+development">Web development Plugins</a> eingerichtet hat. Die wichtigsten haben wir für Sie rausgesucht:</p>
<dl>
<dt><a lang="en" hreflang="en" href="http://pimpmysafari.com/plugins/saft">Saft</a></dt>
<dd>Keine Erweiterung für Webentwickler im strengen Sinne, aber wenn Sie nur eine Erweiterung mit auf eine einsame Insel nehmen dürften, dann sollten Sie sich für <span lang="en">Saft</span> entscheiden.</dd>
<dd>Ein wichtiges <span lang="en">Feature</span> ist, dass man mit dieser Erweiterung das <span lang="en">Debug</span>-Menü in <span lang="en">Safari</span> anschalten kann. Ohne die Erweiterung geht dies nur, indem man <kbd>defaults write com.apple.Safari IncludeDebugMenu 1</kbd> <a href="http://developer.apple.com/internet/safari/faq.html#anchor14">in ein Terminalfenster eintippt</a> – also an einer Stelle, an die sich der durchschnittliche <span lang="en">Mac-User</span> selten hintraut. Nachdem das <span lang="en">Debug</span>-Menü aktiviert ist finden Sie dort einen rudimentären <acronym lang="en">DOM</acronym>-Inspektor, eine <span lang="en">JavaScript</span>-Konsole und noch einiges mehr.</dd>
<dt><a lang="en" hreflang="en" href="http://pimpmysafari.com/plugins/safaristand">SafariStand</a></dt>
<dd>Ebenfalls eine unerlässliche Erweiterung für Informationen über und Manipulationen von <span lang="en">Web</span>seiten. Nach der Installation kann man unendlich viele Dinge wie benutzerdefinierte Regeln zum Verhalten von Seiten einstellen, aber unser Favorit ist die Möglichkeit, in der Quelltext-Ansicht den <span lang="en">Code</span> einer Seite zu ändern und die Änderungen direkt auf die Seite anzuwenden.</dd>
<dt><a lang="en" hreflang="en" href="http://pimpmysafari.com/plugins/subethafari">SubEthaFari</a></dt>
<dd>Manchmal muss man dann aber doch in einen richtigen Editor wechseln, und dafür gibt es Skripte, die den Quelltext zur weiteren Verarbeitung an <a lang="en" hreflang="en" href="http://codingmonkeys.de/map/log/articles/2004/07/20/subethafari">SubEthaEdit</a> oder <a lang="en" hreflang="en" href="http://blog.wishingline.com/archives/2004_08.php#000275">BBEdit</a> schicken.</dd>
<dt><a lang="en" hreflang="en" href="http://www.zappatic.net/safaritidy/">Safari Tidy plugin</a></dt>
<dd>Das <span lang="en">Plugin</span> installiert das bekannte Prüfprogramm <a lang="en" hreflang="en" href="http://tidy.sf.net/">Tidy</a> in die Statuszeile des <span lang="en">Browsers</span>. Ein Klick auf die Icons öffnet die Quelltext-Ansicht; dort werden in einer Tabelle die eventuell vorgefundenen Fehler aufgelistet sowie Hinweise zu deren Behebung gegeben. Ein Klick auf den Fehler oder die Warnung setzt den <span lang="en">Cursor</span> an die entsprechende Stelle im Quelltext der Seite.</dd>
<dd>Wenn Sie lieber einen echten Validator nutzen: auch der <abbr>W3C</abbr> <abbr>HTML</abbr> Validator lässt sich <a hreflang="en" href="http://developer.apple.com/internet/opensource/validator.html">in <span lang="en">MacOS X</span> nachrüsten</a>.</dd>
<dt><a href="http://pimpmysafari.com/plugins/webdevadditions">WebDevAdditions</a></dt>
<dd>Eine Rezension dieser in älteren <span lang="en">Safari</span>-Versionen wunderbar funktionierenden Erweiterung nach Art der <span lang="en">Web Developer Toolbar</span> für <span lang="en">Firefox</span> fällt leider flach, da diese mit dem neuesten <span lang="en">Safari-Release</span> nicht mehr funktioniert und auch kein <span lang="en">Update</span> in Sicht ist. Die wichtigsten Funktionen der abhanden gekommenen <span lang="en">Toolbar</span> lassen sich aber als <a hreflang="en" href="http://developer.apple.com/internet/safari/faq.html#anchor13"><span lang="en">Favelets</span> im <span lang="en">Browser</span></a> ablegen. Ziehen sie dazu einfach die folgenden <span lang="en">Links</span> auf die Lesezeichenleiste: <a href="javascript:var%20f=function(tt,col)%7Bvar%20a=document.getElementsByTagName(tt);for(var%20b=0;b%3Ca.length;b++)%7Ba%5Bb%5D.style.border='1px%20solid%20%23'+col;%7D%7D;f('table','00F');f('td','0F0');f('th','0FF');">Tabellen zeigen</a>, <a href="javascript:var%20a=document.getElementsByTagName('div');for(var%20b=0;b%3Ca.length;b++)%7Ba%5Bb%5D.style.border='1px%20solid%20%23F00';%7D">DIV Borders zeigen</a>, <a href="javascript:var%20a=document.getElementsByTagName('div');var%20aspan;var%20txtNode;for(var%20b=0;%20b%20%3C%20a.length;b++)%7B%09a%5Bb%5D.style.border='1px%20solid%20red';%09%09if(a%5Bb%5D.id%20!=%20'')%7B%09%09aspan%20=%20document.createElement('span');%09%09aspan.setAttribute('id',%20't_ttp'%20+%20a%5Bb%5D.id);%09%09aspan.setAttribute('style',%20'position:relative;top:1px;left:1px;%20margin:10px%200px%200px%2010px;background-color:%20beige;max-width:220;padding:%202px%2010px%202px%2010px;border:%201px%20solid%20%23C0C0C0;font:%20normal%2010px/12px%20verdana;color:%20%23000;text-align:left;display:%20block;');%09%09txtNode%20=%20document.createTextNode('div:%20'%20+%20a%5Bb%5D.id);%09%09aspan.appendChild(txtNode);%09%09a%5Bb%5D.appendChild(aspan);%7D%7D">DIV Borders mit IDs zeigen</a>, <a href="javascript:void(document.location='http://validator.w3.org/check?uri='+document.location);">HTML validieren</a> und <a href="javascript:void(document.location='http://jigsaw.w3.org/css-validator/validator?uri='+document.location);">CSS validieren</a></dd>
<dt><a lang="en" hreflang="en" href="http://webkit.org/blog/?p=41">Web Inspector</a></dt>
<dd>Wenn der <span lang="en"><acronym>DOM</acronym> Inspector</span> von <span lang="en">Firefox</span> groß ist, dann möchte er so werden wie der <span lang="en">Web Inspector</span>. Leider gibt es dieses geniale Werkzeug (noch?) nicht in den regulären Versionen von Safari, sehr wohl aber in den <a lang="en" hreflang="en" href="http://nightly.webkit.org/">Nightly Builds</a> von <span lang="en">webkit.org</span>. Nach der Installation findet man im Kontextmenü ganz unten einen neuen Eintrag <var lang="en">»Inspect Element«</var>. Wenn man nun ein Element einer <span lang="en">Web</span>seite anklickt und diesen Befehl auswählt öffnet sich ein neues Fenster. Dort erhält man weitergehende Informationen zu allem, was das <span lang="en"><acronym>CSS</acronym>-Designer</span>-Herz begehrt: die <acronym>DOM</acronym>- und <span lang="en">Style</span>-Informationen des betreffenden Elementes, die genauen Bemaßungen, welche <span lang="en">Styles</span> auf dieses Element vererbt werden und vieles mehr.</dd>
<dt><a lang="en" hreflang="en" href="http://webkit.org/blog/?p=61">Drosera</a></dt>
<dd><a class="bild-verweis" href="http://webkit.org/blog/?p=61"><img alt="Drosera" class="bild-rechts" id="image98" src="http://www.webkrauts.de/wp-content/uploads/2006/11/drosera.png" /></a><em lang="la">Drosera</em> ist zum einen der lateinische Name für eine Gattung von Pflanzen, die Insekten (<abbr>engl.</abbr>: <em lang="en">Bugs</em>) fressen, und zum anderen der Name des neuen <span lang="en">JavaScript-Debuggers</span> (der übrigens selbst in <abbr>HTML</abbr> und <span lang="en">JavaScript</span> geschrieben ist). Leider bisher ebenfalls nur in den <span lang="en">Nightly Builds</span> erhältlich.</dd>
</dl>
<h4>Testen mit <span lang="en">Safari</span></h4>
<p>Wenn ein <span lang="en">Webbrowser</span> so eng mit dem Betriebssystem verknüpft ist wie der <span lang="en">Safari</span> oder die Konkurrenz aus <span lang="en">Redmond</span>, dann stößt man schnell an den Punkt, wo man nach einem <span lang="en">Update</span> des Betriebssystems nicht mehr in einer älteren Version des <span lang="en">Browsers</span> testen kann.</p>
<p><a class="bild-verweis" href="http://www.michelf.com/projects/multi-safari/"><img alt="Multisafari" class="bild-rechts" id="image102" src="http://www.webkrauts.de/wp-content/uploads/2006/11/multisafari.png" /></a>Bei relativ jungen Versionen von <span lang="en">Safari</span> kann man sich entspannt zurücklehnen, denn die letzte Version für <span lang="en">MacOS X</span> 10.3 entspricht in allen wesentlichen Teilen dem Nachfolger für 10.4. Aber auch für ältere Versionen gibt es Lösungen. <span lang="fr">Michel Fortin</span> hat bei <a lang="en" hreflang="en" href="http://www.michelf.com/projects/multi-safari/">Multi-Safari</a> eine ganze Reihe von Safaris veröffentlicht, die bis zur Version 1.0 zurückgehen und einen parallelen Betrieb ermöglichen.</p>
<p>Da die Versionen 1.2.x und 1.3.x jedoch nicht unter 10.4 (<span lang="en">Tiger</span>) laufen hilft hier nur der Rückgriff auf <a lang="en" hreflang="en" href="http://www.omnigroup.com/applications/omniweb/">OmniWeb</a>. Dieser <span lang="en">Browser</span> basiert ebenfalls auf <span lang="en">WebKit</span>, installiert aber seine eigene <span lang="en">Engine</span> und ist somit unabhängig von der Version des jeweiligen Betriebssystems. Die älteren Versionen erhalten Sie im <a hreflang="en" href="http://browsers.evolt.org/?omniweb/MacOSX"><span lang="en">Browser</span>-Archiv von <span lang="en">evolt.org</span></a>.</p>
<h4><span lang="en">Safari</span> ohne <span lang="en">Safari</span> testen</h4>
<p>Was tun, wenn man seine <span lang="en">Web</span>seiten unter Safari testen will, aber gerade keinen <span lang="en">Mac</span> zur Hand hat?</p>
<ul>
<li>Die <span lang="en">web</span>basierte Anwendung <a lang="en" hreflang="en" href="http://www.danvine.com/icapture/">iCapture</a> von <span lang="en">Daniel Vine</span> macht kostenlose <span lang="en">Screenshots</span>, wie Ihre Seiten in <span lang="en">Safari</span> aussehen. Zum Zeitpunkt der Veröffentlichung war dies <span lang="en">Safari</span> 2.0.3 unter  <span lang="en">OS X</span> 10.4.4.</li>
<li><a lang="en" hreflang="en" href="http://www.browsrcamp.com/">BrowsrCamp.com</a> macht ebenfalls kostenlose <span lang="en">Screenshots</span> von <span lang="en">Safari</span> 2.0.4, gegen Bezahlung werden auch <a href="http://www.browsrcamp.com/osx_livetest.php">sämtliche anderen <span lang="en">Mac-Browser</span></a> getestet.</li>
</ul>
<h4>Die gängigsten <span lang="en">Bugs</span> und Lücken</h4>
<p>Wie findet man den Schuldigen? Hat man trotz aller Anstrengungen immer noch Darstellungsfehler in seinen Seiten, dann hilft diese Anleitung aus dem <span lang="en">WebKit Open Source Project</span>: <a lang="en" hreflang="en" href="http://webkit.org/quality/reduction.html">Test Case Reduction</a>. Hier werden eine ganze Reihe wertvoller Tipps gegeben, wie man den oder die Verursacher möglichst schnell und zuverlässig isolieren kann. Bei der Suche nach Fehlern hat sich auch das Programm <a lang="en" hreflang="en" href="http://www.culturedcode.com/xyle/index.html">Xyle scope</a> von <span lang="en">Cultured Code</span> als enorm hilfreich erwiesen. Auch dieses Programm basiert auf dem Kern von <span lang="en">Safari</span> und ist die Luxusvariante des oben erwähnten <span lang="en">Web Inspectors</span>.</p>
<p>Falls das alles nicht hilft könnte es sein, dass Sie auf einen der verbliebenen <a hreflang="en" href="http://bugs.webkit.org/buglist.cgi?product=WebKit&#038;component=CSS&#038;resolution=---"><span lang="en">Bugs</span> in <span lang="en">Safari</span> <abbr>bzw.</abbr> <span lang="en">WebKit</span></a> gestoßen sind:</p>
<ul>
<li><a lang="en" hreflang="en" href="http://bugs.webkit.org/show_bug.cgi?id=3234">Quotes</a> (<a lang="en" hreflang="en" href="http://www.w3.org/TR/REC-CSS2/generate.html#propdef-quotes"><code>&lt;q&gt;&lt;/q&gt;</code></a>) kann Safari bis heute <a hreflang="en" href="http://bugs.webkit.org/show_bug.cgi?id=3234">nicht korrekt umsetzen</a>. Bemerkbar macht sich der Fehler insbesondere in Verbindung mit <code>lang</code>-Selektoren, mit denen man die für die jeweilige Sprache korrekten typografischen Anführungszeichen setzen kann – sie werden schlichtweg ignoriert. Für einen <span lang="en">Browser</span>, der sich typografische Präzision auf die Fahnen geschrieben hat ist so etwas eher peinlich.</li>
<li><span lang="en">Label</span> (<code>&lt;label&gt;&lt;/label&gt;</code>) – bis heute beherrschen die offiziellen Versionen nicht das <code>label</code>-Element aus <abbr>HTML</abbr>. <abbr>D.h.</abbr> ein Klick auf das <span lang="en">Label</span> einer <span lang="en">Textbox</span> setzt den <span lang="en">Cursor</span> nicht in die <span lang="en">Box</span>, bei <span lang="en">Checkboxen</span> werden keine Häkchen gesetzt wenn man auf das <span lang="en">Label</span> klickt <abbr>u.s.w.</abbr> <a href="http://bugs.webkit.org/show_bug.cgi?id=3244">Dem Vernehmen nach</a> soll dieser Fehler aber in einer der kommenden Versionen behoben sein. Bis dahin muss man sich mit Skripten wie <a lang="en" hreflang="en" href="http://www.chriscassell.net/log/2004/12/19/add_label_click.html">»Adding Click Support to Labels in Safari«</a> von <span lang="en">Chris Cassell</span> behelfen.</li>
<li>Ebenfalls kein Kraut gewachsen ist gegen das Fehlen einiger <span lang="en"><acronym>CSS2.1</acronym>-Properties</span> wie <code>counter-increment</code> und <code>counter-reset, pre-wrap</code> und <code>pre-line</code> sowie die für den sauberen Ausdruck wichtigen <em lang="en">Paged Media Properties</em> wie Seitenumbrüche, Hurenkinder und Schusterjungen – sie werden bisher noch nicht von Safari unterstützt.</li>
</ul>
<h4><span lang="en">Bugs</span> die keine sind</h4>
<p>Keine <span lang="en">Bugs</span>, aber natürlich trotzdem nervend sind Elemente, die in den verschiedenen <span lang="en">Browsern</span> unterschiedlich gerendert werden und unter Umständen jedes wohldurchdachte <span lang="en">Layout</span> zerlegen. Dazu gehören insbesondere Abstände von <code>caption</code> in <code>table, legends</code> in <code>fieldset</code> und Ränder (<code>border</code>) um Textfelder (<code>&lt;input type="text"/&gt;, &lt;textarea&gt;&lt;/textarea&gt;</code>). Im Gegensatz zu <span lang="en">Safari</span> und auch <span lang="en">Opera</span> addiert der <span lang="en">Firefox</span> bei letzteren aus unerfindlichen Gründen immer noch 2 <span lang="en">Pixel</span> hinzu. Der Schuldige ist hier aber wohl weniger bei den <span lang="en">Browser</span>herstellern zu suchen, sondern eher bei den schwammigen bis fehlenden Vorgaben der <abbr>W3C</abbr>-Spezifikationen.</p>
<h4>Weiterführende <span lang="en">Links</span> zu <span lang="en">Safari, WebKit</span> und <span lang="en">MacOS X</span>:</h4>
<ul>
<li>apfelwiki.de: <a href="http://apfelwiki.de/wiki/Main/Safari#toc17">Safari</a></li>
<li><span lang="en">Apple Developer Connection</span>: <a lang="en" hreflang="en" href="http://developer.apple.com/internet/safari/safari_css.html">CSS Support in Safari</a></li>
<li><span lang="en">Apple Developer Connection</span>: <a lang="en" hreflang="en" href="http://developer.apple.com/internet/safari/faq.html">Safari Developer <acronym>FAQ</acronym></a></li>
<li><span lang="en">Andy Budd</span>: <a lang="en" hreflang="en" href="http://www.andybudd.com/archives/2005/11/common_css_bugs_in_safari_firefox_and_opera/index.php">Common <acronym>CSS</acronym> Bugs in Safari, Firefox and Opera</a></li>
<li><abbr>W3C</abbr>: <a lang="en" hreflang="en" href="http://www.w3.org/Style/CSS/Test/CSS2.1/current/"><acronym>CSS2.1</acronym> Test Suite</a></li>
</ul>
<h5>Über den Autor</h5>
<p><a href="http://tomascaspers.de/">Tomas Caspers</a> hat eine Hassliebe zu <span lang="en">Web</span>browsern, die sich bis zu <span lang="en">Netscape</span> 0.9b zurückverfolgen lässt. Schon früh erkannte er den Wert standardkonformer <span lang="en">Web</span>entwicklung und beschäftigt sich seitdem mit <acronym>CSS</acronym> und den Techniken zur Barrierefreiheit. Caspers gehörte 1998 zu den Gründern des <a lang="en" hreflang="en" href="http://www.webstandards.org/">Web Standards Project</a>, wo er sich in der <em lang="en">Accessibility Task Force</em> darum kümmert, dass moderne <span lang="en">Web</span>angebote auch für Menschen mit Behinderung zugänglich werden. Neben der Beratung für Unternehmen und Behörden verbringt Tomas Caspers die verbleibende Zeit mit der Pflege der <span lang="en">Website</span> zur Initiative <a href="http://www.einfach-fuer-alle.de/">»Einfach für Alle«</a> der Aktion Mensch.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webkrauts.de/2006/12/20/webentwicklung-auf-safari/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>JsPopUp &#8211; Neue Browserfenster komfortabel und unaufdringlich</title>
		<link>http://www.webkrauts.de/2006/12/19/unaufdringliche-neue-browserfenster/</link>
		<comments>http://www.webkrauts.de/2006/12/19/unaufdringliche-neue-browserfenster/#comments</comments>
		<pubDate>Mon, 18 Dec 2006 23:05:54 +0000</pubDate>
		<dc:creator>Dirk Ginader</dc:creator>
				<category><![CDATA[Adventskalender 2006]]></category>
		<category><![CDATA[Popup unobtrusive Javascript]]></category>

		<guid isPermaLink="false">http://www.webkrauts.de/2006/12/19/unaufdringliche-neue-browserfenster/</guid>
		<description><![CDATA[Popups sind beliebt und auf vielen Webseiten zu finden. Selten werden sie intelligent eingebunden. Dirk Ginader zeigt, wie man einfach, wirkungsvoll und intelligent ein Popup öffnen kann.]]></description>
			<content:encoded><![CDATA[<p>
            Immer wieder wird es bei Webprojekten notwendig Links zu Webseiten oder Dokumenten in einem neuen Fenster (PopUp) zu öffnen. In Javascript gibt hierzu genauso viele Lösungen wie es Entwickler gibt. Die meisten sind jedoch sehr kompliziert in Ihrer Anwendung, widersprechen in Ihrem Aufbau den heute aktuellen Webstandards und werden im allgemeinen sogar als Störend empfunden.
        </p>
<p>
            Die hier vorgestellte Javascript-Klasse wurde für diesen Artikel entwickelt um zu zeigen, daß PopUps nicht generell böse sein müssen.
        </p>
<h4>
            Die Basismöglichkeiten mit Javascript<br />
        </h4>
<h5>
            mit dem “javascript:”-Pseudoprotokoll:<br />
        </h5>
<p class="bsp2">
            <code>&lt;a href="javascript:void(window.open('http://www.webkrauts.de'));"&gt; Fenster öffnen&lt;/a&gt;</code>
        </p>
<h5>
            mit einem “blinden” Link und dem onclick-Event :<br />
        </h5>
<p class="bsp2">
            <code>&lt;a href="#" onclick="window.open('http://www.webkrauts.de');return false"&gt;Fenster öffnen&lt;/a&gt;</code>
        </p>
<h5>
            &#8230;und funktionieren würden beide Ansätze auch &#8211; aber:<br />
        </h5>
<p>
            &#8230; bei einem User mit einem Browser ohne Javascript-Unterstützung würde sich das PopUp nicht öffnen. Noch schlimmer ist aber, dass die gewünschte Seite, ohne jedes Feedback an den User, überhaupt nicht geladen werden würde. Wenn der Link auch ohne Javascript funktioniert und keine Fehlermeldung erzeugt ist die Verwendung in Ordnung.
        </p>
<h5>
            Dieser Link würde auch ohne Javascript funktionieren:<br />
        </h5>
<p class="bsp2">
            <code>&lt;a href="http://www.webkrauts.de" onclick="window.open(this.href);return false"&gt;Fenster öffnen&lt;/a&gt;</code> <a href="http://www.webkrauts.de" onclick="window.open(this.href);return false">Fenster öffnen</a>
        </p>
<h5>
            Aber auch diese Version hat noch diverse Nachteile:<br />
        </h5>
<p>
            Bei der Verwendung in einem <abbr title="Content-Management-System">CMS</abbr> z.B. wären hierbei auch für Redakteure Javascript-Kenntnisse notwendig. Sollte das Fenster zusätzliche Eigenschaften, wie z.B. eine festgelegte Grösse, benötigen, wird der Code sehr schnell noch unübersichtlicher.
        </p>
<p>
            Die Vermischung von HTML und Javascript stellt ebenfalls ein grosses Problem dar. Inhalt (HTML), Gestaltung (CSS) und Verhalten (Javascript) sollten generell voneinander getrennt werden [1][2].
        </p>
<p>
            Ein weiteres Problem ist auch, dass der Benutzer nicht darüber informiert wird, dass sich der Link in einem neuen Fenster öffnen wird.
        </p>
<h4>
            Wie Screenreader mit PopUps umgehen<br />
        </h4>
<p>
            Die aktuellen Screenreader können, im Gegensatz zur herrschenden Meinung, sehr wohl Javascript interpretieren. Dies hat hier aber eher Nachteile als Vorteile. Im letzten Beispiel, würde ein aktueller Screenreader tatsächlich ein neues Fenster öffnen aber den User nicht darauf hinweisen können. Für diesen hat es weiterhin den Anschein als wäre nichts passiert.
        </p>
<h4>
            Was wäre also ideal?<br />
        </h4>
<p>
            Eine ideale Lösung muss unbedingt einfach anwendbar sein. Das Hinzufügen eines “<code>class</code>”-Attributs wäre ein guter Ansatz, den auch die meisten CM-Systeme ermöglichen. Zusätzlich kann dem Link mit der Klasse über CSS eine besondere Formatierung zugerwiesen werden (z.B. ein Icon das den User über das neue Fenster Informiert).
        </p>
<p>
            Sinnvoll wäre es auch, wenn verschiedene Fenstertypen (z.B. feste Fenstergrössen oder Fenster ohne Adresszeile) erzeugt werden können. Wenn diese Fenstertypen zentral definiert werden könnten, könnten diese leicht in einer ganzen Website genutzt werden.
        </p>
<p>
            Der Nutzer sollte darüber informiert werden, dass der Link sich in einem neuen Fenster öffnen wird. Ein Hinweistext im “<code>title</code>”-Attribut wäre eine gute Lösung. Allerdings nur, wenn Javascript auch wirklich aktiviert ist und das PopUp geöffnet werden kann, wenn nicht, wäre der Hinweis wiederum sehr verwirrend.
        </p>
<p>
            Abschliessend wäre es natürlich noch toll, wenn gar kein Javascript im HTML-Dokument stehen müsste.
        </p>
<h4>
            JsPopUp &#8211; (m)ein Lösungsansatz<br />
        </h4>
<p>
            JsPopUp ist der Name der Javascript-Klasse, die ich für diesen Artikel entwickelt habe. Sie bietet Lösungen für die genannten Probleme und ist sehr leicht anzuwenden. Die benötigen Zeilen Javascript werden einfach innerhalb des Head-Bereichs eingebunden und werden dann automatisch ausgeführt.
        </p>
<p>
            Die Anpassungen für die eigene Seite können dann entweder direkt in dem aktuellen Dokument oder (besser noch) in einer weiteren externen Javascript-Datei erfolgen. Dadurch kann man das Script einfach für ein gesamtes Web einsetzen.
        </p>
<p>
            Für die Auszeichnung der PopUp-Links habe ich mich für das “<code>class</code>”-Attribut entschieden, da dieses im Vergleich zu dem ebenfalls geeigneten “<code>rel</code>”-Attribut zusätzlich auch über CSS gestylt werden kann.
        </p>
<h4>
            Beispiel 1 (Minimal):<br />
        </h4>
<p>
            Dieses Beispiel wird alle Links auf der Seite die mit der Klasse “popup” versehen wurden, so verändern, dass diese in einem neuen Fenster geöffnet werden. Zusätzlich wird der Text “Dieser Link wir in einem neuen Fenster geöffnet” in das Title-Attribut geschrieben, sodass der Nutzer weiss, was passiert wenn er klickt. Hinweis: der Einfachkeit-Halber wurde hier der window.onload-Event verwendet. Empfehlenswert statt dessen wäre ein moderner DomLoaded-Event [3].
        </p>
<ol>
<li>
<h5>
                    Einbindung der Klasse im Head:<br />
                </h5>
<p class="bsp2">
                    <code>&lt;script language="javascript" type="text/javascript" src="popup.js"&gt;&lt;/script&gt;</code>
                </p>
</li>
<li>
<h5>
                    Aufruf der Klasse:<br />
                </h5>
<p class="bsp2">
                    <code>&lt;script type="text/javascript"&gt;<br />
                    window.onload = function(){<br />
                    popup = new PopUp();<br />
                    popup.apply();<br />
                    }<br />
                    &lt;/script&gt;</code>
                </p>
</li>
<li>
<h5>
                    Ein Beispiel-Link<br />
                </h5>
<p class="bsp2">
                    <code>&lt;a class="popup" href="http://www.webkrauts.de"&gt;Link&lt;/a&gt;</code><a class="popup" href="http://www.webkrauts.de"></a>
                </p>
</li>
</ol>
<h4>
            Beispiel 2 (Erweiterte Funktionen)<br />
        </h4>
<p>
            Dieses erweiterte Beispiel zeigt, wie man zusätzliche Fenstertypen definieren kann. Man übergibt der Methode “addType()” ein Objekt mit den gewünschten Eigenschaften. Dabei ist jede Eigenschaft bis auf “name” optional (“name” wird immer benötigt, da dieser dem <code>class</code>-Attribut des PopUp-Links entspricht). Verfügbar sind derzeit folgende Eigenschaften mit den vordefinierten Standardwerten (weitere sind geplant):
        </p>
<ul>
<li>name:&#034;MeinNeuerFensterTyp&#034; <em>(der Name des neuen Fenstertypes ohne Leerzeichen und Sonderzeichen)</em>
            </li>
<li>width:800 <em>(die Breite des PopUps in Pixeln)</em>
            </li>
<li>height:600 <em>(die Höhe des PopUps in Pixeln)</em>
            </li>
<li>top:0 <em>(der Abstand des PopUps vom oberen Bildschirmrand in Pixeln)</em>
            </li>
<li>left:0 <em>(der Abstand des PopUps vom linken Bildschirmrand in Pixeln)</em>
            </li>
<li>location:false <em>(true oder false. Blendet die Adresszeile des neuen Fensters ein oder aus)</em>
            </li>
<li>resizable:false <em>(true oder false. Erlaubt oder verbietet des Verändern der Fenstergröße durch den Nutzer)</em>
            </li>
<li>scrollbars:false <em>(true oder false. Blendet den Rollbalken des neuen Fensters ein oder aus)</em>
            </li>
<li>status:false <em>(true oder false. Blendet die Statuszeile des neuen Fensters ein oder aus)</em>
            </li>
<li>toolbar:false <em>(true oder false. Blendet die Werkzeugzeile des neuen Fensters ein oder aus)</em>
            </li>
<li>menubar:false <em>(true oder false. Blendet die Menüzeile des neuen Fensters ein oder aus)</em>
            </li>
<li>center:true <em>(true oder false. Zentriert das neue Fenster automatisch in der mitte des Bildschirms (Achtung: Überschreibt die Werte “top” und “left” wenn true!))</em>
            </li>
<li>title:&#034;Dieser Link wir in einem neuen Fenster geöffnet&#034; <em>(Dieser Text wird bei Überfahren des Links mit der Maus angezeigt)</em>
            </li>
</ul>
<p>
            In dem folgenden Beispiel wird der zusätzliche Fenstertyp “pdf” definiert. Fügt man Links nun zusätzlich zu der Klasse “popup” auch die Klasse “pdf” hinzu so werden diese mit dem geänderten Title-Text angezeigt und in einem neuen Fenster mit den angegebenen Eigenschaften geöffnet. Natürlich kann man auch diese Links über CSS wieder angepasst stylen (hier z.B. mit einem PDF-Icon)
        </p>
<ol>
<li>
<h5>
                    Einbindung der Klasse im Head:<br />
                </h5>
<p class="bsp2">
                    <code>&lt;script language="javascript" type="text/javascript" src="popup.js"&gt;&lt;/script&gt;</code>
                </p>
</li>
<li>
<h5>
                    <code>Aufruf der Klasse:</code><br />
                </h5>
<p class="bsp2">
                    <code></code><code>&lt;script type="text/javascript"&gt;<br />
                    window.onload = function(){<br />
                    popup = new PopUp();<br />
                    popup.addType({<br />
                    name: "pdf",<br />
                    width: 800,<br />
                    height: 500,<br />
                    resizable: true,<br />
                    title: "Dieses PDF wird in einem neuen Fenster angezeigt"<br />
                    });<br />
                    popup.apply();<br />
                    }<br />
                    &lt;/script&gt;</code>
                </p>
</li>
<li>
<h5>
                    Ein Beispiel-Link<br />
                </h5>
<p class="bsp2">
                    <code>&lt;a class="popup" href="http://www.webkrauts.de"&gt;Link&lt;/a&gt;</code><a class="popup" href="http://www.webkrauts.de"></a><br />
                    <code>&lt;a class="popup pdf" href="http://www.webkrauts.de"&gt;Link&lt;/a&gt;</code><a class="popup" href="http://www.webkrauts.de"></a>
                </p>
</li>
</ol>
<h4>
            Download und aktuelle Infos der Klasse<br />
        </h4>
<ul>
<li>Projektseite: <a href="http://blog.ginader.de/dev/popup.html">blog.ginader.de/dev/popup.html</a>
            </li>
</ul>
<h4>
            Weiterführende Links<br />
        </h4>
<ol>
<li>
                <a href="http://ichwill.net/">Barrierefreies Javascript</a> <span class="aussen">.</span>
            </li>
<li>
                <a href="http://www.digital-web.com/articles/the_behavior_layer/">The Behavior Layer (Englisch)</a> <span class="aussen">.</span>
            </li>
<li>
                <a href="http://blog.ginader.de/archives/2006/07/12/DomLoaded-Wissen-wann-das-DOM-verfuegbar-ist-Crossbrowser!.php">Blogpost über Events die das Vorhandensein des DOMs prüfen</a>
            </li>
</ol>
<h4>
            Zum Autor<br />
        </h4>
<p>
            <img id="image156" src="http://www.webkrauts.de/wp-content/uploads/2006/12/dirk-ginader-60x60-webkrauts-gelb.gif" alt="Dirk Ginader" name="image156"/>Dirk Ginader ist Technischer Leiter der Unit Interactive von <a href="http://www.bartenbach.de">Bartenbach &amp; Co.</a> in Mainz. Er ist leidenschaftlicher Webworker is Sachen (X)HTML, CSS, Javascript, Dom, Ajax, PHP, Flash usw. Sein täglicher (stark Internet-lastiger) Output ist in seinem Blog: “<a href="http://blog.ginader.de/">web output</a>” zu lesen.<a href="http://blog.ginader.de/"></a>
        </p>
]]></content:encoded>
			<wfw:commentRss>http://www.webkrauts.de/2006/12/19/unaufdringliche-neue-browserfenster/feed/</wfw:commentRss>
		<slash:comments>45</slash:comments>
		</item>
		<item>
		<title>SEO kompakt</title>
		<link>http://www.webkrauts.de/2006/12/18/seo-kompakt/</link>
		<comments>http://www.webkrauts.de/2006/12/18/seo-kompakt/#comments</comments>
		<pubDate>Sun, 17 Dec 2006 23:10:26 +0000</pubDate>
		<dc:creator>Jens Meiert</dc:creator>
				<category><![CDATA[Adventskalender 2006]]></category>

		<guid isPermaLink="false">http://www.webkrauts.de/2006/12/17/seo-kompakt/</guid>
		<description><![CDATA[Jeder möchte seine Website bei Suchmaschinen auf den ersten Plätzen sehen. Eine Menge effektiver Praktiken für die Suchmaschinenoptimierung können Sie bei der Konzeption der Website selbst berücksichtigen. Jens Meiert fasst die wichtigsten Dos und Don'ts für Sie zusammen.]]></description>
			<content:encoded><![CDATA[<p>Suchmaschinenoptimierung beziehungsweise „<span xml:lang="en">Search Engine Optimization</span>“ (<abbr>SEO</abbr>) ist <strong>von kritischer Bedeutung</strong> für jedes Informationsangebot, wenn es um Bekanntmachung, Auffindbarkeit und letztlich gesteigerten Traffic, also Seitenzugriffe, geht. <abbr>SEO</abbr> stellt vor allem für wie auch immer monetarisierte Webseiten einen erheblichen – wenn nicht gar <em>den</em> – Wirtschaftsfaktor dar.</p>
<p>Dieser Artikel propagiert <strong>pragmatische <abbr>SEO</abbr></strong> und benennt in „kompakter“ Form die wichtigsten und am wenigsten umstrittenen Techniken zur Suchmaschinenoptimierung, wie sie als gutes Vorgehen angesehen werden. – Interessierte finden mehr Informationen zum <abbr>SEO</abbr>-Komplement <a href="http://de.wikipedia.org/wiki/Suchmaschinenmarketing"><abbr title="Search Engine Marketing" xml:lang="en">SEM</abbr> (Suchmaschinenmarketing) bei Wikipedia</a>, natürlich auch <a href="http://en.wikipedia.org/wiki/Search_engine_marketing">auf Englisch</a>.</p>
<h4 id="positive">Positive Faktoren</h4>
<h5 id="contents">Nützliche Inhalte</h5>
<p>Die offensichtlichste, wichtigste und doch gerne vergessene Optimierungsmaßnahme: <strong>Hochwertige, nützliche, wertvolle Inhalte</strong> und Dienste, sofern nicht etwas außergewöhnlich „Künstlerisches“ veröffentlicht wird. Keiner sucht etwas, das nicht benötigt wird, und Suchmaschinen lassen ungerne etwas finden, das nicht benötigt wird. Sergey Brin and Lawrence Page wiesen bei ihrer Vorstellung von Google (1998) besonders auf Qualität und Relevanz hin:</p>
<blockquote cite="http://infolab.stanford.edu/~backrub/google.html" xml:lang="en">
<p>[…] we want our notion of „relevant“ to only include the very best documents since there may be tens of thousands of slightly relevant documents.</p>
</blockquote>
<p>Hinterfragen, optimieren, warten Sie Ihr Angebot. <a href="http://meiert.com/de/publications/articles/20060523/">Machen Sie es hochwertig.</a></p>
<h5 id="keywords">Schlüsselwörter in Inhalten</h5>
<p>Ähnlich naheliegend, aber auf den zweiten Blick nicht ganz so trivial, ist, dass Dokumente auch die Begriffe beinhalten sollten, zu denen sie gefunden werden wollen. <strong>Achten Sie auf Schlüsselwörter</strong>, nicht nur in Domain-Namen, <abbr title="Uniform Resource Locator" xml:lang="en">URL</abbr>s, Seitentiteln, Überschriften, sondern grundsätzlich: Variieren Sie Schreibweisen, verwenden Sie alternative Begriffe, prüfen Sie, <a href="http://www.wordtracker.com/free-trial.html">wonach Leute suchen</a>, und analysieren Sie die <a href="http://www.seochat.com/seo-tools/keyword-density/">„<span xml:lang="en">Keyword</span>“-Dichte</a> Ihrer Dokumente.</p>
<h5 id="focus">Dedizierter inhaltlicher Schwerpunkt</h5>
<p>Analog zum Fokus auf Schlüsselwörter entspricht auch der inhaltliche Schwerpunkt einer Webseite in gewisser Weise einem Optimierungsfaktor. Webseiten mit vielen Themen sorgen für „interne Konkurrenz“ und weniger Exklusivität des Angebots – mal abgesehen davon, dass es mit zunehmender Themenmenge schwieriger wird, hohe Qualität zu erzielen, sofern nicht entsprechend mehr Mittel zur Verfügung stehen. <strong>Konzentration auf abgrenzbare Themengebiete</strong>, in die man Kompetenz einbringt, zahlt sich eher aus.</p>
<p>Übrigens: Ein gutes Beispiel dafür sind die vielen Spezialseiten, die relevanter als Wikipedia eingestuft werden – wie aktuell bei der <a href="http://www.google.de/search?hl=en&amp;q=SEO">(englischen) Google-Suche nach „<abbr>SEO</abbr>“</a>.</p>
<h5 id="title">Angemessene Seitentitel</h5>
<p>Wie unter <a href="#keywords">Schlüsselwörter in Inhalten</a> bereits angesprochen: Legen Sie Wert auf <strong>aussagekräftige Seitentitel</strong>.</p>
<p>Seitentitel:</p>
<ul>
<li>sind das erste, das ein Benutzer beim Laden einer Seite sieht;</li>
<li>erscheinen prominent in Suchmaschinenergebnissen (<abbr title="Search Engine Results Page" xml:lang="en">SERP</abbr>);</li>
<li>werden von Suchmaschinen besonderes Gewicht beigemessen.</li>
</ul>
<h5 id="links-internal">Durchgängige interne Verlinkung</h5>
<p>Auch die interne Verlinkung stellt einen Aspekt von <abbr>SEO</abbr> dar. Die Wichtigkeit eines Dokuments lässt sich mitunter durch die angebotsinterne Linkanzahl und -architektur ableiten: Eine <strong>durchgängig verlinkte Seite gilt als relevanter</strong> als wenig oder sogar gar nicht referenzierte, „vergrabene“ Seiten. Bei gleichzeitigem Fokus auf die entsprechenden <a href="#link-texts">Linktexte</a> sollten Sie sicherstellen, dass die interne Verlinkung stimmig ist.</p>
<h5 id="links-external">Relevante externe Links</h5>
<p>Externe Links sind einer der wichtigsten, wenn nicht gar <em>der</em> wichtigste <abbr>SEO</abbr>-Faktor: Ohne Links von anderen Webseiten ist Ihr Angebot quasi nicht existent, und wenn andere Seiten auf Ihr Angebot verlinken, ist weniger ihre schiere Zahl (<a href="http://www.marketleap.com/publinkpop/">messbare Linkpopularität</a>) als vielmehr deren Relevanz entscheidend. Auch wenn die Algorithmen, nach denen Suchmaschinen externe Links in die Bewertung eines Dokuments einfließen lassen, nicht genau bekannt sind, ist unstrittig, dass diese deutlichen Einfluss auf die Popularität haben.</p>
<p>(Warum steht dieser Punkt erst hier und nicht am Anfang des Artikels? Weil die beste <abbr>SEO</abbr>-Maßnahme aus einem qualitativ hochwertigen Angebot besteht, nicht aus unzähligen externen Links, die auf zusammengeschustertes Irgendwas verweisen.)</p>
<p>Um mehr und/oder relevante externe Links zu erhalten, sollte man gemeinhin <em>nicht</em> Links einkaufen, in großem Stil tauschen (vor allem in „schlechter Nachbarschaft“) oder gar <a href="http://de.wikipedia.org/wiki/Linkfarm">Linkfarmen</a> errichten. Diese Punkte mögen mitunter gar legitim sein oder vorkommen (mit der eigenen Seite will man ja tun und lassen können, was man will), bergen aber die Gefahr, von Suchmaschinen durch niedrigere Einstufung oder gar Entfernen aus dem Index bestraft zu werden.</p>
<p>Vielmehr sollten Sie für Ihre durch ihren Nutzen nahezu und idealerweise „selbst vermarktende“ Webseite <strong>eine durchdachte Linkstrategie verfolgen</strong>. Da das den Rahmen dieses Artikels sprengen würde, finden Sie weitere wertvolle Informationen unter anderem im <a href="http://linkingmatters.com/DownloadPDF.html">Bericht „<span xml:lang="en">Linking Matters</span>“</a>.</p>
<h5 id="link-texts">Aussagekräftige Texte von externen Links</h5>
<p>Um den Inhalt einer Webseite zu ermitteln, werden nicht nur die Texte eines Angebots, sondern auch die Texte interner sowie der auf das Angebot verweisenden Links (zu wenn auch unklarem und variierendem Grad) einbezogen. Wenn viele Links mit themenbezogenem Text auf ein Dokument verweisen, wird dieses mit hoher Wahrscheinlichkeit als relevanter bewertet und entsprechend höher in Suchergebnissen plaziert werden (ein Grund mehr, warum „hier klicken“-Links auf jeden Fall zu vermeiden sind). <strong>Texte externer Links sind wichtig</strong>, und &#034;ethische&#034; Gelegenheiten, diese zu beeinflussen, sollten genutzt werden.</p>
<h5 id="age">Höheres Alter des Angebots</h5>
<p>Zuguterletzt gilt (wenn auch nicht unumstritten) auch das Alter eines Informationsangebots und ebenso das darauf verweisender Links als positiver, wenngleich nur „natürlich“ zu beeinflussender Faktor: „Je älter, desto besser.“</p>
<h4 id="negative">Negative Faktoren</h4>
<h5 id="exclusion">Ausschluss von Suchmaschinen</h5>
<p>Ganz logisch: <strong>Suchmaschinen aussperren heißt, nicht gefunden zu werden.</strong> Das „Aussperren“ kann auf viele Arten erfolgen, unerheblich, ob nun beabsichtigt, da der Ausschluss von Suchmaschinen durchaus gewünscht und sinnvoll sein kann, oder versehentlich, wie unter anderem durch:</p>
<ul>
<li>Nicht (mehr) vorhandene oder zugängliche Dokumente (<a href="http://de.selfhtml.org/servercgi/server/httpstatuscodes.htm#uebersicht">404 und <abbr>Co.</abbr></a>);</li>
<li>Einsatz nicht oder schwer indizierbarer Multimedia-Inhalte ohne Fallback, von Audio bis Video (<a href="http://meiert.com/de/publications/translations/alistapart.com/wiwa/">Barrierefreiheit?</a>);</li>
<li>Einschränkungen durch <a href="http://www.robotstxt.org/wc/exclusion.html">robots.txt</a>;</li>
<li>Einsatz von bestimmten <a href="http://en.wikipedia.org/wiki/URL_redirection"><abbr>URL</abbr>-Weiterleitungen</a>;</li>
<li>Einschränkungen durch <a href="http://www.robotstxt.org/wc/meta-user.html"><code>noindex</code> und <code>nofollow</code></a>.</li>
</ul>
<p>Seitenbetreiber sollten sicherstellen, dass Inhalte nicht versehentlich von der Erfassung durch Suchmaschinen ausgeschlossen werden. (Ja, soll vorkommen.) Wenn ganze Webseiten oder -bereiche nicht berücksichtigt werden sollen, empfiehlt sich der Einsatz der robots.txt, deren <a href="http://tool.motoricerca.info/robots-checker.phtml">Syntax und Auswirkungen man leicht überprüfen</a> kann.</p>
<h5 id="neighborhood">Links in „schlechte Nachbarschaft“</h5>
<p>Zwar ist der exakte Einfluss dieses Punkts nicht ganz klar und auch nicht unumstritten: Links zu Dokumenten „niedriger Qualität“ und vor allem solchen, die gegen Richtlinien der Suchmaschinenbetreiber verstoßen – was üblicherweise auch Verstöße gegen geltendes Recht einbezieht – können negativen Einfluss auf Bewertung und Plazierung haben, im schlimmsten Fall in Form von Sperre und Ausschluss aus dem jeweiligen Index. Wer macht das schon (absichtlich), aber: <strong>Vermeiden Sie Links zu illegalen und unseriösen Angeboten.</strong></p>
<h5 id="keyword-spamming" xml:lang="en">Keyword Spamming</h5>
<p>Das <strong>Ausstaffieren und Überborden von Dokumenten mit Schlüsselwörtern kann das Ranking negativ beeinflussen</strong>. Dazu gehört vor allem der Missbrauch des <a href="http://de.selfhtml.org/html/kopfdaten/meta.htm#beschreibung"><code>keyword</code>-<code>meta</code>-Elements</a>: Wenn Sie es benutzen, benutzen Sie es richtig und benennen Sie nur die tatsächlichen Schlüsselwörter, nicht 19 alternative Schreibweisen, 13 themenferne Begriffe und 21 andere tolle „<span xml:lang="en">Buzzwords</span>“.</p>
<h5 id="link-spamming" xml:lang="en">Link Spamming</h5>
<p><strong>Vermeiden Sie <span xml:lang="en">Link Spamming</span>:</strong></p>
<ul>
<li>Automatisierte Einträge und Kommentare in Verzeichnissen, Blogs oder Gästebüchern;</li>
<li>Übertriebene <a href="http://en.wikipedia.org/wiki/Reciprocal_link">reziproke (gegenseitige) Verlinkung</a>;</li>
<li>themenferne Links;</li>
<li>anormale Link-Text-Verhältnisse.</li>
</ul>
<h4 id="final">Schlussbemerkung</h4>
<p>Wie eingangs und auch zwischenzeitlich bemerkt besteht der Schlüssel zu hoher Relevanz für Suchmaschinen in hoher Relevanz und hoher Qualität der Inhalte und Leistungen. Alle anderen Maßnahmen zur Optimierung sind gut und nützlich, aber in diesem Sinne nachrangig. <strong>Setzen Sie auf <a href="http://www.seomoz.org/articles/white-hat-black-hat.php">„weiße <abbr>SEO</abbr>“</a></strong> und <strong>planen Sie Ihre Suchmaschinenstrategie langfristig</strong>. Behalten Sie im Hinterkopf, dass alle genannten Punkte, ob negativ oder positiv, sich nicht unbedingt (sofort) entsprechend manifestieren müssen; ebenso, wie sie nicht sofort 57 Millionen tägliche Zugriffe auf Ihren neuen fantastischen „<span xml:lang="en">Social Bookmarking</span>“-Service erhalten werden (zusammen mit einem 10er <a href="http://de.wikipedia.org/wiki/PageRank" xml:lang="en">PageRank</a>), fliegen Sie bei der ersten umfangreichen Linkliste nicht gleich aus dem Yahoo-Index.</p>
<h4 id="related">Weiterführende Links</h4>
<ul>
<li><a href="http://www.seomoz.org/articles/search-ranking-factors.php">Ranking-Faktoren im Detail</a>;</li>
<li><a href="http://infolab.stanford.edu/~backrub/google.html">Google: Anatomie einer Suchmaschine</a>;</li>
<li><a href="http://www.seocompany.ca/pagerank/page-rank-update-list.html">Google: <span xml:lang="en">PageRank</span>-Aktualisierungen</a>;</li>
<li><a href="http://drunkmenworkhere.org/219">Visualisierung eines Indizierungsexperiments</a>;</li>
<li><a href="http://uitest.com/de/analysis/#seo"><abbr>SEO</abbr>-Analyse-Werkzeuge</a>.</li>
</ul>
<p>		<!-- / --></p>
<h4>Zum Autor</h4>
<p><a href="http://meiert.com/">Jens Meiert</a> (<a href="http://meiert.com/de/publications/books/3897214229/"><cite>Webdesign mit <abbr title="Cascading Style Sheets" xml:lang="en">CSS</abbr></cite></a>) jongliert primär für die Berliner Agentur <a href="http://www.aperto.de/">Aperto</a>, wird aber auch mit dem <abbr title="World Wide Web Consortium" xml:lang="en">W3C</abbr> und anderen Organisationen in Verbindung gebracht. Wenn er nicht gerade <a href="http://worlds-highest-website.com/de/">praxisnahe <abbr>CSS</abbr>-Experimente</a> verbreitet, verschifft er Poster von leichtbekleideten Damen nach Lesotho.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webkrauts.de/2006/12/18/seo-kompakt/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Content-Management und Webstandards: Redaxo</title>
		<link>http://www.webkrauts.de/2006/12/17/content-management-und-webstandards-redaxo/</link>
		<comments>http://www.webkrauts.de/2006/12/17/content-management-und-webstandards-redaxo/#comments</comments>
		<pubDate>Sat, 16 Dec 2006 23:10:25 +0000</pubDate>
		<dc:creator>Beate Paland</dc:creator>
				<category><![CDATA[Adventskalender 2006]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Content-Management-System]]></category>

		<guid isPermaLink="false">http://www.webkrauts.de/2006/12/17/content-management-und-webstandards-redaxo/</guid>
		<description><![CDATA[Im fünften Teil unserer Reihe über Content-Management-Systeme stellt Ihnen Beate Paland Redaxo vor.]]></description>
			<content:encoded><![CDATA[<p>Das CMS Redaxo der Frankfurter Agentur PERGOPA liegt seit einiger Zeit in Version 3.2 vor und ist fast eine Universalwaffe: Mit etwas Zeit, Muße und PHP-Kenntnissen kann man dem System einiges an Funktionalität jenseits des puren Inhalte-Verwaltens entlocken.</p>
<h4>Allgemeine Features</h4>
<p>Alle Artikel in Redaxo werden in Kategorie-Ordner untergebracht, die sortiert werden und wiederum aus Kategorien bestehen können. Einem komplexeren Menü mit mehreren Ebenen steht somit technisch nichts im Wege, jedoch sollte man die Verschachtelung aus Usabilitygründen nicht übertreiben. Jedem Artikel kann nicht nur ein eigenes Template zugeordnet werden, sondern es können auch dessen Metadaten editiert werden. Der Artikel wird dann aus einzelnen Modulen wie Texteingaben oder Bildern aufgebaut, ähnlich wie in Typo3. Diese Module können beim Aufbau einer Site aus der Demo übernommen werden. Man kann aber auch in &#034;ordinärem&#034; PHP eigene Module schreiben, ohne sich in eine obskure proprietäre Skript-Sprache einarbeiten zu müssen. Dadurch ist das ganze System ungeheuer flexibel, komplexe Projekte wie Online-Shop-Systeme oder eine Community-Website mit den üblichen Kommunikations-Features sind bereits erfolgreich mit Redaxo realisiert worden.</p>
<p>Zudem lassen sich auch mehrsprachige Seiten einfach mit Redaxo realisieren. Dazu kann man das System in den Einstellungen auf UTF8 umstellen, angeben, welche Sprachen verwaltet werden sollen, und schon hat man, zusammen mit dem ausgefeilten Benutzer/Rollen-System, die Möglichkeit, seine Inhalte mehrsprachig einzugeben und zu verwalten. Auch das Backend kann auf eine andere Sprache umgeschaltet werden, jedoch nicht benutzerabhängig.</p>
<p>Ajax-Funktionalitäten im Backend sucht man bisher leider vergebens, obwohl es sicher beim einen oder anderen Punkt (z.B. Kategorien umbenennen) durchaus angebracht wäre.</p>
<p><img alt="Redaxo Screen" id="image152" src="http://www.webkrauts.de/wp-content/uploads/2006/12/redaxo_screen.jpg" /></p>
<h4>Bewertung der Qualität bezüglich Webstandards</h4>
<p>Anhand einiger Stichpunkte könen Sie sich selbst ein Bild machen, ob Redaxo ihre Kriterien in Sachen Webstandards erfüllt.</p>
<ol>
<li><strong>Valider Quellcode</strong>Mit Redaxo hat man die komplette Kontrolle über den ausgebenen Quelltext: Was man in Template reinsteckt, kommt auch genau so im Browser des Benutzers an. Saubere CSS-Templates sind somit einfach realisierbar. Falls man doch mit der Ausgabe des ein oder anderen AddOns nicht zufrieden ist, kann diese leicht angepasst werden, da das Redaxo-System sauber strukturiert und übersichtlich gehalten ist.</li>
<li><strong>Saubere URLs</strong>Über eine Einstellung im System lässt sich Mod_Rewrite aktivieren, welches aus parametrisierten URLs wie &#034;http://www.example.de/index.php?article_id=3&#038;clang=0&#034; nun &#034;sprechende&#034; Adressen wie &#034;http://www.example.de/3-0-impressum.html&#034; ausgibt. Noch schöner wäre es allerdings, wenn die Sprache nicht mit einer Zahl, sondern durch die interne Abkürzung dargstellt würde (z.B. &#034;de&#034;), aber es muss ja auch noch Raum für zukünftige Verbesserungen geben.</li>
<li><strong>Navigation</strong>Mehrstufige Menüs lassen sich schön als Liste ausgeben, auch die Vergabe von IDs für Listenpunkte, um diese z.B. mittels CSS ansprechen zu können, ist kein Problem. Auch mehrere unabhängige Menüs sind so machbar. Mit etwas PHP ist sogar eine dynamische Navigationsgrafikgenerierung möglich, die mit ein paar Tricks auch in barrierearmen Seiten eingesetzt werden kann.</li>
<li><strong>Bilder</strong>Durch den eingebauten Medienpool ist das Verwalten von Bildern und anderen Dateien schmerzlos. Jedem Bild kann u.a. ein Titel und eine Beschreibung mitgegeben werden, die über die Module dann z.B. in den Alternativtext übernommen werden können.</li>
<li><strong>Suchfunktion</strong>Eine eingebaute Suchfunktion gibt es in der Demo nicht, aber sie kann über ein AddOn (search_index) hinzugefügt werden. Auch dieses AddOn kann natürlich an die eigenen Wünsche angepasst werden.</li>
<li><strong>Backend</strong>Das Backend ist derzeit noch nicht wirklich barrierefrei, jedoch wird sich dies in der nächsten Version 3.3 ändern: ein barrierearmes, CSS-basiertes Backend stand oben auf der Wunschliste der Entwickler und wird kommen, da es bereits jetzt sehbehinderte User gibt, die mittels Redaxo ihre Seiten pflegen.</li>
</ol>
<h4>Fazit</h4>
<p>Redaxo überzeugt dadurch, daß es sich bei der Gestaltung des ausgeworfenen Quellcode angenehm im Hintergrund hält. Im Gegensatz zu anderen bekannten Open-Source-CMSen versucht es nicht mit Gewalt, eigene (seltsame) Vorstellungen von Quellcodestrukturen gegen den Willen des Entwicklers durchzusetzen. Bei der Erstellung mehrsprachiger Seiten oder bei komplexeren Menüs, die von Redakteuren angepasst werden sollen, ist es derzeit mein Mittel der Wahl.</p>
<h4>Weiterführende Links</h4>
<ul>
<li><a href="http://www.redaxo.de">Redaxo</a> <span class="aussen">.</span></li>
<li><a href="http://www.pergopa.de/">PERGOPA Kristinus GbR</a> <span class="aussen">.</span></li>
<li><a href="http://de.wikipedia.org/wiki/Ajax_%28Programmierung%29">Wikipedia über Ajax</a> <span class="aussen">.</span></li>
<li><a href="http://de.wikipedia.org/wiki/Rewrite-Engine">Wikipedia über mod_rewrite</a> <span class="aussen">.</span></li>
</ul>
<h4>Zur Autorin</h4>
<p><img alt="Beate Paland" id="image154" src="http://www.webkrauts.de/wp-content/uploads/2006/12/wkak-beate.jpg" /><a href="http://www.paland.net/">Beate Paland</a> ist Webentwicklerin und setzt seit 2002 auf Webstandards, in sämtlichen HTML-Projekten, sei es mit PHP oder Ruby on Rails.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webkrauts.de/2006/12/17/content-management-und-webstandards-redaxo/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Mikroformate</title>
		<link>http://www.webkrauts.de/2006/12/16/mikroformate/</link>
		<comments>http://www.webkrauts.de/2006/12/16/mikroformate/#comments</comments>
		<pubDate>Fri, 15 Dec 2006 23:02:07 +0000</pubDate>
		<dc:creator>Michael Jendryschik</dc:creator>
				<category><![CDATA[Adventskalender 2006]]></category>

		<guid isPermaLink="false">http://www.webkrauts.de/2006/12/16/mikroformate/</guid>
		<description><![CDATA[HTML ist eine semantisch arme Sprache. Das W3C denkt seit langem über das "Semantische Web" nach. Doch ein semantischeres Web entsteht gerade "von unten", mit derzeit existierenden Methoden: Mikroformate helfen dabei. Michael Jendryschik führt in dieses interessante Konzept ein.]]></description>
			<content:encoded><![CDATA[<p>Als Tim Berners-Lee im Jahre 1990 an seiner <span lang="en" xml:lang="en">Hypertext Markup Language</span> arbeitete, entwarf er sie als eine einfache Hypertextsprache, die in der Lage sein sollte, Basismenüs für die Hypertextnavigation und einfache Dokumente wie Hilfedateien, Protokolle oder technische Dokumentationen zusammenstellen. Die ersten Versionen verfügten über rund 50 Elementtypen zur Auszeichnung textueller Inhalte. Das heute aktuelle <acronym>HTML</acronym> 4.01 und seine »große Schwester« <acronym>XHTML</acronym> 1.0 kennen zwar mittlerweile rund 90 Elementtypen zur semantischen Annotation von Inhalten, aber leider sind dies noch immer viel zu wenige, um semantisch vollständig zu sein. Anhand des Elementtyps <code>address</code> lässt sich die Forderung nach mehr Semantik anschaulich unterstreichen. Ein Dokument, das folgendes Element enthält, verrät Menschen und Maschinen unterschiedlich viel:</p>
<p class="bsp"><code>&lt;address&gt;<br />
Michael Jendryschik<br />
Dorstfelder Hellweg 36<br />
44149 Dortmund<br />
Telefon: +49 (0)231 2217811<br />
E-Mail: <a href="mailto:michael@jendryschik.de"> michael@jendryschik.de</a><br />
Web: <a href="http://jendryschik.de/">http://jendryschik.de</a><br />
&lt;/address&gt;</code></p>
<p>Maschinenlesbar, das heißt für Browser und andere Benutzerprogramme erkennbar, ist die Information, dass das Dokument Kontaktinformationen über den Autor enthält, strukturiert durch einige Zeilenumbrüche, darunter eine E-Mail-Adresse und den Link zu einer Website. Wir Menschen, so wir der verwendeten, natürlichen Sprache mächtig sind, können weit mehr Informationen ausmachen: Wir erkennen darüber hinaus</p>
<ul>
<li>einen Namen,</li>
<li>eine Adresse, bestehend aus Straße, Hausnummer, Postleitzahl und Ort sowie</li>
<li>eine Festnetz- und eine Mobiltelefonnummer.</li>
</ul>
<p>Diese Informationen sind jedoch <em>nicht</em> maschinenlesbar und damit nicht oder nur beschränkt programmatisch wiederverwendbar. Genau dieses Problem versuchen Mikroformate zu lösen. Dabei handelt es sich um <strong>Formate zur »Feinstrukturierung« von Webseiten</strong>. Dokumente, vor allem <acronym>(X)HTML</acronym>-Dokumente, werden menschen- und maschinenlesbar durch zusätzliche Semantik ergänzt, ohne die Inhalte zu verändern. Zum Einsatz kommen dabei drei Attribute: <code>class</code>, <code>rel</code> und <code>rev</code>.</p>
<h4>Die Attribute <code>class</code>, <code>rel</code> und <code>rev</code></h4>
<p>Das Attribut <code>class</code> weist einem Element einen Klassennamen oder einen Satz von Klassennamen zu. Derselbe Klassenname kann einer beliebige Anzahl von Elementen zugeordnet werden. Wie alle Attribute werden Klassen im Start-Tag des Elements notiert:</p>
<p><code>&lt;em class="wichtig"></code></p>
<p>Wenn Elemente zu mehreren Klassen gehören, zum Beispiel zu der Klasse »wichtig« und zu der Klasse »extern«, dann werden die Klassennamen mit einem Leerzeichen getrennt aufgeführt:</p>
<p><code>&lt;em class="wichtig extern"></code></p>
<p>Die Attribute <code>rel</code> und <code>rev</code> werden hauptsächlich an <code>a</code>-Elementen notiert und nehmen entgegengesetzte Rollen ein  – das <code>rel</code>-Attribut spezifiziert eine Vorwärts-, das <code>rev</code>-Attribut eine Rückwärtsbeziehung. Das Attribut <code>rel</code> beschreibt die Beziehung des aktuellen Dokuments zu der durch das <code>href</code>-Attribut angegebenen Zielressource. Das Attribut <code>rev</code> dient dazu, einen Rückwärtslink von der durch das <code>href</code>-Attribut angegebenen Zielressource zum aktuellen Dokument zu beschreiben. Der Wert beider Attribute ist eine durch Leerzeichen getrennte Liste von Beschreibungen.</p>
<p>So sagt beispielsweise<br />
    <code>&lt;a href="glossar" rel="glossary">Glossar&lt;/a></code><br />
    aus, dass die verlinkte Ressource ein Glossar für das aktuelle Dokument bereitstellt. Mit<br /> <br />
    <code>&lt;a href="foo" rev="contents">Foo&lt;/a></code><br />
    wird angezeigt, dass das aktuelle Dokument ein Inhaltsverzeichnis (<span lang="en" xml:lang="en">table of contents</span>) für die verlinkte Ressource darstellt.</p>
<p>Mikroformate werden eingesetzt, indem Elementen eines oder mehrere der drei Attribute mit festgelegten Werten zugewiesen wird.</p>
<h4>Verfügbare Formate</h4>
<p>Mittlerweile gibt es zahlreiche Formate für ganz spezifische Formen von Auszeichnungen. Dabei unterscheidet man zwischen zwei Gruppen von Formaten: elementare und zusammengesetzte. Zusammengesetzte Formate wie hCard oder hReview basieren auf elementaren Formaten wie <acronym lang="en" xml:lang="en" title="Xhtml Friends Network">XFN</acronym> oder <em>rel-tag</em> und alle letztendlich auf <acronym>XHTML</acronym>. Zu den bekanntesten Mikroformaten zählen die folgenden:</p>
<ul>
<li><a href="http://microformats.org/wiki/hcard">hCard</a> ist ein Mikroformat zur Auszeichnung von Kontaktinformationen. Es überträgt den vCard-Standard (<a href="http://www.ietf.org/rfc/rfc2426.txt"><acronym>RFC</acronym> 2426</a>) in <acronym>(X)HTML</acronym>.<br />
Eine vCard ist eine elektronische Visitenkarte, die ein Benutzer direkt in ein Adressbuch importieren kann.</li>
<li><a href="http://microformats.org/wiki/hcalendar">hCalendar</a> ist ein mittlerweile sehr verbreitetes Mikroformat, das sich an vCalendar (<a href="http://www.ietf.org/rfc/rfc2445.txt"><acronym>RFC</acronym> 2445</a>) orientiert. Dabei handelt es sich um ein Format zur Auszeichnung von Kalender- und Veranstaltungsdaten.</li>
<li>Das Format <a href="http://www.gmpg.org/xfn/"><acronym lang="en" xml:lang="en" title="Xhtml Friends Network">XFN</acronym></a> dient der Auszeichnung sozialer Beziehungen. So können sie angeben, ob Sie eine Person bereits persönlich getroffen haben oder ob sie ein Arbeitskollege, ein Freund oder ein Familienmitglied ist.</li>
<li><a href="http://microformats.org/wiki/xfolk">xFolk</a> dient der Auszeichnung von Bookmarks.</li>
<li>Zur Auszeichnung von Weblog-Einträgen und News eignet sich <a href="http://microformats.org/wiki/hatom">hAtom</a>.</li>
<li>Zu den in Zukunft sicherlich wichtigsten Mikroformaten gehört <a href="http://microformats.org/wiki/hreview">hReview</a>, mit dem Bewertungen und Besprechungen von Serviceleistungen, Veranstaltungen, Filmen und &ndash; vor allem &ndash; Produkten angereichert werden können.</li>
</ul>
<p>Mittlerweile gibt es eine große Anzahl weiterer Formatspezifikationen und -entwürfen, die im <a href="http://microformats.org/wiki/Main_Page" lang="en" xml:lang="en">Microformats Wiki</a> aufgeführt sind.</p>
<h4>Beispiele: hCard und hCalendar</h4>
<p>Es bietet sich an, die Anwendung von Mikroformaten anhand hCard zu demonstrieren, indem das oben aufgeführte Beispiel durch die entsprechenden Klassen und einige wenige, umschließende Elemente erweitert wird:</p>
<p class="bsp"><code>&lt;address <strong>class="vcard"</strong>&gt;<br />
<strong>&lt;span class="adr"&gt;</strong><br />
   <strong>&lt;span class="fn"&gt;</strong>Michael Jendryschik<strong>&lt;/span&gt;</strong><br />
   <strong>&lt;span class="street-address"&gt;</strong>Dorstfelder Hellweg 36<strong>&lt;/span></strong><br />
   <strong>&lt;span class="postal-code"&gt;</strong>44149<strong>&lt;/span&gt;</strong><br />
   <strong>&lt;span class="locality"&gt;</strong>Dortmund<strong>&lt;/span&gt;</strong><br />
<strong>&lt;/span></strong><br />
Telefon: <strong>&lt;span class="tel"&gt;</strong>+49 (0)231 2217811<strong>&lt;/span></strong><br />
E-Mail: &lt;a href="mailto:michael@jendryschik.de" <strong>class="email"</strong>>michael@jendryschik.de&lt;/a><br />
Web: &lt;a href="http://jendryschik.de/" <strong>class="url"</strong>>http://jendryschik.de&lt;/a><br />
&lt;/address&gt;</code></p>
<p>Alle Informationen, die vorher nur für Menschen lesbar waren, können nun auch Maschinen verstehen.</p>
<p>Ein weiteres Beispiel ist die Anwendung des Mikroformats hCalendar. Es kommt unter anderem auf der <a href="http://www.einfach-fuer-alle.de/events/2006/">Veranstaltungsübersicht</a> von <a href="http://www.einfach-fuer-alle.de/">Einfach für alle</a>, der Aktion-Mensch-Initiative für ein barrierefreies Web, zum Einsatz. Eine Veranstaltung, hier die Preisverleihung der <acronym>BIENE</acronym> 2006, wird beispielsweise wie folgt ausgezeichnet:</p>
<p class="bsp"><code>&lt;div <strong>class="vevent"</strong>&gt;<br />
  &lt;h3 <strong>class="summary"</strong>Preisverleihung:<br />
    &lt;a href="/biene-2006/" <strong>class="url"</strong>>BIENE 2006&lt;/a&gt;&lt;/h3&gt;<br />
   &lt;p <strong>class="description"</strong>>Seit 2003 prämieren die Aktion Mensch und die Stiftung<br />
    Digitale Chancen die besten barrierefreien Angebote im Internet mit einer<br />
    BIENE. BIENE steht für »Barrierefreies Internet eröffnet neue Einsichten«,<br />
    aber auch für Kommunikation, gemeinsames Handeln und produktives<br />
    Miteinander.&lt;/p><br />
  &lt;p class="datum"><strong>&lt;abbr class="dtstart" title="2006-12-08"></strong>08. Dezember<strong>&lt;/abbr></strong>,<br />
    <strong>&lt;span class="location"></strong>Berlin<strong>&lt;/span></strong>, weitere Infos unter:<br />
    &lt;a href="http://www.biene-award.de/" rel="external" <strong>class="url"</strong>><br />
    biene-award.de&lt;/a>.&lt;/p>&lt;/div></code></p>
<h4>Mikroformate erstellen und verarbeiten</h4>
<p>Die Annotation von Mikroformaten zu <acronym>(X)HTML</acronym>-Dokumenten ist zwar keineswegs schwierig und lässt sich leicht per Hand erledigen. Dennoch sind Sie nicht vollkommen auf sich allein gestellt: Es gibt mittlerweile einige Werkzeuge, die Autoren bei dieser Arbeit unterstützen. Bei der Erstellung einer hCard-Auszeichnung hilft der <a href="http://microformats.org/code/hcard/creator">hCard Creator</a>. Für hCalendar gibt es mit dem <a href="http://microformats.org/code/hcalendar/creator">hCalendar Creator</a> einen vergleichbaren Service, für <a href="http://microformats.org/wiki/hreview">hReview</a> den <a href="http://microformats.org/code/hreview/creator">hReview Creator</a>. <a href="#abb1">Abbildung 1</a> zeigt, wie einfach sich der hCard Creator bedienen lässt. Der erzeuge Code kann bearbeitet und direkt in das Zieldokument kopiert werden.</p>
<p id="abb1"><img id="image150" src="http://www.webkrauts.de/wp-content/uploads/2006/12/abb1.jpg" alt="hCard Creator im Einsatz" /></p>
<p>Die Erstellung von Mikroformaten ist jedoch nur die eine Seite der Medaille, deren Auswertung und Verarbeitung die andere. Aber auch da gibt es mittlerweile einige nützliche Werkzeuge und Browsererweiterungen.</p>
<p><a href="http://www.technorati.com/">Technorati</a>, eine Echtzeit-Suchmaschine speziell für Weblogs, bietet einen so genannten <a href="http://technorati.com/contacts/">Contacts Feed Service</a> an, der es ermöglicht, mittels hCard ausgezeichnete Kontaktinformationen im vCard-Format zu exportieren. Gibt man den <acronym>URL</acronym> einer Webseite, die das oben erweiterte <code>address</code>-Element enthält, liefert der Service eine <acronym>VCF</acronym>-Datei, die nun problemlos in gängige Adressbücher importiert werden &ndash; eine feine Sache.</p>
<p>Der <a href="http://www.technorati.com/events/">Events Feed Service</a> leistet dasselbe für Kalenderdaten. Es wird eine <acronym>ICS</acronym>-Datei exportiert, die direkt in Programme wie <a href="http://www.mozilla.org/projects/calendar/sunbird/">Mozilla Sunbird</a> importiert werden kann.</p>
<p>Es gibt auch Browsererweiterungen, die Mikroformate auslesen und darstellen und weiterverarbeiten, etwa in ein entsprechenden Zielformat konvertieren und zum Export anbieten, für Firefox unter anderem die <a href="http://blog.codeeg.com/tails-firefox-extension-03/">Tails Firefox Extension</a> und <a href="https://addons.mozilla.org/firefox/2240/">Tails Export</a> &ndash; letztere leider nur bis Version 1.5. <a href="#abb2">Abbildung 2</a> zeigt Tails im Einsatz.</p>
<p id="abb2"><img id="image151" src="http://www.webkrauts.de/wp-content/uploads/2006/12/abb2.jpg" alt="Die Firefox-Erweiterung Tails im Einsatz" /></p>
<h4>Fazit</h4>
<p>Mikroformate reichern Dokumente menschen- <em>und</em> maschinenlesbar mit semantischen Informationen an ohne ihren Content zu verändern. Dabei gilt festzuhalten: <strong>Maschinenlesbare Semantik ist wiederverwendbarer Content</strong>, das heißt, es ist möglich, mit Mikroformaten versehen Daten weiterzuverarbeiten. Informationen lassen sich aus einer Website auszulesen und anderen Programmen zugänglich machen. Dadurch ergibt sich ein großer Mehrwert für den Nutzer. Stellen Sie sich vor, die Veranstaltungsübersicht Ihres bevorzugten Konzerthauses oder ihrer Lieblingsdiskothek wäre mit Mikroformaten ausgezeichnet &ndash; welch praktischen Nutzen Sie doch davon hätten! Sie könnten die Daten aller oder ausgewählter Veranstaltungen mit wenigen Klicks aus den Webseiten extrahieren und ihrer Kalendersoftware verfügbar machen. <strong>Mikroformate sind ein Teil des Web 2.0</strong>: Sie kennzeichnen soziale Beziehungen, unterstützen Bookmarking und Tagging. Und stellen Sie sich vor, wie nützlich Mikroformate werden können, wenn Suchmaschinen sie für sich entdecken. Webseiten mit Buch- oder <acronym>DVD</acronym>-Rezensionen könnten so viel effizienter bewertet werden.</p>
<p>Der Veranstaltungskalender <a href="http://upcoming.org/">Upcoming.org</a>, die Profilseiten von <a href="https://www.xing.com/">Xing</a>, die <a href="http://zdnet.co.uk/misc/contact/">Kontaktseite von ZKNet.co.uk</a>, die Produktbewertungen von <a href="http://tech.yahoo.com/">Yahoo! Tech</a> und viele andere Beispiele zeigen, dass Mikroformate bereits heute sinnvoll eingesetzt werden können. <strong>Fangen auch Sie am besten schon heute damit an, die Inhalte Ihrer Websites mit Mikroformaten zu veredeln!</strong></p>
<h4>Weiterführende Links</h4>
<ul>
<li><a href="http://microformats.org/">microformats.org</a> <span class="aussen">.</span></li>
<li><a href="http://microformats.org/wiki/Main_Page">Microformats Wiki</a> <span class="aussen">.</span></li>
<li><a href="http://mikroformate.de/">Mikroformate (deutsch)</a> <span class="aussen">.</span></li>
<li><a href="http://mikroformate.org/">mikroformate.org (deutsch)</a> <span class="aussen">.</span></li>
<li><a href="http://www.digital-web.com/articles/the_big_picture_on_microformats/" lang="en" xml:lang="en">The Big Picture on Microformats</a> <span class="aussen">.</span></li>
</ul>
<h4>Zum Autor</h4>
<p><img id="image149" src="http://www.webkrauts.de/wp-content/uploads/2006/12/mj_60x60.jpg" alt="Michael Jendryschik"  class="bild-links" /><a href="http://jendryschik.de/">Michael Jendryschik</a> beschäftigt sich seit Jahren mit den Webstandards des <acronym>W3C</acronym> und ist gern gesehener Gast in einschlägigen Newsgroups, Webforen und Mailinglisten. Erfahrungen als Autor sammelte er vor allem durch zahlreiche Veröffentlichungen auf seiner Website und als Fachjournalist. Bekannt ist er durch seine <a href="http://jendryschik.de/wsdev/einfuehrung/">Einführung in <acronym>XHTML</acronym>, <acronym>CSS</acronym> und Webdesign</a>, die auch als <a href="http://jendryschik.de/wsdev/einfuehrung/buch/">Buch</a> erhältlich ist.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webkrauts.de/2006/12/16/mikroformate/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Barrierefreiheit 2.0 – heute die Altlasten von morgen vermeiden</title>
		<link>http://www.webkrauts.de/2006/12/15/web-20-und-barrierefreiheit/</link>
		<comments>http://www.webkrauts.de/2006/12/15/web-20-und-barrierefreiheit/#comments</comments>
		<pubDate>Thu, 14 Dec 2006 23:10:09 +0000</pubDate>
		<dc:creator>Tomas Caspers</dc:creator>
				<category><![CDATA[Adventskalender 2006]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Barrierefreiheit]]></category>
		<category><![CDATA[Web2.0]]></category>

		<guid isPermaLink="false">http://www.webkrauts.de/2006/12/15/web-20-und-barrierefreiheit/</guid>
		<description><![CDATA[Keine Frage, das Web wird deutlich dynamischer, Websites setzen immer häufiger auf DOM-Scripting oder AJAX. Die Richtlinien für Barrierefreiheit hinken der Technik jedoch hinterher. Tomas Caspers beleuchtet sieben Jahre alte Regeln im Zusammenspiel mit dem Web 2.0.]]></description>
			<content:encoded><![CDATA[<p><strong>Ein gemeinsamer Nenner aller Dinge, die als <span lang="en">Web</span> 2.0 durchs Netz geistern ist ein Mehr an Dynamik, ein Mehr an Interaktion des Nutzers mit dem Angebot und darüber hinaus mit anderen Nutzern: das Lesen-Schreiben-Ausführen-<span lang="en">Web</span>. Will man die Barrierefreiheit von dynamischen, <span lang="en">Web</span>-basierten Anwendungen sicherstellen, dann stößt man schnell an die Grenzen der Richtlinien.</strong></p>
<p>Die geltenden Richtlinien für barrierefreie <span lang="en">Web</span>inhalte, die <a href="http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505"><acronym lang="en">WCAG</acronym> 1.0</a> des <abbr>W3C</abbr> bestehen nun schon seit beinahe sieben Jahren in unveränderter Form. Ein Nachfolger ist zwar in der Entwicklung, der Zeitpunkt der Fertigstellung <a href="http://www.w3.org/WAI/GL/new-charter.html#duration">steht</a> <a href="http://www.w3.org/WAI/GL/new-charter-2000.html#duration">jedoch</a> <a href="http://www.w3.org/2003/08/wcag-charter.html#duration">in</a> <a href="http://www.w3.org/2004/04/wcag-charter.html#duration">den</a> <a href="http://www.w3.org/2006/05/wcag-charter.html#duration">Sternen</a>. Da wundert es nicht, dass die <i lang="en">Web Content Accessibility Guidelines</i> in der Version 1.0 für viele Dinge im <span lang="en">Web</span> 2.0 nicht anwendbar sind oder modernere Techniken wie sauberes <span lang="en"><acronym>DOM</acronym>-Scripting</span> sogar effektiv unmöglich machen, auch wenn diese für die Erstellung <span lang="en">Web</span>-basierter Anwendungen zwingend nötig sind.</p>
<p>Dieses Manko kann man den Richtlinien nicht zum Vorwurf machen; stammen sie doch aus einer Zeit, als das <span lang="en">Web</span> größtenteils aus, wie es im <abbr>W3C</abbr>-Sprech so schön heißt, ‘strukturierten Dokumentensammlungen’ bestand. Für <span lang="en">Web</span>sites, die lediglich aus statischen Inhalten ohne Interaktionsmöglichkeiten für den Nutzer bestehen sind die Richtlinien, wenn auch mit gewissen Abstrichen, nach wie vor anwendbar.</p>
<h4>Rückwärtsgang oder Vorwärtsgang?</h4>
<p>Das <span lang="en">Web</span> und die verwendeten Techniken haben sich jedoch seit Inkrafttreten der Richtlinien massiv weiterentwickelt. Das vom <abbr>W3C</abbr> auch schon mal als <q cite="http://lists.w3.org/Archives/Public/public-webapps-cdf-discuss/2004Jun/att-0000/2004jun01.html#topic3" lang="en">worst invention ever</q> <a href="http://lists.w3.org/Archives/Public/public-webapps-cdf-discuss/2004Jun/att-0000/2004jun01.html#topic3">bezeichnete</a> <span lang="en">JavaScript</span> hat in den letzten zwei Jahren eine phänomenale Wandlung vom Pfuiwort zu einer allgemein anerkannten Technik für die Erstellung von <span lang="en">Web</span>-basierten Applikationen hingelegt. Wer hätte gedacht, dass man mittlerweile <span lang="en">Flash</span> zusammen in einem Satz mit Barrierefreiheit erwähnen darf? Das Programm hat sich von einer verpönten Spielwiese zu einem ernstzunehmenden Werkzeug für die Erstellung <a href="http://www.rnib.org.uk/xpedio/groups/public/documents/publicwebsite/public_jkrowling.hcsp" hreflang="en">zugänglicher <span lang="en">Rich-Media</span>-Inhalte</a> gemausert. Der englische <span lang="en">Accessibility</span>-Experte <a href="http://www.isolani.co.uk/blog/access/AccessibilityInTrouble1Flash"><span lang="en">Mike Davies</span> meint dazu</a>: <q cite="http://www.isolani.co.uk/blog/access/AccessibilityInTrouble1Flash" lang="en">Its time to admit, Flash is part of the web accessibility toolbox.</q></p>
<p>Auch die von Menschen mit Behinderung vielfach eingesetzten Hilfsmittel sind längst dem unzureichenden Stand der Technik entwachsen, denen die <a href="http://www.w3c.de/Trans/WAI/webinhalt.html#until-user-agents"><i lang="en">»Until User Agents…«</i>-Klauseln</a> der <acronym lang="en">WCAG</acronym> 1.0 begegnen sollten. Moderne <span lang="en">Screenreader</span> kommen mit zeitgemäßen <span lang="en">Scripting</span>-Techniken und auch mit barrierefrei aufbereiteten <span lang="en">Flash</span>-Inhalten sowie gut strukturierten <acronym lang="en">PDF</acronym>-Dokumenten sehr gut zurecht.</p>
<p>Wenn man dynamische <span lang="en">Web</span>inhalte mit echten <span lang="en">Screenreader</span>-Nutzern testet (<em>und das ist dringend zu empfehlen</em> – Barrierefreiheit ist <em>keine</em> <a href="http://www.vorsprungdurchwebstandards.de/theory/accessibility-nach-vorschrift/">Fingerübung im Abhaken von <span lang="en">Check</span>listen</a>), stellt man oft fest, dass die meisten Hürden gar nicht technischer Natur sind. Vielfach liegt es an einer Mischung aus konzeptionellen Mängeln im Angebot selbst und dem ungewohnten Umgang der Nutzer mit dynamischen <span lang="en">Web</span>-Applikationen, resultierend aus der Erwartungshaltung, dass das <span lang="en">Web</span> ein weitestgehend statisches Medium sei.</p>
<h4>Der theoretische Part</h4>
<p>Nach wie vor fordern die Richtlinien von den Anbietern dynamischer Inhalte, zusätzlichen Aufwand in parallele statische Versionen zu stecken, da die <acronym lang="en">WCAG</acronym> von Hilfsmitteln ausgehen, für die diese Techniken in der Tat ausgesprochen problematisch <em>waren</em>. Man beachte die Betonung auf <em>»waren«</em>. Staatliche Anbieter brauchen gar nicht erst versuchen, dieses Paradoxon aufzulösen – sie sind per <a href="http://www.einfach-fuer-alle.de/artikel/bitv/anlage-1/">Verordnung</a> zur Einhaltung der Richtlinien verpflichtet:</p>
<blockquote cite="http://www.einfach-fuer-alle.de/artikel/bitv/anlage-1/#bedingung-6.2">
<dl>
<dt><abbr>BITV</abbr> 6.2</dt>
<dd>Es muss sichergestellt sein, dass Äquivalente für dynamischen Inhalt aktualisiert werden, wenn sich der dynamische Inhalt ändert.</dd>
<dt><abbr>BITV</abbr> 6.3</dt>
<dd>Es muss sichergestellt sein, dass mittels <span lang="en">Markup</span>–Sprachen geschaffene Dokumente verwendbar sind, wenn <span lang="en">Scripts, Applets</span> oder andere programmierte Objekte deaktiviert sind.</dd>
</dl>
</blockquote>
<p>Privatwirtschaftlich organisierte Anbieter können sich jedoch der eigentlich spannenden Frage zuwenden: wie stellt man die <strong><em>direkte</em> Zugänglichkeit</strong> von dynamischen <span lang="en">Web</span>inhalten sicher?</p>
<p>Aus Sicht der Anbieter wie auch aus Sicht der Nutzer scheint der Einsatz lange verpönter Techniken wie <acronym lang="en">AJAX</acronym> sinnvoller als die von den Richtlinien eingeforderten statischen Alternativen. Die verlangten statischen Alternativen sind zudem in Zeiten von <a href="http://docs.google.com/" lang="en" hreflang="en">Google Office</a>, <a href="http://technet2.microsoft.com/Office/en-us/library/6d13c9bc-fb28-418f-8f19-e0f290562daf1033.mspx?mfr=true" lang="en" hreflang="en">Excel 2007</a>, <a href="http://www.basecamphq.com/" lang="en" hreflang="en">Basecamp</a> und <a href="http://www.techcrunch.com/2006/09/29/why-the-new-mac-webmail-is-important/" lang="en" hreflang="en">.Mac Webmail</a> keine wirkliche Alternative mehr, sondern fördern eher noch die digitale Spaltung, wenn sie nicht sogar konzeptionsbedingt unmöglich sind.</p>
<h4>Der Praxisteil</h4>
<p>Nehmen wir ein erdachtes, aber durchaus realistisches Szenario: bei einem bekannten Internet-Auktionshaus laufen gleichzeitig tausende Auktionen ab; gleichzeitig wollen zehntausende Bieter wissen, wie das aktuelle Höchstgebot ist. Die Seiten, die kurz vor Ablauf der Auktionen immer wieder neu geladen werden, sind, wie für dieses Auktionshaus typisch, eher etwas zu groß geraten. Das Auktionshaus hat also ein permanentes Problem mit der <span lang="en">Server</span>last, die Nutzer haben ein permanentes Problem mit den Antwortzeiten des <span lang="en">Servers</span>. Und das alles nur, um zu erfahren, ob sich eine vielleicht vierstellige Zahlenfolge geändert hat und man nicht mehr der Höchstbietende ist.</p>
<p>Alleine aus einer simplen Abwägung von Kosten und Nutzen heraus ist es sowohl für das Auktionshaus wie auch für dessen Nutzer ist hier der Einsatz von <acronym lang="en">AJAX</acronym> oder ähnlichen Techniken sinnvoll. Das jeweils aktuelle Höchstgebot wird in Echtzeit per Skript ausgetauscht, ohne das jedes Mal die kompletten Seiten neu geladen werden. Die von den <acronym lang="en">WCAG</acronym> eingeforderte statische Alternative gibt es weiterhin (weil ja schon vorhanden) und die Richtlinien zu Barrierefreiheit sind damit (zumindest auf dem Papier) erfüllt.</p>
<p><em><strong>Dumm nur:</strong><br />mit der statischen Alternative gewinnt man keine Auktion mehr, da diese zwar <acronym lang="en">WCAG</acronym>-konform ist, aber damit auch langsamer.</em></p>
<h4>Das Fazit</h4>
<p>Tests der <i lang="en"><abbr title="Web Standards Project">WaSP</abbr> Accessibility Task Force</i> haben ergeben, dass <span lang="en">Screenreader</span> nahezu die gleichen Probleme mit Änderungen in Seiten oder Anwendungen haben, egal ob sie dynamisch erfolgt sind oder durch einen kompletten Neuaufbau der Seite. Die Ursache der Probleme scheinen also nicht  <em>dynamische</em> Änderungen per Skript zu sein, sondern Änderungen generell.</p>
<p>Es kann eigentlich nur im ureigensten Interesse der Nutzer <a href="http://incobs.de/">assistiver Hilfsmittel</a> wie <span lang="en">Screenreader</span>, Lupenprogrammen <abbr>etc.</abbr> sein, dass Ihre Schnittstellen ins <span lang="en">Web</span> 2.0 dessen Möglichkeiten auch vollständig ausnutzen, sie korrekt umsetzen und so eine gleichberechtigte Teilnahme von Menschen mit Behinderungen ermöglichen.</p>
<p>Um dies zu erreichen muss sich die Erkenntnis durchsetzen, dass die <span lang="en">Web Content Accessibility Guidelines</span> des <abbr>W3C</abbr> lediglich ein Drittel der Richtlinien zur Barrierefreiheit ausmachen. Auch die <i lang="en">User Agent Accessibility Guidelines</i> (<a href="http://www.w3.org/TR/UAAG/"><acronym lang="en">UAAG</acronym></a>) und insbesondere die <i lang="en">Authoring Tools Accessibility Guidelines</i> (<a href="http://www.w3.org/TR/ATAG/"><acronym lang="en">ATAG</acronym></a>) sind ebenso wichtig, um das umfassende Ziel eines barrierefreieren <span lang="en">Web</span> 2.0 zu erreichen.</p>
<p>Wenn jedoch weiterhin die gesamte Verantwortung auf die <span lang="en">Web</span>entwickler abgewälzt wird, die mit Interimslösungen ihren Redaktionssystemen, Autorenwerkzeugen, aber auch den <span lang="en">Browsern</span> und Hilfsmitteln auf die Sprünge helfen müssen, die sich ihrerseits nicht im mindesten an die Standards halten, dann werden damit die Altlasten von morgen geschaffen. Und Interimslösungen können, wie wir alle wissen, ziemlich langlebig sein…</p>
<h4>Weiterlesen:</h4>
<ul>
<li><a href="http://www.vorsprungdurchwebstandards.de/theory/accessibility-nach-vorschrift/">Accessibility nach Vorschrift: Wenn <span lang="en">Web</span>-Entwickler zu Bürokraten werden</a></li>
<li><a href="http://www.einfach-fuer-alle.de/artikel/wcag2-last-call/"><acronym>WCAG</acronym> 2 &#8211; was ändert sich?</a></li>
<li><a href="http://www.webaim.org/articles/pour/" lang="en" hreflang="en">Constructing a <acronym>POUR</acronym> Website &#8211; Putting People at the Center of the Process</a></li>
<li><a href="http://thursdayrants.org/2006/08/25/accessibility-explained-the-star-wars-way/" lang="en" hreflang="en">Accessibility explained the Star Wars way</a></li>
</ul>
<h5>Über den Autor</h5>
<p><img id="image145" src="http://www.webkrauts.de/wp-content/uploads/2006/12/statler.jpg" alt="Autorenfoto: Tomas Caspers" /><a href="http://tomascaspers.de/">Tomas Caspers</a> hat eine Hassliebe zu <span lang="en">Web</span>browsern, die sich bis zu <span lang="en">Netscape</span> 0.9b zurückverfolgen lässt. Schon früh erkannte er den Wert standardkonformer <span lang="en">Web</span>entwicklung und beschäftigt sich seitdem mit <acronym>CSS</acronym> und den Techniken zur Barrierefreiheit. Caspers gehörte 1998 zu den Gründern des <a href="http://www.webstandards.org/" lang="en">Web Standards Project</a>, wo er sich in der <i lang="en">Accessibility Task Force</i> darum kümmert, dass moderne <span lang="en">Web</span>angebote auch für Menschen mit Behinderung zugänglich werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webkrauts.de/2006/12/15/web-20-und-barrierefreiheit/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>
