<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3"
    xmlns="http://purl.org/atom/ns#"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xml:lang="de">

    <title>High Resolution Weblog</title>
    <link rel="alternate" type="text/html" href="http://www.highresolution.info" />
    <tagline>Das Weblog über Digitale Fotografie // Bildbearbeitung // Webdesign von Dirk Jesse</tagline>
    <modified>2010-07-27T22:36:02+00:00</modified>
    <generator url="http://www.pmachine.com/" version="1.6.7">ExpressionEngine</generator>
    <copyright>Copyright (c) 2010, Dirk Jesse</copyright>


    <entry>
      <title type="html">Alles valide oder was?</title>
      <link rel="alternate" type="text/html" href="http://www.highresolution.info/weblog/entry/alles_valide_oder_was/" /> 
      <id>tag:highresolution.info,2010:weblog/11.1394</id>
      <issued>2010-07-27T19:01:00+00:00</issued>
      <modified>2010-07-27T22:36:02+00:00</modified>
      <summary type="html">Dieser Beitrag zu Validit&#228;t und ihrer Bedeutung in der aktuellen Webentwicklung liegt mir schon seit Monaten auf der Zunge. Bisher gab es immer genug Ablenkungen, ihn nicht zu schreiben. Heute ist das anders, denn heute hat mich eine Anfrage im YAML&#45;Forum dazu gebracht, dieses Thema endlich mal wieder auf den Tisch zu bringen.
 Worum geht es? Vor langer Zeit als die Welt noch schwarz&#45;wei&#223; ... als das Web noch jung und HTML4 Quellcode noch f&#252;rchterlich chaotisch und gef&#252;hlt frei jeglicher Stilregeln geschrieben werden konnte, da kamen einige schlaue Webschaffende auf die Idee, dass es doch ein wirklicher Fortschritt w&#228;re, wenn sich die Entwicklergemeinde an Standards halten w&#252;rde. Webstandards kamen in Mode und der Ruf nach sauberem, validem Code drang selbst in die hintersten Gassen. XHTML 1.0 war damals der gro&#223;e argumentative Renner, denn XHTML zwang Webentwickler zu Ordnung und Sauberkeit im Code. Tags mussten geschlossen, Attributwerte zwingend in Anf&#252;hrungszeichen gesetzt werden. Die jahrelange Arbeit mit XHTML hat mir zwar XML an sich kein noch so kleines St&#252;ckchen sympathischer gemacht (aufgrund seiner Fehlerintoleranz) aber es hat mich gelehrt sauberen Code zu schreiben.

Und da auch ich zu denen geh&#246;re die B&#252;cher ver&#246;ffentlichen, um mein Wissen um HTML &amp;amp; CSS weiterzugeben, bin ich auch nicht ganz unschuldig an der Situation, die sich uns Entwicklern heute bietet. Seit vielen Jahren predigen wir: Validiert Euren Code! Wenn irgendetwas nicht funktioniert und Ihr jemanden nach Hilfe fragen wollt: Erst validieren &amp;ndash; dann jemanden fragen! So oder so &#228;hnlich liest man es in jedem CSS&#45;Buch (und davon gibt es mittlerweile reichlich). Leider haben offensichtlich die wenigstens Autoren es bisher geschafft, den ahnungslosen Neulingen in einfachen Worten zu vermitteln, was Validit&#228;t eigentlich bedeutet und was die Ausgaben der Validierungsdienste des W3C (HTML | CSS) wirklich bedeuten.

Dieser Umstand ist mir so richtig klar geworden, als ich vorhin &#252;ber folgendes Foreneintrag gestolpert bin:


Hallo Zusammen!
Ich habe per CSS folgende Codes eingef&#252;gt um einen Text vertikal darzustellen. Soweit funktioniert das auch. Jedoch bei der W3C Validierung werden diese CSS Anweisungen als Fehler deklariert. Gibt es hierzu auch eine valide M&#246;glichkeit? 


Dazu wurde folgender Codeschnipsel mitgeliefert:


&#45;webkit&#45;transform: rotate(&#45;90deg); 
&#45;moz&#45;transform: rotate(&#45;90deg);    
&#45;o&#45;transform: rotate(270deg);


