<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2germanfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:admin="http://webns.net/mvcb/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" version="2.0">
<channel>
    <title>web output - deutsche Beiträge</title>
    <link>http://blog.ginader.de/</link>
    <description>Stark internetlastiges privates Blog von Dirk Ginader</description>
    <dc:language>en</dc:language>
    <admin:errorReportsTo rdf:resource="mailto:dirk@ginader.de" />
    <generator>Serendipity 1.3 - http://www.s9y.org/</generator>
    <pubDate>Mon, 03 Oct 2011 15:02:26 GMT</pubDate>

    <image><link>http://blog.ginader.de</link><url>http://blog.ginader.de/uploads/dirk-ginader-floating-8bit-alpha-80x80.png</url><title>Dirk Ginader</title></image>

<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/WebOutput" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="weboutput" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>49.9691</geo:lat><geo:long>8.2369</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by-nd/2.0/</creativeCommons:license><item>
    <title>node.js Einführung und Javascript Best Practices - WebTech Conference 2010</title>
    <link>http://blog.ginader.de/archives/2010/10/14/node.js-Einfuehrung-und-Javascript-Best-Practices-WebTech-Conference-2010.php</link>
            <category>deutsch</category>
    
    <comments>http://blog.ginader.de/archives/2010/10/14/node.js-Einfuehrung-und-Javascript-Best-Practices-WebTech-Conference-2010.php#comments</comments>
    <wfw:comment>http://blog.ginader.de/wfwcomment.php?cid=264</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://blog.ginader.de/rss.php?version=2.0&amp;type=comments&amp;cid=264</wfw:commentRss>
    

    <author>dirk@ginader.de (Dirk Ginader)</author>
    <content:encoded><![CDATA[
    <p>Zu meiner sehr grossen Freude hatte mich die Redaktion des Software &amp; Support Verlages auch in diesem Jahr wieder eingeladen bei der <a onclick="javascript: pageTracker._trackPageview('/extlink/webtechcon.de/');"  href="http://webtechcon.de/">Webtech Conference</a> zu sprechen.</p>
<p>Nach dem positiven Eindruck vom letzten Jahr war es &uuml;berhaupt keine Frage für mich. Ausserdem hatten mich meine k&uuml;rzlichen Experimente mit dem neuen Spielzeug <a onclick="javascript: pageTracker._trackPageview('/extlink/nodejs.org/');"  href="http://nodejs.org/">node.js</a> auch so begeistert dass ich es kaum erwarten konnte diese Begeisterung zu teilen.</p>
<p>Ich freute mich auch dementsprechend riesig als ich sehen konnte dass das Publikum sich genauso begeistern konnte wie ich. Hier sind also die Slides meiner beiden Vortr&auml;ge:</p>

<div style="width:425px" id="__ss_5424390"> <strong style="display:block;margin:12px 0 4px"><a onclick="javascript: pageTracker._trackPageview('/extlink/www.slideshare.net/ginader/javascript-auf-client-und-server-mit-nodejs-webtech-2010');"  href="http://www.slideshare.net/ginader/javascript-auf-client-und-server-mit-nodejs-webtech-2010" title="Javascript auf Client und Server mit node.js - webtech 2010" target="_blank">Javascript auf Client und Server mit node.js - webtech 2010</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/5424390" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> <div style="padding:5px 0 12px"> View more <a onclick="javascript: pageTracker._trackPageview('/extlink/www.slideshare.net/');"  href="http://www.slideshare.net/" target="_blank">presentations</a> from <a onclick="javascript: pageTracker._trackPageview('/extlink/www.slideshare.net/ginader');"  href="http://www.slideshare.net/ginader" target="_blank">Dirk Ginader</a> </div> </div>

<div style="width:425px" id="__ss_5433306"> <strong style="display:block;margin:12px 0 4px"><a onclick="javascript: pageTracker._trackPageview('/extlink/www.slideshare.net/ginader/javascript-done-right-5433306');"  href="http://www.slideshare.net/ginader/javascript-done-right-5433306" title="Javascript done right" target="_blank">Javascript done right</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/5433306" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> <div style="padding:5px 0 12px"> View more <a onclick="javascript: pageTracker._trackPageview('/extlink/www.slideshare.net/');"  href="http://www.slideshare.net/" target="_blank">presentations</a> from <a onclick="javascript: pageTracker._trackPageview('/extlink/www.slideshare.net/ginader');"  href="http://www.slideshare.net/ginader" target="_blank">Dirk Ginader</a> </div> </div> 
    <img src="http://feeds.feedburner.com/~r/WebOutput/~4/J9iAuABcOmc" height="1" width="1"/>]]></content:encoded>

    <pubDate>Thu, 14 Oct 2010 13:51:33 +0200</pubDate>
    <guid isPermaLink="false">http://blog.ginader.de/archives/2010/10/14/264.php</guid>
    <category>bestpractices</category>
<category>conference</category>
<category>de</category>
<category>javascript</category>
<category>node.js</category>
<category>server</category>
<category>vortrag</category>
<category>webkrauts</category>

</item>
<item>
    <title>Zu Gast im Mindgarden</title>
    <link>http://blog.ginader.de/archives/2009/04/16/Zu-Gast-im-Mindgarden.php</link>
            <category>deutsch</category>
    
    <comments>http://blog.ginader.de/archives/2009/04/16/Zu-Gast-im-Mindgarden.php#comments</comments>
    <wfw:comment>http://blog.ginader.de/wfwcomment.php?cid=260</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://blog.ginader.de/rss.php?version=2.0&amp;type=comments&amp;cid=260</wfw:commentRss>
    

    <author>dirk@ginader.de (Dirk Ginader)</author>
    <content:encoded><![CDATA[
    
<p><!-- s9ymdb:304 --><a onclick="javascript: pageTracker._trackPageview('/extlink/www.mindgarden.de/index.php?id=936');"  href="http://www.mindgarden.de/index.php?id=936" title="Mindgarden Podcast #12"><img class="serendipity_image_left" width="172" height="172" style="float: left; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-left: 5px; padding-right: 5px; " src="http://blog.ginader.de/uploads/pics/mindgarden-podcast.png" /></a>Vor kurzem durfte ich zu Gast im Shoreditch Studio des <a onclick="javascript: pageTracker._trackPageview('/extlink/www.mindgarden.de/index.php?id=936');"  href="http://www.mindgarden.de/index.php?id=936" title="Mindgarden Podcast #12">Mindgarden Podcasts</a> sein. Mindgärtner Tobs interviewte mich zum vergangenen BarcampLondon6. Wir plauschten eine halbe Stunde über das Barcamp an sich und darüber wie ich, zusammen mit dem Rest des Teams, das Barcamp organisiert hatte.</p><p>Der Mindgarden Podcast ist übrigends generell eine Emfehlung wert. Die tolle Mischung von Web Dev Themen, Humor und Musik ist klasse und daher erlasse ich hiermit Subscribe-Befehl <img src="http://blog.ginader.de/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /></p>
 
    <img src="http://feeds.feedburner.com/~r/WebOutput/~4/V36PclM-KfM" height="1" width="1"/>]]></content:encoded>

    <pubDate>Thu, 16 Apr 2009 13:30:25 +0200</pubDate>
    <guid isPermaLink="false">http://blog.ginader.de/archives/2009/04/16/260.php</guid>
    <category>barcamp</category>
