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

<channel>
	<title>ITWS BLOG &#187; html</title>
	<atom:link href="http://blog.itws.de/tag/html/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.itws.de</link>
	<description>The cake is a lie!</description>
	<lastBuildDate>Tue, 31 Jan 2012 10:34:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Effizientes Cross-Browser-Development</title>
		<link>http://blog.itws.de/246/effizientes-cross-browser-development/</link>
		<comments>http://blog.itws.de/246/effizientes-cross-browser-development/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 13:23:02 +0000</pubDate>
		<dc:creator>Benny</dc:creator>
				<category><![CDATA[gedanken]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[projektmanagement]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://blog.itws.de/?p=246</guid>
		<description><![CDATA[Sowohl privat als auch beruflich werde ich &#8211; wie auch viele andere &#8211; st&#228;ndig mit dem Thema Cross-Browser-Optimierung von webbasierten Anwendungen konfrontiert. Oder wie ich es nenne: Die IE-Suboptimierung *fg* Leider fallen die Tests zu oft viel zu knapp aus. Das sieht man immer sch&#246;n daran, dass die Seiten im IE entweder in der Darstellung oder in Sachen Funktion von anderen Browsern abweicht. Und sp&#228;testens wenn das dem Kunden auff&#228;llt, ist das wirklich kritisch. In [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.itws.de/wp-content/uploads/2010/09/1290693035_IE.png"><img alt="" class="alignleft size-full wp-image-347" height="128" src="http://blog.itws.de/wp-content/uploads/2010/09/1290693035_IE.png" title="1290693035_IE" width="128" /></a></p>
<p>Sowohl privat als auch beruflich werde ich &#8211; wie auch viele andere &#8211; st&auml;ndig mit dem Thema Cross-Browser-Optimierung von webbasierten Anwendungen konfrontiert. Oder wie ich es nenne: Die IE-Suboptimierung *fg*</p>
<p>Leider fallen die Tests zu oft viel zu knapp aus. Das sieht man immer sch&ouml;n daran, dass die Seiten im IE entweder in der Darstellung oder in Sachen Funktion von anderen Browsern abweicht. Und sp&auml;testens wenn das dem Kunden auff&auml;llt, ist das wirklich kritisch.</p>
<p>In diesem Artikel m&ouml;chte ich euch kurz erkl&auml;ren, wo die Probleme beim Testen liegen und wie man die Cross-Browser-Optimierung von Websites oder webbasierten Anwendungen effizienter gestalten kann.<span id="more-246"></span></p>
<p>Zuerst die Frage: Warum wird so wenig getestet bzw. welche Gr&uuml;nde hat es, dass die Cross-Browser-Qualit&auml;t (keine Ahnung ob das so hei&szlig;t, aber ich nenne es mal so <img src='http://blog.itws.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ) vieler Projekte nicht den Anfoderungen entspricht?</p>
<p>Nun, dass die Tests so knapp ausfallen hat viele Gr&uuml;nde:</p>
<ol>
<li><strong>macht es keinen Spa&szlig;.</strong> Um genau zu sein, ist das Testen des Projekts in anderen Browsern als seinen pers&ouml;nlichen Liebling (Firefox, Opera, Chrome, Links, &#8230;) wahrscheinlich der unangenehmste Teil am Entwickeln. Einfach weil man schon vorher wei&szlig;, dass das, was man entwickelt hat, nicht &uuml;berall funktionieren wird. Und das obwohl man sich beim Schrieben des Codes schon gr&ouml;&szlig;te M&uuml;he gegeben hat, auch die Macken des ein oder anderen Browsers zu ber&uuml;cksichtigen. Dennoch gibt es immer wieder Probelme &#8211; und besonders im IE 6 und 7 muss man dann sehr viel Zeit investieren um sich mit den Bugs auseinander zu setzen.
<p>Bei CSS geht das ja noch, da man viel mit &quot;<em>hasLayout</em>&quot; oder &quot;<em>position: relative;</em>&quot; geradebiegen kann, aber sp&auml;testens wenn es an den JS-Code geht, wird es h&auml;sslich. Das Debuggen im IE 6 und 7 erweist sich oft als so unterhaltend und motivierend wie der Versuch einen IKEA-Bleistieft mit einem Schwingschleifer zu spitzen.</p>
<p>Dem entsprechend reicht die Motvation der Entwickler, ihre Projekte im Internet Explorer zum Laufen zu bekommen, oft gerade so aus um die VMWare zu booten.</p>
<p>&nbsp;</p>
</li>
<li><strong>gibt es eine Deadline.</strong> In den meisten Projekten zumindest. Und die l&auml;sst es oft nicht zu, dass der Entwickler 50% der Zeit, welche er an dem Projekt arbeitet, damit verbringt den IE zu verfluchen und das Projekt in selbigen zu debuggen.
<p>Die Tests fallen wegen dem Zeitdruck oft etwas sporadisch aus: Was nicht auf den ersten Blick auff&auml;llt bleibt erstmal untentdeckt bis es in der QS-Phase des Projektmanagers auff&auml;lt oder &#8211; im schlimmsten Falle &#8211; dem Kunden.</p>
<p>&nbsp;</p>
</li>
<li><strong>ist es monotone Routine</strong>. Die Abwechslungsreichheit, beim 376. Mal durchklicken des Systems im IE 7 um evtl. doch noch irgendwo einen Fehler zu entdecken, ist etwa so gro&szlig; wie die der Arbeit, welcher ein Fabrikarbeiter verrichtet, welcher acht Stunden am Tag damit verbringt, Erdn&uuml;sse minderer Qualit&auml;t vom Laufband zu schubsen &#8230;
<p>Durch diese extrem langweilige Routine kommt es sehr schnell zu Fl&uuml;chtigkeitsfehlern, welche zu Folge haben, dass man eine Layout-Abweichung einfach nicht mehr sieht, weil man diese Seite bereits im Verlauf der letzten 2 Tage im 15-Minuten-Takt immer wieder und wieder aufgerufen hat. Irgendwann nimmt man dabei einfach nichts mehr wahr.</p>
<p>&nbsp;</p>
</li>
<li><strong>herrscht zu hohe Komplexit&auml;t</strong> in den Projekten. Oft testet man bestimmte Teile nicht, da man der Ansicht ist, dass sich daran gar nichts ge&auml;ndert haben kann, weil man ja auf einer ganz andern Seite, an einer ganz anderen Datei, an einer ganz anderen Stelle eine &Auml;nderung vergenommen hat.
<p>Die Verbindungen zwischen den Code-Teilen entstehen dann leider oft erst durch Browser-Bugs (gerade bei der Arbeit mit CSS) oder der Entwickler kennt den Zusammenhang zwischen bestimmten Code-Teilen nicht, weil sie einfach zu komplex sind. Das kommt gerade in gr&ouml;&szlig;eren Projekten mit mehreren Mitarbeitern schnell vor.</p>
<p>Die Konsequenz ist hier, dass nach &Auml;nderungen, bestimmte Teile der Applikation bei dem Test nicht ber&uuml;cksichtigt werden. Klar: Wer hat schon Lust das komplette System nochmal in vier verschiedenen Browsern durchzuklicken nur weil man an einer Stelle ein Margin ge&auml;ndert hat. Man hat ja schlie&szlig;lich eine Deadline und deutlich Besseres zu tun.</p>
<p>&nbsp;</p>
</li>
<li><strong>wird zu wenig miteinander gesprochen.</strong> In Kombination mit Punkt 4 ist Kommunikation sehr wichtig. &Auml;nderungen, die auch nur im Geringsten Teile des Systems betreffen, f&uuml;r die ein anderer Entwickler im Team zust&auml;ndig ist, sollten demjenigen mitgeteilt werden. Einfach nur damit, Entwickler B wei&szlig;, &quot;Hey, da hat sich was in Klasse Xyz ge&auml;ndert, ich sollte Feature abc nochmal testen &#8230;&quot;.
<p>Passiert dies nicht, werden evtl. Konsequenzen einer &Auml;nderung gerne &uuml;bersehen: Entwickler A f&uuml;hlt sich nicht zust&auml;ndig einen anderen Programmteil als seinen Eigenen zu testen und Entwickler B wei&szlig; nichts von der &Auml;nderung. Den Rest k&ouml;nnt ihr euch denken.</p>
<p>&nbsp;</p>
</li>
<li><strong>ist zu viel Ego im Spiel.</strong> Das Aufdecken von Fehlern in der eigenen Anwendung empfinden die viele Entwickler oft als Kritik an Ihren F&auml;higkeiten. Und genau diese Mitarbeiter k&ouml;nnen mit Kritik auch nur schwer bis gar nicht umgehen. Sie testen nicht gerne, weil sie sich nicht gerne selbst kritisieren oder sich gerne Fehler eingestehen und nicht einsehen, dass Fehler selbst den Besten Programmierern und Designern passieren.
<p>Aber diese Entwickler machen keine Fehler, also m&uuml;ssen sie auch nicht testen, entsprechend werden keine Fehler aufgedeckt, und somit wird ihr Ego auch nicht angekratzt. So einfach ist das <img src='http://blog.itws.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
</li>
</ol>
<p>&nbsp;</p>
<p>Nun stellt sich nat&uuml;rlich die Frage: <strong>Wie entwickle und teste ich effizient?</strong></p>
<p>Effizienz bedeutet in diesem Zusammenhang das Aufdecken von m&ouml;glichst vielen Fehlern in m&ouml;glichst kurzer Zeit. Daf&uuml;r ist ein durchdachtes Vorgehen beim Testen, einiges an Erfahrung und die n&ouml;tige Disziplin, auch beim 200. Durchklicken noch Fehler wahrnehmen zu k&ouml;nnen, erforderlich.</p>
<p>Ich haber versucht einige Tipps unt Tools zu sammeln, die euch beim Testen und Cross-Browser-Optimieren helfen sollen:</p>
<ul>
<li>Ein sehr interessantes Tool, welches ich beim Recherchieren gefunden habe, ist der <a href="http://www.my-debugbar.com/wiki/IETester/HomePage" target="_blank"><strong>IETester</strong></a>. Ausprobiert habe ich das Tool nicht, da es das nur f&uuml;r Windows gibt und ich ein Linux-User bin <img src='http://blog.itws.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Dennoch klingt die Beschreibung sehr interessant:
<p>&quot;<span class="wikiword">IETester</span> is a free <span class="wikiword">WebBrowser</span> that allows you to have the rendering and javascript engines of <strong><span class="wikiword">IE9</span> preview, <span class="wikiword">IE8</span>, <span class="wikiword">IE7</span> IE 6 and <span class="wikiword">IE5</span>.5 on Windows 7, Vista and XP</strong>, as well as the installed IE in the same process.&quot;</p>
<p>Wenn jemand das Tool kennt und/oder ausprobiert hat, darf er gerne ein Kommentar oder noch besser einen Gast-Beitrag hier hinterlassen <img src='http://blog.itws.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
</li>
<li>Ein absolutes Must-Have-Tool zum Entwickeln f&uuml;r den Internet Explorer ist die <a href="http://www.codestore.net/store.nsf/unid/BLOG-20050920" target="_blank"><strong>IE Developer Bar</strong></a>, welche &auml;hnliche Features wie das Firefox-Addon <a href="https://addons.mozilla.org/de/firefox/addon/1843/" target="_blank"><strong>Firebug</strong></a> im IE zur Verf&uuml;gung stellt.</li>
<li>Ein <a href="http://www.drweb.de/magazin/css-neustart/" target="_blank"><strong>CSS-Reset</strong></a> erweist sich auch oft als sehr hilfreich, da dieser die unterschiedlichen Standard-Style-Definitionen der Browser auf einen einheitlichen Stand zur&uuml;cksetzt.</li>
<li><a href="http://de.wikipedia.org/wiki/Conditional_Comments" target="_blank"><strong>Conditional Comments</strong></a> helfen Stylesheets, JavaScripts und HTML-Code nur unter bestimmten Bedingungen ausf&uuml;hren zu lassen. Somit kann man einfach und schnell CSS-Definitionen, welche bspw. nur f&uuml;r den IE6 gelten sollen, erstellen.</li>
<li>In <a href="http://jquery.com/"><strong>jQuery</strong></a> ist die <strong>Browser-Detection</strong> einhilfreiches&nbsp; Feature um Browser-Bugs zu erkennen und diese zu umgehen.</li>
<li>Zu den weniger technischen Tipps z&auml;hlen nat&uuml;rlich das Sammeln von Erfahrung. Nichts ist wertvoller als Erfahrung das gilt Besonders beim Entwickeln und Testen. Wer schon beim Schreiben des Codes wei&szlig;, dass der IE 6 bestimmte CSS-Definitionen gar nicht kennt oder falsch interpretiert, kann bereits zu diesem Zeitpunkt darauf reagieren und somit viel Zeit sparen.</li>
<li>Au&szlig;erdem sollte man oft und m&ouml;glichst viel testen. Haha, w&auml;r h&auml;tte es gedacht!? Nein, ich meine es ernst: intensive Testing-Phasen sollten als Teil der Softwareentwicklung angesehen werden und in der Aufwandsabsch&auml;tzung entsprechend ber&uuml;cksichtigt werden, um die n&ouml;tige Zeit zu schaffen, diese Tests durchzuf&uuml;hren.</li>
<li>Kommunikation ist das A und O in Projekten mit mehreren Mitarbeitern. Das kann jeder best&auml;tigen, der mal ein Team-Projekt in den Sand gesetzt hat. Nicht selten liegt das an mangelnder Kommunikation zwischen den Beteilligten. Warum dies hier relevant ist, hatte ich ja bereits in Punkt 5 weiter oben angesprochen.</li>
<li>Der Entwickler sollte unter keinen Umst&auml;nden der einzige Tester bleiben. Kein Tester ist besser als jemand, der nicht selbst an dem Projekt mitentwickelt aber die Anforderungen des Kunden kennt. Der Entwickler selbst &uuml;bersieht zu schnell Fehler und kann daher keine so gute Qualit&auml;tssicherung betreiben, wie jemand der nicht schon seit 2 Wochen die gleiche GUI vor der Nase hat.</li>
<li>Fehler passieren. Jedem. Selbst den Besten. Man sollte keine Angst haben sich seinen Fehlern zu stellen, sondern sie als wichtigen Bestandteil der Arbeit ansehen. Denn nur aus Fehlern lernt man und erst so entsteht die Erfahrung, welche ben&ouml;tigt wird um nicht die gleichen Fehler immer wieder zu machen.</li>
</ul>
<p>Wendet man diese Tipps und Tools an, kann man das Testen und Optimieren von webbasierten System f&uuml;r die verschiedenen Browser effizienter gestalten und somit viel Zeit und Nerven sparen.</p>
<p>Kennt ihr weitere Tipps oder Tools? Welche Erfahrungen habt ihr gemacht?</p>
<h4  class="related_post_title">Ähnliche Artikel</h4><ul class="related_post"><li><a href="http://blog.itws.de/546/quickndirty-stylesheet-limits-im-ie/" title="Quick&#8217;n'Dirty: Stylesheet Limits im IE">Quick&#8217;n'Dirty: Stylesheet Limits im IE</a></li><li><a href="http://blog.itws.de/52/css-firefox-darstellungsprobleme-bei-contenteditable/" title="[CSS] Firefox: Darstellungsprobleme bei contenteditable">[CSS] Firefox: Darstellungsprobleme bei contenteditable</a></li><li><a href="http://blog.itws.de/434/der-internet-explorer-9-ist-da/" title="Der Internet Explorer 9 ist da">Der Internet Explorer 9 ist da</a></li></ul> <p><a href="http://blog.itws.de/?flattrss_redirect&amp;id=246&amp;md5=0c7e6c77609f87de42362e61316a0595" title="Flattr" target="_blank"><img src="http://blog.itws.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.itws.de/246/effizientes-cross-browser-development/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[CSS] Firefox: Darstellungsprobleme bei contenteditable</title>
		<link>http://blog.itws.de/52/css-firefox-darstellungsprobleme-bei-contenteditable/</link>
		<comments>http://blog.itws.de/52/css-firefox-darstellungsprobleme-bei-contenteditable/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 06:39:22 +0000</pubDate>
		<dc:creator>Benny</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[contenteditable]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://localhost/itws/?p=52</guid>
		<description><![CDATA[Das HTML-Attribut &#34;contenteditable&#34; ist eine tolle Sache. Einmal aktiv, kann der User den Inhalt des Elements bearbeiten. WYSIWYG-Editoren wie der CKEditor oder TinyMCE setzen diese Technik ein um das WYSIWYG zu erm&#246;glichen. &#160; Im Firefox gibt es hier allerdings einen kleinen Bug. Links innerhalb eines Elements mit aktiven contenteditable, werden blau/lila und unterstrichen dargestellt, unabh&#228;ngig davon, was der User per CSS definiert hat. &#160; Woran liegt das? Ganz einfach, an folgender CSS-Definition im User-Agent-CSS des [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.itws.de/wp-content/uploads/2010/09/1290693039_Firefox.png"><img alt="" class="alignleft size-full wp-image-348" height="128" src="http://blog.itws.de/wp-content/uploads/2010/09/1290693039_Firefox.png" title="1290693039_Firefox" width="128" /></a>Das HTML-Attribut &quot;<strong><em>contenteditable</em></strong>&quot; ist eine tolle Sache. Einmal aktiv, kann der User den Inhalt des Elements bearbeiten. WYSIWYG-Editoren wie der CKEditor oder TinyMCE setzen diese Technik ein um das WYSIWYG zu erm&ouml;glichen.</p>
<p>&nbsp;</p>
<p>Im Firefox gibt es hier allerdings einen kleinen Bug. Links innerhalb eines Elements mit aktiven <em>contenteditable</em>, werden blau/lila und unterstrichen dargestellt, unabh&auml;ngig davon, was der User per CSS definiert hat.</p>
<p>&nbsp;</p>
<p><span id="more-52"></span></p>
<p>Woran liegt das? Ganz einfach, an folgender CSS-Definition im User-Agent-CSS des Firefox&#39;:</p>
<pre class="css" name="code">a:link:-moz-read-write {
&nbsp;&nbsp;&nbsp; color: -moz-hyperlinktext;
&nbsp;&nbsp;&nbsp; text-decoration: underline -moz-anchor-decoration;
}</pre>
<p>Das nervt etwas, da man diese Definition &uuml;berschreiben muss um die Link-Darstellung an das Layout der Seite anzupassen:</p>
<pre class="css" name="code">a:link:-moz-read-write {
&nbsp;&nbsp;&nbsp; color: green;
&nbsp;&nbsp;&nbsp; text-decoration: none;
}</pre>
<p>Ob das nun ein Bug ist oder einen tiefgr&uuml;ndigen Sinn hat, wei&szlig; ich nicht genau. Habe dar&uuml;ber leider auch nicht viel herausgefunden.</p>
<h4  class="related_post_title">Ähnliche Artikel</h4><ul class="related_post"><li><a href="http://blog.itws.de/246/effizientes-cross-browser-development/" title="Effizientes Cross-Browser-Development">Effizientes Cross-Browser-Development</a></li><li><a href="http://blog.itws.de/546/quickndirty-stylesheet-limits-im-ie/" title="Quick&#8217;n'Dirty: Stylesheet Limits im IE">Quick&#8217;n'Dirty: Stylesheet Limits im IE</a></li><li><a href="http://blog.itws.de/464/aktuelles-system/" title="Aktuelles System">Aktuelles System</a></li></ul> <p><a href="http://blog.itws.de/?flattrss_redirect&amp;id=52&amp;md5=2e50488d4abe2ef80f615e71c32f2c47" title="Flattr" target="_blank"><img src="http://blog.itws.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.itws.de/52/css-firefox-darstellungsprobleme-bei-contenteditable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