Ein Einsteiger pr&#228;sentiert sauberes CSS3, denkt bei den Vendor&#45;Pr&#228;fixes an alle wichtigen Browser, freut sich zurecht &#252;ber den Erfolg (&#8221;...Soweit funktioniert das auch&#8230;&#8221;) und wendet sich anschlie&#223;end trotzdem verzweifelt an ein Forum weil der W3C&#45;Validator ihm ein schlechtes Gewissen eingeredet hat. Das muss definitiv aufh&#246;ren, denn sp&#228;testens wird das ehemalige Mantra der Pflicht&#45;Valit&#228;t zum Boomerang f&#252;r uns erfahrenere Entwickler, denn hier werden die Aussagen des Validators fehlinterpretiert.</summary>
      <created>2010-07-27T19:01:00+00:00</created>
		<author>
		  <name>Dirk Jesse</name>
		  <url>http://www.highresolution.info</url>		</author>
      <dc:subject>CSS &amp;amp; XHTML, Webdesign</dc:subject>
      <content type="text/html" mode="escaped" xml:lang="en-US"><![CDATA[ <p>Dieser Beitrag zu <strong>Validit&#228;t</strong> und ihrer Bedeutung in der aktuellen Webentwicklung liegt mir schon seit Monaten auf der Zunge. Bisher gab es immer genug Ablenkungen, ihn nicht zu schreiben. Heute ist das anders, denn heute hat mich eine Anfrage im YAML-Forum dazu gebracht, dieses Thema endlich mal wieder auf den Tisch zu bringen.
</p> <p>Worum geht es? Vor langer Zeit <del>als die Welt noch schwarz-wei&#223; ...</del> als das Web noch jung und <a href="http://www.w3.org/TR/REC-html40/" title="HTML4">HTML4</a> Quellcode noch f&#252;rchterlich chaotisch und gef&#252;hlt frei jeglicher Stilregeln geschrieben werden konnte, da kamen einige schlaue Webschaffende auf die Idee, dass es doch ein wirklicher Fortschritt w&#228;re, wenn sich die Entwicklergemeinde an Standards halten w&#252;rde. Webstandards kamen in Mode und der Ruf nach sauberem, validem Code drang selbst in die hintersten Gassen. <a href="http://www.w3.org/TR/xhtml1/" title="XHTML 1.0">XHTML 1.0</a> war damals der gro&#223;e argumentative Renner, denn XHTML zwang Webentwickler zu Ordnung und Sauberkeit im Code. Tags <strong>mussten</strong> geschlossen, Attributwerte zwingend in Anf&#252;hrungszeichen gesetzt werden. Die jahrelange Arbeit mit XHTML hat mir zwar <a href="http://www.w3.org/XML/" title="XML">XML</a> an sich kein noch so kleines St&#252;ckchen sympathischer gemacht (aufgrund seiner Fehlerintoleranz) aber es hat mich gelehrt sauberen Code zu schreiben.</p>

<p>Und da auch ich zu denen geh&#246;re <a href="http://www.yaml.de/de/das-buch-zu-yaml.html" title="die B&#252;cher ver&#246;ffentlichen">die B&#252;cher ver&#246;ffentlichen</a>, um mein Wissen um HTML &amp; CSS weiterzugeben, bin ich auch nicht ganz unschuldig an der Situation, die sich uns Entwicklern heute bietet. Seit vielen Jahren predigen wir: <em>Validiert Euren Code!</em> Wenn irgendetwas nicht funktioniert und Ihr jemanden nach Hilfe fragen wollt: Erst validieren &ndash; dann jemanden fragen! So oder so &#228;hnlich liest man es in jedem CSS-Buch (und davon gibt es mittlerweile reichlich). Leider haben offensichtlich die wenigstens Autoren es bisher geschafft, den ahnungslosen Neulingen in einfachen Worten zu vermitteln, was Validit&#228;t eigentlich bedeutet und was die Ausgaben der Validierungsdienste des W3C (<a href="http://validator.w3.org/" title="HTML">HTML</a> | <a href="http://jigsaw.w3.org/css-validator/" title="CSS">CSS</a>) wirklich bedeuten.</p>

<p>Dieser Umstand ist mir so richtig klar geworden, als ich vorhin &#252;ber folgendes Foreneintrag gestolpert bin:</p>

<blockquote>
<p>Hallo Zusammen!</p>
<p>Ich habe per CSS folgende Codes eingef&#252;gt um einen Text vertikal darzustellen. Soweit funktioniert das auch. Jedoch bei der W3C Validierung werden diese CSS Anweisungen als Fehler deklariert. Gibt es hierzu auch eine valide M&#246;glichkeit? </p>
</blockquote>

<p>Dazu wurde folgender Codeschnipsel mitgeliefert:</p>

<pre name="code" class="css:nocontrols">
-webkit-transform: rotate(-90deg); 
-moz-transform: rotate(-90deg);    
-o-transform: rotate(270deg);
</pre>

<p>Ein Einsteiger pr&#228;sentiert sauberes CSS3, denkt bei den Vendor-Pr&#228;fixes an alle wichtigen Browser, freut sich zurecht &#252;ber den Erfolg (&#8221;...Soweit funktioniert das auch&#8230;&#8221;) und wendet sich anschlie&#223;end trotzdem verzweifelt an ein Forum weil der W3C-Validator ihm ein schlechtes Gewissen eingeredet hat. Das muss definitiv aufh&#246;ren, denn sp&#228;testens wird das ehemalige Mantra der Pflicht-Valit&#228;t zum Boomerang f&#252;r uns erfahrenere Entwickler, denn hier werden die Aussagen des Validators fehlinterpretiert.
</p> <h3>Wie funktioniert ein Validator?</h3><p>
Der Validator pr&#252;ft also die Gramatik des Codes, also die richtige Verwendung von Klammern, Anf&#252;hrungszeichen, Elementverschachtelungen etc. F&#252;r die Rechtschreibpr&#252;fung verwendet der Validator ein W&#246;rterbuch. Bei HTML werden also Tags und Attribute, bei CSS Eigenschaften und Werte anhand einer Wortliste &#252;berpr&#252;ft. Werden sie gefunden, ist alles in Ordnung. Hat sich jedoch ein Tippfehler eingeschlichen, dann wird das entsprechende Schl&#252;sselwort in der Liste nicht gefunden und der Validator gibt einen Fehler aus. Unbekannte Elemente werden somit ebenfalls als Fehler behandelt. Bei der Validierung von HTML war dieses Vorgehen des Validators in der Vergangenheit auch in Ordnung, denn das jeweils verwendete HTML-W&#246;rterbuch w&#228;hlt der Validator anhand des in der Webseite vorgegebenen <a href="http://www.w3schools.com/tags/tag_doctype.asp?PHPSESSID=eee0636c628b5feaad719a925d0f5c17" title="DOCTYPES">DOCTYPES</a> aus. Elemente, die in der jeweiligen Spezifikation nicht enthalten sind, erzeugen somit Fehlermeldungen. </p>

<h3>Das Problem</h3><p>
Ganz so einfach ist es halt doch nicht, denn neben HTML existieren mittlerweile zahlreiche Standards, die den HTML-Standard erweitern. Als Beispiel sei hierf&#252;r <a href="http://www.hessendscher.de/wai-aria/" title="WAI-ARIA">WAI-ARIA</a> genannt, womit HTML durch zus&#228;tzlich Attribute mit semantischen Informationen angereichert wird. ARIA wird von allen relevanten Browsern (einschlie&#223;lich IE6) und den aktuellen Screenreadern unterst&#252;tzt. Screenreadernutzer profitieren daher schon l&#228;nger von diesen Zusatzinformationen. Der W3C Validator kennt diesen Standard hingegen noch nicht &ndash; vermutlich weil er noch immer nicht aus dem Draft-Status heraus gekommen ist. Die Konsequenz daraus f&#252;r den unwissenden User: Die durchaus sinnvollen erg&#228;nzenden ARIA-Attribute werden dem User als Fehler ausgewiesen.</p>

<p>Folgenden Satz bekam ich bei der Einf&#252;hrung von WAI-ARIA in den <a href="http://www.yaml.de/" title="YAML">YAML</a>-<a href="http://www.yaml.de/fileadmin/examples/index.html" title="Beispielen">Beispielen</a> vor knapp einem Jahr regelm&#228;&#223;ig in e-Mails zu lesen:</p>

<blockquote><p>Wir bekommen auf jeder Seite folgenden Fehler:<br />&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Line 35, Column 31: there is no attribute &#8220;role&#8221;<br />
&nbsp;  &nbsp;  &nbsp; &lt;div id=&#8220;header&#8221; role=&#8220;banner&#8221;&gt;
</p></blockquote>

<p>Gut gemeint und doch spukt der Validator eine Fehlermeldung aus, ohne jede zu&#228;tzliche Erkl&#228;rung. Leider hat der W3C-Validator hier noch eine schwache Ausrede, denn formal geh&#246;rt sich in diesem Fall auch ein passender DOCTYPE, der XHTML + WAI-ARIA ank&#252;ndigt. Leider gibt&#8217;s den aber meines Wissens auch noch nicht wirklich. Der Akzeptanz von WAI-ARIA ist damit nicht gerade ein roter Teppich ausgerollt, obgleich ich jedem ernsthaften Entwickler nur ans Herz legen kann, <a href="http://www.vorsprungdurchwebstandards.de/theory/7-gruende-wai-aria-landmarks-sofort-einzusetzen/" title="sich damit zu besch&#228;ftigen">sich damit zu besch&#228;ftigen</a>.</p>

<p>Noch nerviger ist die Situation bei Cascading Stylesheets. Auch hier hat sich die Entwicklergemeinde in den letzten Jahren aus der IE6-Lethargie gel&#246;st und propagiert aus guten Gr&#252;nden Progessive Enhancement Strategien. Dank der rapide wachsenden CSS3-Unterst&#252;tzung durch Firefox, Chrome und Opera trifft dieser Ruf auch auf immer mehr willige Entwickler &ndash; wie den vornweg zitierten Kollegen. Nur leider steht das erste &#8220;C&#8221; f&#252;r &#8220;Cascading&#8221; also ein aufeinander aufbauendes System. Jeder neue CSS-Standard erweitert den bestehenden Sprachschatz. Zu dumm, dass das W3C den CSS3-Standard zwar kennt, jedoch in den Standardeinstellungen Stylesheets hart nach CSS 2.1 validiert und der Validator die &#8220;unbekannten&#8221; CSS3-Eigenschaften ebenso als Fehler behandelt, wie jeden wirklichen Tippfehler. </p>

<p>Und um Neueinsteiger restlos zu verwirren, erkennt der W3C Validator die &#252;berwiegende Zahl der heute bereits verwendeten CSS3-Regeln noch nicht einmal dann als korrekt, wenn man seine Stylesheets gegen CSS3 validiert. Denn beim W3C kennt man offensichtlich keine <a href="http://www.w3.org/TR/CSS2/syndata.html#vendor-keywords" title="Vendor-Pr&#228;fixes">Vendor-Pr&#228;fixes</a>, die das W3C den Browserherstellern selbst vorschreibt, solange neue CSS-Eigenschaften lediglich experimentell implementiert sind. Und damit fliegen uns die meisten runden Ecken, Box- und Text-Schatten oder Gradienten reihenweise um die Ohren. </p>

<p>Als Beispiel hier ein Test, mit der CSS3-Eigenschaft <code>-moz-border-radius</code> (Das Vendor-Pr&#228;fix &#8220;-moz&#8221; steht f&#252;r <em>Mozilla</em>) den folgenden fehlerfreien Code gegen CSS3 validieren zu lassen:</p>

<p> </p><pre name="code" class="css:nocontrols">body { -moz-border-radius: 5px; }</pre>

<p>Dazu meint der freundliche CSS-Validierungsdienst des W3C ...</p>

<p><img src="http://www.highresolution.info/images/uploads/css3-valid.png" border="0" alt="" class="center" width="450" height="231" /></p>

<p>Mir ist klar, dass eine solche Meldung f&#252;r Einsteiger nicht nur respekteinfl&#246;&#223;end ist, sondern gelegentlich (bei aktuell noch weniger bekannten CSS3-Eigenschaften) regelrecht verschreckt. Nicht umsonst fragte oben zitierter Neuling, ob es denn auch eine <em>valide</em> L&#246;sung f&#252;r sein real nicht vorhandenes Problem g&#228;be.</p>

<h3>Aufkl&#228;rung dringend notwenig</h3>

<p>Was die Webstandards-Gemeinde angefangen hat, muss sie jetzt auch weiter durchziehen. Einsteiger und unwissende Entscheider m&#252;ssen dar&#252;ber aufgekl&#228;rt werden, dass Fehlermeldungen des W3C-Validators kein hinreichendes Kriterium zur Qualit&#228;tsbewertung der umsetzenden Agentur oder gar ein Anwendungsverbot f&#252;r neue Standards bedeuten. Es muss klar werden, das &ndash; wie bei jeder automatischen Rechtschreibpr&#252;fung &ndash; aktuell kein Validator in der Bewertung einen Unterschied zwischen einem echten Rechtschreibfehler und einen ihm unbekannten Schl&#252;sselwort macht. Vergleichbares kennt man von Rechtschreibpr&#252;fungen in Textverarbeitungen. Kaum ein Programm ist in der Lage, Substantive und Verben auch in all Ihren Beugungsformen und F&#228;llen zu erkennen. Gleiches gilt f&#252;r die Erkennung von Namen.</p>

<p>Ich wei&#223;, dass viele gestandene Entwickler hier kommentieren werden, dass sie sich um die Ergebnisse des W3C-Validators nicht (mehr) scheren. Doch das allein hilft weder Einsteigern noch Entscheidern, sich zurechtzufinden. Beide Zielgruppen nehmen den W3C Validator (oder auch Hilfsmittel wie das <a href="https://addons.mozilla.org/de/firefox/addon/249/" title="HTML Validator-Plugin">HTML Validator-Plugin</a> f&#252;r den Firefox) offensichtlich als stichhaltiges Werkzeug zur Qualit&#228;tsbeurteilung war. F&#252;r Webentwickler und aus der Sicht eines Buchautors halte ich diese Entwicklung f&#252;r falsch. Deshalb hilft nur eines: Weiter und besser dar&#252;ber aufzukl&#228;ren, was Validit&#228;t bedeutet.</p>

<h3>Meine Definition</h3>

<p><em><strong>Validit&#228;t ist kein Qualit&#228;tsmerkmal!</strong> Eine Validit&#228;tspr&#252;fung ist eine automatische Gramatik- und Rechtschreibpr&#252;fung f&#252;r HTML- und CSS-Code auf Basis eines definierten Wortschatzes.</em></p>

<p>Eine Validit&#228;tspr&#252;fung sagt daher genauso wenig &#252;ber die Codequalit&#228;t wie die automatische Rechtschreibpr&#252;fung von <em>Microsoft Word</em> oder <em>Open Office</em> mit dem vorinstallierten Standardw&#246;rterbuch &#252;ber meine F&#228;higkeiten, gute und fehlerfreie Fachtexte zu schreiben. Die Pr&#252;fung ist wichtig zur Selbstkontrolle, zur Vermeidung und dem Auffinden von Fl&#252;chtigkeitsfehlern und somit ein Entwicklerwerkzeug.</p>

<p>Ich hoffe, diese Analogie hilft etwas, das Verst&#228;ndis der Materie zu verbessern. Vermutlich habe ich mal wieder viel zu viel geschrieben, dennoch: es musste mal gesagt werden.Den unsicheren User im Forum werde ich jetzt etwas aufmuntern ...
</p>]]></content>
    </entry>

    <entry>
      <title type="html">Spurwechsel</title>
      <link rel="alternate" type="text/html" href="http://www.highresolution.info/weblog/entry/spurwechsel/" /> 
      <id>tag:highresolution.info,2010:weblog/11.1393</id>
      <issued>2010-07-20T07:11:26+00:00</issued>
      <modified>2010-07-20T10:40:27+00:00</modified>
      <summary type="html">Lange Zeit war es still hier im Hause Highresolution ... und immer wenn es ganz still ist, passiert pl&#246;tzlich irgendwas Aufregendes. So auch jetzt, denn es stehen Ver&#228;nderungen beruflicher Natur direkt vor der T&#252;r. Ich bleibe dem Bauingenieurwesen treu, wechsle jedoch auf die Verlagsseite. Insofern kein Richtungs&#45; aber doch ein bedeutsamer Spurwechsel.
 Nach nunmehr 6 Jahren als wissenschaftlicher Mitarbeiter zieht es mich ein wenig weg vom universit&#228;ren Umfeld. Es geht zur&#252;ck in die freie Wirtschaft. Seit Juli pendle ich bereits regelm&#228;&#223;ig zwischen Dresden und Berlin, ab August &#252;bernehme ich die Chefredaktion der BAUTECHNIK, einer renomierten wissenschaftlichen Fachzeitschrift f&#252;r Bauingenieure beim Ernst &amp;amp; Sohn Verlag. F&#252;r mich ist es eine gro&#223;e Herausforderung in dem mir nicht fremden aber doch neuen und ungewohntem Terrain des Verlagswesens. Aber es sind schlie&#223;lich die Herausforderungen, welche die t&#228;gliche Arbeit spannend und auf Dauer erf&#252;llend machen und ich freue mich riesig auf die neue Aufgabe. Damit war allerdings bereits Anfang des Jahres (als diese Entscheidung fiel) auch klar, dass meine Dissertation unter Hochdruck bis zum Sommer fertig werden musste. Damit w&#228;re dann auch der eigentliche Grund genannt, warum hier in den letzen Monaten keine neuen Beitr&#228;ge mehr erschienen. Es blieb schlicht weg keine Zeit. Auch jetzt geht noch das eine oder andere Wochenende daf&#252;r drauf, dennoch sind die gr&#246;&#223;ten H&#252;rden genommen. Das Licht ist also schon sehr nahe.

Was bedeutet das alles nun f&#252;r dieses Blog und YAML? Dies ist mein privates Weblog und das werde ich auch weiterhin mit meinen Gedanken zu HTML, CSS und JavaScript f&#252;llen sowie vermutlich auch den einen oder anderen Kommentar hinsichtlich des HTML5 &amp;amp; CSS3 Hypes hinterlassen &amp;ndash; kurz: hier geht es weiter wie gewohnt. YAML entwickelt sich seit nunmehr fast 5 Jahren kontinuierlich weiter &amp;ndash; ein Ende ist auch hier nicht in Sicht. Die Reife des Frameworks macht die Entwicklungsarbeit f&#252;r mich allerdings etwas angenehmer denn die Releasezyklen werden naturgem&#228;&#223; etwas l&#228;nger. Der Browsermarkt ist aktuell so richtig in Bewegung und das bedeutet, dass bei YAML diesen Fortschritten Rechnung tr&#228;gt. F&#252;r die effektive Arbeit mit den grafischen Gestaltungsm&#246;glichkeiten von CSS3 gilt es, bestm&#246;gliche Voraussetzungen zu schaffen. Dass bedeutet in erster Linie, dass Alternativen zum Clearing mit der Eigenschaft overflow ben&#246;tigt werden, um die Arbeit mit CSS3&#45;Eigenschaften wie text&#45;shadow und box&#45;shadow weiter zu erleichtern. Daneben haben es Browserhersteller offenbar noch nicht geschafft, den neuen HTML5&#45;Elementen einheitliche und vor allem sinnvolle Standardstyles mitzugeben. Hier wird es eine geringf&#252;gige Anpassung des Reset&#45;Bausteins geben, der die aktuell noch vorhandenen Inkonsistenzen beseitigt. Die dritte Baustelle betrifft den Formularbaukasten. Dieser vergleichsweise noch junge Teil des YAML&#45;Framework wird aktuell &#252;berarbeitet und soll einfacher individuell gestaltbar werden. Diese und vermutlich einige weitere &#196;nderungen liegen aktuell in einer Version 3.3 alpha, laufen bisher prima und gehen demn&#228;chst an die ersten Tester raus. Nein &amp;ndash; es gibt noch kein Releasedatum.

Auch in Bezug auf den YAML Builder ist Gro&#223;artiges in Vorbereitung. Der eine oder andere konnte sich auf dem Barcamp Mainz im letzten November oder auf dem diesj&#228;hrigen MobileCamp in Dresden bereits einen ersten Eindruck von dem verschaffen, was bereits seit l&#228;ngerem in der heimischen Entwicklerk&#252;che auf heisser Flamme k&#246;chelt. Nat&#252;rlich musste ich auch hier eine Pause einlegen, dennoch reift das Projekt Schritt f&#252;r Schritt und ich freue mich bereits darauf, hier im Blog die ersten Details verlauten lassen zu k&#246;nnen. Lange wird es nicht mehr dauern, versprochen.</summary>
      <created>2010-07-20T07:11:26+00:00</created>
		<author>
		  <name>Dirk Jesse</name>
		  <url>http://www.highresolution.info</url>		</author>
      <dc:subject>Hausinternes, YAML, Real World</dc:subject>
      <content type="text/html" mode="escaped" xml:lang="en-US"><![CDATA[ <p>Lange Zeit war es still hier im Hause Highresolution ... und immer wenn es ganz still ist, passiert pl&#246;tzlich irgendwas Aufregendes. So auch jetzt, denn es stehen Ver&#228;nderungen beruflicher Natur direkt vor der T&#252;r. Ich bleibe dem Bauingenieurwesen treu, wechsle jedoch auf die Verlagsseite. Insofern kein Richtungs- aber doch ein bedeutsamer Spurwechsel.
</p> <p>Nach nunmehr 6 Jahren als wissenschaftlicher Mitarbeiter zieht es mich ein wenig weg vom universit&#228;ren Umfeld. Es geht zur&#252;ck in die freie Wirtschaft. Seit Juli pendle ich bereits regelm&#228;&#223;ig zwischen Dresden und Berlin, ab August &#252;bernehme ich die Chefredaktion der <a href="http://www.ernst-und-sohn.de/bautechnik" title="BAUTECHNIK">BAUTECHNIK</a>, einer renomierten wissenschaftlichen Fachzeitschrift f&#252;r Bauingenieure beim <a href="http://www.ernst-und-sohn.de/" title="Ernst &amp; Sohn Verlag">Ernst &amp; Sohn Verlag</a>. F&#252;r mich ist es eine gro&#223;e Herausforderung in dem mir nicht fremden aber doch neuen und ungewohntem Terrain des Verlagswesens. Aber es sind schlie&#223;lich die Herausforderungen, welche die t&#228;gliche Arbeit spannend und auf Dauer erf&#252;llend machen und ich freue mich riesig auf die neue Aufgabe. Damit war allerdings bereits Anfang des Jahres (als diese Entscheidung fiel) auch klar, dass meine Dissertation unter Hochdruck bis zum Sommer fertig werden musste. Damit w&#228;re dann auch der eigentliche Grund genannt, warum hier in den letzen Monaten keine neuen Beitr&#228;ge mehr erschienen. Es blieb schlicht weg keine Zeit. Auch jetzt geht noch das eine oder andere Wochenende daf&#252;r drauf, dennoch sind die gr&#246;&#223;ten H&#252;rden genommen. Das Licht ist also schon sehr nahe.</p>

<p>Was bedeutet das alles nun f&#252;r dieses Blog und <a href="http://www.yaml.de/" title="YAML">YAML</a>? Dies ist mein privates Weblog und das werde ich auch weiterhin mit meinen Gedanken zu HTML, CSS und JavaScript f&#252;llen sowie vermutlich auch den einen oder anderen Kommentar hinsichtlich des HTML5 &amp; CSS3 Hypes hinterlassen &ndash; kurz: hier geht es weiter wie gewohnt. YAML entwickelt sich seit nunmehr fast 5 Jahren kontinuierlich weiter &ndash; ein Ende ist auch hier nicht in Sicht. Die Reife des Frameworks macht die Entwicklungsarbeit f&#252;r mich allerdings etwas angenehmer denn die Releasezyklen werden naturgem&#228;&#223; etwas l&#228;nger. Der Browsermarkt ist aktuell so richtig in Bewegung und das bedeutet, dass bei YAML diesen Fortschritten Rechnung tr&#228;gt. F&#252;r die effektive Arbeit mit den grafischen Gestaltungsm&#246;glichkeiten von CSS3 gilt es, bestm&#246;gliche Voraussetzungen zu schaffen. Dass bedeutet in erster Linie, dass Alternativen zum Clearing mit der Eigenschaft <code>overflow</code> ben&#246;tigt werden, um die Arbeit mit CSS3-Eigenschaften wie <code>text-shadow</code> und <code>box-shadow</code> weiter zu erleichtern. Daneben haben es Browserhersteller offenbar noch nicht geschafft, den neuen HTML5-Elementen einheitliche und vor allem sinnvolle Standardstyles mitzugeben. Hier wird es eine geringf&#252;gige Anpassung des Reset-Bausteins geben, der die aktuell noch vorhandenen Inkonsistenzen beseitigt. Die dritte Baustelle betrifft den Formularbaukasten. Dieser vergleichsweise noch junge Teil des YAML-Framework wird aktuell &#252;berarbeitet und soll einfacher individuell gestaltbar werden. Diese und vermutlich einige weitere &#196;nderungen liegen aktuell in einer Version <em>3.3 alpha</em>, laufen bisher prima und gehen demn&#228;chst an die ersten Tester raus. Nein &ndash; es gibt noch kein Releasedatum.</p>

<p>Auch in Bezug auf den <a href="http://builder.yaml.de/" title="YAML Builder">YAML Builder</a> ist Gro&#223;artiges in Vorbereitung. Der eine oder andere konnte sich auf dem Barcamp Mainz im letzten November oder auf dem diesj&#228;hrigen MobileCamp in Dresden bereits einen ersten Eindruck von dem verschaffen, was bereits seit l&#228;ngerem in der heimischen Entwicklerk&#252;che auf heisser Flamme k&#246;chelt. Nat&#252;rlich musste ich auch hier eine Pause einlegen, dennoch reift das Projekt Schritt f&#252;r Schritt und ich freue mich bereits darauf, hier im Blog die ersten Details verlauten lassen zu k&#246;nnen. Lange wird es nicht mehr dauern, versprochen.
</p> ]]></content>
    </entry>

    <entry>
      <title type="html">Skiplinks &#45; Best Practices</title>
      <link rel="alternate" type="text/html" href="http://www.highresolution.info/weblog/entry/skiplinks_best_practices/" /> 
      <id>tag:highresolution.info,2010:weblog/11.1390</id>
      <issued>2010-02-12T11:37:10+00:00</issued>
      <modified>2010-02-12T13:40:11+00:00</modified>
      <summary type="html">Skiplinks geh&#246;ren zu den grundlegenden Navigationshilfen, welche die Zug&#228;nglichkeit komplexer Webseiten verbessern k&#246;nnen, indem sie es dem Nutzer erlauben, wichtige Elemente einer Webseite schnell und ohne Umwege zu erreichen, z.B. die Hauptnavigation, den Inhaltsbereich oder ein Formular. Aufgrund meiner Erfahrungen bei der Arbeit an und mit YAML  gibt&#8217;s hier nun einen kleinen Best Practice Beitrag zum Thema.
 Anforderungen

Zun&#228;chst w&#228;ren noch einmal die Anforderungen an Skiplinks zu definieren. Die WCAG 2.0 gibt unter G1 Testkriterien vor:

Stelle sicher, dass Skiplinks die ersten focussierbaren Elemente der Webseite darstellen.Stelle sicher, dass die Linkbeschreibung eine verst&#228;ndliche Beschreibung
des Sprungzieles enth&#228;lt.Stelle sicher, dass der Skiplink entweder immer oder zumindest dann sichtbar ist, wenn der Tastaturfocus auf ihm liegt.Stelle sicher, dass beim Aktivieren eines Skiplinks der visuelle Focus im Viewport des Browsers auf das Ziel gesetzt wird.Stelle sicher, dass nach dem Aktivieren des Skiplinks der Tastaturfocus auf das Zielelement gesetzt wurde.

Die WCAG ist unnachgiebig, was diese Kritierien betrifft: Alle 5 Testkriterien m&#252;ssen erf&#252;llt werden.</summary>
      <created>2010-02-12T11:37:10+00:00</created>
		<author>
		  <name>Dirk Jesse</name>
		  <url>http://www.highresolution.info</url>		</author>
      <dc:subject>CSS &amp;amp; XHTML, JavaScript, Webdesign, Zug&#228;nglichkeit</dc:subject>
      <content type="text/html" mode="escaped" xml:lang="en-US"><![CDATA[ <p>Skiplinks geh&#246;ren zu den grundlegenden Navigationshilfen, welche die Zug&#228;nglichkeit komplexer Webseiten verbessern k&#246;nnen, indem sie es dem Nutzer erlauben, wichtige Elemente einer Webseite schnell und ohne Umwege zu erreichen, z.B. die Hauptnavigation, den Inhaltsbereich oder ein Formular. Aufgrund meiner Erfahrungen bei der Arbeit an und mit YAML  gibt&#8217;s hier nun einen kleinen Best Practice Beitrag zum Thema.
</p> <h3>Anforderungen</h3>

<p>Zun&#228;chst w&#228;ren noch einmal die Anforderungen an Skiplinks zu definieren. Die <a href="http://www.w3.org/TR/WCAG20/">WCAG 2.0</a> gibt unter <a href="http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/G1">G1</a> Testkriterien vor:</p>

<ol><li>Stelle sicher, dass Skiplinks die ersten focussierbaren Elemente der Webseite darstellen.</li><li>Stelle sicher, dass die Linkbeschreibung eine verst&#228;ndliche Beschreibung
des Sprungzieles enth&#228;lt.</li><li>Stelle sicher, dass der Skiplink entweder immer oder zumindest dann sichtbar ist, wenn der Tastaturfocus auf ihm liegt.</li><li>Stelle sicher, dass beim Aktivieren eines Skiplinks der visuelle Focus im Viewport des Browsers auf das Ziel gesetzt wird.</li><li>Stelle sicher, dass nach dem Aktivieren des Skiplinks der Tastaturfocus auf das Zielelement gesetzt wurde.</li></ol>

<p>Die WCAG ist unnachgiebig, was diese Kritierien betrifft:<em> Alle 5 Testkriterien m&#252;ssen erf&#252;llt werden.</em></p>

<p>
</p> <h3>Die Grundlagen: Markup und Styling</h3>

<p>Skiplinks sollten grunds&#228;tzlich vor dem eigentlichen Inhalt der Webseite eingebaut werden, um dem Testkriterium 1 (erstes focussierbares Element) gerecht zu werden. Eine einfache Kontrollm&#246;glichkeit f&#252;r diese Regel besteht darin, sich die Webseite mit deaktivierten Stylesheets anzuschauen. Die Skiplinks sollten dabei an erster Stelle stehen.</p>

<p><img src="http://www.highresolution.info/images/uploads/skip1.png" border="0" alt="" class="center" width="450" height="246" /></p>

<p>Die technische Umsetzung per HTML &amp; CSS ist nicht weiter kompliziert. Das HTML-Grundger&#252;st bildet ein einfacher Hyperlink, als Ziel kann jedes beliebige HTML-Element der Webseite dienen, soweit es &#252;ber eine ID eindeutig identifizierbar ist. In der Regel wird man hier auf z. B. den DIV-Container verweisen, welcher die Hauptnavigation oder die Hauptinhaltsbereich der Webseite beinhaltet.</p>

<p>Skiplinks sind nichts Neues mehr, deshalb will ich den technischen Teil an dieser Stelle kurz halten. Tomas Caspers hat vor einiger Zeit auf <a href="http://www.einfach-fuer-alle.de">Einfach f&#252;r Alle</a> ein sehr <a href="http://www.einfach-fuer-alle.de/blog/id/2459/">eing&#228;ngiges Tutorial</a> verfasst, welches ich jedem Einsteiger in die Materie ans Herz legen m&#246;chte. Auch die Diskussion in den Kommentaren ist bei diesem Beitrag lesenswert. Der wichtigste Punkt, Thomas spricht es an, betrifft die gew&#228;hlte Technik f&#252;r das zwischenzeitliche Ausblenden der Skiplinks. Hier darf keinesfalls die CSS-Eigenschaft <code>display:none</code> verwendet werden, denn hierdurch ist der Link f&#252;r Screenreader nicht mehr erreichbar &ndash; und somit nutzlos. Das Aus- und Einblenden von Skiplinks geschieht daher in der Regel durch eine absolute Positionierung, womit die auszublendenden Elemente einfach seitlich aus dem Viewport verschoben (versteckt) werden und bei Focussierung per Tastatur wieder in den sichtbaren Teil zur&#252;ckgeholt werden.</p>

<h3>Mehr Gestaltungsfreiheit</h3>

<p>Wie anfangs beschrieben, sollten Skiplinks generell vor den eigentlichen Seiteninhalten im Quelltext stehen. Das Verstecken der Skiplinks ist nie ein Problem &ndash; wohl aber die Eingliederung ins Layout, sobald die Skiplinks sichtbar werden. Einerseits muss im Layout Platz (Leerraum) f&#252;r die Skiplinks eingeplant werden, zum anderen m&#252;ssen Sie f&#252;r den Nutzer bei Aktivierung auch gut erkennbar (Kontrast, Schriftgr&#246;&#223;e) sein. In grafiklastigen Layouts kann dies recht aufw&#228;ndig werden.</p>

<p>Aus diesem Grund liefere ich seit einiger Zeit (v3.2) bei meinem CSS-Framework <a href="http://www.yaml.de">YAML</a> eine etwas <a href="http://www.yaml.de/de/dokumentation/grundlagen/skip-links.html">aufw&#228;ndigere Darstellungsvariante</a> mit, die in allen <a href="http://www.yaml.de/fileadmin/examples/index.html">Layout-Beispielen</a> implementiert ist. Hierbei werden die Skiplinks nicht in das Layout integriert, sondern bei Focussierung in Form eines farbigen Balkens &#252;ber dem Layout eingeblendet. Auf diese Weise er&#246;ffnen sich viel gr&#246;&#223;ere Freiheiten bei der Darstellung &ndash; ohne dass das eigentlich Layout in irgendeiner Form beeinflusst wird.</p>

<p><img src="http://www.highresolution.info/images/uploads/skip2.png" border="0" alt="" class="center" width="450" height="254" /></p>

<p>Soweit, so gut. Im Prinzip w&#228;re ich hiermit am Ende des Beitrags, wenn es da nicht neuerdings ein ausgesprochen h&#228;ssliches Problem mit einigen modernen Webbrowsern g&#228;be.</p>

<h3>Folge dem <del>wei&#223;en Kaninchen</del> <ins>Tastaturfocus</ins></h3>

<p>In den aktuellen Versionen der Webkit-basierten Browser (Google Chrome, Apple Safari) sowie im aktuellen Internet Explorer 8 unter Windows 7 (unter Vista tritt das Problem im IE8 offenbar nicht auf) wird bei Aktivierung eines Skiplinks zwar der visuelle Focus auf das Zielelement ausgerichtet (WCAG 2.0, Testkriterium 4 erf&#252;llt), der Tastaturfocus verbleibt jedoch auch nach Aktivierung auf dem Skiplink, er wird <em>nicht</em> verschoben. Damit ist das Testkriterium 5 nicht erf&#252;llt, denn beim n&#228;chsten Druck auf die Tabulatortaste springt der Focus (viuseller Focus und Tastaturfocus) auf das focussierbare Element, welches dem zuvor aktivierten Skiplink im Quelltext folgt. Damit wird der Sinn der Skiplinks vollst&#228;ndig ausgehebelt, denn man befindet sich praktisch wieder bei (oder direkt hinter) den Skiplinks.</p>

<h4>Wen trifft das Problem eigentlich?</h4>

<p>Ich habe gestern <a href="http://www.marcozehe.de/">Marco Zehe</a> um Hilfe gebeten, einige Browser/Screenreader-Kombinationen durchzutesten. Marco arbeitet in der Regel mit <a href="http://www.nvda-project.org/">NVDA</a> und hat im Internet Explorer 8 unter Windows 7 keinerlei Probleme, NVDA greift hier offenbar korrigierend ein. Auch im Safari/Mac trat das Problem in Verbindung mit VoiceOver nicht auf &ndash; Google Chrome und Safari/Win sind hingegen nach Marcos Meinung &quot;gar nicht accessible!&quot;. Eine Nutzung scheidet f&#252;r Ihn daher generell aus &ndash; das Focusproblem ist damit nicht seines.</p>

<p>Anders sieht die Situation bei <a href="http://www.freedomsci.de/prod01.htm">JAWS</a> aus: Hier konnte Marco das Problem in Verbindung mit dem Internet Explorer 8 verifizieren. Freundlicherweise ist JAWS der mit Abstand am meisten genutzte Screenreader und auch der IE hat eine gewisse Verbreitung &ndash; das Focusproblem ist also &#252;beraus real und bedarf einer L&#246;sung.</p>

<h4>Workaround &ndash; Runde 1</h4>

<p>Ich wurde seinerzeit durch einen <a href="http://www.communis.co.uk/blog/2009-06-02-skip-links-chrome-safari-and-added-wai-aria">Blogbeitrag</a> von Paul Redcliffe auf einen cleveren JavaScript-Workaround aufmerksam (<a href="http://www.communis.co.uk/examples/skiplink-redux.html">Demo</a>). Der Workaround besteht darin, dass er den Skiplinks dynamisch einen Click-Event zuweist, um bei Aktivierung den Tastaturfocus per JavaScript zu setzen. Hier der zugeh&#246;rige JavaScript-Code ...</p>

<pre name="code" class="javascript">var is_webkit = navigator.userAgent.toLowerCase().indexOf('webkit') &gt; -1;
var is_opera = navigator.userAgent.toLowerCase().indexOf('opera') &gt; -1;
if(is_webkit || is_opera) {
  var target = document.getElementById('skiptarget');
  target.href=&quot;#skiptarget&quot;;
  target.innerText=&quot;Start of main content&quot;;
  target.setAttribute(&quot;tabindex&quot; , &quot;0&quot;);
  document.getElementById('skiplink').setAttribute(&quot;onclick&quot; , &quot;document.getElementById('skiptarget').focus();&quot;);
}</pre>

<p>Grunds&#228;tzlich funktioniert der Workaround, allerdings gefallen mir einige Details nicht, weshalb ich f&#252;r YAML einen eigenen Fix geschrieben habe.</p>

<ul><li>Die Variablen werden  im globalen Scope definiert und kein Namespacing verwendet. Das mag im konkreten Fall nicht weiter st&#246;ren, dennoch empfinde ich es als unsauber. </li><li>Das Script ist monoton auf einen einzigen Skiplink mit der ID skiplink ausgelegt (getElementById) und nicht flexibel erweiterbar. Das ist unzureichend, da  zwei oder drei Skiplinks (z.B.: Navigation, Inhalt, Kontaktformular ...) keine Seltenheit sind.</li><li>Den Zielelementen wird innerhalb des Skripts das Attribut<code> tabindex=&quot;0&quot;</code> zugewiesen. Das ist aus meiner Sicht keine gute L&#246;sung, denn so wird das Zielelement permanent in die normale Tabreihenfolge aufgenommen, obwohl es bei Focussierung per Tastatur keinerlei Funktion bietet &ndash; im Gegensatz zu focussierbaren Links, dessen URL der Nutzer bei Aktivierung folgt.</li><li>Eine weiter Unsch&#246;nheit ergibt sich durch <code>tabindex=&quot;0&quot;</code> in Verbindung mit Apples Safari, denn dieser hebt das focussierte Element generell durch eine leuchtend blaue Umrandung per <code>outline</code> hervor. So angenehm diese Darstellung bei focussierten Links oder Formularelementen ist, so st&#246;rend oder verwirrend kann die pl&#246;tzliche Hervorhebung eines einfachen DIV-Containers im Layout sein.</li></ul>

<h4>Workaround &ndash; Runde 2</h4>

<p>Letztlich konnte ich das Ph&#228;nomen im aktuellen Opera nicht nachvollziehen und konzentriere mich daher nur auf Webkit-Browser und den Internet Explorer. Der nachfolgende Code ist (bis auf minimale Abweichungen) Bestandteil der aktuellen Version 3.2.1 von YAML und ist unter <em>yaml/core/js/yaml-focusfix.js</em> zu finden.</p>

<pre name="code" class="javascript">
/**
 * &quot;Yet Another Multicolumn Layout&quot; - (X)HTML/CSS Framework
 *
 * (en) Workaround for Webkit browsers to fix focus problems when using skiplinks
 * (de) Workaround f&#252;r Webkit browsers, um den Focus zu korrigieren, bei Verwendung von Skiplinks
 *
 * @copyright       Copyright 2005-2010, Dirk Jesse
 * @package         yaml
 */

var YAML_focusFix = {
  init: function() {
    var skipClass = 'skip';
 
    var userAgent = navigator.userAgent.toLowerCase();
    var is_webkit = userAgent.indexOf('webkit') &gt; -1;
    var is_ie = userAgent.indexOf('msie') &gt; -1;
    var i = 0;
    var links, skiplinks = [];
   
    if (is_webkit || is_ie) {
      // find skiplinks in modern browsers ...
      if ( document.getElementsByClassName !== undefined) {
        skiplinks = document.getElementsByClassName(skipClass);
   
        for (i=0; i&lt;skiplinks.length; i++) {
          this.setTabIndex(skiplinks[ i ]);
        }
      } else {
        // find skiplinks in older browsers ...
        links = document.getElementsByTagName('a');
        for (i=0; i&lt;links.length; i++) {
          var s = links[ i ].getAttribute('href');
          var c = links[ i ].getAttribute('class');
          if (s.length &gt; 1 &amp;&amp; c.indexOf(skipClass) != -1 &amp;&amp; s.substr(0, 1) == '#' ) {
            this.setTabIndex(links[ i ]); 
          }
        }
      } 
    }
  },

  setTabIndex: function( skiplink ){
    var target = skiplink.href.substr(skiplink.href.indexOf('#')+1);
    var targetElement = document.getElementById(target);
   
    if (targetElement !== null) {
      // make element accessible for .focus() method 
      targetElement.setAttribute(&quot;tabindex&quot;, &quot;-1&quot;);
      skiplink.setAttribute(&quot;onclick&quot;, &quot;document.getElementById('&quot;+target+&quot;').focus();&quot;); 
    }
  }
};

YAML_focusFix.init();
</pre>

<p>Welche &#196;nderungen habe ich nun im Detail vorgenommen? Das Script springt nun sowohl bei der Webkit-Engine, als auch beim Internet Explorer an und kann mehrere Skiplinks verarbeiten, indem es alle Links mit der Klasse <code>.skip</code> auswertet und entsprechend mit dem Workaround versieht. In YAML-basierte Layouts kann man es daher ohne weitere Konfiguration einbinden.</p>

<p>Beim Internet Explorer wurde bewusst auf einen Versionstest verzichtet, denn wie in dem weiter oben verlinkten Tutorial von Tomas Caspers zu lesen, haben die &#228;lteren IE-Versionen ein &#228;hnliches Problem, sobald das Zielelement das propriet&#228;re Merkmal <em>hasLayout</em> nicht besitzt. Da ich per JavaScript schlecht ins Layout eingreifen kann, um <em>hasLayout</em> zu triggern, ist es einfacher, das Script auch in den &#228;lteren IE&#8217;s pauschal durchlaufen zu lassen. Und letzten Endes setzt das Script auf dem Zielelement das Attribut <code>tabindex=&quot;-1&quot;</code>. Der Wert -1 erlaubt das dynamische Setzen des Tastaturfocus per JavaScript, f&#252;gt das Element aber nicht in die Tabreihenfolge ein. Damit werden die oben beschriebenen, unsch&#246;nen Nebeneffekte von  <code>tabindex=&quot;0&quot;</code> vermieden.</p>

<h3>Fazit</h3>

<p>Ich muss gestehen, ich bin von der aktuellen Situation alles andere als begeistert. Nicht einmal ein so einfaches Konzept wie Skiplinks l&#228;sst sich problemfrei crossbrowser implementieren &ndash; auch nicht in den sonst so hoch gelobten, 100% ACID 3 unterst&#252;tzenden Vertretern Chrome oder Safari. Erschwerend hinzu kommt, dass man &ndash; zumindest soviel ich im Moment wei&#223; &ndash; um JavaScript nicht herumkommt.</p>

<p>Nun kann ich mir einerseits auf die Schulter klopfen, wie schlau ich doch bin, weil ich das Problem in den Griff bekommen habe. Doch das kann nicht dar&#252;ber hinwegt&#228;uschen, dass die Implementation von Skiplinks im normalen Webdesign-Alltag eigentlich nicht mehr als eine Finger&#252;bung sein sollte und kein f&#252;r Einsteiger fast un&#252;berwindlicher Stolperstein (wer bringt als Einsteiger schon JS- und DOM-Kenntnisse mit).
</p>]]></content>
    </entry>

    <entry>
      <title type="html">Abgestufter Browsersupport &#45; Was kommt nach dem IE6?</title>
      <link rel="alternate" type="text/html" href="http://www.highresolution.info/weblog/entry/abgestufter_browsersupport_was_kommt_nach_dem_ie6/" /> 
      <id>tag:highresolution.info,2010:weblog/11.1389</id>
      <issued>2010-02-01T14:12:45+00:00</issued>
      <modified>2010-02-01T18:18:46+00:00</modified>
      <summary type="html">Die Frage stellt sich bei jedem neuen Webprojekt: Welche Browser/Browsergenerationen sollen unterst&#252;tzt werden? Grenzt man die Fragestellung auf unser aller Lieblingsproblem, den Internet Explorer, ein, so l&#228;sst sich die Frage darauf reduzieren, wie man mit dem Internet Explorer 6 umgeht. Schleppt man ihn irgendwie mit (wird bei den meisten Projekten nach wie vor gemacht) oder ignoriert man ihn. Pfiffige CSS&#45;Entwickler setzen auf Graceful Degradation oder Progressive Enhancement, um neben der schwarz/wei&#223; Option (ja/nein) noch ein paar argumentative Graustufen einf&#252;gen zu k&#246;nnen.
 Doch so gern und trefflich die Blogosph&#228;re sich auch &#252;ber den IE6 und dessen Schw&#228;chen ausl&#228;sst so gr&#252;ndlich wird in der Diskussion meist au&#223;er acht gelassen, dass auch andere Browser einem Alterungsprozess unterliegen. Wer testet denn heute noch ernsthaft seine Projekte gegen den Firefox 1, Safari 2 oder Opera 8? Der Firefox 1.0 beispielsweise stammt aus dem Jahre 2004 und hat damit ebenfalls bereits 5+ Jahre auf dem Buckel. Schon mal dr&#252;ber nachgedacht?

In den Focus r&#252;ckt diese Fragestellung bei mir durch Googles aktuelle Ank&#252;ndigung, den IE6 bei den eigenen Applikationen nicht mehr zu unterst&#252;tzen &#45; wor&#252;ber auch sofort wieder reichlich berichtet wird. Nur steht in Googles Ank&#252;ndigung weit mehr als das Ende des IE6&#45;Supports. Auch die n&#228;chste Generation der &#8220;Guten&#8221; &#45; Firefox 2.x, Opera 9, Chrome 2.x usw. n&#228;hert sich dem Ende ihrer Unterst&#252;tzung. Zwar findet man diese Aussage in dieser Deutlichkeit nicht in diesem Google&#45;Blogpost, daf&#252;r beispielsweise bei Yahoo&#8217;s Aufstellung f&#252;r den abgestuften Browsersupport der YUI Library.

Interessant an der Yahoo&#45;Tabelle ist beispielsweise, dass selbst der Firefox 3.0 unter Windows Vista/7 bereits den A&#45;Grade Status verloren hat. Von Opera ist generell nur die aktuelle Version 10 in der Liste vertreten und auch der Safari unter Mac nur in der aktuellen Version 4 gelistet wird. Alle &#228;lteren Versionen werden aktuell als B&#45;Grade eingestuft. Sie werden selbstverst&#228;ndlich weiterhin unterst&#252;tzt werden &#45; jedoch bereits heute mit geringerer Priorit&#228;t. Nun dreht es sich sowohl bei Google als auch bei Yahoo in allererster Linie um die JavaScript&#45;Unterst&#252;tzung/&#45;Performance. In Sachen CSS ist es vor allem der Internet Explorer 6, der mit zahlreichen Bugs gesegnet ist, die Webentwicklern bei den immer komplexer werdenden Applikationen mehr und mehr zu schaffen machen. Doch auch bei den modernen Browsern werden die Unterschiede momentan eher gr&#246;&#223;er als kleiner. Konkretes Beispiel: Die JavaScript&#45;Performance des aktuellen Firefox 3.6 ist nicht einmal halb so gut wie die des Chrome 4.&amp;nbsp; 

Abgestufter Browsersupport bei HTML5 &amp;amp; CSS3?
Die Frage, die ich deshalb in den Raum stellen m&#246;chte lautet: Wie geht man mit den &#228;lteren Generationen der &#8220;guten&#8221; Browser um? Ich klammere hier bewusst den IE 6 und 7 aus, mir geht es um Firefox 1.x,2.x,3.0.x, den Opera 8.x,9.x, den Chrome 1,2 oder auch Safari 1,2. Was die immer weiter wachsende Unterst&#252;tzung f&#252;r beispielsweise CSS3 und HTML5 angeht, so gibt es mit den &#228;lteren Generationen sicherlich weniger Probleme. Doch was ist mit waschechten CSS&#45;Bugs?

Der Firefox 3.6 ist beispielsweise der erste Firefox &#252;berhaupt, der CSS&#45;Tabellen endlich fehlerfrei darstellt. Alle seine Vorg&#228;nger hatten da so ihrer Schwierigkeiten. Der Firefox 2.x lie&#223; teilweise Labels hinter Formularelementen verschwinden. Im Gegensatz zum Internet Explorer 6, der neben seinen zahlreichen CSS&#45;Bugs ebenso zahlreiche Parser&#45;Bugs mitlieferte, &#252;ber deren Ausnutzung viele Probleme gefixt werden konnten, steht man bei den &#8220;guten&#8221; Browsern meist im Regen. Bugfixes f&#252;r deren CSS&#45;Probleme sind Mangelware. Mit der wachsenden Verbreitung von Firefox und Co. und den immer neuen Versionen/Generationen wird auch die Streubreite bei den Anwendern zunehmen und damit wird es zwangsl&#228;ufig dazu kommen, dass diese Bugs &#8220;sichtbar&#8221; werden, wenn aktuelle Webtechnologien vermehrt Anwendung finden. 

Wir beginnen gerade erst, die ersten graphischen Spielereien von CSS3 in unsere Projekte einzubauen. Ein falscher Schatten oder eine runde Ecke stellen in der Regel kein Problem dar. Doch wie sieht es aus, wenn wir damit beginnen, die neuen Layout&#45;Module zu verwenden (Mehrspaltigkeit, Alternative Box&#45;Modells, ect)? Das sind layoutkritische Elemente, was wenn hier Bugs auftreten, weil die ersten Implementationen noch nicht ausgereift waren &#45; aber noch nicht vom Browsermarkt verschwunden sind?

Thema HTML5: Auch hier hat die Entwicklung deutlich an Fahrt gewonnen. Im letzten Jahr gab es reichlich Tutorials, wie HTML5 schon heute angewandt werden kann. Doch auch hier werden wir bei der aktuellen Geschwindigkeit M&#252;he haben, dass &#228;ltere Browsergenerationen von FF und Co. bereits aus den Statistiken verschwunden sind, bevor wir damit richtig anfangen zu arbeiten &#45; oder wir warten bis 2020 (das will niemand wirklich, oder?). Dem Firefox 2 kann man nur sehr m&#252;hevoll den Umgang mit den neuen Elementen beibringen, vern&#252;nftiges Styling ist fast unm&#246;glich. F&#252;r den IE7 und 8 gilt das gleiche, doch beide werden uns vermutlich noch eine ganze Weile begleiten.

Es bleibt spannend und unberechenbar ...
In die Browserwelt ist sichtlich Bewegung gekommen. HTML5 und CSS3 nehmen Woche f&#252;r Woche weiter Fahrt auf. Die Performance&#45;Entwicklung der JavaSript&#45;Engines von Google, Safari und Opera (v10.5) er&#246;ffnet M&#246;glichkeiten, die vor 1..2 Jahren noch v&#246;llig undenkbar waren &#45; ganz unabh&#228;ngig von den zahlreichen neuen Features, die uns durch jedes Browserupdate beschert werden. Jetzt also, wo der IE6 so langsam von der Bildfl&#228;che verschwindet, haben wir nicht zwingend Eitel Sonnenschein. Stattdessen wird sich der Focus einfach etwas verschieben, weg von dem einen zentralen Problembrowser hin zu den zahlreichen alten Browsergenerationen, welche die neuen Webtechnologien unzureichend oder fehlerhaft implementiert haben.

Nach so vielen vagen Gedanken w&#252;rde mich Eure Meinung interessieren:

Wie geht mit der wachsenden Versionsvielfalt und den damit verbundenen Leistungsunterschieden um?
Wie reagiert Ihr auf Browserbugs, die sich nicht mehr so leicht fixen lassen, wie im guten alten Internet Explorer 6?
Wie handhabt Ihr die unterschiedliche Unterst&#252;tzung von Standards (HTML5, CSS3)?


Entfernen wir uns wieder von &#8220;Graceful Degradation&#8221; und &#8220;Progessive Enhancement&#8221; weil die Leistungsunterschiede im Vergleich zu heute tendentiell geringer werden oder bleiben wir als Webentwickler so tolerant wie bisher und sorgen uns in Zukunft auch um die &#228;lteren Guten, auch wenn deren Aufkommen in der Statistik geringer sein wird als es der IE6 momentan noch ist?</summary>
      <created>2010-02-01T14:12:45+00:00</created>
		<author>
		  <name>Dirk Jesse</name>
		  <url>http://www.highresolution.info</url>		</author>
      <dc:subject>Browser, Webdesign</dc:subject>
      <content type="text/html" mode="escaped" xml:lang="en-US"><![CDATA[ <p>Die Frage stellt sich bei jedem neuen Webprojekt: Welche Browser/Browsergenerationen sollen unterst&#252;tzt werden? Grenzt man die Fragestellung auf unser aller Lieblingsproblem, den Internet Explorer, ein, so l&#228;sst sich die Frage darauf reduzieren, wie man mit dem Internet Explorer 6 umgeht. Schleppt man ihn irgendwie mit (wird bei den meisten Projekten nach wie vor gemacht) oder ignoriert man ihn. Pfiffige CSS-Entwickler setzen auf Graceful Degradation oder Progressive Enhancement, um neben der schwarz/wei&#223; Option (ja/nein) noch ein paar argumentative Graustufen einf&#252;gen zu k&#246;nnen.
</p> <p>Doch so gern und trefflich die Blogosph&#228;re sich auch &#252;ber den IE6 und dessen Schw&#228;chen ausl&#228;sst so gr&#252;ndlich wird in der Diskussion meist au&#223;er acht gelassen, dass auch andere Browser einem Alterungsprozess unterliegen. Wer testet denn heute noch ernsthaft seine Projekte gegen den Firefox 1, Safari 2 oder Opera 8? Der Firefox 1.0 beispielsweise stammt aus dem Jahre 2004 und hat damit ebenfalls bereits 5+ Jahre auf dem Buckel. Schon mal dr&#252;ber nachgedacht?</p>

<p>In den Focus r&#252;ckt diese Fragestellung bei mir durch Googles <a href="http://googleenterprise.blogspot.com/2010/01/modern-browsers-for-modern-applications.html" title="aktuelle Ank&#252;ndigung">aktuelle Ank&#252;ndigung</a>, den IE6 bei den eigenen Applikationen nicht mehr zu unterst&#252;tzen - wor&#252;ber auch sofort wieder reichlich berichtet wird. Nur steht in Googles Ank&#252;ndigung weit mehr als das Ende des IE6-Supports. Auch die n&#228;chste Generation der &#8220;Guten&#8221; - Firefox 2.x, Opera 9, Chrome 2.x usw. n&#228;hert sich dem Ende ihrer Unterst&#252;tzung. Zwar findet man diese Aussage in dieser Deutlichkeit nicht in diesem Google-Blogpost, daf&#252;r beispielsweise bei Yahoo&#8217;s Aufstellung f&#252;r den <a href="http://developer.yahoo.com/yui/articles/gbs/" title="abgestuften Browsersupport">abgestuften Browsersupport</a> der YUI Library.</p>

<p>Interessant an der Yahoo-Tabelle ist beispielsweise, dass selbst der Firefox 3.0 unter Windows Vista/7 bereits den A-Grade Status verloren hat. Von Opera ist generell nur die aktuelle Version 10 in der Liste vertreten und auch der Safari unter Mac nur in der aktuellen Version 4 gelistet wird. Alle &#228;lteren Versionen werden aktuell als B-Grade eingestuft. Sie werden selbstverst&#228;ndlich weiterhin unterst&#252;tzt werden - jedoch bereits heute mit geringerer Priorit&#228;t. Nun dreht es sich sowohl bei Google als auch bei Yahoo in allererster Linie um die JavaScript-Unterst&#252;tzung/-Performance. In Sachen CSS ist es vor allem der Internet Explorer 6, der mit zahlreichen Bugs gesegnet ist, die Webentwicklern bei den immer komplexer werdenden Applikationen mehr und mehr zu schaffen machen. Doch auch bei den modernen Browsern werden die Unterschiede momentan eher gr&#246;&#223;er als kleiner. Konkretes Beispiel: Die JavaScript-Performance des aktuellen Firefox 3.6 ist nicht einmal halb so gut wie die des Chrome 4.&nbsp; </p>

<h3>Abgestufter Browsersupport bei HTML5 &amp; CSS3?</h3><p>
Die Frage, die ich deshalb in den Raum stellen m&#246;chte lautet: Wie geht man mit den &#228;lteren Generationen der &#8220;guten&#8221; Browser um? Ich klammere hier bewusst den IE 6 und 7 aus, mir geht es um Firefox 1.x,2.x,3.0.x, den Opera 8.x,9.x, den Chrome 1,2 oder auch Safari 1,2. Was die immer weiter wachsende Unterst&#252;tzung f&#252;r beispielsweise CSS3 und HTML5 angeht, so gibt es mit den &#228;lteren Generationen sicherlich weniger Probleme. Doch was ist mit waschechten CSS-Bugs?</p>

<p>Der Firefox 3.6 ist beispielsweise der erste Firefox &#252;berhaupt, der CSS-Tabellen endlich fehlerfrei darstellt. Alle seine <a href="http://www.highresolution.info/weblog/entry/firefox_3_css_tables_bug/" title="Vorg&#228;nger hatten da so ihrer Schwierigkeiten">Vorg&#228;nger hatten da so ihrer Schwierigkeiten</a>. Der Firefox 2.x lie&#223; teilweise Labels hinter Formularelementen verschwinden. Im Gegensatz zum Internet Explorer 6, der neben seinen zahlreichen CSS-Bugs ebenso zahlreiche Parser-Bugs mitlieferte, &#252;ber deren Ausnutzung viele Probleme gefixt werden konnten, steht man bei den &#8220;guten&#8221; Browsern meist im Regen. Bugfixes f&#252;r deren CSS-Probleme sind Mangelware. Mit der wachsenden Verbreitung von Firefox und Co. und den immer neuen Versionen/Generationen wird auch die Streubreite bei den Anwendern zunehmen und damit wird es zwangsl&#228;ufig dazu kommen, dass diese Bugs &#8220;sichtbar&#8221; werden, wenn aktuelle Webtechnologien vermehrt Anwendung finden. </p>

<p>Wir beginnen gerade erst, die ersten graphischen Spielereien von CSS3 in unsere Projekte einzubauen. Ein falscher Schatten oder eine runde Ecke stellen in der Regel kein Problem dar. Doch wie sieht es aus, wenn wir damit beginnen, die neuen Layout-Module zu verwenden (Mehrspaltigkeit, Alternative Box-Modells, ect)? Das sind layoutkritische Elemente, was wenn hier Bugs auftreten, weil die ersten Implementationen noch nicht ausgereift waren - aber noch nicht vom Browsermarkt verschwunden sind?</p>

<p>Thema HTML5: Auch hier hat die Entwicklung deutlich an Fahrt gewonnen. Im letzten Jahr gab es reichlich Tutorials, wie HTML5 schon heute angewandt werden kann. Doch auch hier werden wir bei der aktuellen Geschwindigkeit M&#252;he haben, dass &#228;ltere Browsergenerationen von FF und Co. bereits aus den Statistiken verschwunden sind, bevor wir damit richtig anfangen zu arbeiten - oder wir warten bis 2020 (das will niemand wirklich, oder?). Dem Firefox 2 kann man nur sehr m&#252;hevoll den Umgang mit den neuen Elementen beibringen, vern&#252;nftiges Styling ist fast unm&#246;glich. F&#252;r den IE7 und 8 gilt das gleiche, doch beide werden uns vermutlich noch eine ganze Weile begleiten.</p>

<h3>Es bleibt spannend und unberechenbar ...</h3><p>
In die Browserwelt ist sichtlich Bewegung gekommen. HTML5 und CSS3 nehmen Woche f&#252;r Woche weiter Fahrt auf. Die Performance-Entwicklung der JavaSript-Engines von Google, Safari und Opera (v10.5) er&#246;ffnet M&#246;glichkeiten, die vor 1..2 Jahren noch v&#246;llig undenkbar waren - ganz unabh&#228;ngig von den zahlreichen neuen Features, die uns durch jedes Browserupdate beschert werden. Jetzt also, wo der IE6 so langsam von der Bildfl&#228;che verschwindet, haben wir nicht zwingend Eitel Sonnenschein. Stattdessen wird sich der Focus einfach etwas verschieben, weg von dem einen zentralen Problembrowser hin zu den zahlreichen alten Browsergenerationen, welche die neuen Webtechnologien unzureichend oder fehlerhaft implementiert haben.</p>

<p>Nach so vielen vagen Gedanken w&#252;rde mich Eure Meinung interessieren:
</p><ul>
<li>Wie geht mit der wachsenden Versionsvielfalt und den damit verbundenen Leistungsunterschieden um?</li>
<li>Wie reagiert Ihr auf Browserbugs, die sich nicht mehr so leicht fixen lassen, wie im guten alten Internet Explorer 6?</li>
<li>Wie handhabt Ihr die unterschiedliche Unterst&#252;tzung von Standards (HTML5, CSS3)?</li>
</ul>

<p>Entfernen wir uns wieder von &#8220;Graceful Degradation&#8221; und &#8220;Progessive Enhancement&#8221; weil die Leistungsunterschiede im Vergleich zu heute tendentiell geringer werden oder bleiben wir als Webentwickler so tolerant wie bisher und sorgen uns in Zukunft auch um die &#228;lteren Guten, auch wenn deren Aufkommen in der Statistik geringer sein wird als es der IE6 momentan noch ist?
</p> ]]></content>
    </entry>

    <entry>
      <title type="html">Biene &#8217;09 &#45; Steigende Komplexit&#228;t, Designanspr&#252;che und YAML</title>
      <link rel="alternate" type="text/html" href="http://www.highresolution.info/weblog/entry/biene_09_steigende_komplexitaet_designansprueche_und_yaml/" /> 
      <id>tag:highresolution.info,2009:weblog/11.1388</id>
      <issued>2009-12-06T10:49:13+00:00</issued>
      <modified>2009-12-06T18:01:14+00:00</modified>
      <summary type="html">Am 4. Dezember wurden im Rahmen einer einer feierlichen Veranstaltung im Postbahnhof Berlin die diesj&#228;hrigen Gewinner des mittlerweile 6. Biene&#45;Wettbewerbs (Barrierefreies Internet Er&#246;ffnet Neue Einsichten) ausgezeichnet . Eine Woche zuvor waren die 24 Finalisten bekannt gegeben worden, die alle formalen Kriterien und &amp;ndash; der folgende Punkt wird vielfach vergessen &amp;ndash; umfangreiche Nutzertests erfolgreich bestanden haben. Aus der Reihe der Finalisten k&#252;rte eine prominent besetzte Jury schlie&#223;lich die besten Webauftritte und vergab insgesamt 17 Biene&#45;Preise in Gold, Silber und Bronze.

 Wie schon im letzten Jahr war auch dieses Mal YAML wieder zahlreich unter den Finalisten und Preistr&#228;gern vertreten. Insgesamt 5 der 24 Webseiten im Finale des Wettbewerbs setzen auf das bekannte CSS&#45;Framework, drei davon wurden letztlich mit einer Biene in Bronze pr&#228;miert. 

Hier noch einmal die Finalisten und Preistr&#228;ger mit YAML unter der Haube:

Gemeinde Issum:www.issum.de &amp;ndash; BIENE in Bronze (Kategorie &#8250;Komplexe Informations&#45; und Kommu&#173;nikations&#173;angebote&#8249;)
Stadt Nettetal: www.nettetal.de &amp;ndash; BIENE in Bronze (Kategorie &#8250;Komplexe Informations&#45; und Kommu&#173;nikations&#173;angebote&#8249;)
Naturheilpraxis Angela K&#228;&#223;ner: http://www.naturheilpraxis&#45;kaessner.de &amp;ndash; BIENE in Bronze (Kategorie &#8250;Einfache Informations&#45; und Kommu&#173;nikations&#173;angebote&#8249;)
Stadt Kevelaer: www.kevelaer.de (Kategorie &#8250;Einfache Informations&#45; und Kommu&#173;nikations&#173;angebote&#8249;)
Stadt Emmerich am Rhein: www.emmerich.de (Kategorie &#8250;Einfache Informations&#45; und Kommu&#173;nikations&#173;angebote&#8249;)


Dabei steuert das YAML Framework nur einen kleinen Teil zur Barrierefreiheit einer Webseite bei, die Hauptarbeit liegt nach wie vor bei den verantwortlichen Webdesignern und Redakteuren, denn so aufw&#228;ndig die Erstellung einer Webseite auch ist, stellt deren Betrieb mit regelm&#228;&#223;igen Anpassungen/&#220;berarbeitungen und st&#228;ndigen redaktionellen &#196;nderungen die wahre Herausforderung dar, soll der hohe Qualit&#228;tsstandard dauerhaft gehalten werden. Als Technische Basis der verschiedenen YAML&#45;basierten Seiten kamen die Framework&#45;Versionen 2.5.x und 3.0.x zum Einsatz. Schon daran kann man erkennen, dass der Aufbau komplexer Informationsangebote viel Zeit in Anspruch nimmt, denn die Version 3.1 (Januar 2009) sowie die aktuelle Version 3.2 waren noch nicht vertreten. Damit aber genug dazu.

Besonders beeindruckend finde ich die Tatsache, dass trotz der gestiegenen Anforderungen an die Bewerber, vermehrt komplexe Angebote ins Finale einziehen und Preistr&#228;ger werden. So konnten in diesem Jahr, der Webauftritt der DHL, das Online&#45;Banking&#45;Portal der Credite Suisse oder auch der SWR und die Zeit Online silberne Bienen mit nach Hause nehmen. F&#252;r den Webshop Manufaktum gab&#8217;s gar eine Biene in Gold.

Ebenfalls immer mit dabei sind die zahlreichen Kritiker, die Finalisten und Preistr&#228;ger im Nachhinein sezieren und dabei immer wieder vermeintliche Haare in der Suppe finden. Sei es die mangelnde Validit&#228;t oder die vergleichsweise schlichte Optik mancher Seite oder oder oder. Doch die Biene bewertet keine Photoshop&#45;K&#252;nste, sondern Zug&#228;nglichkeit. Und so stellt die Riege der Finalisten und Preistr&#228;ger einen aus meiner Sicht im Bezug auf die Designqualit&#228;t einen durchaus repr&#228;sentativen Querschnitt aktueller Webseiten dar. Darunter sehr sch&#246;ne Seiten wie www.bund.de oder die  Zeit Online und daneben eben auch weniger schicke Angebote wie die des Hamburger Verkehrsverbundes (Biene in Bronze) oder der Stadt Suttgart. Hier mag dem einen oder anderen das Bling Bling&amp;nbsp; fehlen, daf&#252;r &#252;berzeugen alle diese Seiten mit hervorragender Zug&#228;nglichkeit, was viel zu viele Hochglanz&#45;Webseiten nicht f&#252;r sich in Anspruch nehmen k&#246;nnen. Und an dieser Stelle vertraue ich der Jury, denn ins Finale kommt man nicht allein durch das Abarbeiten von Barrierefreiheits&#45;Checklisten sondern die Seiten m&#252;ssen sich in zahlreichen Nutzertests beweisen &#45; Design hin oder her.

Allen Kritikern sei daher angeraten: Kritik ist erlaubt, schn&#246;des Meckern ist nur peinlich. Aber wenn Ihr es besser wisst dann geht bei Euren eigenen Projekten mit gutem Beispiel voran und zeigt, dass es besser geht. Entwickelt charmante L&#246;sungen, erstellt attraktive Webseiten, reicht diese zur Biene 2010 ein. Dann k&#246;nnte der Anteil attraktiver Angebote weiter steigen und vielleicht h&#246;rt dann auch endlich mal die BF&#45;Szene damit auf, sich selbst der der L&#228;cherlichkeit preiszugeben, indem permanent gegen&#252;ber Berufskollegen gemeckert und Preistr&#228;ger seziert werden. Tomas Caspers hat es auf der diesj&#228;hrigen Webtech&#45;Konferenz auf den Punkt gebracht. 

&#8220;Auch bei Beachtung der WCAG 2.0 und dem Einsatz moderner Webtechniken wie WAI&#45;ARIA kann man dennoch an einzelnen Details scheitern. Doch passiert dies immernoch auf einem weitaus h&#246;heren Niveau als bei jenen, die sich aus Angst vor dem m&#246;glichen Scheitern gar nicht erst auf den Weg machen.&#8221; 

Und genau so sehe ich das auch: Der Weg ist das Ziel.

Abschlie&#223;end sei noch die Stadtbibliothek Marzahn&#45;Hellersdorf erw&#228;hnt, die ebenfalls mit einer Biene in Silber ausgezeichnet wurde. Dieses Projekt wurde innerhalb von 3 Jahren ausschlie&#223;lich von engagierten Mitarbeitern der Bibliothek realisiert &amp;ndash; ganz ohne eine professionelle Agentur. Eine solche Leistung verdient h&#246;chsten Respekt.</summary>
      <created>2009-12-06T10:49:13+00:00</created>
		<author>
		  <name>Dirk Jesse</name>
		  <url>http://www.highresolution.info</url>		</author>
      <dc:subject>Real World, Webdesign, Zug&#228;nglichkeit</dc:subject>
      <content type="text/html" mode="escaped" xml:lang="en-US"><![CDATA[ <p><img src="http://www.highresolution.info/images/uploads/logo_biene_award.png" border="0" alt="" class="float_left" width="222" height="181" /> Am 4. Dezember wurden im Rahmen einer einer feierlichen Veranstaltung im Postbahnhof Berlin die diesj&#228;hrigen Gewinner des mittlerweile 6. Biene-Wettbewerbs (<strong>B</strong>arrierefreies <strong>I</strong>nternet <strong>E</strong>r&#246;ffnet <strong>N</strong>eue <strong>E</strong>insichten) ausgezeichnet . Eine Woche zuvor waren die <a href="http://www.einfach-fuer-alle.de/blog/id/2550/" title="24 Finalisten">24 Finalisten</a> bekannt gegeben worden, die alle formalen Kriterien und &ndash; der folgende Punkt wird vielfach vergessen &ndash; umfangreiche Nutzertests erfolgreich bestanden haben. Aus der Reihe der Finalisten k&#252;rte eine prominent besetzte Jury schlie&#223;lich die besten Webauftritte und vergab insgesamt <a href="http://www.einfach-fuer-alle.de/blog/id/2551/" title="17 Biene-Preise">17 Biene-Preise</a> in Gold, Silber und Bronze.</p>

 <p>Wie schon <a href="http://www.highresolution.info/weblog/entry/1x_gold_4x_silber_und_1x_bronze_bei_der_biene_2008/" title="im letzten Jahr">im letzten Jahr</a> war auch dieses Mal <a href="http://www.yaml.de" title="YAML">YAML</a> wieder zahlreich unter den Finalisten und Preistr&#228;gern vertreten. Insgesamt 5 der 24 Webseiten im Finale des Wettbewerbs setzen auf das bekannte CSS-Framework, drei davon wurden letztlich mit einer Biene in Bronze pr&#228;miert. </p>

<p>Hier noch einmal die Finalisten und Preistr&#228;ger mit YAML unter der Haube:
</p><ul>
<li>Gemeinde Issum:<a href="http://www.issum.de" title="www.issum.de">www.issum.de</a> &ndash; BIENE in Bronze (Kategorie &#8250;Komplexe Informations- und Kommu&#173;nikations&#173;angebote&#8249;)</li>
<li>Stadt Nettetal: <a href="http://www.nettetal.de" title="www.nettetal.de">www.nettetal.de</a> &ndash; BIENE in Bronze (Kategorie &#8250;Komplexe Informations- und Kommu&#173;nikations&#173;angebote&#8249;)</li>
<li>Naturheilpraxis Angela K&#228;&#223;ner: <a href="http://www.highresolution.info/?URL=http%3A%2F%2Fwww.naturheilpraxis-kaessner.de">http://www.naturheilpraxis-kaessner.de</a> &ndash; BIENE in Bronze (Kategorie &#8250;Einfache Informations- und Kommu&#173;nikations&#173;angebote&#8249;)</li>
<li>Stadt Kevelaer: <a href="http://www.kevelaer.de" title="www.kevelaer.de">www.kevelaer.de</a> (Kategorie &#8250;Einfache Informations- und Kommu&#173;nikations&#173;angebote&#8249;)</li>
<li>Stadt Emmerich am Rhein: <a href="http://www.emmerich.de" title="www.emmerich.de">www.emmerich.de</a> (Kategorie &#8250;Einfache Informations- und Kommu&#173;nikations&#173;angebote&#8249;)</li>
</ul>

<p>Dabei steuert das YAML Framework nur einen kleinen Teil zur Barrierefreiheit einer Webseite bei, die Hauptarbeit liegt nach wie vor bei den verantwortlichen Webdesignern und Redakteuren, denn so aufw&#228;ndig die Erstellung einer Webseite auch ist, stellt deren Betrieb mit regelm&#228;&#223;igen Anpassungen/&#220;berarbeitungen und st&#228;ndigen redaktionellen &#196;nderungen die wahre Herausforderung dar, soll der hohe Qualit&#228;tsstandard dauerhaft gehalten werden. Als Technische Basis der verschiedenen YAML-basierten Seiten kamen die Framework-Versionen 2.5.x und 3.0.x zum Einsatz. Schon daran kann man erkennen, dass der Aufbau komplexer Informationsangebote viel Zeit in Anspruch nimmt, denn die Version 3.1 (Januar 2009) sowie die aktuelle <a href="http://www.highresolution.info/weblog/entry/yaml_3.2_schaerfung_des_profils/" title="Version 3.2">Version 3.2</a> waren noch nicht vertreten. Damit aber genug dazu.</p>

<p>Besonders beeindruckend finde ich die Tatsache, dass trotz der gestiegenen Anforderungen an die Bewerber, vermehrt komplexe Angebote ins Finale einziehen und Preistr&#228;ger werden. So konnten in diesem Jahr, der Webauftritt der <a href="http://www.dhl.de/de.html" title="DHL">DHL</a>, das Online-Banking-Portal der <a href="https://www.credit-suisse.com/" title="Credite Suisse">Credite Suisse</a> oder auch der <a href="http://www.swr.de/" title="SWR">SWR</a> und die <a href="http://www.zeit.de" title="Zeit Online">Zeit Online</a> silberne Bienen mit nach Hause nehmen. F&#252;r den Webshop <a href="http://www.manufactum.de" title="Manufaktum">Manufaktum</a> gab&#8217;s gar eine Biene in Gold.</p>

<p>Ebenfalls immer mit dabei sind die zahlreichen Kritiker, die Finalisten und Preistr&#228;ger im Nachhinein sezieren und dabei immer wieder vermeintliche Haare in der Suppe finden. Sei es die mangelnde <a href="http://twitter.com/echt/statuses/6369187339" title="Validit&#228;t">Validit&#228;t</a> oder die vergleichsweise <a href="http://twitter.com/sprungmarkers/statuses/6369822581" title="Allen">schlichte Optik</a> mancher Seite oder oder oder. Doch die Biene bewertet keine Photoshop-K&#252;nste, sondern Zug&#228;nglichkeit. Und so stellt die Riege der Finalisten und Preistr&#228;ger einen aus meiner Sicht im Bezug auf die Designqualit&#228;t einen durchaus repr&#228;sentativen Querschnitt aktueller Webseiten dar. Darunter sehr sch&#246;ne Seiten wie <a href="http://www.bund.de" title="www.bund.de">www.bund.de</a> oder die  <a href="http://www.zeit.de" title="Zeit Online">Zeit Online</a> und daneben eben auch weniger schicke Angebote wie die des <a href="http://www.hvv.de/" title="Hamburger Verkehrsverbundes">Hamburger Verkehrsverbundes</a> (Biene in Bronze) oder der <a href="http://www.stuttgart.de/" title="Stadt Suttgart">Stadt Suttgart</a>. Hier mag dem einen oder anderen das <em>Bling Bling</em>&nbsp; fehlen, daf&#252;r &#252;berzeugen alle diese Seiten mit hervorragender Zug&#228;nglichkeit, was viel zu viele <a href="http://www.bunte.de/" title="Hochglanz-Webseiten">Hochglanz-Webseiten</a> nicht f&#252;r sich in Anspruch nehmen k&#246;nnen. Und an dieser Stelle vertraue ich der Jury, denn ins Finale kommt man nicht allein durch das Abarbeiten von Barrierefreiheits-Checklisten sondern die Seiten m&#252;ssen sich in zahlreichen Nutzertests beweisen - Design hin oder her.</p>

<p>Allen <a href="http://twitter.com/fritzweisshart/statuses/6384280605" title="Kritikern">Kritikern</a> sei daher angeraten: Kritik ist erlaubt, schn&#246;des Meckern ist nur peinlich. Aber wenn Ihr es besser wisst dann geht bei Euren eigenen Projekten mit gutem Beispiel voran und zeigt, dass es besser geht. Entwickelt charmante L&#246;sungen, erstellt attraktive Webseiten, reicht diese zur Biene 2010 ein. Dann k&#246;nnte der Anteil attraktiver Angebote weiter steigen und vielleicht h&#246;rt dann auch endlich mal die BF-Szene damit auf, sich selbst der der L&#228;cherlichkeit preiszugeben, indem permanent <a href="http://www.wait-till-i.com/2009/10/26/barrierefreiheit-konferenzen-one-speaker-slot-free/" title="gegen&#252;ber Berufskollegen gemeckert">gegen&#252;ber Berufskollegen gemeckert</a> und Preistr&#228;ger seziert werden. Tomas Caspers hat es auf der diesj&#228;hrigen <a href="http://it-republik.de/konferenzen/webtech09/" title="Webtech-Konferenz">Webtech-Konferenz</a> auf den Punkt gebracht. </p>

<blockquote><p>&#8220;Auch bei Beachtung der WCAG 2.0 und dem Einsatz moderner Webtechniken wie WAI-ARIA kann man dennoch an einzelnen Details scheitern. Doch passiert dies immernoch auf einem weitaus h&#246;heren Niveau als bei jenen, die sich aus Angst vor dem m&#246;glichen Scheitern gar nicht erst auf den Weg machen.&#8221;</p></blockquote><p> </p>

<p>Und genau so sehe ich das auch: Der Weg ist das Ziel.</p>

<p>Abschlie&#223;end sei noch die <a href="http://www.stb-mh.de/" title="Stadtbibliothek Marzahn-Hellersdorf">Stadtbibliothek Marzahn-Hellersdorf</a> erw&#228;hnt, die ebenfalls mit einer Biene in Silber ausgezeichnet wurde. Dieses Projekt wurde innerhalb von 3 Jahren ausschlie&#223;lich von engagierten Mitarbeitern der Bibliothek realisiert &ndash; ganz ohne eine professionelle Agentur. Eine solche Leistung verdient h&#246;chsten Respekt.
</p> ]]></content>
    </entry>

    <entry>
      <title type="html">Barcamp Mainz &#45; R&#252;ckblick</title>
      <link rel="alternate" type="text/html" href="http://www.highresolution.info/weblog/entry/barcamp_mainz_rueckblick/" /> 
      <id>tag:highresolution.info,2009:weblog/11.1387</id>
      <issued>2009-11-30T14:17:16+00:00</issued>
      <modified>2009-11-30T16:03:17+00:00</modified>
      <summary type="html">Das Barcamp Mainz ist vor&#252;ber und damit eines der besten Barcamps, dass ich in den letzten 3 Jahren miterleben durfte. Das H&#246;rsaalgeb&#228;ude der Naturwissenschaften auf dem Campus der Uni Mainz war das erste der vielen guten Entscheidungen des Orga&#45;Teams. Organisation, Verpflegung, Sessionangebot&#8230; alles wie man es sich w&#252;nscht, um sich in entspannter Atmosph&#228;re &#252;ber 2 Tage den unterschiedlichsten Themen hinzugeben. 

 

Insbesondere das breitgef&#228;cherte Themenangebot hat es mir dieses Mal angetan. So umfasste mein pers&#246;nlicher Sessionplan eine CMS&#45;Diskussion, Rechtfragen in Social Networks, Rapid Prototyping mit jQuery, User Interface Design aus Spiele&#45;Sicht, Erfahrungsberichte von Freelancern sowie zahlreiche kurze und einige l&#228;ngere Gespr&#228;che bei Kaffee und leckerem Kuchen. Ich selbst habe die Gelegenheit genutzt, nach ca. 8 Monaten und ca. 6000 Zeilen JS&#45;Code ein erstes Feedback zu meinem aktuellen Projekt einzuholen.

Und abseits der Sessions sind Barcamps eben auch immer wieder eine tolle Gelegenheit, bekannte und unbekannte Gesichter zu treffen, sich auszutauschen und &#252;ber alle m&#246;glichen und unm&#246;glichen Dinge zu schwatzen. Und genau f&#252;r diese entspannte Atmosph&#228;re danke ich dem Orga&#45;Team. Allen voran Darren Cooper, dessen herzerw&#228;rmende, lebensfrohe englische Art ich an zwei Abenden im #csshaus als Gast von Jens erleben durfte. Und so war ich denn einerseits etwas traurig, dass Sonntag 15:00 das Barcamp f&#252;r mich bereits zu Ende war &#45; mein Flieger nach Dresden wartete auf mich &#45; andererseits bin ich selten so motiviert aus einer Veranstaltung gegangen wie dieses Mal.

Jederzeit gerne wieder ... wir sehen uns Mainz.</summary>
      <created>2009-11-30T14:17:16+00:00</created>
		<author>
		  <name>Dirk Jesse</name>
		  <url>http://www.highresolution.info</url>		</author>
      <dc:subject>Barcamp, Real World</dc:subject>
      <content type="text/html" mode="escaped" xml:lang="en-US"><![CDATA[ <p>Das <a href="http://www.barcampmainz.de/index.html" title="Barcamp Mainz">Barcamp Mainz</a> ist vor&#252;ber und damit eines der besten Barcamps, dass ich in den letzten 3 Jahren miterleben durfte. Das H&#246;rsaalgeb&#228;ude der Naturwissenschaften auf dem Campus der Uni Mainz war das erste der vielen guten Entscheidungen des Orga-Teams. Organisation, Verpflegung, Sessionangebot&#8230; alles wie man es sich w&#252;nscht, um sich in entspannter Atmosph&#228;re &#252;ber 2 Tage den unterschiedlichsten Themen hinzugeben. </p>

 <p><img src="http://www.highresolution.info/images/uploads/bcmz_logo_full_red_uni_inside.png" border="0" alt="" width="400" height="120" /></p>

<p>Insbesondere das breitgef&#228;cherte Themenangebot hat es mir dieses Mal angetan. So umfasste mein pers&#246;nlicher Sessionplan eine CMS-Diskussion, Rechtfragen in Social Networks, Rapid Prototyping mit jQuery, User Interface Design aus Spiele-Sicht, Erfahrungsberichte von Freelancern sowie zahlreiche kurze und einige l&#228;ngere Gespr&#228;che bei Kaffee und leckerem Kuchen. Ich selbst habe die Gelegenheit genutzt, nach ca. 8 Monaten und ca. 6000 Zeilen JS-Code ein erstes Feedback zu meinem aktuellen Projekt einzuholen.</p>

<p>Und abseits der Sessions sind Barcamps eben auch immer wieder eine tolle Gelegenheit, bekannte und unbekannte Gesichter zu treffen, sich auszutauschen und &#252;ber alle m&#246;glichen und unm&#246;glichen Dinge zu schwatzen. Und genau f&#252;r diese entspannte Atmosph&#228;re danke ich dem Orga-Team. Allen voran <a href="https://www.xing.com/profile/DarrenJ_Cooper" title="Darren Cooper">Darren Cooper</a>, dessen herzerw&#228;rmende, lebensfrohe englische Art ich an zwei Abenden im #csshaus als Gast von <a href="http://grochtdreis.de/weblog/2009/11/30/rueckblick-auf-das-barcamp-mainz/" title="Jens">Jens</a> erleben durfte. Und so war ich denn einerseits etwas traurig, dass Sonntag 15:00 das Barcamp f&#252;r mich bereits zu Ende war - mein Flieger nach Dresden wartete auf mich - andererseits bin ich selten so motiviert aus einer Veranstaltung gegangen wie dieses Mal.</p>

<p>Jederzeit gerne wieder ... wir sehen uns Mainz.
</p> ]]></content>
    </entry>

    <entry>
      <title type="html">52 Weeks Later</title>
      <link rel="alternate" type="text/html" href="http://www.highresolution.info/weblog/entry/52_weeks_later/" /> 
      <id>tag:highresolution.info,2009:weblog/11.1386</id>
      <issued>2009-11-24T08:24:46+00:00</issued>
      <modified>2009-11-24T11:47:47+00:00</modified>
      <summary type="html">... oder wie es die Prophezeihung in den alten Schriften von Kobol ank&#252;ndigt: &amp;quot;Dies ist alles schon einmal passiert, es wird wieder passieren&amp;quot;. Leider sind die wenigsten Gruselgeschichten so gut, dass man sich auf eine Fortsetzung freut. Dennoch pr&#228;sentiere ich heute den offiziellen Nachfolger meines letztj&#228;hrigen Winterm&#228;rchens.
 Die Vorgeschichte

Es begab sich im Sommer zu 2009, als ein aufstrebener Webentwickler, ich nenne ihn Herrn X. seine eigene Webseite neu einrichten wollte. Da die eigene Kreativit&#228;t wohl gerade gemeinsam mit seinem Verstand auf Badeurlaub in der Karibik waren, griff Herr X. von jeglichen Hemmungen befreit in eine der unteren Schubladen des guten Benehmens, setzte seine copy &amp;amp; paste M&#252;tze auf und streifte durchs Internet: Warum sich etwas neu ausdenken, was andere schon so &#252;bersichtlich und ansprechend hinbekommen haben? Letztlich sind wir doch eh eine gro&#223;e Familie im Web &amp;hellip; und so fand er meine Webseite. Und diese gefiel ihm vom Aufbau und Design so einmalig gut, dass er seine ganz genauso aufgebaut und aussehen sollte. Nur hier und da einige winzige &#196;nderungen &amp;ndash; der individuellen Note wegen &amp;ndash; ein T&#252;pfelchen Farbe hier und eine runde Ecke da, ganz dezent nat&#252;rlich, die Vorlage war f&#252;r ihn schlie&#223;lich schon so nahe der Perfektion. Sch&#246;n auch, dass ich  seinerzeit  einen l&#228;ngeren Blogbeitrag zu meinen Designentscheidungen verfasst hatte. Das hatte auch Herr X. bemerkt und erw&#228;hnenswerte Passagen kurzerhand in den Relaunch&#45;Beitrag seines neuen Layouts &#252;bernommen.

Einige Monate sp&#228;ter trug es sich zu, dass ich beim Sichten einiger Kommentare  zuf&#228;llig auf der sch&#246;nen neuen Webseite des Herrn X. landete und dort ein ein selten&#45;klares D&#233;j&#224;&#45;vu erlebte. Das alles hatte ich schon mal gesehen &amp;hellip; ja richtig, bei mir selbst. Und weil  ich wenig begeistert war, die M&#252;hen meiner Freizeit weitgehend  deckungsgleich als das Aush&#228;ngeschild des &amp;quot;professionell&amp;quot; arbeitenden  Herrn X. wiederzuerkennen (einzelne Grafiken flossen sogar in eines seiner Referenzprojekte ein), kontaktierte ich Herrn X. per Skype um ihm mein Unbehagen bez&#252;glich seines Handelns zu verdeutlichen. Herr X. berief sich im weiteren Verlauf auf selektiven Ged&#228;chtnisausfall (&amp;quot;Ich wei&#223; nicht, was ich mir dabei gedacht habe.&amp;quot;) gab jedoch nach m&#252;hsamer Diskussion, wie anders ein eigenst&#228;ndiges Layout denn mindestens sein m&#252;sse, letztlich doch nach und  beseitigte  das Problem weitgehend. Damit war das Thema aus der Welt und die Welt drehte sich langsam weiter&amp;hellip;</summary>
      <created>2009-11-24T08:24:46+00:00</created>
		<author>
		  <name>Dirk Jesse</name>
		  <url>http://www.highresolution.info</url>		</author>
      <dc:subject>Hausinternes, Frameworks, Real World</dc:subject>
      <content type="text/html" mode="escaped" xml:lang="en-US"><![CDATA[ <p>... oder wie es die Prophezeihung in den alten Schriften von Kobol ank&#252;ndigt: &quot;<em>Dies ist alles schon einmal passiert, es wird wieder passieren</em>&quot;. Leider sind die wenigsten Gruselgeschichten so gut, dass man sich auf eine Fortsetzung freut. Dennoch pr&#228;sentiere ich heute den offiziellen Nachfolger meines letztj&#228;hrigen <a href="http://www.highresolution.info/weblog/entry/heute_back_ich_morgen_brau_ich_uebermorgen_klau_ich_ein_framework/">Winterm&#228;rchens</a>.
</p> <h3>Die Vorgeschichte</h3>

<p>Es begab sich im Sommer zu 2009, als ein aufstrebener Webentwickler, ich nenne ihn Herrn X. seine eigene Webseite neu einrichten wollte. Da die eigene Kreativit&#228;t wohl gerade gemeinsam mit seinem Verstand auf Badeurlaub in der Karibik waren, griff Herr X. von jeglichen Hemmungen befreit in eine der unteren Schubladen des guten Benehmens, setzte seine <em>copy &amp; paste</em> M&#252;tze auf und streifte durchs Internet: Warum sich etwas neu ausdenken, was andere schon so &#252;bersichtlich und ansprechend hinbekommen haben? Letztlich sind wir doch eh eine gro&#223;e Familie im Web &hellip; und so fand er meine Webseite. Und diese gefiel ihm vom Aufbau und Design so einmalig gut, dass er seine ganz genauso aufgebaut und aussehen sollte. Nur hier und da einige winzige &#196;nderungen &ndash; der individuellen Note wegen &ndash; ein T&#252;pfelchen Farbe hier und eine runde Ecke da, ganz dezent nat&#252;rlich, die Vorlage war f&#252;r ihn schlie&#223;lich schon so nahe der Perfektion. Sch&#246;n auch, dass ich  seinerzeit  einen l&#228;ngeren Blogbeitrag zu meinen Designentscheidungen verfasst hatte. Das hatte auch Herr X. bemerkt und erw&#228;hnenswerte Passagen kurzerhand in den Relaunch-Beitrag seines neuen Layouts &#252;bernommen.</p>

<p>Einige Monate sp&#228;ter trug es sich zu, dass ich beim Sichten einiger Kommentare  zuf&#228;llig auf der sch&#246;nen neuen Webseite des Herrn X. landete und dort ein ein selten-klares D&#233;j&#224;-vu erlebte. Das alles hatte ich schon mal gesehen &hellip; ja richtig, bei mir selbst. Und weil  ich wenig begeistert war, die M&#252;hen meiner Freizeit weitgehend  deckungsgleich als das Aush&#228;ngeschild des &quot;professionell&quot; arbeitenden  Herrn X. wiederzuerkennen (einzelne Grafiken flossen sogar in eines seiner Referenzprojekte ein), kontaktierte ich Herrn X. per Skype um ihm mein Unbehagen bez&#252;glich seines Handelns zu verdeutlichen. Herr X. berief sich im weiteren Verlauf auf selektiven Ged&#228;chtnisausfall (&quot;<em>Ich wei&#223; nicht, was ich mir dabei gedacht habe.</em>&quot;) gab jedoch nach m&#252;hsamer Diskussion, wie <em>anders</em> ein eigenst&#228;ndiges Layout denn mindestens sein m&#252;sse, letztlich doch nach und  beseitigte  das Problem weitgehend. Damit war das Thema aus der Welt und die Welt drehte sich langsam weiter&hellip;
</p> <h3>Nicht daran anlehnen oder erinnern!</h3>

<p>Letzten Samstag, nur knapp 4 Monate sp&#228;ter bekam ich nun eine e-Mail von Herrn X. In dieser Mail sandte mir er mir sein kleines &quot;HTML5/CSS Framework&quot; zu mit der Bitte, es auf m&#246;gliche Verletzungen meiner Schutzrechte zu pr&#252;fen. Was f&#252;r mich  irgendwie merkw&#252;rdig klang, denn Zitat: &quot;<em>Selbstverst&#228;ndlich erreicht mein kleines Framework nicht die Komplexit&#228;t von Yaml,&nbsp; soll auch <strong>nicht daran anlehnen</strong> oder <strong>erinnern</strong></em>&quot;. Frage: Wenn es etwas nicht an YAML anlehnt oder auch nur daran erinnert, was und warum soll ich dann pr&#252;fen?</p>

<p>Die Frage  beantwortete sich von selbst, nachdem ich einige Minuten im CSS dieses Projekts verbracht hatte. Der folgende Screenshot zeigt 5 Seiten eines kommentierten PDF&#8217;s mit CSS Code, zusammengefasst aus den drei Frameworkdateien (screen.css, print.css und patch.css), die ich Herrn X. zusammen mit meiner Sicht der Dinge zur&#252;ckgesandt habe.</p>

<p><img src="http://www.highresolution.info/images/uploads/pdf_codeanalyse.jpg" border="0" alt="" class="center" width="450" height="415" /></p>

<p>Zur Erl&#228;uterung: Die gelb markierten Bereiche sind dabei weitgehend 1:1 &#252;bernommene Passagen aus YAML (weitgehend, weil z.T. die erl&#228;uternden Kommtare fehlten). Die enthaltenen CSSDOC-Komentare stammten jedenfalls von mir. Beim verbleibenden Rest stimmten Selektorenabfolge und Eigenschaften zu  90% &#252;berein. In der Summe bilden die zusammenkopierten YAML-Brocken etwa den Stand von YAML&nbsp;1.0, also die Basis f&#252;r einen flexiblen 3-Spalter. Crossbrowser funktionst&#252;chtig ist das Ergebnis leider dennoch nur bedingt, da mein Bugfix-Konzept wohl nicht g&#228;nzlich verstanden wurde und deshalb von einzelnen Bugfixes nur Teile &#252;bernommen wurden (was im konkreten Fall wirklich unsch&#246;ne Auswirkungen hat) oder  falsch angewandt wurden. Selbst die JS-Expression aus dem YAML-Builder zur Simulation von min-/max-width (deren dynamische Generierung mir w&#228;hrend er Anfangszeit meiner JS-Programmierung doch etwas M&#252;he bereitet hat) gelangte ohne Umwege in dieses Projekt.</p>

<p>Die rosa eingef&#228;rbten Bereiche dokumentieren echte Eigenleistung des Herrn X. Inhaltlich beschr&#228;nken sich diese jedoch darauf, dem YAML-Rohbau ein  Screenlayout, bestehend aus zahlreichen runden Ecken und Dropshadows zu verpassen. Die einzige wirkliche &#196;nderung des gesamten Projekts bestand darin, im Markup die vier Standard DIV&#8217;s <code>#header</code>, <code>#footer</code>, <code>#col1</code> und <code>#col2</code> gegen die entsprechenden HTML5-Elemente <code>header</code>, <code>footer</code>, <code>article</code> und <code>aside</code> auszutauschen. Die daf&#252;r notwendigen Arbeitsschritte erledigt man mit der Suchen/Ersetzen Funktion eines Texteditor innerhalb von Minuten. Ist das also die Kreativit&#228;t, die  etwas Neues, Eigenst&#228;ndiges hervorbringt? Der Code und das Konzept, welches YAML als CSS-Framework seit Beginn definieren, wurde &ndash; soweit vollst&#228;ndig &ndash; unver&#228;ndert &#252;bernommen. Das &quot;neue&quot; CSS ersetzt lediglich das schichte, himmelblaue Screendesign der mitgelieferten Layoutbeispiele, die Markup&#228;nderungen kommen einer simplen Umbenennung gleich. Und dennoch steht das Gesamtpaket pl&#246;tzlich unter dem Copyright von Herrn X. Als &#220;berblick soll das an dieser Stelle gen&#252;gen.</p>

<p>Ich erlebe diese Dinge leider nicht zum ersten Mal. Nicht jedes Mal habe ich dar&#252;ber gebloggt wenn  meine Arbeit unver&#228;ndert und in gro&#223;em Umfang kopiert unter fremdem Copyright auftauchte. Aber es ist das erste Mal, dass jemand so dreist ist, mir den Code unter seinem Namen auch noch zur Begutachtung und Freigabe unter die Nase zu halten. Um ein paar weitere Zitate aus der e-Mail zu bem&#252;hen&hellip;</p>

<ul><li>&quot;<em>Solltest Du <strong>widererwarten</strong> etwas daran auszusetzen haben, &hellip;</em>&quot;</li><li>&quot;<em>Solltest Du noch evtl. eine Anregung haben, w&#228;re ich auch  daf&#252;r sehr dankbar!</em>&quot;</li></ul>

<p>Ich sollte  die Fragmente meiner eigenen Arbeit reviewen und Anregungen geben? Kommt das vielleicht au&#223;er mir noch jemanden seltsam vor?</p>

<p>Ich hatte eigentlich vor, diesen Beitrag &#228;hnlich leicht verdaulich zu schreiben wie den des letzten Jahres. Doch der damals zurecht gescholtene Herr K.&nbsp; war ein Freizeit-Bastler mit etwas falschen Vorstellungen von e-Commerce. Dieses Mal sieht es anders aus. Herr X. erschien im Fr&#252;hjahr 2009 auf der Webstandards-B&#252;hne und ist seither intensiv bestrebt, sich als professioneller Webdesigner zu profilieren. Zum wiederholten Male (siehe Vorgeschichte) versucht er das nicht mit eigenen Ideen oder eigenen L&#246;sungen, sondern auf Basis meiner Arbeit. Und es zieht einem sprichw&#246;rtlich die Schuhe aus, wenn ich &ndash; angesprochen auf diese Dreistigkeit &ndash; in seiner Antwort lesen darf, dass bei meiner Einsch&#228;tzung der Lage ja wohl <em>nicht alles  so ganz stimmt</em> &ndash; Kommentare und Bugfixes aber wohl kopiert w&#228;ren. Weiterhin sei er v&#246;llig &#252;berrascht von der frapierenden &#196;hnlichkeit, die selbstredend nicht beabsichtigt w&#228;re. Warum wird die unverkennbare Herkunft dann aber bereits in der ersten Mail bereits durch die Blume angedeuetet? Er habe, Zitat: &quot;&hellip;<em>&#252;brigens nach CSSDOC so gut  dokumentiert, wie es mir m&#246;glich war.</em>&quot; Sch&#246;n w&#228;r&#8217;s. Er hat nicht etwa versucht, die Funktion der jeweiligen Codeabschnitte mit eigenen Worten wiederzugeben, stattdessen finde ich &#252;berall meine eigenen, zweisprachig verfassten Kommentare vor &ndash; unver&#228;ndert.</p>

<p>Rhetorische Frage: Wenn man aus einer Kiste mit f&#252;nf &#196;pfeln drei herausnimmt und in eine andere, leere Kiste legt, liegt der neuen Kiste pl&#246;tzlich ein Glas Gurken oder liegen da  drei &#196;pfel?</p>

<h3>Was ist die eigene Arbeit wert?</h3>

<p>Bez&#252;glich der Motivation kann ich nat&#252;rlich nur raten. Aus meiner Sicht stand nicht ein besseres Framework oder der Test einer neuen Idee im Vordergrund. Das Ziel war, schnell etwas Eigenes zum Vorzeigen zu haben &ndash; was leider nicht aus eigener Kraft schaffbar war. </p>

<p>Um Missverst&#228;ndnissen vorzubeugen: Der Sprachumfang von CSS ist begrenzt und niemand erfindet mal eben neue CSS-Selektoren oder Eigenschaften. Wir alle st&#252;tzen unsere Entwicklungen auf Bekanntes, auf die Vorarbeiten kreativer K&#246;pfe (on the shoulder of giants). Etwas Neues entsteht  dann, wenn Bekanntes  neu miteinander kombiniert wird, um <strong>neue Ideen/Konzepte</strong> zu verwirklichen, Probleme zu l&#246;sen. Es gibt mehr als ein Dutzend CSS-Frameworks  und jedes besitzt eine eigenst&#228;ndige Codebasis. Selbst innerhalb des Gridkonzepts kommen Blueprint und 960.gs  zu grundlegend verschiedenen L&#246;sungen, obwohl alle nur mit scheinbar &quot;simplen Bausteinen&quot; wie floatenden Divs und z.B. dem Clearfix-Hack arbeiten. YUI oder OOCSS sehen wiederum v&#246;llig anders aus. Das &#252;bergeordnete Konzept und dessen individuelle Implementation machen aus der blo&#223;en Ansammlung von CSS-Deklarationen etwas Neues, Eigenst&#228;ndiges. In diesen F&#228;llen CSS-Frameworks. Und wenn ein neues Konzept die Basis einer Entwicklung bildet, dann kann die gro&#223;z&#252;gige Code&#252;bernahme per <em>copy &amp; paste</em> aus anderen Projekten gar nicht funktionieren, denn die kopierten Codeschnipsel w&#252;rden ganz einfach nicht unver&#228;ndert in das neue Konzept  passen.</p>

<p>Was Herr X. hier abzieht, hat mit diesem Grundverst&#228;ndnis selbstst&#228;ndiger, kreativer Arbeit nichts zu tun. HTML/CSS-Teile zu &#252;bernehmen, sich von eleganten L&#246;sungen inspirieren zu lassen, ist nichts Verwerfliches. Aber es besteht nach meinem Verst&#228;ndnis ein entscheidender Unterschied darin, ob dies lediglich der Probleml&#246;sung und der eigenen Weiterbildung dient oder ob man fremde Arbeit achtlos kopiert und als eigene Kreativleistung ausgibt und/oder verkauft.</p>

<p>Zum Gl&#252;ck sind dies Ausnahmen, dennoch f&#228;llt es schwer, ruhig zu bleiben. Aber auch daf&#252;r ist dieses Blog eben da und ich hoffe, f&#252;r die n&#228;chsten Monate wieder mit angenehmeren Themen aufwarten zu k&#246;nnen.</p>

<p>PS: Da ich kein Interesse versp&#252;re, Herrn X. weitere Aufmerksamkeit zukommen zu lassen, verzichte ich auf Namen und Verlinkung. Ich bitte meine Leserschaft, dies auch in eventuellen Kommentaren hier im Blog zu respektieren. 
</p>]]></content>
    </entry>

    <entry>
      <title type="html">YAML 3.2 &#45; Sch&#228;rfung des Profils</title>
      <link rel="alternate" type="text/html" href="http://www.highresolution.info/weblog/entry/yaml_3.2_schaerfung_des_profils/" /> 
      <id>tag:highresolution.info,2009:weblog/11.1384</id>
      <issued>2009-10-27T22:19:21+00:00</issued>
      <modified>2009-10-28T12:11:22+00:00</modified>
      <summary type="html">Die neue Version 3.2 des (X)HTML/CSS Frameworks YAML steht ab sofort im Downloadbereich der Projektseite zum herunterladen bereits. Erst vor wenigen Tagen, am 15. Oktober 2009 konnte das Projekt seinen nun schon vierten Geburtstag feiern und ich freue mich au&#223;erordentlich, dass auch nach einer so langen Zeit die Luft f&#252;r Verbesserungen und Weiterentwicklungen noch nicht aufgebraucht ist. Die vorliegende Version 3.2 bringt einige wichtige &#196;nderungen mit sich, die ich im Folgenden kurz vorstellen und begr&#252;nden werde. 
 Schlankerer Framework&#45;Core

Die wichtigste &#196;nderung gleich zu Beginn: YAML besteht nunmehr nur noch aus zwei Kernbausteinen. Die base.css ist das Herzst&#252;ck des Frameworks und stellt dem Nutzer ein schonendes Browser&#45;Reset, oft ben&#246;tige CSS&#45;Klassen f&#252;r die Layouterstellung (Float Clearing, Skiplinks, ect.), die &#8220;Subtemplates&#8221; als flexible Grid&#45;Bausteine, ein universelles Fallback auf ein dreispaltiges Basislayout und wichtige Vorgaben f&#252;r eine fehlerfreie Druckausgabe bereit. &#220;ber den zweiten Baustein, die iehacks.css werden die &#228;lteren Versionen des Internet Explorers 5.x bis 7.0 mit Bugfixes versorgt, die so formuliert sind, dass sie ohne Eingreifen des Anwenders den &#252;berwiegenden Teil der CSS&#45;Bugs dieser Browser korrigieren. Der ehemaliige dritte Baustein, die print_base.css ist in der base.css aufgegangen.



Eine Umstrukturierung der medienspezifischen Definitionen innerhalb der base.css erm&#246;glichte weiterhin einige Vereinfachungen der Codebasis, sodass trotz der Erweiterung der Grid&#45;Komponente der gesamte Framework&#45;Core insgesamt fast 600 Byte (ca. 10%) kleiner geworden ist. Mit den Wegfall der print_base.css kann zudem ein HTTP&#45;Request eingespart werden (zumindest, wenn man die finalen Stylesheets nicht zusammenfasst) und in modernen Browsern wie dem Internet Explorer 8, Firefox, Opera, der Safari ben&#246;tigt der YAML&#45;Core nur noch 2,34 kB (slim_base.css). Ausschlie&#223;lich die veralteten Versionen des Internet Explorers 5.x  &amp;ndash; IE 7.0 m&#252;ssen den vollst&#228;ndige Core mit 5,04 kB laden.



Neue Features &amp;amp; Altlastenentsorgung

Wie mit fast jeder YAML&#45;Version wird auch mit YAML 3.2 der Funktionsumfang des Frameworks leicht erweitert. Die Subtemplates (die Grid&#45;Komponente von YAML) erh&#228;lt vier weitere Unterteilungen (20%, 40%, 60% und 80%). Selbstverst&#228;ndlich besteht auch hier die M&#246;glichkeit, gleiche Containerh&#246;hen &#252;ber die Klasse .equalize zu erzwingen. Daneben steht mit einem weiteren Add&#45;on, dem SyncHeight&#45;Plugin f&#252;r jQuery, eine JavaScript&#45;Alternative f&#252;r das Erzwingen gleichhoher Container zur Verf&#252;gung. 

Der Formularbaukasten ist ebenfalls flexibler geworden. So ist die Klasse .yform nicht mehr an das form&#45;Element gebunden, was den Einsatz in Content Management Systemen wie z.B. ExpressionEngine vereinfacht, bei denen der form&#45;Tag automatisch vom CMS generiert wird. Die zus&#228;tzliche Darstellungsklasse .full hilft bei Platzproblemen (schmale Formulare) und erzeugt Input&#45;, Select&#45;Felder und Textareas mit voller Breite des umgebenden Elternelementes. Ein neues Layoutbeispiel demonstriert, wie einfach und komfortabel sich mehrspaltige Formulare mit YAML erstellen lassen. 

Neben diesen neuen M&#246;glichkeiten, wurden mit diesem Release auch einige Altlasten beseitigt. So wurden die IE&#45;Fixes f&#252;r die ehemaligen ID&#8217;s #page_margins und #page aus der iehacks.css entfernt. Beide ID&#8217;s werden seit YAML 3.1 (Januar 2009) in mehrfach verwendbare Klassen umgewidmet. Einen echten Feature&#45;Drop betrifft der Verzicht auf die M&#246;glichkeit, Spaltenhintergr&#252;nde mit Hilfe der Border&#45;Definition von #col3 zu erzeugen. Zwar ist diese Technik denkbar einfach in der Umsetzung, sie beschw&#246;rt aber in Verbindung mit den Windows&#45;Kontrastmodi ein Zug&#228;nglichkeitsproblem herauf, da in diesen Modi Vordergrund&#45; und Rahmenfarben auf den gleichen Farbwert gesetzt werden, infolgedessen Inhalte mit dahinterliegenden farbigen Rahmen (den simulierten Spaltenhintergr&#252;nden) z.T. nicht mehr lesbar sind. Erschwerend kam hinzu, dass diese Technik im Internet Explorer ein Anpassung des z&#45;index von #col3 bedurfte, was in seltenen F&#228;llen das Selektieren von Inhalten mit der Maus im Browser blockierte. 

Ein oft diskutierter Punkt unter vielen Framework&#45;Anwendern war bisher der Workaround zur Vermeidung seitlich springender, zentierter Layouts im Firefox und Safari durch Erzwingen eines vertikalen Scrollbalkens. Mit der Ver&#246;ffentlichung der neuen Browsergenerationen Internet Explorer 8, Firefox 3.5, Safari 4 und Opera 10 wurde die bisherige L&#246;sung unbrauchbar und deshalb aus dem Core entfernt. An ihre Stelle tritt eine CSS3&#45;basierte L&#246;sung (overflow&#45;y: scroll), welche nunmehr in den Nutzerstylesheets (basemod.css) verankert ist und somit von jedem Anwender bei Nicht&#45;Gefallen einfach deaktiviert/entfernt werden kann. 

Ebenfalls ersatzlos gestrichen wurde das Debug&#45;Stylesheet (debug.css), welches mit der Version 3.0 Einzug in das Framework gehalten hatte. Zu sehr litt die &#220;bersicht bei der Vielzahl der gleichzeitig eingeblendeten Informationen. Die fehlende Konfigurierbarkeit und die umst&#228;ndlichen Handhabung waren ebenfalls nicht vorteilhaft. Mit dem bereits im Febuar 2009 ver&#246;ffentlichten Codeanalyse&#45;Tool YAML Debug steht YAML&#45;Entwicklern eine deutlich bessere und vielseitigere Alternative zur Verf&#252;gung, die mit einem einzigen Klick jedes Layout analysiert. 

Handwerkszeug f&#252;r die Barrierefreiheit

Kein Framework, auch nicht YAML, ist ein Garant f&#252;r barrierefreie Webseiten. Dennoch zeigt sich mehr und mehr, wie sinnvoll und richtig es ist, Webentwicklern das grundlegende Handwerkszeug innerhalb des Frameworks zur Verf&#252;gung zu stellen. In YAML 3.2 wird eine neue Darstellungsm&#246;glichkeit f&#252;r Skiplinks unterst&#252;tzt, die ein &#220;berlagern des Layouts f&#252;r die eingeblendeten Skiplinks erm&#246;glicht und dadurch die sonst &#252;blichen Probleme bei deren Integration beseitigt. Zudem wird f&#252;r Webkit&#45;basierte Browser ein JavaScript&#45;Fix mitgeliefert, um auch Apple&#8217;s Safari und Google Chrome dazu zu bewegen, den Focus auf die angesprungene ID zu setzen. 

Ein weiterer Schritt ist die konsequente Einbeziehung von WAI&#45;ARIA. S&#228;mtliche bei YAML mitgelieferte Beispiellayouts wurden mit ARIA&#45;Landmarkroles versehen. Zwar handelt es sich hierbei nicht wirklich um ein Feature des Frameworks (die korrekte Auszeichnung sollte der Webentwicklers vornehmen), dennoch halte ich auch diesen Schritt f&#252;r wichtig, um als Framework&#45;Entwickler trotz der noch fehlenden Validierungsm&#246;glichkeiten im W3C&#45;Validator die positiven Effekte des kommenden Standards hervorzuheben. Schon heute k&#246;nnen alle modernen Browser (einschlie&#223;lich des IE8) mit WAI&#45;ARIA umgehen und erm&#246;glichen somit einen deutlichen Zugewinn an Barrierefreiheit auf Webseiten jeder Komplexit&#228;tsstufe. 

Das &#8220;Accessible Tabs&#8221; Plugin von Dirk Ginader wird mit YAML 3.2 als Add&#45;on ein fester Bestandteil des Frameworks. Das dahinter stehende Konzept habe ich zusammen mit Dirk Ginader bereits vor zwei Jahren entwickelt, die Umsetzung im Rahmen dieses Plugins ist mittlerweile ausgereift und umfangreich getestet. Auch dieser Baustein ist weniger als Feature des Frameworks zu sehen. Stattdessen bem&#252;he ich mich darum, zusammen mit YAML sinnvolle Best&#45;Practice&#45;L&#246;sungen zu vermitteln und die Verbreitung dieser Techniken zu f&#246;rdern. 

Zusammenfassung

Neben diesen gro&#223;en Neuerungen/Verbesserungen stehen zahlreiche kleinere Korrekturen hier und da, &#252;ber die das Changelog im Detail Ausfunft gibt. Wie mit jedem Release wurde auch die Projektvorlage &#8220;Simple Project&#8221; auf den aktuellen Stand gebracht.Der YAML Builder beherrscht momentan WAI&#45;ARIA noch nicht und auch die neue Skiplink&#45;Variante ist dort noch nicht implementiert, die Codeausgabe ist aber selbstverst&#228;ndlich kompatibel zu YAML 3.2.

Der Release&#45;Zyklus war diesmal deutlich l&#228;nger, zudem zwischen v3.1 und v3.2 keine sogenannten Maintenance&#45;Releases eingeschoben wurden. Der Hauptgrund hierf&#252;r lag in der eng gestaffelten Ver&#246;ffentlichung der aktuellen Browsergeneration, angefangen mit dem Internet Explorer 8 im Fr&#252;hjahr 2009. Gerade bei diesem war es wichtig, die zuverl&#228;ssige Funktion der Kernfunktionen des Frameworks ohne jegliche Hacks zu &#252;berpr&#252;fen. Nach nunmehr einem halben Jahr l&#228;sst sich dieser Fakt best&#228;tigen. Einzig bei der Darstellung von Formularen ben&#246;tigt der Internet Explorer&#160;8 noch wenige individuelle Hilfestellung, die notwendigen Anpassungen kennt der Formularbaukasten jedoch.

Daneben stellt das 3.2&#45;Release f&#252;r mich eine weitere Sch&#228;rfung des Profils von YAML hinsichtlich des modularen Aufbaus auf Basis eines sehr schlanken Kerns und der Focussierung auf flexible, barrierefreie Webseiten dar. Und die Entwicklung geht weiter ...</summary>
      <created>2009-10-27T22:19:21+00:00</created>
		<author>
		  <name>Dirk Jesse</name>
		  <url>http://www.highresolution.info</url>		</author>
      <dc:subject>YAML, Frameworks, JavaScript</dc:subject>
      <content type="text/html" mode="escaped" xml:lang="en-US"><![CDATA[ <p>Die neue <a href="http://blog.yaml.de/post/84/yaml-3-2-release-notes/" title="Version 3.2">Version 3.2</a> des<a href="http://www.yaml.de"> (X)HTML/CSS Frameworks YAML</a> steht ab sofort im <a href="http://www.yaml.de/en/download.html">Downloadbereich</a> der Projektseite zum herunterladen bereits. Erst vor wenigen Tagen, am 15. Oktober 2009 konnte das Projekt seinen nun schon vierten Geburtstag feiern und ich freue mich au&#223;erordentlich, dass auch nach einer so langen Zeit die Luft f&#252;r Verbesserungen und Weiterentwicklungen noch nicht aufgebraucht ist. Die vorliegende Version 3.2 bringt einige wichtige &#196;nderungen mit sich, die ich im Folgenden kurz vorstellen und begr&#252;nden werde. 
</p> <h3>Schlankerer Framework-Core</h3>

<p>Die wichtigste &#196;nderung gleich zu Beginn: YAML besteht nunmehr nur noch aus <strong>zwei</strong> Kernbausteinen. Die <em>base.css</em> ist das Herzst&#252;ck des Frameworks und stellt dem Nutzer ein schonendes Browser-Reset, oft ben&#246;tige CSS-Klassen f&#252;r die Layouterstellung (Float Clearing, Skiplinks, ect.), die &#8220;<em>Subtemplates</em>&#8221; als flexible Grid-Bausteine, ein universelles Fallback auf ein dreispaltiges Basislayout und wichtige Vorgaben f&#252;r eine fehlerfreie Druckausgabe bereit. &#220;ber den zweiten Baustein, die <em>iehacks.css</em> werden die &#228;lteren Versionen des Internet Explorers 5.x bis 7.0 mit Bugfixes versorgt, die so formuliert sind, dass sie ohne Eingreifen des Anwenders den &#252;berwiegenden Teil der CSS-Bugs dieser Browser korrigieren. Der ehemaliige dritte Baustein, die <em>print_base.css</em> ist in der <em>base.css</em> aufgegangen.</p>

<p><img src="http://www.highresolution.info/images/uploads/yaml-32-struktur.png" border="0" alt="Struktogramm YAML 3.2" class="center" width="450" height="338" /></p>

<p>Eine Umstrukturierung der medienspezifischen Definitionen innerhalb der <em>base.css</em> erm&#246;glichte weiterhin einige Vereinfachungen der Codebasis, sodass trotz der Erweiterung der Grid-Komponente der gesamte Framework-Core insgesamt fast 600 Byte (ca. 10%) kleiner geworden ist. Mit den Wegfall der <em>print_base.css</em> kann zudem ein HTTP-Request eingespart werden (zumindest, wenn man die finalen Stylesheets nicht zusammenfasst) und in modernen Browsern wie dem Internet Explorer 8, Firefox, Opera, der Safari ben&#246;tigt der YAML-Core nur noch 2,34 kB (<em>slim_base.css</em>). Ausschlie&#223;lich die veralteten Versionen des Internet Explorers 5.x  &ndash; IE 7.0 m&#252;ssen den vollst&#228;ndige Core mit 5,04 kB laden.</p>

<p><img src="http://www.highresolution.info/images/uploads/frameworks-core-size.PNG" border="0" alt="byte-size of several CSS framework cores" class="center" width="450" height="270" /></p>

<h3>Neue Features &amp; Altlastenentsorgung</h3>

<p>Wie mit fast jeder YAML-Version wird auch mit YAML 3.2 der Funktionsumfang des Frameworks leicht erweitert. Die <a href="http://www.yaml.de/de/dokumentation/anwendung/subtemplates.html">Subtemplates</a> (die Grid-Komponente von YAML) erh&#228;lt vier weitere Unterteilungen (20%, 40%, 60% und 80%). Selbstverst&#228;ndlich besteht auch hier die M&#246;glichkeit, gleiche Containerh&#246;hen &#252;ber die Klasse <code>.equalize</code> zu erzwingen. Daneben steht mit einem weiteren Add-on, dem SyncHeight-Plugin f&#252;r jQuery, eine JavaScript-Alternative f&#252;r das Erzwingen gleichhoher Container zur Verf&#252;gung. </p>

<p>Der Formularbaukasten ist ebenfalls flexibler geworden. So ist die Klasse <code>.yform</code> nicht mehr an das form-Element gebunden, was den Einsatz in Content Management Systemen wie z.B. ExpressionEngine vereinfacht, bei denen der form-Tag automatisch vom CMS generiert wird. Die zus&#228;tzliche Darstellungsklasse <code>.full</code> hilft bei Platzproblemen (schmale Formulare) und erzeugt Input-, Select-Felder und Textareas mit voller Breite des umgebenden Elternelementes. Ein neues Layoutbeispiel demonstriert, wie einfach und komfortabel sich mehrspaltige Formulare mit YAML erstellen lassen. </p>

<p>Neben diesen neuen M&#246;glichkeiten, wurden mit diesem Release auch einige Altlasten beseitigt. So wurden die IE-Fixes f&#252;r die ehemaligen ID&#8217;s <code>#page_margins</code> und <code>#page</code> aus der <em>iehacks.css</em> entfernt. Beide ID&#8217;s werden seit YAML 3.1 (Januar 2009) in mehrfach verwendbare Klassen umgewidmet. Einen echten Feature-Drop betrifft der Verzicht auf die M&#246;glichkeit, Spaltenhintergr&#252;nde mit Hilfe der Border-Definition von <code>#col3</code> zu erzeugen. Zwar ist diese Technik denkbar einfach in der Umsetzung, sie beschw&#246;rt aber in Verbindung mit den Windows-Kontrastmodi ein Zug&#228;nglichkeitsproblem herauf, da in diesen Modi Vordergrund- und Rahmenfarben auf den gleichen Farbwert gesetzt werden, infolgedessen Inhalte mit dahinterliegenden farbigen Rahmen (den simulierten Spaltenhintergr&#252;nden) z.T. nicht mehr lesbar sind. Erschwerend kam hinzu, dass diese Technik im Internet Explorer ein Anpassung des z-index von <code>#col3</code> bedurfte, was in seltenen F&#228;llen das Selektieren von Inhalten mit der Maus im Browser blockierte. </p>

<p>Ein oft diskutierter Punkt unter vielen Framework-Anwendern war bisher der Workaround zur Vermeidung seitlich springender, zentierter Layouts im Firefox und Safari durch Erzwingen eines vertikalen Scrollbalkens. Mit der Ver&#246;ffentlichung der neuen Browsergenerationen Internet Explorer 8, Firefox 3.5, Safari 4 und Opera 10 wurde die bisherige L&#246;sung unbrauchbar und deshalb aus dem Core entfernt. An ihre Stelle tritt eine CSS3-basierte L&#246;sung (<code>overflow-y: scroll</code>), welche nunmehr in den Nutzerstylesheets (<em>basemod.css</em>) verankert ist und somit von jedem Anwender bei Nicht-Gefallen einfach deaktiviert/entfernt werden kann. </p>

<p>Ebenfalls ersatzlos gestrichen wurde das Debug-Stylesheet (<code>debug.css</code>), welches mit der Version 3.0 Einzug in das Framework gehalten hatte. Zu sehr litt die &#220;bersicht bei der Vielzahl der gleichzeitig eingeblendeten Informationen. Die fehlende Konfigurierbarkeit und die umst&#228;ndlichen Handhabung waren ebenfalls nicht vorteilhaft. Mit dem bereits im Febuar 2009 ver&#246;ffentlichten Codeanalyse-Tool <a href="http://debug.yaml.de">YAML Debug</a> steht YAML-Entwicklern eine deutlich bessere und vielseitigere Alternative zur Verf&#252;gung, die mit einem einzigen Klick jedes Layout analysiert. </p>

<h3>Handwerkszeug f&#252;r die Barrierefreiheit</h3>

<p>Kein Framework, auch nicht YAML, ist ein Garant f&#252;r barrierefreie Webseiten. Dennoch zeigt sich <a href="http://www.highresolution.info/weblog/entry/1x_gold_4x_silber_und_1x_bronze_bei_der_biene_2008/" title="Biene 2008 und YAML">mehr und mehr</a>, wie sinnvoll und richtig es ist, Webentwicklern das grundlegende Handwerkszeug innerhalb des Frameworks zur Verf&#252;gung zu stellen. In YAML 3.2 wird eine neue Darstellungsm&#246;glichkeit f&#252;r Skiplinks unterst&#252;tzt, die ein &#220;berlagern des Layouts f&#252;r die eingeblendeten Skiplinks erm&#246;glicht und dadurch die sonst &#252;blichen Probleme bei deren Integration beseitigt. Zudem wird f&#252;r Webkit-basierte Browser ein JavaScript-Fix mitgeliefert, um auch Apple&#8217;s Safari und Google Chrome dazu zu bewegen, den Focus auf die angesprungene ID zu setzen. </p>

<p>Ein weiterer Schritt ist die konsequente Einbeziehung von <a href="http://www.w3.org/TR/wai-aria/" title="WAI-ARIA">WAI-ARIA</a>. S&#228;mtliche bei YAML mitgelieferte Beispiellayouts wurden mit ARIA-Landmarkroles versehen. Zwar handelt es sich hierbei nicht wirklich um ein Feature des Frameworks (die korrekte Auszeichnung sollte der Webentwicklers vornehmen), dennoch halte ich auch diesen Schritt f&#252;r wichtig, um als Framework-Entwickler trotz der noch fehlenden Validierungsm&#246;glichkeiten im W3C-Validator die positiven Effekte des kommenden Standards hervorzuheben. Schon heute k&#246;nnen alle modernen Browser (einschlie&#223;lich des IE8) mit WAI-ARIA umgehen und erm&#246;glichen somit einen deutlichen Zugewinn an Barrierefreiheit auf Webseiten jeder Komplexit&#228;tsstufe. </p>

<p>Das &#8220;<a href="http://github.com/ginader/Accessible-Tabs">Accessible Tabs</a>&#8221; Plugin von <a href="http://blog.ginader.de/">Dirk Ginader</a> wird mit YAML 3.2 als Add-on ein fester Bestandteil des Frameworks. Das dahinter stehende Konzept habe ich zusammen mit Dirk Ginader bereits vor zwei Jahren entwickelt, die Umsetzung im Rahmen dieses Plugins ist mittlerweile ausgereift und umfangreich getestet. Auch dieser Baustein ist weniger als Feature des Frameworks zu sehen. Stattdessen bem&#252;he ich mich darum, zusammen mit YAML sinnvolle Best-Practice-L&#246;sungen zu vermitteln und die Verbreitung dieser Techniken zu f&#246;rdern. </p>

<h3>Zusammenfassung</h3>

<p>Neben diesen gro&#223;en Neuerungen/Verbesserungen stehen zahlreiche kleinere Korrekturen hier und da, &#252;ber die das Changelog im Detail Ausfunft gibt. Wie mit jedem Release wurde auch die Projektvorlage &#8220;Simple Project&#8221; auf den aktuellen Stand gebracht.Der YAML Builder beherrscht momentan WAI-ARIA noch nicht und auch die neue Skiplink-Variante ist dort noch nicht implementiert, die Codeausgabe ist aber selbstverst&#228;ndlich kompatibel zu YAML 3.2.</p>

<p>Der Release-Zyklus war diesmal deutlich l&#228;nger, zudem zwischen v3.1 und v3.2 keine sogenannten Maintenance-Releases eingeschoben wurden. Der Hauptgrund hierf&#252;r lag in der eng gestaffelten Ver&#246;ffentlichung der aktuellen Browsergeneration, angefangen mit dem Internet Explorer 8 im Fr&#252;hjahr 2009. Gerade bei diesem war es wichtig, die zuverl&#228;ssige Funktion der Kernfunktionen des Frameworks ohne jegliche Hacks zu &#252;berpr&#252;fen. Nach nunmehr einem halben Jahr l&#228;sst sich dieser Fakt best&#228;tigen. Einzig bei der Darstellung von Formularen ben&#246;tigt der Internet Explorer&#160;8 noch wenige individuelle Hilfestellung, die notwendigen Anpassungen kennt der Formularbaukasten jedoch.</p>

<p>Daneben stellt das 3.2-Release f&#252;r mich eine weitere Sch&#228;rfung des Profils von YAML hinsichtlich des modularen Aufbaus auf Basis eines sehr schlanken Kerns und der Focussierung auf flexible, barrierefreie Webseiten dar. Und die Entwicklung geht weiter ... </p>

<p>
</p> ]]></content>
    </entry>

    <entry>
      <title type="html">YAML Builder als Adobe AIR Applikation?</title>
      <link rel="alternate" type="text/html" href="http://www.highresolution.info/weblog/entry/yaml_builder_als_adobe_air_applikation/" /> 
      <id>tag:highresolution.info,2009:weblog/11.1383</id>
      <issued>2009-09-27T18:04:04+00:00</issued>
      <modified>2009-09-27T19:48:05+00:00</modified>
      <summary type="html">Der YAML Builder ist sp&#228;testens seit Version 1.0 eines der komfortabelsten Werkzeuge bei der Arbeit mit dem YAML&#45;Framework. Nachdem ich in der Vergangenheit immer wieder nach einer Offline&#45;Version gefragt wurde, habe ich mich heute hingesetzt und eine erste Implementation in Adobe AIR gebastelt.
 

Im Grunde ist der Umstieg auf Adobe AIR nicht weiter schwer und so bringt die AIR Applikation gleich mehrere Vorteile mit sich. Zum einen ist kein Flash&#45;Plugin mehr erforderlich denn AIR bringt eine native Unterst&#252;tzung zur Bef&#252;tterung des Clipboards mit. Zum zweiten &amp;ndash; und das d&#252;rfte der interessantere Punkt sein &amp;ndash; hat man in einer Adobe AIR Applikation Zugriff auf das lokale Filesystem. Und drittens ben&#246;tigen AIR Applikationen keinen Browser und auch keine Internetanbindung mehr, womit sich auch die Anwenderfreundlichkeit weiter erh&#246;hen d&#252;rfte.

Der Screenshot des experimentellen YAML Builders unter AIR zeigt deshalb bereits ein neues Feature, den vollst&#228;ndigen Exports des YAML&#45;Projekts in ein lokales Nutzerverzeichnis. Die copy &amp;amp; paste Orgien k&#246;nnten damit der Vergangenheit angeh&#246;ren. Der vom Builder generierte Code kann mit einem Klick lokal gesichert werden als indiviudell konfiguriertes &#8220;Simple Project&#8221;. Parallel steht die Clipboard&#45;Ausgabe einzelner Files weiterhin zur Verf&#252;gung.

Das ist zun&#228;cht einmal ein Testbalon &amp;ndash; zu einer stabilen Version ist noch ein St&#252;ckchen hin. Im n&#228;chsten Schritt werde ich mir anschauen m&#252;ssen, wie unter AIR die Versionsverwaltung und automatische Updates funktionieren, sonst macht eine solche Applikation auf Dauer keinen Sinn. Das ist der Vorteil eines Online&#45;Dienstes, hier hat man immer volle Versionskontrolle.

Nat&#252;rlich schreibe ich diesen Blogbeitrag nicht grundlos. Ich m&#246;chte Feedback zu dieser Idee an sich und weitere Tipps f&#252;r kleine &#196;nderungen, welche bei dieser Gelegenheit gegebenenfalls am Builder vorgenommen werden k&#246;nnten/sollten. Falls jemand der Mitlesenden bereits Erfahrungen mit Adobe AIR gesammelt hat w&#228;re ich ebenfalls dankbar, wenn ich gelegentlich die eine oder andere Frage loswerden k&#246;nnte, die sich sicherlich noch auftun wird.</summary>
      <created>2009-09-27T18:04:04+00:00</created>
		<author>
		  <name>Dirk Jesse</name>
		  <url>http://www.highresolution.info</url>		</author>
      <dc:subject>YAML, JavaScript</dc:subject>
      <content type="text/html" mode="escaped" xml:lang="en-US"><![CDATA[ <p>Der <a href="http://builder.yaml.de">YAML Builder</a> ist sp&#228;testens seit Version 1.0 eines der komfortabelsten Werkzeuge bei der Arbeit mit dem <a href="http://www.yaml.de">YAML-Framework</a>. Nachdem ich in der Vergangenheit immer wieder nach einer Offline-Version gefragt wurde, habe ich mich heute hingesetzt und eine erste Implementation in <a href="http://www.adobe.com/de/products/air/everyone/">Adobe AIR</a> gebastelt.
</p> <p><img src="http://www.highresolution.info/images/uploads/yb-air-test.png" border="0" alt="" class="center" width="450" height="311" /></p>

<p>Im Grunde ist der Umstieg auf Adobe AIR nicht weiter schwer und so bringt die AIR Applikation gleich mehrere Vorteile mit sich. Zum einen ist kein Flash-Plugin mehr erforderlich denn AIR bringt eine native Unterst&#252;tzung zur Bef&#252;tterung des Clipboards mit. Zum zweiten &ndash; und das d&#252;rfte der interessantere Punkt sein &ndash; hat man in einer Adobe AIR Applikation Zugriff auf das lokale Filesystem. Und drittens ben&#246;tigen AIR Applikationen keinen Browser und auch keine Internetanbindung mehr, womit sich auch die Anwenderfreundlichkeit weiter erh&#246;hen d&#252;rfte.</p>

<p>Der Screenshot des experimentellen YAML Builders unter AIR zeigt deshalb bereits ein neues Feature, den vollst&#228;ndigen Exports des YAML-Projekts in ein lokales Nutzerverzeichnis. Die <em>copy &amp; paste</em> Orgien k&#246;nnten damit der Vergangenheit angeh&#246;ren. Der vom Builder generierte Code kann mit einem Klick lokal gesichert werden als indiviudell konfiguriertes &#8220;Simple Project&#8221;. Parallel steht die Clipboard-Ausgabe einzelner Files weiterhin zur Verf&#252;gung.</p>

<p>Das ist zun&#228;cht einmal ein Testbalon &ndash; zu einer stabilen Version ist noch ein St&#252;ckchen hin. Im n&#228;chsten Schritt werde ich mir anschauen m&#252;ssen, wie unter AIR die Versionsverwaltung und automatische Updates funktionieren, sonst macht eine solche Applikation auf Dauer keinen Sinn. Das ist der Vorteil eines Online-Dienstes, hier hat man immer volle Versionskontrolle.</p>

<p>Nat&#252;rlich schreibe ich diesen Blogbeitrag nicht grundlos. Ich m&#246;chte Feedback zu dieser Idee an sich und weitere Tipps f&#252;r kleine &#196;nderungen, welche bei dieser Gelegenheit gegebenenfalls am Builder vorgenommen werden k&#246;nnten/sollten. Falls jemand der Mitlesenden bereits Erfahrungen mit Adobe AIR gesammelt hat w&#228;re ich ebenfalls dankbar, wenn ich gelegentlich die eine oder andere Frage loswerden k&#246;nnte, die sich sicherlich noch auftun wird.
</p> ]]></content>
    </entry>

    <entry>
      <title type="html">Performance Optimierung &#45; Barrierefreiheit beginnt mit Ladezeiten</title>
      <link rel="alternate" type="text/html" href="http://www.highresolution.info/weblog/entry/performance_optimierung_barrierefreiheit_beginnt_mit_ladezeiten/" /> 
      <id>tag:highresolution.info,2009:weblog/11.1382</id>
      <issued>2009-09-25T08:54:26+00:00</issued>
      <modified>2009-09-25T22:35:27+00:00</modified>
      <summary type="html">Gestern, am 24.9. hatte ich die Ehre, zusammen mit David Maciejewski auf dem &#8220;Best of Accessibility&#8221; Symposium &#252;ber M&#246;glichkeiten zur Optimierung der Ladezeiten von Webseiten zu sprechen. David war so freundlich und hat die Folien bereits bei Slideshares hochgeladen, sodass ich sie hier zur Verf&#252;gung stellen kann.
 Performance Optimierung &#45; Barrierefreiheit beginnt mit LadezeitenView more documents from David Maciejewski.

Zum Thema CSS&#45;Sprites gibt es weiterhin eine kleine Demo von David, welche er soeben online bereit gestellt hat.

Weitere Vortr&#228;ge im Netz:
Jan Eric Hellbusch, &#8220;WCAG 2.0 und BITV2 f&#252;r Einsteiger&#8221;Jens Meiert: HTML5: Barrierefreiheit, Performance, WartbarkeitChristian Heilmann: Barrierefreiheit im Datennetz</summary>
      <created>2009-09-25T08:54:26+00:00</created>
		<author>
		  <name>Dirk Jesse</name>
		  <url>http://www.highresolution.info</url>		</author>
      <dc:subject>CSS &amp;amp; XHTML, JavaScript, Veranstaltungen, Zug&#228;nglichkeit</dc:subject>
      <content type="text/html" mode="escaped" xml:lang="en-US"><![CDATA[ <p>Gestern, am 24.9. hatte ich die Ehre, zusammen mit <a href="http://macx.de/" title="David Maciejewski">David Maciejewski</a> auf dem &#8220;<a href="http://www.best-of-accessibility.de/" title="Best of Accessibility">Best of Accessibility</a>&#8221; Symposium &#252;ber M&#246;glichkeiten zur Optimierung der Ladezeiten von Webseiten zu sprechen. David war so freundlich und hat die Folien bereits bei Slideshares hochgeladen, sodass ich sie hier zur Verf&#252;gung stellen kann.
</p> <div style="width:425px;text-align:left" id="__ss_2064557" class="slideshare"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/dmacx/performance-optimierung-barrierefreiheit-beginnt-mit-ladezeiten" title="Performance Optimierung - Barrierefreiheit beginnt mit Ladezeiten">Performance Optimierung - Barrierefreiheit beginnt mit Ladezeiten</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=performanceoptimierung-090925032758-phpapp01&amp;stripped_title=performance-optimierung-barrierefreiheit-beginnt-mit-ladezeiten" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=performanceoptimierung-090925032758-phpapp01&amp;stripped_title=performance-optimierung-barrierefreiheit-beginnt-mit-ladezeiten" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">documents</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/dmacx">David Maciejewski</a>.</div></div>

<p>Zum Thema CSS-Sprites gibt es weiterhin eine kleine Demo von David, welche er soeben <a href="http://lab.macx.de/lectures/boa09/sprites/" title="online">online</a> bereit gestellt hat.</p>

<p>Weitere Vortr&#228;ge im Netz:
</p><ul><li><a href="http://2bweb.de/services/vortraege.html">Jan Eric Hellbusch, &#8220;WCAG 2.0 und BITV2 f&#252;r Einsteiger&#8221;</a></li><li><a href="http://meiert.com/html5">Jens Meiert: HTML5: Barrierefreiheit, Performance, Wartbarkeit</a></li><li><a href="http://www.wait-till-i.com/2009/09/25/barrierefreiheit-im-netz-der-daten-mein-vortrag-zur-best-of-accessibility-2009/">Christian Heilmann: Barrierefreiheit im Datennetz</a></li></ul> ]]></content>
    </entry>


</feed>