<?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>Monday By Noon &#187; Internet-Explorer</title>
	<atom:link href="http://mondaybynoon.com/tag/internet-explorer/feed/" rel="self" type="application/rss+xml" />
	<link>http://mondaybynoon.com</link>
	<description>A resource for Web designers and developers to read about and discuss their craft.</description>
	<lastBuildDate>Wed, 18 Aug 2010 17:44:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>How to Handle IE6: Aggressive Graceful Degradation</title>
		<link>http://mondaybynoon.com/2009/09/21/aggressive-graceful-degradation/</link>
		<comments>http://mondaybynoon.com/2009/09/21/aggressive-graceful-degradation/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 13:00:35 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Favorites]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[graceful-degradation]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[Internet-Explorer]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/?p=576</guid>
		<description><![CDATA[I'd like to propose an Internet Explorer contract addendum in which we notify clients that their project will gracefully degrade for IE.]]></description>
			<content:encoded><![CDATA[<p>No matter how much it may bother us, IE6 is still quite a hot topic around our little community. Two camps have recruited their groups and each seems quite comfortable with the accepted stance on their side of the fence. To one segment, IE6 is literally a bane of existence, and taking active aggressive measures against IE is daily practice. The other side, however, <strong>sucks it up and deals</strong>.</p>
<p>I often challenge my own stance on handling IE6, and have found what I consider to be a happy medium between both sides of this argument. I can&#8217;t in good faith stand behind the abrasive method of completely blocking (or severely limiting) access to a site based on user agent. Another way of handling things is to serve a completely alternate stylesheet, or remove the styles altogether. I prefer that solution over a roadblock.</p>
<p>At the other end of the spectrum, designers will do anything and everything to make the best of the situation, including tracking and billing time specifically for IE6 support. These designers seem to be most irritable when it comes to IE6, and understandably so. There&#8217;s a better solution. There is middle ground.</p>
<h2>Support IE6, but don&#8217;t cater to it</h2>
<p>I (and my company) <strong>support IE6</strong>. We do it because we have a strong feeling about accessibility, and supporting IE6 is really not a big deal.</p>
<p>The biggest calling to roadblock IE6 is by far its CSS &#8220;support&#8221; &mdash; that&#8217;s what gives the biggest headaches and leaves everyone running for the hills. The thing to remember, though, is that you&#8217;re a professional. With each project, <em>working with IE6 is going to get easier</em>. You&#8217;ll remember the disaster happened last time, and you&#8217;re going to remember <strong>how you fixed it</strong>. You&#8217;re not going to be faced with that problem this time around, or ever again. Get a couple years of that under your belt and you&#8217;re on Easy Street.</p>
<p>I&#8217;m not saying that your fixes need to go above and beyond a level of reason for the sake of IE6. The markup and style we&#8217;re writing is solid, right? There&#8217;s no reason we can&#8217;t quickly gracefully degrade a document either out of the box or by force. If that drop shadow is giving you trouble, <em><strong>tell IE6 it&#8217;s not there</strong></em> and continue with the next task. This design uses a series of PNGs to bring it to the next level? Don&#8217;t bother with PNG fixes; use a choppy GIF or nothing at all. Next.</p>
<p>Another major reason for roadblocking IE6 is JavaScript support. Even though we&#8217;re working with superb JavaScript libraries, things sometimes just don&#8217;t work out the way we expect. Here&#8217;s the answer for that:</p>
<p>JavaScript enhances the document viewing experience by adding an additional behavioral level, right? We&#8217;re talented professionals who have already built a fallback version of this document to directly compensate for the absence of JavaScript, right? Our problem is solved: <strong>IE6? Don&#8217;t fire our JavaScript.</strong> If it&#8217;s going to be a headache, why bother? We have a perfectly good version of the document that was only progressively enhanced by the JavaScript. IE6 can&#8217;t hack it, so just shut it off. Deliver the reduced experience because your viewer, for one reason or another (it doesn&#8217;t really matter, does it?) is using a terrible browser.</p>
<p>My point is, that the frustration regarding IE6 comes from forgetting about the medium in which we work. Pixel perfection is a lost cause, and that not only deals with off-by-one-pixel situations, that expands to include the bigger picture including both design assets and behavior enhancements. Don&#8217;t try to replicate the beauty of the original design in IE6, just make it accessible and move on.</p>
<h3>Aggressive Graceful Degradation</h3>
<p>I&#8217;ve come to call this view of IE6 support Aggressive Graceful Degradation. Instead of relying on your implementation to fall back to a working version of something, you instead <em>force the changes</em> through gateways provided by IE6 itself.</p>
<p>My experience has taught me how to avoid any catastrophic issues as far as the box model (and therefore main document structure) is concerned, so the IE6 issues I deal with on every project are minimal at best. My IE6-specific stylesheets are mostly just a few declarations replacing PNGs with GIFs (or removing the image entirely) and <code>li</code> fixes that I already expected to implement.</p>
<p>There are a number of other tips that I&#8217;ve come to learn in my career that make IE6 less than a bleep on the radar on any project. I documented a number of these tips in <a href="http://mondaybynoon.com/2009/01/12/fear-not-i-have-conquered-ie6-and-you-can-too/">Fear not. I have Conquered IE6, and You Can Too</a>, hopefully there are some things that will help you out if you&#8217;re having a bit of trouble tackling IE6.</p>
<p>The other main factor to which I can attribute the success of Aggressive Graceful Degradation is that <a href="http://mondaybynoon.com/2006/05/15/i-vote-conditional-comments/">I employ conditional comments</a> to target each version of Internet Explorer in such a way that my fixes are implemented quickly and directly with no side effect other than a few extra bytes of bandwidth for standards-based browsers.</p>
<p>Conditional comments is a subject by itself, one that has been discussed up down left and right, and I&#8217;m hard pressed to find a negative stance that really takes hold with me. I&#8217;m more than thankful that Microsoft implemented conditional comments so long ago, as it is the single most important enabling feature of Aggressive Graceful Degradation.</p>
<h3>Preparing your clients</h3>
<p>Taking an Aggressive Graceful Degradation stance is the easy part, the hardest part by far is conveying both the cause and effect of this decision to your client and what it means for his project. To tackle this issue directly, my company has started <a href="http://mondaybynoon.com/internet-explorer-contract-addendum/">including an additional document</a> with our contracts, explicitly stating our stance when it comes to Internet Explorer.</p>
<p>We try to teach our clients as much as we can from the kickoff meeting through (and beyond) a site launch. More often than not, a client will appreciate the fact that you&#8217;ve taken the time to share your knowledge, and explain it in such a way that the information is useful.</p>
<p>This <a href="http://mondaybynoon.com/internet-explorer-contract-addendum/">extra document</a> is referenced in the contract copy and the client is required to sign, acknowledging that he knows his website may in fact render in a very different way, but retain full accessibility. I&#8217;d like to extend this document to the community, in hopes that it helps you to take a stance of Aggressive Graceful Degradation when it comes to IE6 as opposed to taking on an abrasive solution such as roadblocking the project.</p>
<p>If you&#8217;d like to find out more information regarding the <a href="http://mondaybynoon.com/internet-explorer-contract-addendum/">Internet Explorer Contract Addendum</a> please feel free to review and use the addendum in your own contracts, it is released under a <a href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative Commons Attribution-Share Alike 3.0 United States License</a>. Suggested revisions are encouraged. A formal area for suggestions has not yet been established, but please feel free to <a href="http://mondaybynoon.com/contact">contact me directly</a> and we can all work together to make the addendum commonplace in project contracts.</p>
]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/2009/09/21/aggressive-graceful-degradation/feed/</wfw:commentRss>
		<slash:comments>38</slash:comments>
		</item>
		<item>
		<title>Fear not. I Have Conquered IE6, and You Can Too</title>
		<link>http://mondaybynoon.com/2009/01/12/fear-not-i-have-conquered-ie6-and-you-can-too/</link>
		<comments>http://mondaybynoon.com/2009/01/12/fear-not-i-have-conquered-ie6-and-you-can-too/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 06:52:04 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[Internet-Explorer]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/?p=289</guid>
		<description><![CDATA[Internet Explorer 6 should not be abandoned. Instead you should plan for IE6 and gracefully degrade.]]></description>
			<content:encoded><![CDATA[<p>Web design is about many things. I&#8217;d like to focus on a single aspect of Web design that is Internet Explorer 6. Not <abbr title="Internet Explorer 7">IE7</abbr> and its ability to put some makeup on what once was <abbr title="Internet Explorer 6">IE6</abbr>, not <abbr title="Internet Explorer 8">IE8</abbr> and the great potential on that side of the fence. I&#8217;d like to focus solely on Internet Explorer 6, arguably one of the more popular (by usage statistics) browser for the next half decade.</p>
<h2>Browser usage; who cares?</h2>
<p>I follow usage statistics. I follow usage stats not only for my personal sites as well as prospective client sites (when possible), I also follow usage stats for existing client sites for which we collect analytics, as well as more broad metrics from services such as <a href="http://marketshare.hitslink.com/report.aspx?qprid=0&amp;qpmr=15&amp;qpdt=1&amp;qpct=3&amp;qpcal=1&amp;qptimeframe=Q&amp;qpsp=39">Market Share</a>. As with all statistics, it is <em>terribly important</em> that you search for and validate as much data as possible before coming to any sort of conclusion. Browser usage metrics are values designed to be taken with a (decently sized) grain of salt. Of course user agent strings can be easily forged, and data sets can be easily skewed. The important thing to remember is: <strong>browser usage should still be of great importance to you as a modern Web designer</strong>.</p>
<p>I&#8217;d like to be completely clear in saying that usage stats should be important to you as a professional designer, but the numbers should not have adverse affect on your design. Modern Web design has taught us that a well balanced combination of <a href="http://en.wikipedia.org/wiki/Progressive_enhancement">progressive enhancement</a> &amp; <a href="http://en.wikipedia.org/wiki/Fault-tolerant_system">graceful degradation</a> can simply work wonders.</p>
<p>When it comes to tackling IE6, we can guarantee one another that there won&#8217;t be too much progressive enhancement going on. Instead, we&#8217;ll be putting graceful degradation at the forefront of our minds; thinking of straightforward ways in which to make the user experience equally valuable. My professional opinion is that <em>IE6 should not be disregarded</em>.</p>
<p>I do not propose that any exorbitant amount of time, effort, or money be put behind any sort of IE6 movement. I do feel that the choice to not support IE6 should be backed by useful data about your target audience, and at the very least a minimal version of your document be available for use.</p>
<h3>IE6 and me</h3>
<p>Every Web designer I&#8217;ve spoken with offers a familiar shudder at the mere mention of IE6, which usually turns into a moment of comradery between the two of us. It&#8217;s no secret that IE6 provides a sub-par browsing experience, that horse has been beaten to death too many times over (along with its entire family of IE6 horses) for my liking; and I&#8217;m not the only one. There are many designers who have taken the leap to complete lack of support. There are others who continue to describe each ache and pain provided by IE6 on a fairly consistent basis. Me, I&#8217;ve taken a more passive approach in accepting IE6 for what it is, and coming up with my own plan of action.</p>
<p>In my personal opinion, it&#8217;s going to take a worldwide colossal event to remove IE6 from our lives. Take for instance, the following graphs. These graphs represent browser usage on Monday By Noon, as well as usage statistics for a client website with a much more technologically diverse audience.</p>
<p class="img single"><a href="http://www.flickr.com/photos/jonchristopher/3190839874/" title="Browser Usage Statistics by jonchristopher, on Flickr"><img src="http://farm4.static.flickr.com/3340/3190839874_8393f39a7d_o.png" width="584" height="410" alt="Browser Usage Statistics"></a></p>
<p>Monday By Noon is aimed at a very specific audience; Web designers and developers. To anyone who reads, questioning the market share IE6 possesses would seem to be a silly question. You would think it would be a safe assumption that IE6 market share for that traffic wouldn&#8217;t amount to much at all. I was surprised to find out that recent metrics show IE6 holding strong at 5% of my viewers. I cannot think of a decent explanation for that. Believe me, I&#8217;ve tried.</p>
<p>A more realistic (and therefore more useful) graph to take a look at is that of the general traffic website. Internet Explorer six is responsible for about 22% of traffic on that website. That percentage falls in line with what I&#8217;ve found to be (mostly) true with general traffic on the Web. At the time of this writing, <strong>about 25% of traffic on the Web is carried via Internet Explorer 6</strong>. To say that&#8217;s insignificant is simply untrue.</p>
<p>I feel that I should be completely explicit in saying that if your target audience simply does not coincide with numbers like these, and you&#8217;ve made the <em>educated</em> choice not to support IE6, I can find agreement in that. The important thing is that your decision was educated, not made by following the latest fad. Internet Explorer 6, in and of itself, still holds great importance to any Web designer.</p>
<p>That said, I&#8217;d like to share the details of my IE6 strategy.</p>
<h3>Strategizing your IE6 process</h3>
<p>Like all good outcomes, my accommodating IE6 starts by coming up with a plan. When reviewing design comps, I&#8217;ll start by visualizing the overall structure of the document and how the CSS will be applied to that. Before making the first cut, however, I will go over in my head what will likely give me trouble when working with IE6. Yes, IE6 has earned those five minutes of my time, and it will pay off ten times over when it comes to testing.</p>
<p>Throughout my analysis of the comp, I&#8217;ll decide whether various design features will be &#8220;worth it&#8221; to implement. The &#8220;worth it&#8221; scale considers both the target audience as well as the design purpose. If the target audience is minimal, and the design purpose is subtle, I will plan to gracefully degrade that feature. An IE6 user isn&#8217;t going to notice that there isn&#8217;t a drop shadow there.</p>
<p>I&#8217;ve honed my process so that the only hurdles left for IE6 usually have to deal with PNGs. Past experience will tell me whether a PNG will work within a particular application. If obtaining alpha transparency simply isn&#8217;t &#8220;worth it&#8221;, I&#8217;ll go ahead and use a gif. If the transparency offered by a gif will just look sloppy, I&#8217;ll figure out a way to use a jpg.</p>
<p>I&#8217;ve found that it isn&#8217;t worth my time to rip my hair out to make sure a design element is carbon copied from the design comp, if a gracefully degraded version will work out just fine. After all, we&#8217;re catering to a small(er) group of users employing a long expired browser.</p>
<p>Of course, tackling alpha transparency is hardly a well kept secret. By far the most frustrating thing to deal with when testing in IE6 is layout.</p>
<h3>How to avoid layout headaches</h3>
<p>Mastering the <code>float</code> is one of the biggest learning curve for modern Web designers. It&#8217;s very frustrating to finally grasp what&#8217;s going on only to realize the need to spend just as much time &#8216;making it work&#8217; in IE6. I&#8217;ve seen it happen many times, and it will happen many more. Lucky for me, I&#8217;ve got two methods which have saved me many headaches when it comes to testing.</p>
<dl>
<dt>Respect the Box Model</dt>
<dd>As <a href="http://mondaybynoon.com/2007/02/26/improving-your-process-css-techniques-part-1/">I&#8217;ve said before</a>, something I always keep in mind is to avoid box model inconsistencies. Find a way to prevent setting a margin/padding along with a width/height. Stopping yourself there will work wonders.</dd>
<dt>Margin and padding bugs with lists</dt>
<dd>Even if you stop yourself from falling into Box Model traps, IE6 has a way of completely destroying your carefully styled list items. If it doesn&#8217;t have one, give the parent list element a width, and set <code>width:100%; float:left;</code> to each child <code>&lt;li&gt;</code></dd>
<dt>Control your clears</dt>
<dd>
<p>This tip heavily depends on your clearing method of choice. I&#8217;ll explicitly state that my experience has lead me to <strong>know and trust the <code>overflow:hidden;</code> method of clearing</strong>. If you&#8217;re not familiar, adding <code>overflow:hidden;</code> to a parent element containing floating children will force that parent element to encapsulate its children, effectively clearing itself. This method has worked well for me for years.</p>
<p>Working with this method of clearing and IE6 requires you to have a small trick up your sleeve, though. Simply adding <code>overflow:hidden;</code> to your parent element won&#8217;t work in IE6 if the element hasn&#8217;t triggered <code>hasLayout</code>. Luckily this is (usually) a very easy fix. To force that parent element to clear itself in IE6, simply open <a href="http://mondaybynoon.com/2006/05/15/i-vote-conditional-comments/">your IE6-specific stylesheet</a> and add <code>height:1%;</code>.</p>
<p>Adding <code>height:1%;</code> will trigger <code>hasLayout</code> and your element will now clear itself, allowing you to move on quickly. Of course this solution isn&#8217;t always perfect. This method requires you to plan ahead, setting up parents and children to cooperate. For me, this clearing method has allowed me to write lean, semantic markup, with a minimal IE6 contingency plan.</p>
<p>It&#8217;s very important to keep in mind, however, that this clearing method can backfire and turn on itself. As your designs become increasingly involved, you&#8217;ll develop a tendency to toss <code>height:1%;</code> on <em>everything</em>. Resist that urge. In order for this to work, you&#8217;ll need to only add <code>height:1%;</code> on each of the parent-most elements you&#8217;re trying to clear. That&#8217;s not to say you can&#8217;t use this method more than once per design (you absolutely can). You just don&#8217;t want to end up overlapping your height declarations, possibly resulting in more hidden content than you started with.</p>
</dd>
</dl>
<p>Keeping those three tips in mind should give you quite an arsenal when it comes to IE6. Keep in mind that all you need to do is gracefully degrade. The more websites you design, the better you&#8217;ll become in dealing with IE6 during testing. Before you know it, your IE6 stylesheets will only be a few lines long, and you&#8217;ll be able to focus on the best parts of Web design, not the worst.</p>
<p>Do you have any IE6 rules you live by? What tips/tricks/techniques have you come up with throughout your career?</p>
<h4>Additional Reading</h4>
<ul>
<li><a href="http://marylandmedia.com/2008/11/stop-being-a-dick-support-ie6/">Stop being a dick, support IE6</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/2009/01/12/fear-not-i-have-conquered-ie6-and-you-can-too/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Creating Named Elements in IE via JavaScript. Impossible?</title>
		<link>http://mondaybynoon.com/2007/09/24/creating-named-elements-in-ie-via-javascript-impossible/</link>
		<comments>http://mondaybynoon.com/2007/09/24/creating-named-elements-in-ie-via-javascript-impossible/#comments</comments>
		<pubDate>Mon, 24 Sep 2007 12:40:14 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[DOM]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[input]]></category>
		<category><![CDATA[Internet-Explorer]]></category>
		<category><![CDATA[name]]></category>
		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/2007/09/24/creating-named-elements-in-ie-via-javascript-impossible/</guid>
		<description><![CDATA[I was having a bit of an issue trying to create a new element via the DOM and provide it with a name. As it turns out, Internet Explorer doesn&#8217;t allow this to happen, but I was able to find an alternative solution that has worked out quite well.]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s almost humorous to me that I still to this day find new quirks and bugs within Internet Explorer. I try to keep everything in mind as I work on a project, in an effort to be one step ahead when it comes to testing in <abbr title="Internet Explorer">IE</abbr>, but it&#8217;s not always easy.</p>
<p>Last week, a project was to enhance a <code>form</code> on a client website by integrating the addition of new fields via JavaScript. The basic idea is this; there is a section in the <code>form</code> where a number of file <code>inputs</code> would need to be duplicated based on the need of the reader filling out the form. The number of file inputs could range from one to an unlimited number, which, come to think of it, I need to revisit. But I digress.</p>
<p>As I was working with the <code>form</code>, I began to notice that it wasn&#8217;t working improperly in Internet Explorer 6 or Internet Explorer 7. The script kept track of how many <code>inputs</code> had been added via a simple counter, and provided a <code>name</code> attribute reflecting that number using an established naming convention. It was the basis for allowing multiple file uploads.</p>
<p>I tested again using Firefox and everything appeared to be fine. My next step was to check out what was going on with the <acronym title="Document Object Model">DOM</acronym> in IE.</p>
<h3>Viewing Generated Source in <abbr title="Internet Explorer">IE</abbr></h3>
<p>As we all know, there aren&#8217;t too many developer resources for working with Internet Explorer. The <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=E59C3964-672D-4511-BB3E-2D5E1DB91038&amp;displaylang=en">Internet Explorer Developer Toolbar</a> is about the only tool that really helps you to diagnose any troubles you may be having. It has come in handy for me from time to time, but personally I think it&#8217;s a bit awkward to use and generally end up resorting to a quick <code>border:1px solid #f00;</code> to help me diagnose any troubles I may be having with <abbr title="Cascading Style Sheets">CSS</abbr> in IE.</p>
<p>In this case nothing like that could have helped, so I resorted to the Developer Toolbar and realized that <em>none of the created elements had a <code>name</code></em> in Internet Explorer 6 or 7. Everything was working fine in other browsers, so I wasn&#8217;t sure exactly what was going on. After a bit of searching, I found that IE simply does not support the application of a <code>name</code> attribute to an element created via DOM scripting. Ridiculous.</p>
<p>As an aside, I also came across a quick tip on replicating the View Generated Source functionality of the <a href="http://chrispederick.com/work/web-developer/">Web Developer Toolbar for Firefox</a>, a feature I find myself using quite a bit. You can explore the generated DOM using the Developer Toolbar in Internet Explorer, but the following snippet will display the generated source in plain text, just paste it in the location bar.</p>
<pre><code>javascript:'&lt;xmp&gt;' + window.document.body.outerHTML+ '&lt;/xmp&gt;'</code></pre>
<p>Continuing: A bit more research narrowed the scope of this &#8216;issue&#8217;. It turns out the IE more specifically <a href="http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/properties/name_2.asp">does not allow</a> the <code>name</code> of an element to be changed after it has been created. Bummer. What do do about it?</p>
<p>Thankfully, the Internet is full of extremely intelligent people. Most of the time, other people have had the same exact problem you&#8217;re having, they have written about it, and also (hopefully) provided a solution to help you out. This was one of those cases. In the article <a href="http://www.thunderguy.com/semicolon/2005/05/23/setting-the-name-attribute-in-internet-explorer/">Setting the &#8220;name&#8221; attribute in Internet Explorer</a>, a fix for this problem is offered in the following function:</p>
<pre><code>function createNamedElement(type, name) {
  var element = null;
  // Try the IE way; this fails on standards-compliant browsers
  try {
    element = document.createElement('&lt;'+type+' name="'+name+'"&gt;');
  } catch (e) {
  }
  if (!element || element.nodeName != type.toUpperCase()) {
    // Non-IE browser; use canonical method to create named element
    element = document.createElement(type);
    element.name = name;
  }
  return element;
}</code></pre>
<p>Essentially, the function checks to see whether or not the reader is using Internet Explorer, and implements the element accordingly. I also happened to find another solution that uses the conditional comment method:</p>
<pre><code>/*@cc_on @if (@_jscript)
var newNode = document.createElement('&lt;input name="'+elementName+'"&gt;');
@else */
var newNode = document.createElement('input');
newNode.name = elementName;
/* @end @*/</code></pre>
<p>Many developers have their own opinions about using conditional comments both in <abbr title="(eXtensible) HyperText Markup Language">(X)HTML</abbr> as well as JavaScript, so it was nice to find examples both with and without. Which would you prefer?</p>
<p>Hopefully, if you haven&#8217;t come across or read about this bug before, you&#8217;ll remember it when it comes to your next Web app as you ad progressive enhancement in dynamic addition of elements requiring a <code>name</code>.</p>
<p><strong>References</strong></p>
<ul class="references">
<li><a href="http://ericappel.net/blog/ViewHTMLSourceGeneratedByAJAX.aspx">View HTML Source Generated by AJAX</a></li>
<li><a href="http://www.thunderguy.com/semicolon/2005/05/23/setting-the-name-attribute-in-internet-explorer/">Setting the “name” attribute in Internet Explorer</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/2007/09/24/creating-named-elements-in-ie-via-javascript-impossible/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Taking Conditional Comments Too Far</title>
		<link>http://mondaybynoon.com/2007/07/23/taking-conditional-comments-too-far/</link>
		<comments>http://mondaybynoon.com/2007/07/23/taking-conditional-comments-too-far/#comments</comments>
		<pubDate>Mon, 23 Jul 2007 12:38:34 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[DOM]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[conditional-comments]]></category>
		<category><![CDATA[Internet-Explorer]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/2007/07/23/taking-conditional-comments-too-far/</guid>
		<description><![CDATA[Using conditional comments to include a version specific style sheet (or a bit of JavaScript) should be all the ammo you need to solve the problem of Internet Explorer.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve come to accept and support <a href="http://msdn2.microsoft.com/en-us/library/ms537512.aspx">conditional comments</a> as a tool to use when it&#8217;s otherwise impossible to get Internet Explorer to behave desirably.  To me, they&#8217;re <a href="http://mondaybynoon.com/2006/05/15/i-vote-conditional-comments/">much more acceptable than unstable CSS hacks</a> or extensive <code>!important</code> declarations.  They&#8217;re much easier to maintain, and it&#8217;s the only truly reliable way to target not only Internet Explorer itself, but specify a version as well. The subject of conditional comments comes with great debate that seems to be ongoing.  There are good arguments on both sides, but to me, conditional comments seem like the best solution.</p>
<h2>When I use conditional comments</h2>
<p>Up until this point, conditional comments have saved the day for me simply by being present in the <code>head</code> of my documents. For nearly every client project, I find myself using conditional comments to target both Internet Explorer 6 as well as Internet Explorer 7.  In my opinion, as far as standards compliance is concerned, IE7 is merely a shuffle forward, as opposed to a step.</p>
<p>I&#8217;ve also accepted using conditional comments to include JavaScript written specifically to assist Internet Explorer.  A specific example that comes to mind is when I&#8217;m implementing <a href="http://www.htmldog.com/articles/suckerfish/dropdowns/">Suckerfish Dropdowns</a>.  I elect to include the JavaScript with a conditional comment simply because the script is only meant to be run when browsing the document in Internet Explorer 6.  I prefer to have other browsers ignore the JavaScript for simplicity&#8217;s sake. While it may not be considered harmful to allow JavaScript such as the bit needed for Suckerfish Dropdowns in all browsers, to me it is settling to keep it separated.</p>
<h3>Using conditional comments in the <code>body</code></h3>
<p>Until recently, it hadn&#8217;t even occurred to me that using conditional comments in the <code>body</code> of your document could become commonplace. There&#8217;s no documentation specifying that conditional comments can be used only in the <code>head</code> of your document, so why stop there?  To me, using conditional comments in the <code>body</code> of your document is partially counter productive.</p>
<p>The reason I choose to employ conditional comments is their nature of providing longevity.  By writing specific style sheets to target specific versions of Internet Explorer, I&#8217;m able to solve a rendering issue and leave the solution as is for the life of the document.  The problem is solved with a minimal change to the <abbr title="Document Object Model">DOM</abbr>.</p>
<p>When you choose to use conditional comments in the <code>body</code> of your document, you&#8217;re electing to alter the <abbr title="Document Object Model">DOM</abbr> in a more significant way.  Now, instead of working with different style sheets to solve a problem, you&#8217;re altering the problem itself.  If this route is chosen, you now have a number of choices.  You can alter a significant portion of the <abbr title="Document Object Model">DOM</abbr> in order to work with a single, existing style sheet, or you can take both sides and use conditional comments to include Internet Explorer specific style sheets as well as alter the DOM at the same time.</p>
<p>The idea in general, to me, seems more sloppy than resorting to the use of <abbr title="Cascading Style Sheets">CSS</abbr> hacks strewn throughout your document style sheet.  Your source will become ugly and awkward to maintain, and the longevity of your document will be greatly reduced.  Using conditional comments to include a version specific style sheet (or a bit of JavaScript) should be all the ammo you need to solve the problem of Internet Explorer.</p>
<h4>What&#8217;s your opinion?</h4>
<p>How do you feel about conditional comments in the first place?  If you&#8217;re opposed, is it due to the fact that the code is technically proprietary?  Is it due to the fact that the implementations you&#8217;ve seen are as outlined above in that conditional comments are littered across the entire <abbr title="Document Object Model">DOM</abbr>?</p>
]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/2007/07/23/taking-conditional-comments-too-far/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Apple Rekindling the Browser War or Trying to Help?</title>
		<link>http://mondaybynoon.com/2007/06/18/apple-rekindling-the-browser-war-or-trying-to-help/</link>
		<comments>http://mondaybynoon.com/2007/06/18/apple-rekindling-the-browser-war-or-trying-to-help/#comments</comments>
		<pubDate>Mon, 18 Jun 2007 11:58:35 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Internet-Explorer]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[WWDC]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/2007/06/18/apple-rekindling-the-browser-war-or-trying-to-help/</guid>
		<description><![CDATA[What struck me about WWDC07 this year was the announcement regarding Apple making Safari available on the Windows platform. I had always wondered if that would ever happen, especially after the establishment of The WebKit Open Source Project, but honestly didn&#8217;t expect it at this point in time.]]></description>
			<content:encoded><![CDATA[<p>As it goes with every <abbr title="Worldwide Devlopers Conference">WWDC</abbr>, <a href="http://developer.apple.com/wwdc/">WWDC07</a> was no different in that there was significant coverage regarding what Steve Jobs discussed during his keynote.  What struck me about this particular presentation was the announcement regarding <a href="http://www.apple.com">Apple</a> making <a href="http://www.apple.com/safari/">Safari</a> available on the <a href="http://www.microsoft.com/windows/default.mspx">Windows</a> platform.  I had always wondered if that would ever happen, especially after the establishment of <a href="http://webkit.org/">The WebKit Open Source Project</a>, but honestly didn&#8217;t expect it at this point in time; it was basically out of the blue.</p>
<h2>Safari Available for Windows</h2>
<p>I&#8217;ve read a number of articles that were written as a direct response to this event, <a href="http://www.hicksdesign.co.uk/journal/safari-3-thoughts">a post by Mr. Hicks</a> as well as <a href="http://snook.ca/archives/browsers/why_safari_for_windows/">a reaction from Mr. Snook</a>, among others.  While Mr. Hicks offers some intriguing questions, I found myself agreeing with much of what Mr. Snook had to say regarding this release.</p>
<p>He said that the release for Windows really doesn&#8217;t do all that much for developers working in Windows, with which I agree 100%.  Safari uses <a href="http://webkit.org/">WebKit</a>, and Safari 2 uses a completely different WebKit than Safari 3, so a Windows developer getting their hands on Safari 3 isn&#8217;t doing anyone much good.  The improvements implemented in WebKit are exponential in it&#8217;s current form when compared to the version used in Safari 2.  If you&#8217;re looking to test using various operating system and Web browser combinations, it&#8217;s best to use them natively (or at least in a virtual machine) in my opinion.</p>
<p>It can&#8217;t be ignored what a big change it will be for Windows developers to be able to test in Safari, but in my opinion, this situation (when Safari 3 comes out of beta) will be <em>very similar</em> to the IE6/IE7 mixed distribution.  While it will be nice for Windows developers to be able to test in one browser, it will still require a run-through in Safari 2 as well.  As will happen with IE6, Safari 2 will eventually be overrun by Safari 3, but that will take quite a bit of time.</p>
<h3>Will anyone really care about the release?</h3>
<p>So if the release doesn&#8217;t help Web developers, will it have any sort of effect on the general population?  In my personal opinion, Safari wasn&#8217;t ported merely to give Windows users a better experience on the Internet.  It was ported because it was seen as a viable way to show Windows users the way of Apple.  Many people refer to this type of thing as the iPod effect, iPod halo effect, Apple Envy, or some sort of variant.  Hitting Windows users with an application they can use for free, an application they could theoretically use every day, is one more step for Apple in an otherwise Microsoft-oriented world.  A Web browser can be a very personal choice for a person, and Apple wants people to choose them.</p>
<p><a href="http://www.mozilla.com/firefox">Firefox</a> has been ridiculously successful in providing people a better way to browse the Web.  Apple has seen this success, and in my opinion, feels it is now the best time to capitalize on the idea that Internet Explorer is not the end all be all Web browser for Windows users.  It is their time to show that they&#8217;ve got a solution as well, and their solution has anti-aliasing in menus to boot.  Let us not forget there are also snappy page loads, a small footprint, and that spiffy interface!  Safari is an interactive advertisement for Apple, and porting it to the most widely used platform gives the application a very big stage to present itself.</p>
<h4>The newest battle in the Browser Wars?</h4>
<p>Personally, I&#8217;m a big proponent of open competition.  If there are a number of high quality Web browsers openly competing to be the best, I think it will force browser manufacturers to provide the best product they possibly can, or else their user base will shift to a provider who can.  A very large number of people have embraced Firefox as an alternative to Internet Explorer after it has proven time and time again to be a sub-par Web browser.</p>
<p>To this day I discover quirks and bugs that have continued to prevail in Internet Explorer 7.  While it is a slight improvement over IE6, the entire Internet Explorer family of products is truly a sad state considering what is being released elsewhere.  At the very least, it&#8217;s my hope that Microsoft starts to take their browser more seriously than they have, and the release of Safari for Windows will help to try and make that happen.</p>
<p><span id="more-84"></span></p>
<p>The true issue to keep in mind, however, is that the average reader isn&#8217;t going to care whether or not you were able to take your design to the next level because you didn&#8217;t have to worry about <a href="http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html">z-index bugs</a>, the only thing that gets noticed is when things go wrong.  Many of the drawbacks to Internet Explorer are not seen, heard, or cared about to many people other than Web designers and developers.  What does get noticed is a better feature set, a cooler interface, and any performance differences that may be in place.  Superior applications will reign supreme when it comes to that criteria, which will eventually decide a winner in any sort of Browser War.</p>
]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/2007/06/18/apple-rekindling-the-browser-war-or-trying-to-help/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk (enhanced) (user agent is rejected)
Database Caching 6/15 queries in 0.011 seconds using disk

Served from: mondaybynoon.com @ 2010-09-06 11:15:16 -->