<category>barcamplondon</category>
<category>barcamplondon6</category>
<category>de</category>
<category>me</category>
<category>mindgarden</category>
<category>podcast</category>

</item>
<item>
    <title>jQuery Accessible Tabs - Wie man Tabs WIRKLICH zugänglich macht</title>
    <link>http://blog.ginader.de/archives/2009/02/07/jQuery-Accessible-Tabs-Wie-man-Tabs-WIRKLICH-zugaenglich-macht.php</link>
            <category>deutsch</category>
    
    <comments>http://blog.ginader.de/archives/2009/02/07/jQuery-Accessible-Tabs-Wie-man-Tabs-WIRKLICH-zugaenglich-macht.php#comments</comments>
    <wfw:comment>http://blog.ginader.de/wfwcomment.php?cid=258</wfw:comment>

    <slash:comments>22</slash:comments>
    <wfw:commentRss>http://blog.ginader.de/rss.php?version=2.0&amp;type=comments&amp;cid=258</wfw:commentRss>
    

    <author>dirk@ginader.de (Dirk Ginader)</author>
    <content:encoded><![CDATA[
    <p>Während viele Tabs-Scripts behaupten zugänglich zu sein sind es die meisten leider weit davon entfernt. Während ich dieses jQuery Plugin zusammen mit meinem Kollegen <a onclick="javascript: pageTracker._trackPageview('/extlink/twitter.com/DesignedByBlind/');"  href="https://twitter.com/DesignedByBlind/">Artur Ortega</a> entwickelte, suchten wir nach existierenden Javascript Tabs die Artur mit seinem Screenreader tatsächlich bedienen kann. Wir gaben die Suche irgendwann auf.</p><p>Das Problem, dass selbst die besseren Scripts haben, ist die Fehlende Rückmeldung an den Nutzer, dass tatsächlich etwas Passiert. Die meisten Tabs Scripts ändern das Aussehen der Tabs und die Sichtbarkeit der zugehörigen Inhalte aber lassen den Nutzer da zurück wo er war - auf dem Tab auf den geklickt wurde - ohne Ahnung was gerade passiert ist (vergleichbar mit einem Klick auf die immer noch viel zu beliebten &quot;Blinden Links&quot; (a href=&quot;#&quot;)).</p><p>Das ist auch genau der große Unterschied den dieses Script macht. Während das Verhalten für Nutzer ohne Sehbehinderung exakt die gleiche ist passiert sehr viel unter der Haube. Aber erstmal zurück zum Anfang.</p><p>jQuery Accessible Tabs benutzt ein sehr einfaches und flexibles HTML Markup als Basis. Alles was es braucht ist ein Wrapper mit Headlines und Inhalts-Elementen nacheinander. Die einfachste und bestmöglichste Alternative ohne Javascript ohne Auszusehen als würde etwas fehlen oder etwas währe kaputt.</p><div class="html4strict" style="text-align: left"><br />&#160; &#160; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">"tabs"</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />&#160; &#160; &#160; &#160; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h2&gt;</span></span>eine Beispielüberschrift<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/h2&gt;</span></span><br />&#160; &#160; &#160; &#160; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">"tabbody"</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />&#160; &#160; &#160; &#160; &#160; &#160; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;p&gt;</span></span>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/p&gt;</span></span><br />&#160; &#160; &#160; &#160; &#160; &#160; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h3&gt;</span></span>Lorem ipsum<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/h3&gt;</span></span><br />&#160; &#160; &#160; &#160; &#160; &#160; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;p&gt;</span></span>Nullam malesuada suscipit pede. Nullam ipsum lacus, varius<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/p&gt;</span></span><br />&#160; &#160; &#160; &#160; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span><br />&#160; &#160; &#160; &#160; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h2&gt;</span></span>noch eine Beispielüberschrift<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/h2&gt;</span></span><br />&#160; &#160; &#160; &#160; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">"tabbody"</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />&#160; &#160; &#160; &#160; &#160; &#160; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;p&gt;</span></span>Integer tincidunt. Cras dapibus. Vivamus elementum nisi.<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/p&gt;</span></span><br />&#160; &#160; &#160; &#160; &#160; &#160; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;p&gt;</span></span>Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel.<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/p&gt;</span></span><br />&#160; &#160; &#160; &#160; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span><br />&#160; &#160; &#160; &#160; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h2&gt;</span></span>alles andere<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/h2&gt;</span></span><br />&#160; &#160; &#160; &#160; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">"tabbody"</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />&#160; &#160; &#160; &#160; &#160; &#160; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;p&gt;</span></span>Hier könnte Ihr Inhalt stehen<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/p&gt;</span></span><br />&#160; &#160; &#160; &#160; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span><br />&#160; &#160; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span><br />&#160;</div>
<p>Ein einfacher jQuery Aufruf transformiert das Markup in accessible Tabs:</p>
<div class="javascript" style="text-align: left"><br />&#160; &#160; $<span style="color: #66cc66;">&#40;</span>document<span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">ready</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><br />&#160; &#160; &#160; &#160; $<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'.tabs'</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">accessibleTabs</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />&#160; &#160; <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;<br />&#160;</div>
<p>Um nicht nur so zugänglich sondern auch so flexibel wie möglich zu sein, kann das Script mit verschiedensten Einstellmöglichkeiten konfiguriert werden.</p>
<div class="javascript" style="text-align: left"><br />$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'.tabs'</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">accessibleTabs</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span><br />&#160; &#160; <span style="color: #009900; font-style: italic;">// Der Name der Klasse die dem Div zugewiesen </span><br />&#160; &#160; <span style="color: #009900; font-style: italic;">// welche um das Markup herumgeschrieben wird</span><br />&#160; &#160; wrapperClass: <span style="color: #3366CC;">'content'</span>, <br />&#160; &#160; <span style="color: #009900; font-style: italic;">// Der Name der Klasse die das aktuelle Tab markiert</span><br />&#160; &#160; currentClass: <span style="color: #3366CC;">'current'</span>, <br />&#160; &#160; <span style="color: #009900; font-style: italic;">// Tag oder valider Query Selector der Elemente&#160; </span><br />&#160; &#160; <span style="color: #009900; font-style: italic;">// aus denen die Tabs Navigation erzeugt wird </span><br />&#160; &#160; <span style="color: #009900; font-style: italic;">// (die Originale werden entfernt)</span><br />&#160; &#160; tabhead: <span style="color: #3366CC;">'h4'</span>, <br />&#160; &#160; <span style="color: #009900; font-style: italic;">// Tag oder valider Query Selector der Elemente die </span><br />&#160; &#160; <span style="color: #009900; font-style: italic;">// als Inhalte der Tabs genutzt werden sollen</span><br />&#160; &#160; tabbody: <span style="color: #3366CC;">'.tabbody'</span>, <br />&#160; &#160; <span style="color: #009900; font-style: italic;">// Anzeigeeffekte:&#160; 'fadeIn', 'slideDown' oder 'show'</span><br />&#160; &#160; fx:<span style="color: #3366CC;">'show'</span>, <br />&#160; &#160; <span style="color: #009900; font-style: italic;">// Geschwindigkeit (String|Number): 'slow', 'normal', oder 'fast') </span><br />&#160; &#160; <span style="color: #009900; font-style: italic;">// oder die Milisekunden die die Anzeigeeffekte dauern sollen</span><br />&#160; &#160; fxspeed: <span style="color: #3366CC;">'normal'</span>,<br />&#160; &#160; <span style="color: #009900; font-style: italic;">// Text um Screenreadern anzuzeigen welches der ausgewählte Tab ist </span><br />&#160; &#160; currentInfoText: <span style="color: #3366CC;">'current tab: '</span>, <br />&#160; &#160; <span style="color: #009900; font-style: italic;">// Definition wo der Text eingefügt wird</span><br />&#160; &#160; <span style="color: #009900; font-style: italic;">// Entwender 'prepend' oder 'append'</span><br />&#160; &#160; currentInfoPosition: <span style="color: #3366CC;">'prepend'</span>, <br />&#160; &#160; <span style="color: #009900; font-style: italic;">// Klasse des span mit dem Infotext</span><br />&#160; &#160; currentInfoClass: <span style="color: #3366CC;">'current-info'</span> <br /><span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;<br />&#160;</div>
<h4>Also gut, warum ist dieses Script zugänglicher als andere?</h4><p>Das, was dieses Script hauptsächlich besser macht als die anderen ist ein Feedback für Nutzer von Screenreadern nach dem Klick. Wenn der Nutzer auf einen der Tabs klickt wird tatsächlich auf der Seite navigiert.</p><p>Jeder Link in den Tabs führt tatsächlich zu einem fokusierbaren Inhalt. Um dies zu ermöglichen, erzeugen wir einen benannten Anker in dem zugehörigen Inhalt des Tabs. Dieser Anker, da er keine href-Egenschaft hat, kann von Haus aus aber keinen Fokus erhalten. Um dies zu ermöglichen wird ihm die Eigenschaft tabindex=&quot;0&quot; zugewiesen. Warum 0? Weil ein Tabindex von 0 nicht die natürliche Tabordnung des Dokumentes verändert aber dem zugewiesenen Element trotzdem ermöglicht Tab-Fokus zu bekommen.</p>
<div class="html4strict" style="text-align: left"><br /><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h4&gt;</span></span><br />&#160; &#160; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;a</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"accessibletabscontent"</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"accessibletabscontent"</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">"accessibletabsanchor"</span> <span style="color: #000066;">tabindex</span>=<span style="color: #ff0000;">"0"</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />&#160; &#160; &#160; &#160; Eine Beispielüberschrift<br />&#160; &#160; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/a&gt;</span></span><br /><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/h4&gt;</span></span><br />&#160;</div>
<p>In dem benannten Anker wird der selbe Text wie im Tab eingefügt welches gerade geklickt wurde und das ganze mit einer Headline umklammert. Dies stellt eine sehr angenehme Erfahrung für die Nutzer von Screenreadern dar, da es auf nette Art und Weise bestätigt, dass man gerade zu einem anderen Inhalt auf der Seite gesprungen ist.</p><p>Ein weiteres Zusatzfeature für Screenreader Nutzer ist ein kleiner Text der auf den aktuell ausgewählten Tab kennzeichnet. Standardmäßig lautet dieser Text &quot;current tab: &quot; gefolgt von dem Standardtext des Tabs. Dieser Text, ebenso wie seine Position (entweder davor oder danach) ist aber sehr leicht internationalisierbar.</p><h4>Problem: Das Fokussieren von versteckten oder eben noch versteckt gewesenen Elementen</h4><p>Während dem Testen der Tabs stießen wir auf ein sehr interessantes und ebenso störendes Verhalten des Screenreaders Jaws (und sehr wahrscheinlich auch von anderen). Wir wollten auf die Headline in dem Inhaltselement eines Tabs fokussieren nachdem es eingeblendet wurde. Bei jedem Test war der Screenreader nicht in der Lage das entsprechende Element zu finden und sprach statt dessen um Ende des Dokumentes oder einer anderen zufälligen Position. Dieses Phänomen wird durch den virtuellen Buffer des Screenreaders verursacht, einer internen Kopie des DOMs in dem der Screenreader navigiert. Der virtuelle Buffer gleicht seinen Inhalt regelmäßig mit dem DOM des Browsers ab aber dies ist stets erst nach einer Verzögerung.</p><p>Um um dieses Problem herum zu arbeiten nutzen wir einen anderen Lösungsansatz. Der benannte Anker auf den wir verlinken ist tatsächlich nicht in dem versteckten Inhaltselement sondern im DOM davor und &quot;offscreen&quot; (position:absolute;left:-999em) versteckt. Tatsächlich zeigt jeder Tab auf den exakt selben Anker. Wir schreiben den Inhalt des Headline-Elementes einfach jedes mal neu und blenden das zugehörige Inhaltselement entsprechend ein oder aus. Das empfundene Verhalten ist genau das gleiche. Der Screenreader Nutzer klickt auf den Tab, folgt dem Link und findet den verlinkten Inhalt mit der entsprechenden Headline.</p><p>Man kann sich das Script hier in <a href="http://blog.ginader.de/dev/jquery/accessible-tabs/">in vielen verschiedenen Beispielen</a> in Aktion ansehen. Das jQuery Plugin ist ebenfalls seit der Version 3.1.1 Teil des <a onclick="javascript: pageTracker._trackPageview('/extlink/www.yaml.de/');"  title="YAML CSS Framework" href="http://www.yaml.de/">CSS Framework Yaml</a>.</p><p>Man kann das<a onclick="javascript: pageTracker._trackPageview('/extlink/github.com/ginader/Accessible-Tabs/zipball/master');"  title="Download Accessible jQuery Tabs" href="http://github.com/ginader/Accessible-Tabs/zipball/master"> script zusammen mit den demos hier herunterladen</a>. <a onclick="javascript: pageTracker._trackPageview('/extlink/github.com/ginader/Accessible-Tabs');"  href="http://github.com/ginader/Accessible-Tabs">Der gesamte Code ist ebenfalls auf github</a>.</p> 
    <img src="http://feeds.feedburner.com/~r/WebOutput/~4/dOyIvsuc_nI" height="1" width="1"/>]]></content:encoded>

    <pubDate>Sat, 07 Feb 2009 10:13:07 +0100</pubDate>
    <guid isPermaLink="false">http://blog.ginader.de/archives/2009/02/07/258.php</guid>
    <category>accessibility</category>
<category>de</category>
<category>javascript</category>
<category>jquery</category>
<category>tabs</category>
<category>unobtrusive</category>
<category>yaml</category>

</item>
<item>
    <title>CSS Voodoo - Die dunkle Kunst der CSS Hacks</title>
    <link>http://blog.ginader.de/archives/2009/02/01/CSS-Voodoo-Die-dunkle-Kunst-der-CSS-Hacks.php</link>
            <category>deutsch</category>
    
    <comments>http://blog.ginader.de/archives/2009/02/01/CSS-Voodoo-Die-dunkle-Kunst-der-CSS-Hacks.php#comments</comments>
    <wfw:comment>http://blog.ginader.de/wfwcomment.php?cid=256</wfw:comment>

    <slash:comments>15</slash:comments>
    <wfw:commentRss>http://blog.ginader.de/rss.php?version=2.0&amp;type=comments&amp;cid=256</wfw:commentRss>
    

    <author>dirk@ginader.de (Dirk Ginader)</author>
    <content:encoded><![CDATA[
    <p>CSS Hacks sind etwas über das man nur hinter verschlossenen Türen redet. Entwickler schämen sich sie zu benutzten. Sie sind schlecht, sie sind böse und man sollte sie wirklich überhaupt nicht benutzen...</p><p>... aber manchmal gibt es einfach keinen anderen weg - und dann verkauft man seine Seele an den Hack-Teufel...</p><p>Seit ich angefangen habe bei Yahoo! zu arbeiten habe ich aus Performance Gründen (weniger HTTP Abfragen) aufgehört Conditional Comments zu benutzen. Ich musste mich also plötzlich wieder mit den üblichen Hacks für Internet Explorer vertraut machen die ich schon völlig vergessen hatte.</p><p>Seither bin ich fast nie in Situationen geraten in denen sich auch andere Browser schlecht benommen hätten - aber es kam vor (immerhin sind sie alle nur Software und, wie wir alle wissen, gibt es keine Software ohne Bugs...).</p><p>Es folgt der aktuelle Stand meiner CSS Hack Sammlung. Man kann sich eine funktionierende Demo auf meiner <a href="http://blog.ginader.de/dev/css/hacks/index.php">CSS Hacks Beispielseite</a> anschauen. Bitte nur mit besonderer Vorsicht benutzen und tu dir selbst den Gefallen und probier ALLES ERDENKLICHE BEVOR du aufgibst und sie selber benutzt.</p><p>In meiner Demo habe ich Absätze, die den Namen der Browser enthalten, die mit den Hacks angesprochen werden können, standardmäßig ausgeblendet. </p><div class="css" style="text-align: left">&#160; <br />body p <span style="color: #66cc66;">&#123;</span> <span style="color: #000000; font-weight: bold;">display</span>: <span style="color: #993333;">none</span>; <span style="color: #66cc66;">&#125;</span><br />&#160;</div>

<p>Dann benutze ich die Browser spezifischen Hacks um die jeweiligen Browsernamen wieder sichtbar zu machen:</p><h4>Internet Explorer</h4>
<div class="css" style="text-align: left">&#160; <br />&#160;<span style="color: #808080; font-style: italic;">/* IE 6 only */</span> <br />body <span style="color: #cc00cc;">#ie6 <span style="color: #66cc66;">&#123;</span></span> <br />&#160; &#160; &#160;_display: <span style="color: #993333;">block</span>; <br /><span style="color: #66cc66;">&#125;</span><br /><br /><span style="color: #808080; font-style: italic;">/*IE 6 and IE 7 */</span><br /><span style="color: #cc00cc;">#ie6andie7 <span style="color: #66cc66;">&#123;</span></span> <br />&#160; &#160; &#160;*<span style="color: #000000; font-weight: bold;">display</span>: <span style="color: #993333;">block</span>; <br /><span style="color: #66cc66;">&#125;</span><br /><br /><span style="color: #808080; font-style: italic;">/* IE 7 only */</span> <br />html &amp;gt; body <span style="color: #cc00cc;">#ie7 <span style="color: #66cc66;">&#123;</span></span> <br />&#160; &#160; *<span style="color: #000000; font-weight: bold;">display</span>: <span style="color: #993333;">block</span>; <br /><span style="color: #66cc66;">&#125;</span><br /><br /><span style="color: #808080; font-style: italic;">/* IE6, IE 7, IE 8 and IE 9 */</span> <br />body #ie6andie7andie8andie9<span style="color: #66cc66;">&#123;</span><br />&#160; &#160; <span style="color: #000000; font-weight: bold;">display</span>:<span style="color: #993333;">block</span>\<span style="color: #cc66cc;">9</span>;<br /><span style="color: #66cc66;">&#125;</span>&#160; &#160; <br /><br /><span style="color: #808080; font-style: italic;">/* IE 8 */</span> <br />body #ie8<span style="color: #66cc66;">&#123;</span><br />&#160; &#160; <span style="color: #000000; font-weight: bold;">display</span>:<span style="color: #993333;">block</span>\<span style="color: #cc66cc;">9</span>;<br />&#160; &#160; *<span style="color: #000000; font-weight: bold;">display</span>: <span style="color: #993333;">none</span>; <span style="color: #808080; font-style: italic;">/* overwrite for ie6 and ie7*/</span><br /><span style="color: #66cc66;">&#125;</span><br />body #ie8:nth-of-type<span style="color: #66cc66;">&#40;</span>1n<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span> <span style="color: #808080; font-style: italic;">/* overwrite for ie9 which still also reads the \9 hack */</span><br />&#160; &#160; <span style="color: #000000; font-weight: bold;">display</span>:<span style="color: #993333;">none</span>;<br /><span style="color: #66cc66;">&#125;</span><br /><br /><span style="color: #808080; font-style: italic;">/* IE 9+ */</span><br />body #ie9:nth-of-type<span style="color: #66cc66;">&#40;</span>1n<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span> <span style="color: #808080; font-style: italic;">/* CSS3 Selector that is interpreted by many modern Browsers including IE9*/</span><br />&#160; &#160; <span style="color: #000000; font-weight: bold;">display</span>:<span style="color: #993333;">block</span>\<span style="color: #cc66cc;">9</span>; <span style="color: #808080; font-style: italic;">/* Hack to specify Internet Explorers including 9 so we exclude FF, webkit, etc */</span> <br /><span style="color: #66cc66;">&#125;</span><br />&#160;</div>


<h4>Firefox</h4>
<div class="css" style="text-align: left">&#160; <br />#firefox2, x<span style="color: #3333ff;">:-moz-any-link </span><span style="color: #66cc66;">&#123;</span><br />&#160; &#160; <span style="color: #000000; font-weight: bold;">display</span>: <span style="color: #993333;">block</span>;<br />&#160; &#160; *<span style="color: #000000; font-weight: bold;">display</span>: <span style="color: #993333;">none</span>; <span style="color: #808080; font-style: italic;">/*overrule for ie6 and ie7 which also read this rule*/</span> <br /><span style="color: #66cc66;">&#125;</span> <br /><br /><span style="color: #808080; font-style: italic;">/*Firefox 3 only (for Firefox 2 only use the rule above and this to overwrite for Firefox 3*/</span><br />#firefox3, x:-moz-any-link, x<span style="color: #3333ff;">:<span style="color: #993333;">default</span> </span><span style="color: #66cc66;">&#123;</span><br />&#160; &#160; <span style="color: #000000; font-weight: bold;">display</span>: <span style="color: #993333;">block</span>;<br />&#160; &#160; *<span style="color: #000000; font-weight: bold;">display</span>: <span style="color: #993333;">none</span>; <span style="color: #808080; font-style: italic;">/*overrule for ie6 and ie7 which also read this rule*/</span> <br /><span style="color: #66cc66;">&#125;</span><br /><span style="color: #808080; font-style: italic;">/* Firefox 3.5+ */</span><br />BODY:nth-of-type<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> #firefox3_<span style="color: #cc66cc;">5</span>, x:-moz-any-link, x<span style="color: #3333ff;">:<span style="color: #993333;">default</span> </span><span style="color: #66cc66;">&#123;</span><br />&#160; &#160; <span style="color: #000000; font-weight: bold;">display</span>: <span style="color: #993333;">block</span>;<br /><span style="color: #66cc66;">&#125;</span><br />&#160;</div>

<h4>Safari</h4>
<div class="css" style="text-align: left">&#160; <br /><span style="color: #808080; font-style: italic;">/* Safari */</span> <br /><span style="color: #a1a100;">@media screen and (-webkit-min-device-pixel-ratio:0) { </span><br />&#160; &#160; <span style="color: #cc00cc;">#safari <span style="color: #66cc66;">&#123;</span></span> <br />&#160; &#160; &#160; &#160; <span style="color: #000000; font-weight: bold;">display</span>: <span style="color: #993333;">block</span>; <br />&#160; &#160; <span style="color: #66cc66;">&#125;</span> <br /><span style="color: #66cc66;">&#125;</span><br />&#160;</div>

<h4>Opera</h4>
<div class="css" style="text-align: left">&#160; &#160; &#160; &#160; &#160; <br /><span style="color: #808080; font-style: italic;">/* Opera */</span> <br /><span style="color: #a1a100;">@media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0) { </span><br />&#160; &#160; head~body <span style="color: #cc00cc;">#opera <span style="color: #66cc66;">&#123;</span></span> <br />&#160; &#160; &#160; &#160; <span style="color: #000000; font-weight: bold;">display</span>: <span style="color: #993333;">block</span>; <br />&#160; &#160; <span style="color: #66cc66;">&#125;</span> <br /><span style="color: #66cc66;">&#125;</span><br />&#160;</div>

<p>So - jetzt fühle ich mich schmutzig und gehe duschen...</p>
<p>update 2010-07-23 jetzt Support für Firefox 3.5+<p>
<p>update 2010-08-27 jetzt Support für Internet Explorer 9+<p>
<p><a onclick="javascript: pageTracker._trackPageview('/extlink/github.com/ginader/CSS-Hacks');"  href="http://github.com/ginader/CSS-Hacks">Die neuest Version is immer auf github</a></p> 
    <img src="http://feeds.feedburner.com/~r/WebOutput/~4/UP8Z1QSAdrE" height="1" width="1"/>]]></content:encoded>

    <pubDate>Sun, 01 Feb 2009 10:51:06 +0100</pubDate>
    <guid isPermaLink="false">http://blog.ginader.de/archives/2009/02/01/256.php</guid>
    <category>bah!</category>
<category>css</category>
<category>de</category>
<category>dirty</category>
<category>hacks</category>
<category>webdev</category>

</item>
<item>
    <title>Barcamp London 6 - ich bin im Orga-Team</title>
    <link>http://blog.ginader.de/archives/2009/01/31/Barcamp-London-6-ich-bin-im-Orga-Team.php</link>
            <category>deutsch</category>
    
    <comments>http://blog.ginader.de/archives/2009/01/31/Barcamp-London-6-ich-bin-im-Orga-Team.php#comments</comments>
    <wfw:comment>http://blog.ginader.de/wfwcomment.php?cid=253</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://blog.ginader.de/rss.php?version=2.0&amp;type=comments&amp;cid=253</wfw:commentRss>
    

    <author>dirk@ginader.de (Dirk Ginader)</author>
    <content:encoded><![CDATA[
    
<p>Nach, sage und schreibe, 7 Barcamps als Teilnehmer ist es an der Zeit meine gesammelte &quot;Erfahrung&quot; und &quot;Weisheit&quot; einzusetzen.</p><p>Zusammen mit einigen anderen der <a onclick="javascript: pageTracker._trackPageview('/extlink/www.barcamplondon.org/about/');"  href="http://www.barcamplondon.org/about/">üblichen Barcamp-Verdächtigen</a> habe ich das kommende <a onclick="javascript: pageTracker._trackPageview('/extlink/www.barcamplondon.org/');"  href="http://www.barcamplondon.org/">Barcamp London 6</a> organisiert.</p><p>Nachdem wir gestern endlich die finale Zusage von <a onclick="javascript: pageTracker._trackPageview('/extlink/www.guardian.co.uk/');"  href="http://www.guardian.co.uk/">the Guardian</a> als location bekommen haben gibt es jetzt endlich die offizielle Ankündigung:</p><p><!-- s9ymdb:303 --><a onclick="javascript: pageTracker._trackPageview('/extlink/www.barcamplondon.org/');"  href="http://www.barcamplondon.org/"><img width="460" height="150" src="http://blog.ginader.de/uploads/pics/barcamplondon6.png" style="border: 0px none ; padding-left: 5px; padding-right: 5px;" class="serendipity_image_center" /></a></p><p>Vom 28. - 29. März 2009 findet in den schicken neuen Räumen der Zeitung the Guardian das sechste Londonder Barcamp statt.</p><p>In 2 Wochen werden schon die ersten Tickets vergeben (genauer Tag und Uhrzeit werden noch bekannt gegeben). Damit Ihr diesen wichtigen Termin nicht verpasst, folgt uns auf <a onclick="javascript: pageTracker._trackPageview('/extlink/twitter.com/barcamplondon/');"  href="http://twitter.com/barcamplondon/">twitter</a>, tragt euch in den Reminder auf der <a onclick="javascript: pageTracker._trackPageview('/extlink/www.barcamplondon.org/');"  href="http://www.barcamplondon.org/">Website</a> ein, macht euer Häkchen bei <a onclick="javascript: pageTracker._trackPageview('/extlink/upcoming.yahoo.com/event/1746039/');"  href="http://upcoming.yahoo.com/event/1746039/">Upcoming</a> und und und...</p> 
    <img src="http://feeds.feedburner.com/~r/WebOutput/~4/Cj7r7le8hPA" height="1" width="1"/>]]></content:encoded>

    <pubDate>Sat, 31 Jan 2009 17:54:26 +0100</pubDate>
    <guid isPermaLink="false">http://blog.ginader.de/archives/2009/01/31/253.php</guid>
    <category>barcamp</category>
<category>barcamplondon</category>
<category>barcamplondon6</category>
<category>de</category>
<category>event</category>
<category>london</category>
<category>me</category>
<category>unconference</category>

</item>
<item>
    <title>Yahoo! Currency Converter - mein Lieblingsprojekt ist live</title>
    <link>http://blog.ginader.de/archives/2008/12/17/Yahoo!-Currency-Converter-mein-Lieblingsprojekt-ist-live.php</link>
            <category>deutsch</category>
    
    <comments>http://blog.ginader.de/archives/2008/12/17/Yahoo!-Currency-Converter-mein-Lieblingsprojekt-ist-live.php#comments</comments>
    <wfw:comment>http://blog.ginader.de/wfwcomment.php?cid=250</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://blog.ginader.de/rss.php?version=2.0&amp;type=comments&amp;cid=250</wfw:commentRss>
    

    <author>dirk@ginader.de (Dirk Ginader)</author>
    <content:encoded><![CDATA[
    
<p><a  class="serendipity_image_link"  rel="lightbox" href="http://blog.ginader.de/uploads/pics/currency-converter.png"><!-- s9ymdb:299 --><img width="110" height="104" class="serendipity_image_left" style="border: 0px none ; float: left; padding-left: 5px; padding-right: 5px;" src="http://blog.ginader.de/uploads/pics/currency-converter.serendipityThumb.png" /></a>Vor ca. einem 3/4 Jahr entwickelten mein Kollege, der User Experience Designer <a onclick="javascript: pageTracker._trackPageview('/extlink/www.holdandmodify.com/');"  href="http://www.holdandmodify.com/">Graham Beale</a>, und ich Ideen für einen Prototype eines neuen Währungsumrechners für den weltweiten Relaunch von Yahoo! Finance. Wir wollten Features die wir so noch nirgends im Internet gesehen hatten. Wir wollten Konvertierung ohne Reload, eine Suche nach Währungsnamen wie in der Firefox 3 &quot;awesome bar&quot;, totale Barrierefreiheit, noch viel mehr und das alles natürlich in Echtzeit.</p><p>Knapp ein Jahr, viele Usertests, viele neue Ideen, viel Screenreader testing mit meinem Kollegen <a onclick="javascript: pageTracker._trackPageview('/extlink/twitter.com/DesignedByBlind');"  href="http://twitter.com/DesignedByBlind">Artur Ortega</a> und sehr viel Entwicklungszeit später ist gestern nacht das Ergebnis online gegangen!</p><p>Über die vielen Screenreader spezifischen Tricks die wir hierfür angewand und zum grossen Teil neu entwickelt haben muss ich unbedingt noch gesondert Bloggen. Bis dahin wünsche ich viel Spaß mit dem neuen <a onclick="javascript: pageTracker._trackPageview('/extlink/finance.yahoo.com/currency-converter');"  href="http://finance.yahoo.com/currency-converter">Yahoo! Currency Converter</a> und empfehle einfach mal die Anwendung nur mit der Tastatur zu bedienen, Javascript mal ganz auszuschalten oder natürlich einfach mit der tollen Währungs-Suchfunktion zu spielen <img src="http://blog.ginader.de/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" />.</p><p><strong>Update:</strong></p><p>Mein versprochener (englischer) Artikel mit dem Titel <a onclick="javascript: pageTracker._trackPageview('/extlink/developer.yahoo.net/blog/archives/2009/01/accessible_converter.html');"  href="http://developer.yahoo.net/blog/archives/2009/01/accessible_converter.html">&quot;Making the new Yahoo! Currency Converter accessible&quot;</a> ist jetzt auf dem YDN Blog verfügbar!</p><p /> 
    <img src="http://feeds.feedburner.com/~r/WebOutput/~4/EsxU_jKCD4s" height="1" width="1"/>]]></content:encoded>

    <pubDate>Wed, 17 Dec 2008 10:58:55 +0100</pubDate>
    <guid isPermaLink="false">http://blog.ginader.de/archives/2008/12/17/250.php</guid>
    <category>accessibility</category>
<category>de</category>
<category>javascript</category>
<category>launch</category>
<category>me</category>
<category>webdev</category>
<category>yahoo</category>

</item>
<item>
    <title>Technikwürze feiert 3 Jahre Pfeffer im Ohr - ich feiere mit</title>
    <link>http://blog.ginader.de/archives/2008/12/16/Technikwuerze-feiert-3-Jahre-Pfeffer-im-Ohr-ich-feiere-mit.php</link>
            <category>deutsch</category>
    
    <comments>http://blog.ginader.de/archives/2008/12/16/Technikwuerze-feiert-3-Jahre-Pfeffer-im-Ohr-ich-feiere-mit.php#comments</comments>
    <wfw:comment>http://blog.ginader.de/wfwcomment.php?cid=249</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.ginader.de/rss.php?version=2.0&amp;type=comments&amp;cid=249</wfw:commentRss>
    

    <author>dirk@ginader.de (Dirk Ginader)</author>
    <content:encoded><![CDATA[
    
<p><!-- s9ymdb:298 --><a onclick="javascript: pageTracker._trackPageview('/extlink/technikwuerze.de/podcast/technikwuerze126/');"  href="http://technikwuerze.de/podcast/technikwuerze126/"><img height="180" width="180" src="http://blog.ginader.de/uploads/technikwuerze126.png" style="border: 0px none ; float: left; padding-left: 5px; padding-right: 5px;" class="serendipity_image_left" /></a>Gestern feierten David Maciejewski Stefan Nitzsche, Sascha Postner und ich das 3-jährige Jubiläum des <a onclick="javascript: pageTracker._trackPageview('/extlink/technikwuerze.de/podcast/technikwuerze126/');"  href="http://technikwuerze.de/podcast/technikwuerze126/">wichtigsten deutschen Webstandards Podcasts Technikwürze</a>. </p><p>Die Sendung schaffte es schon in den ersten Minuten das humoristische Niveau der folgenden 82:57 Minuten gnadenlos festzulegen sodass ich, als ich heute morgen in der Tube saß, immer wieder von meinen Mitfahrern schräg angeschaut wurde, da ich konstant kichernd und grinsend meinem iPod lauschte <img src="http://blog.ginader.de/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /></p><p>Meine Tonqualität war zwar leider sehr bescheiden (man hört quasi den Ärmelkanal rauschen... <img src="http://blog.ginader.de/templates/default/img/emoticons/wink.png" alt=";-)" style="display: inline; vertical-align: bottom;" class="emoticon" />) aber Spaß hat es trotzdem gemacht. </p><p>Reinhören!</p> 
    <img src="http://feeds.feedburner.com/~r/WebOutput/~4/e2kdOvEY9sc" height="1" width="1"/>]]></content:encoded>

    <pubDate>Tue, 16 Dec 2008 10:23:08 +0100</pubDate>
    <guid isPermaLink="false">http://blog.ginader.de/archives/2008/12/16/249.php</guid>
    <category>de</category>
<category>me</category>
<category>podcast</category>
<category>technikwuerze</category>

</item>
<item>
    <title>OMG! web output hat ein eigenes Design!</title>
    <link>http://blog.ginader.de/archives/2008/12/14/OMG!-web-output-hat-ein-eigenes-Design!.php</link>
            <category>deutsch</category>
    
    <comments>http://blog.ginader.de/archives/2008/12/14/OMG!-web-output-hat-ein-eigenes-Design!.php#comments</comments>
    <wfw:comment>http://blog.ginader.de/wfwcomment.php?cid=247</wfw:comment>

    <slash:comments>6</slash:comments>
    <wfw:commentRss>http://blog.ginader.de/rss.php?version=2.0&amp;type=comments&amp;cid=247</wfw:commentRss>
    

    <author>dirk@ginader.de (Dirk Ginader)</author>
    <content:encoded><![CDATA[
    
<p>Ich hätte selbst nicht gedacht, daß das nochmal irgendwann passieren würde.</p>
<p>Schon vor über einem Jahr hatte ich eine Design Idee und diese Fireworks gelayoutet. Ein erster HTML-Dummy war schnell gebastelt. Dann schaute ich mir zum ersten mal an wie man in Serendipity (der hier verwendeten Blog-Engine) Templates baut und habe augenblicklich die Lust verloren.</p>
<p>Glücklicherweise war das alte Design so hässlich und der Code noch viel schlimmer als das Design daß mich der regelmäßige Anblick dann doch irgendwann so geschämt hat, daß ich mir den heutigen Sonntag mit Smarty (der Template Engine in Serendipity) vertrieben habe und tadaaaaaaaaaaa:</p>
<p>Das neue Design ist tatsächlich gerade eben online gegangen!</p> 
    <img src="http://feeds.feedburner.com/~r/WebOutput/~4/UBQ1W1_Sgjg" height="1" width="1"/>]]></content:encoded>

    <pubDate>Sun, 14 Dec 2008 21:35:42 +0100</pubDate>
    <guid isPermaLink="false">http://blog.ginader.de/archives/2008/12/14/247.php</guid>
    <category>blogs</category>
<category>de</category>
<category>design</category>
<category>html</category>
<category>me</category>
<category>relaunch</category>
<category>smarty</category>

</item>
<item>
    <title>Der Webkrauts Adventskalender öffnet mein erstes Türchen</title>
    <link>http://blog.ginader.de/archives/2008/12/13/Der-Webkrauts-Adventskalender-oeffnet-mein-erstes-Tuerchen.php</link>
            <category>deutsch</category>
    
    <comments>http://blog.ginader.de/archives/2008/12/13/Der-Webkrauts-Adventskalender-oeffnet-mein-erstes-Tuerchen.php#comments</comments>
    <wfw:comment>http://blog.ginader.de/wfwcomment.php?cid=246</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.ginader.de/rss.php?version=2.0&amp;type=comments&amp;cid=246</wfw:commentRss>
    

    <author>dirk@ginader.de (Dirk Ginader)</author>
    <content:encoded><![CDATA[
    
<p>Heute ist es soweit! Der erste Teil meines Website Performance Artikels mit dem Titel &quot;<a onclick="javascript: pageTracker._trackPageview('/extlink/www.webkrauts.de/2008/12/13/sehr-sehr-schnelle-seiten-website-performance-best-practice/');"  href="http://www.webkrauts.de/2008/12/13/sehr-sehr-schnelle-seiten-website-performance-best-practice/">Sehr sehr schnelle Seiten</a>&quot; ist aus dem heutigen Webkrauts Adventskalender Türchen gefallen. Viel Spass damit und freut euch auf morgen denn da kommt schon <a onclick="javascript: pageTracker._trackPageview('/extlink/www.webkrauts.de/2008/12/14/sehr-sehr-schnelle-seiten-website-performance-best-practice-teil-2/');"  href="http://www.webkrauts.de/2008/12/14/sehr-sehr-schnelle-seiten-website-performance-best-practice-teil-2/">der zweite Teil</a> <img src="http://blog.ginader.de/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /></p><p><a onclick="javascript: pageTracker._trackPageview('/extlink/www.webkrauts.de/');"  href="http://www.webkrauts.de/"><img style="border: 0px none ;" src="http://www.webkrauts.de/adventskalender-banner/bestpractice-300.png" alt="Banner: Best Practice im Web" /></a></p>
 
    <img src="http://feeds.feedburner.com/~r/WebOutput/~4/op7cG9KLycA" height="1" width="1"/>]]></content:encoded>

    <pubDate>Sat, 13 Dec 2008 09:57:20 +0100</pubDate>
    <guid isPermaLink="false">http://blog.ginader.de/archives/2008/12/13/246.php</guid>
    <category>css</category>
<category>de</category>
<category>html</category>
<category>javascript</category>
<category>me</category>
<category>performance</category>
<category>webkrauts</category>
<category>webstandards</category>

</item>
<item>
    <title>jQuery skipnavHighlight - Skip-Link-Ziele Anschaulich machen</title>
    <link>http://blog.ginader.de/archives/2008/12/11/jQuery-skipnavHighlight-Skip-Link-Ziele-Anschaulich-machen.php</link>
            <category>deutsch</category>
    
    <comments>http://blog.ginader.de/archives/2008/12/11/jQuery-skipnavHighlight-Skip-Link-Ziele-Anschaulich-machen.php#comments</comments>
    <wfw:comment>http://blog.ginader.de/wfwcomment.php?cid=244</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://blog.ginader.de/rss.php?version=2.0&amp;type=comments&amp;cid=244</wfw:commentRss>
    

    <author>dirk@ginader.de (Dirk Ginader)</author>
    <content:encoded><![CDATA[
    
<p>[<a href="http://blog.ginader.de/archives/2008/12/11/jQuery-skipnavHighlight-nicely-highlighting-skip-link-targets.php">switch to english Version of this Post</a>]</p><p>Als Tomas Caspers in seinem gestrigen &quot;<a onclick="javascript: pageTracker._trackPageview('/extlink/www.einfach-fuer-alle.de/blog/id/2459/');"  href="http://www.einfach-fuer-alle.de/blog/id/2459/">EfA-Laborbericht, Teil 7</a>&quot; auf die Skip-Links der frisch relaunchten Website der <a onclick="javascript: pageTracker._trackPageview('/extlink/stockholm.se/');"  href="http://stockholm.se/">Stadt Stockholm</a> verwies war mir klar, daß ich diese einfache und einfach Sinnvolle Technik zukünftig unbedingt ebenfalls nutzen möchte. </p><p>Um ein &quot;Springen&quot; der markierten Container zu vermeiden setzten die Entwickler der Webseite auf die CSS2 Eigenschaft: <code>outline</code> die das umrandete Element nicht verbreitert wie es <code>border</code> machen würde. Leider ist diese Eigenschaft nur in der neuesten Browser Generation verfügbar, was das Feature in den Internet Explorern vollständig verschwinden lässt.</p><p>Um diesen Makel zu umschiffen habe ich einen anderen Lösungsweg eingeschlagen. Mein kleines jQuery Plugin &quot;skipnavHighlight&quot; erzeugt ein leeres DIV und malt damit einen Rahmen um zu markierende Linkziel.</p><p>Eine <a href="http://blog.ginader.de/dev/jquery/skipnavhighlight/1.0/index.php">funktionierende Demo gibt es hier</a> und herunterladen kann man den <a onclick="javascript: pageTracker._trackPageview('/download/dev/jquery/skipnavhighlight/1.0/skipnavhighlight.zip');"  href="http://blog.ginader.de/dev/jquery/skipnavhighlight/1.0/skipnavhighlight.zip">Code von skipnavHighlight.jquery</a> hier.</p>
 
    <img src="http://feeds.feedburner.com/~r/WebOutput/~4/nMdl8xXpcos" height="1" width="1"/>]]></content:encoded>

    <pubDate>Thu, 11 Dec 2008 11:58:16 +0100</pubDate>
    <guid isPermaLink="false">http://blog.ginader.de/archives/2008/12/11/244.php</guid>
    <category>accessibility</category>
<category>de</category>
<category>javascript</category>
<category>jquery</category>
<category>me</category>
<category>webdev</category>

</item>

</channel>
</rss>

