<?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>The Digital Life of Keith Baker.&#187; webdesign Archives  &#8211; iKeif &#8211; tech and social media geek, mootools fan, and a ton of links</title>
	<atom:link href="http://ikeif.net/category/webdesign/feed/" rel="self" type="application/rss+xml" />
	<link>http://ikeif.net</link>
	<description>iKeif.net - Web developer, father, and brewer.</description>
	<lastBuildDate>Sat, 08 May 2010 03:07:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CSS Best Practices and a Return to the Basics</title>
		<link>http://ikeif.net/2009/10/26/css-practices-return-basics/</link>
		<comments>http://ikeif.net/2009/10/26/css-practices-return-basics/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 18:30:57 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[web development]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[creatives]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[equalizer]]></category>
		<category><![CDATA[performance issues]]></category>
		<category><![CDATA[style sheet]]></category>
		<category><![CDATA[styling]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=466</guid>
		<description><![CDATA[This article is not about learning CSS. It&#8217;s about having a set architecture in a project when moving forward. One of the first things in beginning development is setting in place a best practice procedure when moving forward &#8211; it&#8217;s not saying &#8220;there is only one way&#8221;, it&#8217;s saying &#8220;for this project, this is how [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>This article is not about learning CSS. It&#8217;s about having a set architecture in a project when moving forward. One of the first things in beginning development is setting in place a best practice procedure when moving forward &#8211; it&#8217;s not saying &#8220;there is only one way&#8221;, it&#8217;s saying &#8220;for this project, this is how we are moving forward.&#8221;</p>
<h2>Rule: Choose a Browser Reset Style Sheet</h2>
<h3>Choose one, or don&#8217;t use one.</h3>
<p>This helps you on your cross-browser journey. If we reset all browsers to zero, it allows you to spend less time figuring out why margins are inconsistent amongst your unordered list elements (&lt;ul&gt;). This also sets you up to have a default font-family and consistent font-sizes, line-heights, etc. <strong>This is most important when cross-browser similarity is a high-concern.</strong> </p>
<h3>CSS Resets are Bad, M&#8217;Kay?</h3>
<p><a href="http://snook.ca/archives/html_and_css/no_css_reset/">Jonathan Snook stated that he &#8220;&#8230;okay if the various browsers show things slightly differently.&#8221;</a> <a href="http://meiert.com/en/blog/20080419/reset-style-sheets-are-bad/">Jens Meiert also states CSS Resets are bad </a>because they essentially add up to a defined style being overwritten repeatedly, adding to network latency due to the multiple requests for CSS. Then follows up with the comment of using <em>* { margin: 0; padding: 0; }</em> which itself is a bit of a hack and causes performance issues.</p>
<p>To be honest, the argument that CSS Resets/the * hack are a bit of a red-herring. For the majority of clients/sites I&#8217;ve worked on, this has been an incredibly minor concern. We&#8217;re talking milliseconds. Not even on the radar type performance hits. If you want to squeeze every millisecond (and I do) this is kind of an extreme (even for me) case.</p>
<p>Unfortunately, not all of us are as lucky as Snook and we work with clients/creatives that are not okay with things being a few pixels off sometimes. Personally, I&#8217;m with Snook.</p>
<h3>Should You Choose To Reset</h3>
<p>You have several to choose from:</p>
<ul>
<li><a href="http://tobymiller.com/articles/css_equalizer/index.php">Toby Miller&#8217;s Equalizer</a></li>
<li><a href="http://meyerweb.com/eric/tools/css/reset/">Eric Meyer&#8217;s Reset</a></li>
<li><a href="http://developer.yahoo.com/yui/reset/">YUI&#8217;s Reset</a></li>
</ul>
<h2>Rule: Link States</h2>
<p>This is referred to as the &#8220;LoVe HaTe&#8221; rule. <em>:link :visited :hover :active</em><br />
This relates to CSS specificity, below.</p>
<h2>Rule: CSS Specificity</h2>
<p><a href="http://meyerweb.com/eric/css/link-specificity.html" title="CSS Specificity">Eric Meyer has a great article on CSS specificity</a> in general that I find lame when sites try to duplicate his article with their own &#8220;twist.&#8221;<br />
I fully admit, I suffer from over specificity. For good measure, you can read <a href="http://code.google.com/speed/page-speed/docs/rendering.html#UseEfficientCSSSelectors" title="Google's article about CSS specifity">Google&#8217;s article about CSS specifity</a> and the increase in performance by using effective CSS selectors.</p>
<p>To reiterate certain aspects, DON&#8217;T put a class and ID on everything.</p>
<pre name="code" class="css">
div.imageHolder img#imageHolderImage /* this is BAD */
div.imageHolder img /* this is BETTER */
.imageholder img /* ding ding ding! we have a winner! */
</pre>
<p>As well, don&#8217;t code things inappropriately, i.e. use nested divs/p to generate what is essentially an unordered list.</p>
<pre name="code" class="xhtml">
<div id="unorderedList">
<div class="listItem">Test</div>
<div class="listItem">Test</div>
</div>

<!-- should be -->
<ul id="idIfNecessary">
<li class="first">Target the first item</li>
<li>General list item</li>
<li class="last">Target the last item</li>
</ul>
</pre>
<h2>Rule: Naming Convention</h2>
<p>We won&#8217;t dwell on this. <strong>BE GENERIC.</strong> It&#8217;s better to have &#8220;.active&#8221; or &#8220;.select&#8221; and NOT &#8220;.greenActiveText&#8221; &#8211; what happens when green active text becomes orange? Now you have a poorly named class.<br />
Also, pick a naming structure and STICK TO IT. camelCase? Dashes-instead? Hell_underscores_are_okay, <em>AS LONG AS YOU ARE CONSISTENT</em>. Do not change it up. This is <strong>extremely important walking on to a project.</strong> If you walk in and the prior developer is doing it different than you are used to, <strong>ADOPT THEIR STYLE</strong>, DO NOT REWRITE IT, ADD TO IT, OR MAKE IT MORE COMPLEX THAN NEED BE.</p>
<h2>Rule: Shorthand</h2>
<p><a href="http://www.dustindiaz.com/css-shorthand/" title="CSS Shorthand">Use it. Know it. Love it.</a></p>
<pre name="code" class="css">
div {
	background-image: url("to/some/image");
	background-repeat: repeat-x;
	border-width: unit;
	border-style: (solid dashed dotted double);
	border-color: color || #hex || (rgb / % || 0-255);
	color: #669900;
	margin-top: 10px;
	margin-right: 9px;
	margin-bottom: 8px;
	margin-left: 7px;
	padding-top: 10px;
	padding-right: 5px;
	padding-bottom: 10px;
	padding-left: 0px;
}
div {
	background: url(to/some/image) repeat-x;
	border:border-width border-style border-color;
	color: #690;
	margin: 10px 9px 8px 7px;
	padding: 10px 5px 10px 0;
}
</pre>
<p>Notice the &#8220;0&#8243; has no identifier. It doesn&#8217;t need one. Notice 13 lines became 5. Love that. <a href="http://www.w3.org/TR/CSS21/syndata.html#uri" title="We also dropped the quotes to prevent any possible browser errors">We also dropped the quotes to prevent any possible browser errors</a>. Get to know your CSS shorthand.</p>
<h2>Rule: Browser Targeting</h2>
<p>For the love of God, they&#8217;re called hacks for a reason. They are hacky. They shouldn&#8217;t work, but do. You could fuck another browser down the line. You could introduce errors. <strong>DO NOT USE BROWSER HACKS</strong> This is a bigger sign that *you* are a hack and a not a proper developer. These are the &#8220;once in a lifetime&#8221; things that come up.</p>
<p>Except for IE.</p>
<p>Fortunately, IE has a nice, clean targeting system. <a href="http://www.quirksmode.org/css/condcom.html" title="Conditonal comments">Conditonal comments</a>. If you target IE, use Conditional Comments.</p>
<h2>Rule: CSS Behaviors Require JavaScript</h2>
<p>If you&#8217;re writing CSS Behaviors, move it into JavaScript. Plain and simple. There is no reason to have CSS behaviors. At all.</p>
<h2>Rule: Organize Your CSS</h2>
<p>I know this one can be a bitch. The project can change. Your initial strucutre may not make sense. But try to organize it to prevent redundancy.</p>
<h3>Alphabetize Yo&#8217; Self</h3>
<p>I alphabetize my CSS because I find it easy to read, search, and peruse. I also use a code highlighter in <a href="http://www.jedit.org/" title="jEdit">jEdit</a>. Others group it by property (font styling, positioning, dimensions). I prefer my way, but that doesn&#8217;t make it right. Just when I&#8217;m leading the project.</p>
<h2>Rule: Comment, Comment, Comment!</h2>
<p>Comment the shit out of anything you are handing off. Eat the bytes. But don&#8217;t go crazy. /* this is a comment */ not /*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; (several lines of this) CODE COMMENT (repeat several lines) &#8212;&#8212;&#8212;-*/ Keep it simple. Keep it common sense. Break it up by section (however you organize your CSS).</p>
<h2>Rule: The DO NOT Do List:</h2>
<p><strong>Don&#8217;t do these.</strong></p>
<h3>Don&#8217;t Use Inline Styles. Period.</h3>
<p>Inline styles defeat the whole &#8220;separation of content and design.&#8221; Maintenance becomes a bitch, frankly. You also add to page weight, and can cause issues when a developer doesn&#8217;t realize you&#8217;ve done things inline and their properly coded external styles are not working properly.</p>
<p><em>But Keif, I do this all the time in development&#8230;</em> &#8211; that&#8217;s fine, Timmy, but if you &#8220;accidentally&#8221; leave one in to production, or check it into SVN/CVS/Git and try to act like it&#8217;s not your fault, you&#8217;ve proven the point why you shouldn&#8217;t do this.</p>
<h3>Reuse a &#8220;Standard&#8221; Set of Specific Styles</h3>
<p>I don&#8217;t mean reset. I don&#8217;t mean element specific/font styling type items. I mean don&#8217;t use classes that are specific. #width100 .marginLeft25. This is representative of bad coding in general.</p>
<p>Now, this is a brief overview of many &#8220;best practices&#8221; I try to run with and improve upon. <a href="http://lmgtfy.com/?q=CSS+Best+Practices" title="Google CSS Best Practices">Google CSS Best Practices</a> and you&#8217;ll find a slew of additional resources. Not all of them will agree with me &#8211; but that&#8217;s not the point. The point is understanding them, and recognizing that <strong>someone else&#8217;s preference may override your own, and my not be technically wrong</strong>. If you fail to recognize this, you need to reconsider your role and what you&#8217;re doing &#8211; you need to be both a team player that can adapt and evolve, and an innovator should you be charged with leading the effort.</p>
<p>What do you have? Send me your best (or worst you&#8217;ve seen!)</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://ikeif.net">The Digital Life of Keith Baker.</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@ikeif.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/10/26/css-practices-return-basics/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>IE6, VML, AlphaImageLoader and You (and Your E-Commerce Baby)</title>
		<link>http://ikeif.net/2009/10/23/ie6-vml-alphaimageloader-ecommerce-baby/</link>
		<comments>http://ikeif.net/2009/10/23/ie6-vml-alphaimageloader-ecommerce-baby/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 06:30:16 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[alphaimageloader]]></category>
		<category><![CDATA[browser requirements]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[internet browsers]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[web accessibility]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=463</guid>
		<description><![CDATA[A constant debate is always &#8220;why support IE6? It&#8217;s expensive, it&#8217;s annoying.&#8221;
Now, I&#8217;m not disagreeing with that. I don&#8217;t like IE6. It&#8217;s old. It&#8217;s broken. I&#8217;d prefer it went away. Unfortunately, IE6 represents over 30% of all IE traffic (which represents roughly 64% of all internet browsers).
It&#8217;s not representative of my site.
If you pay attention [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>A constant debate is always &#8220;why support IE6? It&#8217;s expensive, it&#8217;s annoying.&#8221;</p>
<p>Now, I&#8217;m not disagreeing with that. I don&#8217;t like IE6. It&#8217;s old. It&#8217;s broken. I&#8217;d prefer it went away. Unfortunately, IE6 represents over 30% of all IE traffic (which represents roughly 64% of <a href="http://en.wikipedia.org/wiki/Usage_share_of_web_browsers">all internet browsers</a>).</p>
<h2>It&#8217;s not representative of my site.</h2>
<p>If you pay attention to your browser metrics, you can see that IE6 is not representative of your site. At all. You can see this as a green light to ignore IE6 (particularly if it&#8217;s an <em>intranet </em>or <em>members-only</em> site, as you can dictate browser requirements as a &#8220;bare-minimum&#8221;). If you&#8217;re a blog, I&#8217;m all for ignoring IE6. I encourage more sites to do it.</p>
<p>Now there is one slight flaw with that argument. What if your site gets dugg? Slashdotted? Attached to a virus and spread? Date Is ay it &#8211; maybe an article you write goes viral?</p>
<h2>Some Microsoft This Way Comes</h2>
<p>Outside of a sudden surge in popularity, the other *very realistic* look is e-commerce sites. I don&#8217;t care who you are, a dollar is a dollar, and as such your e-commerce site better accommodate every visitor. No flash reliance, no JavaScript reliance. Period. I don&#8217;t care about it looking the same, but I better be able to make a purchase via <a href="http://lynx.isc.org/">Lynx</a>. More importantly, any handicap should be accounted for (blind is the most often thought of). This is what we call <a href="http://www.w3.org/WAI/">Web Accessibility</a>. All angles should be covered, within reason. And IE6, regardless of your metrics, is within reason.</p>
<h2>AlphaImageLoader &#8211; Ye Olde Standard</h2>
<p>I think anyone who is &#8220;in the biz&#8221; knows about AlphaImageLoader. We&#8217;ve all done the CSS replacement. I helped adjust and edit a <a href="http://mootools.net/">MooTools Class</a> that utilized it to account for all sorts of PNG situations. It was our &#8220;standard&#8221; because it was able to account for IE6 with a minimal amount of effort. Except&#8230;<br />
AlphaImageLoader does not support background-repeat, or background-position. It requires set heights and widths. It requires one-off styling for images that are cropped. Plain and simple, it still sucked.</p>
<h2>VML &#8211; The New Contender</h2>
<p>I stumbled on a VML solution after researching a site to see how they were handling PNGs. It turns out they were utilizing <a href="http://www.dillerdesign.com/experiment/DD_belatedPNG/">DD_belatedPNG</a>. I dug into VML vs. AlphaImageLoader and came across this article explaining the same thing &#8211; <a href="http://cfis.savagexi.com/2008/06/22/a-new-take-on-transparent-pngs-in-ie6-performance-and-vml">AlphaImageLoader or VML</a>.</p>
<p>The obvious is pointed out: AlphaImageLoader eats memory. VML adds bad markup to a page. IE6 does *not* cache the image (according to the article, at least).</p>
<p>So, we&#8217;re stuck with a memory hog or a lot of image requests against a server, which can add to a lot of bandwidth costs if your traffic spikes (it happens).</p>
<h2>Will The Real Slim Code Please Stand Up?</h2>
<p>After reviewing <a href="http://www.dillerdesign.com/experiment/DD_belatedPNG/">DD_belatedPNG</a> a second time, he claims to &#8220;mostly&#8221; have fixed the caching issue. To be honest, with as much grief I&#8217;ve had from AlphaImageLoader and changes in creative layouts that require PNG transparency, it seems like a real replacement for AlphaImageLoader, loaded using JavaScript and conditional comments so <strong>ONLY</strong> IE6 takes the hit.</p>
<p><strong>The downfalls? </strong>No opacity on the VML. I haven&#8217;t looked into creating a container to wrap the VML and fading that, but call me crazy, it may not work. This means we may have to keep AlphaImageLoader around for a little while longer. I&#8217;m not sold that either solution will replace the other, but they both are going to be invaluable until IE6 goes the way of the dinosaur.</p>
<h2>Performance Concerns? Not with VML.</h2>
<p>Thank God someone else ran the numbers. <a href="http://ap-project.org/English/Article/View/83/">Tests have been ran</a>, and also <a href="http://yuiblog.com/blog/2008/12/08/imageopt-5/">Yahoo! provided some additional numbers</a> to help showcase that VML is not the memory hog AlphaImageLoader is. Bonus!</p>
<p><a href="http://www.artzstudio.com/2008/07/png-alpha-transparency-no-clear-winner/">There is the argument that a PNG 8-bit image is a better solution.</a> No CSS hackery, no JavaScript intervention. However, it requires whomever the developer is, and also whomever the designer is cutting up your graphics to be familiar with proper image optimization techniques to insure an efficient, optimized experience.</p>
<h3>The REAL Solution<br />
The priority of the solutions seems evident. PNG 8-bits for most cases. VML through most others. AlphaImageLoader only as absolutely necessary. I do believe that a JavaScript solution is the best solution for IE6 AFTER 8-bit PNG images (ran through a PNG optimizer (like <a href="http://pmt.sourceforge.net/pngcrush/">PNGCrush</a>).</p>
<p>Unfortunately, such optimal solutions require trained developers and trained designers. Who has time for that? <strong>You should make time to insure success.</strong></p>
<p>Enjoy.</h3>
<hr/>Copyright &copy; 2010 <strong><a href="http://ikeif.net">The Digital Life of Keith Baker.</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@ikeif.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2009/10/23/ie6-vml-alphaimageloader-ecommerce-baby/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Return of the &lt;noscript&gt;</title>
		<link>http://ikeif.net/2008/11/23/return-noscript/</link>
		<comments>http://ikeif.net/2008/11/23/return-noscript/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 04:45:59 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[transparency]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=353</guid>
		<description><![CDATA[As a web developer, you&#8217;re constantly approached with pulling off zany schemes. In the words of Ian Malcolm:
Yeah, but your scientists were so preoccupied with whether or not they could, they didn&#8217;t stop to think if they should.
Replace &#8220;scientists&#8221; with &#8220;designers&#8221; and you see the dilemma. They know you can pull off some funky effects [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>As a web developer, you&#8217;re constantly approached with pulling off zany schemes. In the words of Ian Malcolm:</p>
<blockquote><p>Yeah, but your scientists were so preoccupied with whether or not they could, they didn&#8217;t stop to think if they should.</p></blockquote>
<p>Replace &#8220;scientists&#8221; with &#8220;designers&#8221; and you see the dilemma. They know you can pull off some funky effects in flash, so they opt to flash. However, flash is still not quite as easilly accessible and searchable that we all would like &#8211; and please, you can try to argue this point, but the majority of flash efforts I&#8217;ve seen tend to bypass the accessibility and searchability because it&#8217;s just easier to do the cool animations/sounds/effects/transparencies in flash (or flex) than it is to do in javascript.</p>
<h2>Internet Explorer be damned!</h2>
<p>The unholy bastion of a front-end developers existence tends to fall on <a href="http://marketshare.hitslink.com/report.aspx?qprid=2">IE6 &#8211; which is at 24% and dropping in its market share</a>. This is always the what I end up falling on when talking to a fellow developer, and it usually goes like this:</p>
<p><strong>Me: </strong>We could totally pull off that flash effect! We can do multiple animations using mootools, and it&#8217;d be indexable and still be applicable without javascript if we code it right!</p>
<p><strong>Him: </strong>You mean those large transparent PNG images that would be sliding into place?</p>
<p><strong>Me: </strong>Right! We could..totally&#8230; pull it off&#8230; in everything except IE6&#8230;.</p>
<p><strong>Him:</strong> &#8230;</p>
<p><strong>Me:</strong> &#8230;shit.</p>
<p>I mean, this isn&#8217;t too far from the truth, but the point is &#8211; accounting for IE6 is a bitch. I recently had to redo someone else&#8217;s code that used a PNG script I had rewrote because the alphapng filter was hitting multiple images on the page (dozens of images had a filter alpha opacity of 1). A quick audit of the code and reorganizing the javascript (ahhh&#8230; another blog post for the future, me thinks?) and suddenly IE6 was back in action, faster than ever!&#8230;.not really, but it was at least <em>usable</em>.</p>
<p>So you see a lot of our ideas rely on javascript being utilized &#8211; or flash, which still will rely on javascript to be embedded &#8211; <a href="http://code.google.com/p/swfobject/wiki/documentation">again, because of IE and other cross-browser issues</a> &#8211; so we need to keep in mind that hankering feeling&#8230;</p>
<h2>What if they don&#8217;t have javascript?</h2>
<p>No doubt, some people with disabilities may still be able to use a site that utilizes javascript. It&#8217;s possible that they may have some ability to use a browser, but if they don&#8217;t turn off javascript, <a href="http://www.stuffbysarah.net/2006/07/22/dont-rely-on-javascript/">it may make it a more difficult browsing experience</a>. Don&#8217;t forget, there are a plethora of mobile browsers that may/may not do javascript well, if at all.</p>
<p>This falls into a certain realm of uncertainty &#8211; and as I ran through a gamut of big e-tailers sites (<a title="American Eagle" href="http://ae.com">American Eagle</a>, <a href="http://www.anthropologie.com/anthro/index.jsp">Anthropologie</a>, <a href="http://www.llbean.com/">L.L. Bean</a>, amongst others) L.L. Bean was the only one that I could purchase from (well, reach a point where they ask for payment).</p>
<p>The inherent problem of this, they rely on AJAX calls to do their server side form validation &#8211; so it&#8217;s possible that if you don&#8217;t have javascript, you could still enter bad data and find out your Christmas order is incorrect, maybe too late when they call to tell you why your credit card was declined, or that it was sent to a non-existant address.</p>
<p>Understandably &#8211; <strong>from a SEO perspective</strong>, they only need to index up to the product pages. If they&#8217;re smart, they don&#8217;t have any &#8220;highly relevant, high-traffic&#8221; content in their shopping cart pages or payment pages (it seems that those are generic, so it <em>should</em> be moot). The dilemma occurs in how they handle that percentage that is browsing without javascript. Maybe it&#8217;s a small percentage. Maybe it&#8217;s corporate users, or users from the large assortment of mobile devices. The point is &#8211; why should you neglect a sale just because they&#8217;re on webTV?</p>
<h2>Enter the <span style="text-decoration: line-through;">Dragon</span> &lt;noscript&gt;</h2>
<p><a href="http://www.quirksmode.org/js/placejs.html">PPK on quirksmode wrote about the use of &lt;noscript&gt;</a> and it&#8217;s use in helping point out (to the majority of browsers) that we can throw a little message stating that &#8220;<strong>hey &#8211; you need javascript.</strong>&#8221; I&#8217;ve looked at L.L. Bean&#8217;s source code, and they&#8217;re littered with &lt;noscript&gt;. But really, this shouldn&#8217;t be a concern as&#8230;<br />
You shouldn&#8217;t be catering to a rich experience.</p>
<p>Really. You should be presenting a website that works &#8211; period. I should be able to hit it in lynx. In Safari. My iPhone. His blackberry. IE6. IE5. We shouldn&#8217;t be relying on javascript to pull off effects and basic, fundamental functionality. Javascript is an enhancement, not a requirement.<strong> If it&#8217;s required, you&#8217;ve failed.</strong></p>
<p>I&#8217;m not saying I&#8217;ve got all the answers &#8211; but I do know that if we want to code in a way that no matter what crap happens in the near future, we need to focus on the basics and get them executed as cleanly, and simply as possible.</p>
<p>There may be a point that we finally say &#8211; okay, you&#8217;ll need javascript to get these cool &#8220;up to the minute&#8221; updates, live editing, in place context editing, etc. But that&#8217;s really at a point when you have to decide &#8211; who is this website for? Who am I catering to? Why do I care if the degraded expeience means things pop instead of fade in? More than likely, this same day will be when you say&#8230;</p>
<p><strong>Shit, a fraction of a percent of people visit my site on IE6. I might want to tell them to upgrade.</strong></p>
<hr/>Copyright &copy; 2010 <strong><a href="http://ikeif.net">The Digital Life of Keith Baker.</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@ikeif.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2008/11/23/return-noscript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mootools Mouse Events</title>
		<link>http://ikeif.net/2008/07/29/mootools-mouse-events/</link>
		<comments>http://ikeif.net/2008/07/29/mootools-mouse-events/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 03:23:42 +0000</pubDate>
		<dc:creator>keif</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript events]]></category>
		<category><![CDATA[mootools events]]></category>
		<category><![CDATA[mouse events]]></category>

		<guid isPermaLink="false">http://ikeif.net/?p=161</guid>
		<description><![CDATA[Something I see brought up on occasion are people that do not understand the concept of addEvent:


Custom Native to allow all of its methods to be used with any DOM element via the dollar function .
These methods are also available on window and document.


And as shown on the new unofficial mootools mooforum -  people can [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Something I see brought up on occasion are people that do not understand the concept of <a href="http://docs.mootools.net/Element/Element.Event">addEvent</a>:</p>
<blockquote>
<ul>
<li>Custom Native to allow all of its methods to be used with any DOM element via the dollar function .</li>
<li>These methods are also available on window and document.</li>
</ul>
</blockquote>
<p>And as shown on <a title="Mootools MooForum" href="http://mooforum.net"><strong>the new unofficial mootools mooforum</strong></a> -  <a href="http://www.mooforum.net/help12/fading-and-out-sub-nav-with-hover-trigger-t40.html">people can get lost</a> when we talk about <a href="http://www.w3schools.com/html/html_eventattributes.asp">mouseenter/mouseleave events</a> &#8211; they are not Mootools Events, but generic javascript events with a slight tweak!</p>
<h2>The difference between a Javascript Event and a Mootools Event</h2>
<p>Instead of &#8216;onclick&#8217; or &#8216;onsubmit&#8217; or &#8216;onchange&#8217; we do &#8216;click&#8217;, &#8217;submit&#8217;, &#8216;change&#8217; &#8211; it&#8217;s a little syntax difference that people forget sometimes.</p>
<p>Just to clarify:</p>
<div class="codeholder">
<div id="cb89227" class="text" style="font-family: monospace;">
<ol>
<li class="li1"></li>
<li class="li2">// set the fade time and initially hide sub navs</li>
<li class="li1">theSubNav.get(&#8216;tween&#8217;).options.duration=1000;</li>
<li class="li2">theSubNav.fade(&#8216;hide&#8217;);</li>
<li class="li1"></li>
<li class="li2">// hover on causes sub nav to fade in</li>
<li class="li1">theHover.addEvent(&#8216;mouseover&#8217;, function(event) {</li>
<li class="li2"> event = new Event(event).stop();</li>
<li class="li1"> theSubNav.fade(&#8216;in&#8217;);</li>
<li class="li2"></li>
<li class="li1">});</li>
<li class="li2"></li>
<li class="li1">// hover off causes sub nav to fade out</li>
<li class="li2">theHover.addEvent(&#8216;mouseout&#8217;, function(event) {</li>
<li class="li1"> event = new Event(event).stop();</li>
<li class="li2"> theSubNav.fade(&#8216;out&#8217;);</li>
<li class="li1"></li>
<li class="li2">});</li>
</ol>
<p>That is just like calling &#8216;onmouseover&#8217; or &#8216;onmouseout&#8217; &#8211; just the mootools way!</p></div>
</div>
<hr/>Copyright &copy; 2010 <strong><a href="http://ikeif.net">The Digital Life of Keith Baker.</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@ikeif.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://ikeif.net/2008/07/29/mootools-mouse-events/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
