<?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>Pixel Acres &#187; HTML/XHTML</title>
	<atom:link href="http://f6design.com/journal/category/xhtml/feed/" rel="self" type="application/rss+xml" />
	<link>http://f6design.com/journal</link>
	<description>Adventures in web and graphic design</description>
	<lastBuildDate>Thu, 11 Mar 2010 02:37:53 +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>The Email Standards Project&#8217;s message to Microsoft: Outlook&#8217;s broken &#8211; Let&#8217;s fix it.</title>
		<link>http://f6design.com/journal/2009/06/24/the-email-standards-projects-message-to-microsoft-outlooks-broken-lets-fix-it/</link>
		<comments>http://f6design.com/journal/2009/06/24/the-email-standards-projects-message-to-microsoft-outlooks-broken-lets-fix-it/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 00:30:18 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[HTML/XHTML]]></category>
		<category><![CDATA[News & Reviews]]></category>

		<guid isPermaLink="false">http://f6design.com/journal/?p=436</guid>
		<description><![CDATA[Microsoft have announced that Outlook 2010 will use the crippled Word rendering engine to display HTML emails (as does Outlook 2007). In response The Email Standards Project have launched a campaign to send a clear message to Microsoft: Outlook&#8217;s broken &#8211; Lets fix it.

The campaign leveredges Twitter to rally the web design community around the [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft have announced that Outlook 2010 will use the crippled Word rendering engine to display HTML emails (as does Outlook 2007). In response <a href="http://www.email-standards.org/">The Email Standards Project</a> have launched a <a href="http://fixoutlook.org/">campaign</a> to send a clear message to Microsoft: Outlook&#8217;s broken &#8211; Lets fix it.</p>
<p><img src="http://f6design.com/journal/wp-content/uploads/2009/06/fixit.jpg" alt="fixit" title="fixit" width="450" height="363" class="contentImg matte" /></p>
<p>The campaign leveredges Twitter to rally the web design community around the issue, and a realtime mosaic of the tweets can be viewed at <a href="http://fixoutlook.org/">fixoutlook.org</a>. The site is worth a visit for this feature alone!</p>
<h3>Further reading</h3>
<p><a href="http://www.campaignmonitor.com/blog/post/2799/microsoft-to-ignore-web-standards-in-outlook-2010/">Microsoft to ignore web standards in Outlook 2010 &#8211; enough is enough</a></p>
]]></content:encoded>
			<wfw:commentRss>http://f6design.com/journal/2009/06/24/the-email-standards-projects-message-to-microsoft-outlooks-broken-lets-fix-it/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>IE7, first-child and HTML comments</title>
		<link>http://f6design.com/journal/2008/11/27/ie7-first-child-and-html-comments/</link>
		<comments>http://f6design.com/journal/2008/11/27/ie7-first-child-and-html-comments/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 05:58:04 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML/XHTML]]></category>

		<guid isPermaLink="false">http://f6design.com/journal/2008/11/27/ie7-first-child-and-html-comments/</guid>
		<description><![CDATA[Perhaps it is common knowledge, but until today I was unaware that the CSS first-child pseudo-class fails in IE7 when the child element is immediately preceeded by an HTML comment.
In the following example IE7 considers the HTML comment to be the first child, and therefore my selector will fail.
CSS:
li:first-child { font-weight:bold; }
HTML:
&#60;ul&#62;
    [...]]]></description>
			<content:encoded><![CDATA[<p>Perhaps it is common knowledge, but until today I was unaware that the CSS <code>first-child</code> pseudo-class fails in IE7 when the child element is immediately preceeded by an HTML comment.</p>
<p>In the following example IE7 considers the HTML comment to be the first child, and therefore my selector will fail.</p>
<p><strong>CSS:</strong></p>
<pre><code>li:first-child { font-weight:bold; }</code></pre>
<p><strong>HTML:</strong></p>
<pre><code>&lt;ul&gt;
    &lt;!-- IE7 thinks this comment is the first child. Oops! --&gt;
    &lt;li&gt;The li:first-child selector should make me bold&lt;/li&gt;
    &lt;li&gt;I'm the second child&lt;/li&gt;
    &lt;li&gt;I'm the third child&lt;/li&gt;
&lt;/ul&gt;</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://f6design.com/journal/2008/11/27/ie7-first-child-and-html-comments/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Semantic HTML 5? Pfft.</title>
		<link>http://f6design.com/journal/2007/12/04/semantic-html-5-pfft/</link>
		<comments>http://f6design.com/journal/2007/12/04/semantic-html-5-pfft/#comments</comments>
		<pubDate>Wed, 05 Dec 2007 06:43:19 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[HTML/XHTML]]></category>

		<guid isPermaLink="false">http://f6design.com/journal/2007/12/04/semantic-html-5-pfft/</guid>
		<description><![CDATA[Reading though a preview of the HTML 5 specification over at A List Apart, I was somewhat surprised by the names chosen for two new HTML elements: header and footer. Like many other standards aware web designers I have worked hard to train myself out of the habit of naming divs non-semantically, only to discover [...]]]></description>
			<content:encoded><![CDATA[<p>Reading though a preview of the HTML 5 specification over at <a href="http://www.alistapart.com/articles/previewofhtml5">A List Apart</a>, I was somewhat surprised by the names chosen for two new HTML elements: <code>header</code> and <code>footer</code>. Like many other standards aware web designers I have worked hard to train myself out of the habit of naming divs non-semantically, only to discover that HTML 5 will undo all of my good work.</p>
<p>Let me explain what I mean.</p>
<p>Instead of naming a <code>div</code> based on where it appears within my layout, I try to name it based on the content it describes. For example, rather than markup a site&#8217;s header as:</p>
<pre><code>&lt;div id="header"&gt;</code></pre>
<p>I mark it up as:</p>
<pre><code>&lt;div id="branding"&gt;</code></pre>
<p>and instead of:</p>
<pre><code>&lt;div id="footer"&gt;</code></pre>
<p>I choose:</p>
<pre><code>&lt;div id="siteinfo"&gt;</code></pre>
<p>The idea is that in the absence of meaningful, semantic HTML elements with which to markup content I use the most descriptive CSS id name I can think of.</p>
<p>How ironic then, that the new HTML 5 <code>header</code> and <code>footer</code> elements describe content based on where it appears on the page, rather than what it <em>means</em>.</p>
<p><strong>Update 08 Dec 2007:</strong> I thought it was worth mentioning that the branding/siteinfo naming structure isn&#8217;t one I came up with myself &#8211; it is suggested by Andy Clarke in his book Transcending CSS.</p>
]]></content:encoded>
			<wfw:commentRss>http://f6design.com/journal/2007/12/04/semantic-html-5-pfft/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>The trouble with content management systems</title>
		<link>http://f6design.com/journal/2007/11/30/the-trouble-with-content-management-systems/</link>
		<comments>http://f6design.com/journal/2007/11/30/the-trouble-with-content-management-systems/#comments</comments>
		<pubDate>Fri, 30 Nov 2007 21:14:13 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[HTML/XHTML]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://f6design.com/journal/2007/11/30/the-trouble-with-content-management-systems/</guid>
		<description><![CDATA[When I started out as a web designer, content management systems belonged strictly to the realm of big budget websites. For everyone else, it was perfectly normal for a web designer to manually update a site whenever a change needed to be made. Clients didn&#8217;t expect a CMS to be included with their website, and [...]]]></description>
			<content:encoded><![CDATA[<p>When I started out as a web designer, content management systems belonged strictly to the realm of big budget websites. For everyone else, it was perfectly normal for a web designer to manually update a site whenever a change needed to be made. Clients didn&#8217;t expect a CMS to be included with their website, and web designers didn&#8217;t offer the option. Times have certainly changed, and in an age of blogs, Facebook, and MySpace, clients expect to be able to take control of their website&#8217;s content.</p>
<p>For most web designers, especially those who work solo, a custom built content management system is still a tall order. Fortunately there are numerous commercial and open source content management systems available, which offer a practical and affordable means of wrangling content. However, a &#8220;one size fits all&#8221; content management system that doesn&#8217;t address a site&#8217;s specific content requirements can introduce as many problems as it solves.</p>
<h3>One page, one blob</h3>
<p>The easier a content management system (CMS) is to configure and use, the more restrictive it is likely to be. HTML and CSS offer a rich toolset for describing and presenting all kinds of content, yet most CMSs cannot be configured to address the myriad types of content a content editor needs to display. Instead, the content editor is given the ability to modify just one &#8220;blob&#8221; of content per webpage. This format suits the majority of webpages, but assumes that the content editor is happy to have just one block of plain text per page, or that they are comfortable styling text with regular HTML tags, or a &#8217;simplified&#8217; variation such as <a href="http://daringfireball.net/projects/markdown/">markdown</a>. For the novice, HTML is hardly child&#8217;s play, and trusting a client to write compliant markup is optimistic to say the least. That&#8217;s where WYSIWYG (What You See Is What You Get, pronounced &#8220;wizzywig&#8221;) editors come to the rescue, and that&#8217;s when problems start to creep in.</p>
<h3>The WYSIWYG problem</h3>
<p>The WYSIWYG editor is at the heart of most modern content management systems, if not by design, then because web designers install one themselves. They are used as a &#8220;cure all&#8221; by CMS developers and web designers alike, because they provide content editors with a powerful interface for styling content, using a toolset that replicates the desktop word processors with which they are already familiar. The two most popular WYSIWG editors are <a href="http://tinymce.moxiecode.com/">TinyMCE</a> and <a href="http://www.fckeditor.net/">FCKEditor</a>. Both use Javascript to enhance a regular HTML textarea, and do so via a menu of buttons similar to that found in Microsoft Word. This probably sounds ideal &#8211; a website&#8217;s content editor can take total ownership of their content, styling it in any way they please. But content editors are precisely that: editors. They are not designers, and shouldn&#8217;t have to &#8211; or be <em>allowed</em> to &#8211; make decisions that affect the design of their content. Sadly, this is exactly the power that WYSIWYG editors put at their fingertips.</p>
<p><img class="contentImg matte" src='http://f6design.com/journal/wp-content/uploads/2007/11/tinymce.jpg' alt='Tinymce' /></p>
<p class="caption">Tinymce in all its glory. Watch your client destroy your layout in mere seconds!</p>
<p>Let loose with a WYSIWYG editor a content editor can mix and match font size, face and color, and even add tables, images, background colors, and emoticons to a webpage. If you think they will have the self control to exercise restraint, think again. Even the ability to alter the appearance of text can have disastrous results. I have seen a content editor use a WYSIWG editor to set body copy in 16 point, 12 point, and 10 point at various places on the same page, and in three different typefaces. Another client inexplicably changed the color of list items to exactly the same blue used throughout the site to indicate hyperlinks. The impact such misguided decisions have on usability and design should be obvious.</p>
<p>Of course the blame doesn&#8217;t lie with the content editor. They don&#8217;t have training as a graphic designer, nor can we expect them  to grasp the subtleties of interactive design. The problem is that WYSIWYG editors mix the <em>description</em> of content (headings, lists, blockquotes) with its <em>design</em> (typefaces, colors, and point sizes). Web designers have long understood the importance of separating content from presentation, but WYSIWYG editors snatch that separation away from us.</p>
<h3>Dial it back</h3>
<p>Fortunately, most WYSIWYG editors allow you to limit their functionality to suit your needs. This can either be done using a CMS&#8217;s administration interface, or by editing a configuration file. When faced with a WYSIWYG editor I dial its functionality right back, leaving only the core set of tools needed to effectively describe content. Does a content editor need to specify background colors for text? Of course not. The size of text? Nope. Paragraph alignment? Uh-uh. Tables? Lets not even go there. I don&#8217;t even let a content editor underline text. Why? Because underlined text looks like a link.</p>
<p>Headings (h1, h2 etc), bold, italic, ordered lists, unordered lists, blockquotes, and hyperlinks: these should provide sufficient scope to describe most types of content. Let your regular CSS stylesheets style the output, and you&#8217;ll ensure the rendered content fits seamlessly with your existing website layout.</p>
<h3>The copy and paste problem</h3>
<p>WYSIWYG editors present another problem I haven&#8217;t touched on yet. Usually a website&#8217;s copy isn&#8217;t typed directly into a content management system, it is composed in a word processor, then pasted into the CMS. When this happens the formatting of the source text is brought across too, warts and all. Despite your best efforts to limit your client&#8217;s ability to style content, with one keystroke they can inadvertently bypass your safeguards. There are two solutions to this problem. The first involves education. Both FCKEditor and TinyMCE include a &#8216;paste as plain text&#8217; button, that gives users the option of stripping all formatting from text as it is pasted into the WYSIWYG editor. The only problem is that your client needs to remember to use the button. The second option is more pro-active. Both FCKEditor and TinyMCE have a configuration setting that forces content to be pasted as plain text.</p>
<h3>What about web standards?</h3>
<p>A criticism often leveled at WYSIWYG editors is that they produce spaghetti code. In part, this is true. The only way a WYSIWYG editor can define the color of text, for instance, is by applying an inline style to your markup. But if you limit the WYSIWYG to a few core capabilities, as I suggested above, there is far less that can go wrong. The developers of WSIWYG editors are mindful of the need for standards compliance, and I have found that in most cases it isn&#8217;t hard to get both TinyMCE and FCKEditor to generate tidy markup.</p>
<h3>Other options</h3>
<p>Building a CMS from scratch is a huge task. I ought to know &#8211; most of my websites are powered by a CMS I built myself. Unless you are a competent programmer and have a heap of time up your sleeve (or just enjoy a challenge!), building your own CMS isn&#8217;t an option I would recommend lightly, but the advantages of the DIY route certainly pay off in the long run.</p>
<p>Building your own CMS gives you absolute control over how the software functions, allowing you to customize it to your own needs with fine grained control. When something breaks, you know how to fix it. If you want to add a new feature to the CMS, you just go ahead and add it, rather than submitting a feature request to the software vendor and crossing your fingers.</p>
<p>Another option to consider is <a href="http://xstandard.com/">XStandard</a>, a WYSIWYG editor that touts its standards compliance and accessibility features. The big drawback I can see with XStandard is that it requires the content editor to install the XStandard application on their local machine. By contrast, a javascript based WYSIWYG editor makes your website editable from any computer sporting a modern web browser.</p>
<p>Whichever approach you take to content management, so long as you give careful thought to both your client&#8217;s needs and the pitfalls of giving them free rein, it is possible to strike a balance that keeps everyone happy. Giving clients the ability to edit their website&#8217;s content, and creating beautiful, standards compliant websites needn&#8217;t be mutually exclusive goals.</p>
]]></content:encoded>
			<wfw:commentRss>http://f6design.com/journal/2007/11/30/the-trouble-with-content-management-systems/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Validation: a pragmatic approach</title>
		<link>http://f6design.com/journal/2007/03/31/validation-a-pragmatic-approach/</link>
		<comments>http://f6design.com/journal/2007/03/31/validation-a-pragmatic-approach/#comments</comments>
		<pubDate>Sat, 31 Mar 2007 10:52:01 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[HTML/XHTML]]></category>

		<guid isPermaLink="false">http://f6design.com/journal/2007/03/31/validation-a-pragmatic-approach/</guid>
		<description><![CDATA[Recently the web standards debate has taken an interesting turn, with many standards advocates re-evaluating the role of validation in their daily practice. Most recently Ethan Marcotte contributed an article titled Where Our Standards Went Wrong to A List Apart. Marcotte concluded that validation is still a vital part of any web development project, but [...]]]></description>
			<content:encoded><![CDATA[<p>Recently the web standards debate has taken an interesting turn, with many standards advocates re-evaluating the role of validation in their daily practice. Most recently Ethan Marcotte contributed an article titled <a href="http://alistapart.com/articles/whereourstandardswentwrong">Where Our Standards Went Wrong</a> to A List Apart. Marcotte concluded that validation is still a vital part of any web development project, but the fact that the opposite side of the argument was given serious consideration is significant. Consider the viewpoint of <a href="http://stopdesign.com/">Douglas Bowman</a>, quoted in Marcotte&#8217;s article:</p>
<blockquote><p>Validation is something I only do on my own work now.</p></blockquote>
<p>Bowman was part of the team responsible for the 2002 redesign of <a href="http://www.wired.com/">Wired News</a> using web standards and CSS. Wired News was one of the first major standards compliant sites, and helped pave the way for the web standards revolution. So for Bowman to state that validation of client websites is no longer an important consideration is quite an eye opener.</p>
<p>What designers like Bowman advocate is a pragmatic approach to web standards, an acknowledgment that validation is not practical in every situation. Non-compliant Content Management Systems and authoring tools, multi-developer teams and (let&#8217;s face it) poor attention to detail can all result in the production of invalid markup. When balancing the benefits of standards compliant markup against the time and cost required to overcome these obstacles, sometimes compliance is going to lose out.</p>
<p>I personally believe that web standards should be a cornerstone of any modern web design project. However, I also understand that given a limited timeframe and budget in which to produce a website, a certain level of compromise is sometimes inevitable, and perfectly acceptable. Consider the following common validation slip ups:</p>
<ul>
<li>Images missing an <code>alt</code> attribute</li>
<li>Unencoded ampersands</li>
<li>Empty <code>&lt;p&gt;&lt;/p&gt;</code> or <code>&lt;div&gt;&lt;/div&gt;</code> elements</li>
<li>Uppercase XHTML tag and attribute names</li>
</ul>
<p>All of these oversights will result in XHTML validation warnings or errors, but presently will not impact on the way a document renders or functions in a web browser. Neither do I expect these errors will cause significant problems in future browsers &#8211; I find it hard to imagine a web browser refusing to display a page simply because it contains an empty paragraph element.</p>
<p>Certainly if I notice any such errors during the development of a site I fix them straight away. However if I identify the errors at a later date, or they creep into the site during a content update, then I question the importance of correcting them immediately. In the past I would have dropped whatever I was doing and rushed to squash the offensive (but invisible) validation error, almost as a matter of personal pride. Today I am more inclined to add it to my to-do list for the next occasion I&#8217;m working on the site. In the meantime I know that both my client and the site&#8217;s user base will be totally oblivious to the &#8216;problem&#8217;.</p>
<p>In this discussion it is important not to lose sight of the benefits that standards based design undoubtedly brings to our workflow. Quicker development cycles, faster loading pages, simpler site redesigns, and improved search engine visibility are just some of the <a href="http://webstandards.org/learn/faq/">gains to be had by producing semantic and standards compliant documents</a>. But our job as web designers is not merely to produce sites that adhere to the standards of our industry. There are also technical, budgetary and timeframe requirements to be factored in. By taking a pragmatic approach to validation it is possible to meet these demands without abandoning our commitment to web standards.</p>
]]></content:encoded>
			<wfw:commentRss>http://f6design.com/journal/2007/03/31/validation-a-pragmatic-approach/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>When spacer gifs go bad</title>
		<link>http://f6design.com/journal/2007/01/23/when-spacer-gifs-go-bad/</link>
		<comments>http://f6design.com/journal/2007/01/23/when-spacer-gifs-go-bad/#comments</comments>
		<pubDate>Tue, 23 Jan 2007 11:55:08 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[HTML/XHTML]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://f6design.com/journal/2007/01/23/when-spacer-gifs-go-bad/</guid>
		<description><![CDATA[It&#8217;s a while since I gave any thought to spacer gifs, but I was looking at the Exxon website tonight (as you do on a Tuesday evening) and saw something that made me chuckle. I was viewing the site in Firefox (of course), and noticed that on many pages the text &#8220;spacer.gif&#8221; appeared prominently within [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s a while since I gave any thought to spacer gifs, but I was looking at the Exxon website tonight (as you do on a Tuesday evening) and saw something that made me chuckle. I was viewing the site in Firefox (of course), and noticed that on <a href="http://www.exxonmobil.com/Corporate/Citizenship/citizenship.asp">many pages</a> the text &#8220;spacer.gif&#8221; appeared prominently within the layout.</p>
<p><img class="contentImg" src="http://f6design.com/journal/wp-content/uploads/2007/01/exxon_spacer_gif_screenshot.gif" alt="Exxon spacer gif screenshot" /></p>
<p>Now, it&#8217;s not too surprising that a website designed a few years back makes liberal use of tables and transparent spacer gifs for layout, but inexplicably all of the gifs have been given an <code>img</code> <code>alt</code> attribute of &#8211; you guessed it &#8211; &#8220;spacer.gif&#8221;. By itself this won&#8217;t cause display problems, but the <code>href</code> provided for the spacer gifs is also incorrect, meaning that the browser is unable to display the images. In combination these boo-boos cause Firefox to render the image <code>alt</code> values on screen, messing up an otherwise clean layout.</p>
<p>I&#8217;m surprised no one who works on the Exxon website has noticed this problem. I guess they all use Internet Explorer over there.</p>
]]></content:encoded>
			<wfw:commentRss>http://f6design.com/journal/2007/01/23/when-spacer-gifs-go-bad/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Microsoft drop the ball with Outlook 2007</title>
		<link>http://f6design.com/journal/2007/01/10/microsoft-drops-the-ball-with-outlook-2007/</link>
		<comments>http://f6design.com/journal/2007/01/10/microsoft-drops-the-ball-with-outlook-2007/#comments</comments>
		<pubDate>Wed, 10 Jan 2007 21:17:09 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML/XHTML]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://f6design.com/journal/2007/01/10/microsoft-drops-the-ball-with-outlook-2007/</guid>
		<description><![CDATA[Well it looks as if Microsoft has screwed up royally with Outlook 2007, at least insofar as the way HTML emails are rendered. Instead of using the not-too-shabby Internet Explorer 7 rendering engine to display HTML emails, Microsoft opted to use a customized version of the Word 2007 rendering engine. That&#8217;s right, from now on [...]]]></description>
			<content:encoded><![CDATA[<p>Well it looks as if Microsoft has screwed up royally with Outlook 2007, at least insofar as the way HTML emails are rendered. Instead of using the not-too-shabby Internet Explorer 7 rendering engine to display HTML emails, Microsoft opted to use a customized version of the Word 2007 rendering engine. That&#8217;s right, from now on your beautifully constructed HTML newsletters are going to be rendered by the crime against layout known as Microsoft Word. That fact alone was enough to send shivers down my spine, but when I dug a little deeper I discovered just how dire the situation really is.</p>
<p>Until now, Outlook has stood its ground as one of the better email clients when it comes to rendering HTML. Sure, there wasn&#8217;t perfect parity between Outlook and Internet Explorer, but it was close enough to make do. However, with the switch to the Word rendering engine Outlook has taken a leap back into the dark ages, and now ranks somewhere alongside Lotus Notes and Eudora in terms of its rendering capabilities.</p>
<p>Here are a few of the significant HTML and CSS goodies you&#8217;re going to have to kiss goodbye: </p>
<ul>
<li><strong>Background images</strong><br />
Want a background image on that table cell or div? Forget about it friend, you have to make do with solid colors from now on.</li>
<li><strong>Floats</strong><br />
Just when HTML email designers were tentatively proclaiming that CSS layouts were achievable, Microsoft have decided to rain on our parade.</li>
<li><strong>Flash</strong><br />
Your recipients are just going to see a &#8220;red x&#8221; where the Flash movie would have been.</li>
</ul>
<p>And that’s just the tip of the iceberg &#8211; you can see a <a href="http://msdn2.microsoft.com/en-us/library/aa338201.aspx">complete list</a> of the missing HTML/CSS elements, properties and attributes on the MSDN site.</p>
<p>None of these limitations is going to make the task of designing HTML emails impossible, but they will ensure that no advances are made in this field for a good number of years. Remember, it&#8217;s been four years since the last version of Outlook was released, so I&#8217;m going to guess it&#8217;ll be at <em>least </em>six years before Outlook 2007 drops off the edge of the map.</p>
<p>Microsoft are claiming that enhanced security is behind the decision, which seems odd considering how they keep harping on about <a href="http://www.microsoft.com/technet/community/columns/secmgmt/sm0306.mspx">how secure Internet Explorer 7</a> is compared to its predecessor. And as usual it&#8217;s the web designers &#8211; and consumers &#8211; who get shafted. Hopefully when Microsoft&#8217;s customer base realize how crappy their HTML newsletters now look, they will start consider alternative email clients such as Thunderbird. Maybe then Microsoft will realize how shortsighted they have been.</p>
<h3>Further reading</h3>
<h4><a href="http://joe.hardy.id.au/blog/2006/11/21/broken-html-rendering-in-outlook-2007/">Broken HTML/CSS Rendering in Outlook 2007</a></h4>
<p>Joe Hardy has an excellent gripe about the situation, and details some of the specific problems you might encounter when designing HTML emails for Outlook 2007.</p>
<h4><a href="http://msdn2.microsoft.com/en-us/library/aa338201.aspx">Word 2007 HTML and CSS Rendering Capabilities in Outlook 2007</a></h4>
<p>Straight from the horse&#8217;s mouth.</p>
]]></content:encoded>
			<wfw:commentRss>http://f6design.com/journal/2007/01/10/microsoft-drops-the-ball-with-outlook-2007/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Getting HTML newsletters right</title>
		<link>http://f6design.com/journal/2006/10/07/getting-html-newsletters-right/</link>
		<comments>http://f6design.com/journal/2006/10/07/getting-html-newsletters-right/#comments</comments>
		<pubDate>Sat, 07 Oct 2006 11:57:24 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML/XHTML]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://f6design.com/journal/2006/10/07/getting-html-newsletters-right/</guid>
		<description><![CDATA[For a long time I was wary of designing email newsletters. I had read how difficult it was to construct an HTML newsletter that displayed as intended in all the popular email clients. I had heard about the horrors of creating layouts using tables. I had been warned about the perils of using CSS. But [...]]]></description>
			<content:encoded><![CDATA[<p>For a long time I was wary of designing email newsletters. I had read how difficult it was to construct an HTML newsletter that displayed as intended in all the popular email clients. I had heard about the horrors of creating layouts using tables. I had been warned about the perils of using CSS. But this year I have had several clients request that I design email newsletters for them, and had no choice but to school myself in the arcane art of HTML email design. I discovered that building successful HTML emails is not as daunting as it&#8217;s sometimes cracked up to be, and armed with a little knowledge it can be a fairly painless process.</p>
<h3>To CSS or not to CSS?</h3>
<p>CSS support in email clients varies widely. While most modern email clients have reasonable support for CSS, web-based email clients have an annoying habit of stripping stylesheets from between the <code>&lt;head&gt;&lt;/head&gt;</code> tags of your HTML document. They do this to stop your CSS styles overriding the styles of their own website &#8211; remember, your newsletter is being loaded into a parent webpage. Luckily you can get around this restriction by placing your stylesheet between the <code>&lt;body&gt;&lt;/body&gt;</code> tags of your document. This may be an unorthodox solution, but it will ensure your styles remains untouched. Unfortunately Google&#8217;s Gmail is not so easy to fool.</p>
<p>CSS support in Gmail is appalling. I mean, really, really bad. Gmail will not only strip styleheets from the <code>&lt;head&gt;</code> of your document, it will strip them from the <code>&lt;body&gt;</code> too. In other words, your HTML document will appear totally unstyled. And here&#8217;s the kicker: The only way to feed CSS styles to Google is to apply them inline, as in <code>&lt;p style="color: #000000; margin-bottom: 20px"&gt;</code>. It makes me feel compromised and dirty just thinking about it. </p>
<p>Currently Gmail only has about 5% of the web-based email client market, and its users are no doubt accustomed to their HTML emails looking like a dog&#8217;s breakfast. You may decide you can afford to let them suffer. Myself, I suck up my pride and apply the styles inline. I know that some of my clients have Gmail accounts, and I don&#8217;t want the job of explaining why their HTML newsletter looks like it was designed in Word. Here&#8217;s hoping Google get their act together sometime soon.</p>
<p>Where page layout is concerned, I&#8217;d suggest you forgo CSS in favour of tables &#8211; almost everything I have read on the topic has agreed that tables are an unavoidable reality of HMTL newsletter design. In case you needed convincing consider the following: No web-based email client supports the <code>position</code> property, Gmail doesn&#8217;t support the <code>float</code> property, and neither does Lotus Notes which has a 9% market share.</p>
<p>The idea of using tables for presentational layout may be anathema to the standards aware web designer, but it ain&#8217;t as bad as it sounds. In the context of an email newsletter, a table-based layout won&#8217;t cause any of the long-term damage it might on a full-scale website. An email newsletter only has one page, which is never going to be updated or modified again, so an inflexible table-based layout won&#8217;t actually create any headaches down the track.</p>
<h3>The curse of image blocking</h3>
<p>A recent development in the world of email clients is phenomenon of image blocking. To help combat spam, around 50% of email clients now block images that are embedded in email messages. The logic behind this is that spammers often embed a 1&#215;1 pixel transparent gif in the emails they send, to track whether an email has been opened. An increasing percentage of spammers are also using images in the body of their emails. Unfortunately, legitimate email marketers also use both of these techniques, and are punished along with the spammers.</p>
<p>The effect of image blocking on the appearance of your HTML email can be dramatic. It is imperative to know how your newsletter will look with images turned off, because that&#8217;s how a big chunk of your subscribers are going to see it. You can easily turn a web page&#8217;s images off in Firefox using the awesome <a href="http://chrispederick.com/work/webdeveloper/">Web Developer&#8217;s Extension</a>.</p>
<p>Below is an example of how one newletter I subscribe to looks both with and without images enabled, to give you an idea of the impact it makes on visual design.</p>
<p><strong><em>With images blocked:</em></strong></p>
<p><a class="imagelink" href="http://f6design.com/journal/wp-content/uploads/2006/10/icon_buffet_before_large.jpg" title="Icon Buffet newsletter without images - click to enlarge"><img  class="contentImg" src="http://f6design.com/journal/wp-content/uploads/2006/10/icon_buffet_before_small.jpg" alt="Icon Buffet newsletter with images - click to enlarge" /></a></p>
<p><strong><em>&#8230; and with images enabled:</em></strong></p>
<p><a class="imagelink" href="http://f6design.com/journal/wp-content/uploads/2006/10/icon_buffet_after_large.jpg" title="Icon Buffet newsletter without images - click to enlarge"><img class="contentImg" src="http://f6design.com/journal/wp-content/uploads/2006/10/icon_buffet_after_small.jpg" alt="Icon Buffet newsletter with images - click to enlarge" /></a></p>
<p>So what do do about the image blocking problem? There are a few strategies we can employ when designing an HTML newsletter:</p>
<ul>
<li><strong>Use text instead of images</strong><br />
There&#8217;s no need to forgo images altogether, just make sure that your newsletter is still easy to read when the images are turned off. Providing meaningful alt tags for images is a good place to start, but more important is to use text to convey important information rather than images. In the Icon Buffet example I showed above, the email may not look as pretty with images disabled, but the content remains just as accessible.</li>
<li><strong>Get Whitelisted</strong><br />
Most email clients will not block images from a sender who is in the recipient&#8217;s address book. Encourage your subscribers to add you to their address book.</li>
<li><strong>Provide a link to a web version of your newsletter</strong><br />
Place a text-based link at the very top of your email that launches a web version of the newsletter in the subscriber&#8217;s web browser. Text for the link should read something like: &#8220;Having difficulty viewing the images in this email? Read it in your web browser&#8221;.</li>
<li><strong>Attach images to the message</strong><br />
If an image is embedded directly in an email as an attachment, rather than hosted on a remote web server, it won&#8217;t be blocked. If you are sending a small campaign from your own computer, this is fairly simple to achieve. I understand there are also some professional email marketing services which allow this too. But be warned: some ISPs filter emails with embedded images, as it is a popular technique with spammers.</li>
</ul>
<h3>Designing for the preview pane</h3>
<p>Most desktop email clients feature a &#8216;preview pane&#8217;, allowing the recipient to view a preview of a message before deciding whether to open it. When the <a href="http://arstechnica.com/journals/microsoft.ars/2005/9/15/1247">next generation</a> of web-based email clients launch, they will feature preview panes too. This impacts on the way we design HTML newsletters, since we need to ensure the message still looks good at a glance in the preview pane, and doesn&#8217;t require horizontal scrolling. Keep your layout width between 500px and 600px and you&#8217;ll be fine, and of course put the most important content and the top of your email so it&#8217;s visible without scrolling vertically.</p>
<p>Here is an example of how the preview pane looks in the Mozilla Thunderbird email client:</p>
<p><a class="imagelink" href="http://f6design.com/journal/wp-content/uploads/2006/10/preview_pane_big.jpg" title="Mozilla Thunderbird preview pane - click to enlarge"><img class="contentImg" src="http://f6design.com/journal/wp-content/uploads/2006/10/preview_pane_small.jpg" alt="Mozilla Thunderbird preview pane - click to enlarge" /></a></p>
<h3>Sending your newsletter</h3>
<p>I&#8217;ve had a few clients who got nervous about the idea of using a third party company to send their email newsletters. In the past they had sent emails themselves from Outlook, and didn&#8217;t see any reason to change just because they now had a professionally designed newsletter. My advice: avoid this situation at all costs! Before you know it your client will be taking your beautiful newsletter template and attempting to edit it themselves in Outlook, butchering your layout &#8211; and your reputation &#8211; in the process. Add to this the fact that Outlook will magically turn your clean HTML markup into something resembling a spaghetti bolognaise, and you can see why it&#8217;s just a plain bad idea!</p>
<p>Fortunately their are some very reasonably priced options available for sending email campaigns on a  client&#8217;s behalf, preserving the integrity of your design as well as offering a lot of powerful features you wouldn&#8217;t have otherwise. A friend recommended <a href="http://www.campaignmonitor.com/">Campaign Monitor</a> to me some time back, and I&#8217;ve now used them to send several client campaigns. Their prices are very attractive ($5 per campaign + 1c per email), and they offer a comprehensive client reporting system as well as great subscription list management. You can sign up for free and send small test campaigns to see if their service is right for you &#8211; I reckon you&#8217;ll be hooked after you give it a whirl.</p>
<p>Of course whichever way you choose to send your HTML emails, make sure that before you click the &#8217;send&#8217; button for the final time that you test, test and test again! Ensure you have final signoff from your client on every aspect of the layout and text copy. Send a small test campaign and preview the email in as many email clients as you can get your hands on. Here are a few to consider: Outlook, Eudora, Thunderbird, Mac Mail, Entourage, Hotmail, Gmail, Yahoo. You only get one chance, so make sure you get it right.</p>
<h3>Further reading</h3>
<h4><a href="http://www.thinkvitamin.com/features/design/html-emails">HTML Emails &#8211; Taming The Beast</a></h4>
<p>A great overview of the pitfalls you may encounter when you embark on your first HTML email design.</p>
<h4><a href="http://www.campaignmonitor.com/blog/archives/2006/03/a_guide_to_css_1.html">A Guide to CSS Support in Email</a></h4>
<p>An extremely detailed checklist of CSS support in all the popular web-based and desktop email clients.</p>
<h4><a href="http://www.emaillabs.com/email_marketing_articles/html_email_design_tips.html">20 HTML Email Tips: Ignore at Your Own Risk</a></h4>
<p>A must-read article covering design, usability and functionality issues</p>
]]></content:encoded>
			<wfw:commentRss>http://f6design.com/journal/2006/10/07/getting-html-newsletters-right/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Image source swapping, CSS, and Safari</title>
		<link>http://f6design.com/journal/2006/09/29/image-source-swapping-css-and-safari/</link>
		<comments>http://f6design.com/journal/2006/09/29/image-source-swapping-css-and-safari/#comments</comments>
		<pubDate>Fri, 29 Sep 2006 23:56:44 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML/XHTML]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://f6design.com/journal/2006/09/29/image-source-swapping-css-and-safari/</guid>
		<description><![CDATA[Last week I was putting the finishing touches on a small website I created for a friend. Specifically, I was jazzing up the image gallery with an ‘Image loading…’ animation, so that visitors knew to hang around while a new image loaded. In the process I made an interesting discovery about the way Safari (Safari [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I was putting the finishing touches on a small website I created for a friend. Specifically, I was jazzing up the image gallery with an ‘Image loading…’ animation, so that visitors knew to hang around while a new image loaded. In the process I made an interesting discovery about the way Safari (Safari 1.2 at any rate) handles javascript image source swapping.</p>
<p>The image gallery was controlled by a Javascript which swapped the <code>src</code> parameter of a placeholder <code>img</code> tag each time the user selected a new image.</p>
<p>In my HTML markup I had a basic image tag with an ID applied to it:</p>
<pre><code>&lt;img id="placeholderimage" alt="" /&gt;</code></pre>
<p>When the user selected a new image (by clicking ‘next’ or ‘prev’ in my image gallery navigation), a javascript was triggered to load a jpeg into the placeholder:</p>
<pre><code>document.getElementById('placeholderimage').src = "mynewpic.jpg";</code></pre>
<p>The problem with this method is that while the new image loads into the placeholder, the old image remains on the page. To the user it appears as if nothing is happening. The solution is to hide the image while it loads, and show the user some sort of load indicator while they wait. When the image has completed loading, reveal it again and hide the load indicator.</p>
<p>The specifics of hiding/revealing the load indicator are beyond the scope of this article, so I won’t bore you with them here. Instead I’ll demonstrate the method by which I hid and revealed the image, as that is what caused problems in Safari.</p>
<p>To hide the image, I used javascript to apply the CSS style <code>display:none</code> before loading the new jpeg. I also created an <code>onload</code> event handler for my image, to detect when it had finished loading. Inside my <code>onload</code> function I revealed the image again:</p>
<pre><code>document.getElementById('placeholderimage').onload=function(){
        document.getElementById('placeholderimage').style.display = "block";
};
document.getElementById('placeholderimage').style.display = "none";
document.getElementById('placeholderimage').src = "mynewpic.jpg";</code></pre>
<p>Easy peasy. The image is removed from the document flow when it starts to load, and returned when it finishes.</p>
<p>Everything seemed to be rocking nicely, until I fired up the site Safari 1.2. The image was hiding as expected, but my <code>onload</code> function was never evoked. After some head scratching I traced the problem to my use of <code>display:block</code> when hiding the image. I think Safari’s logic is that because the image is no longer part of the document flow, there is no point bothering to load it. Unlike other browsers, Safari never initiated the image load, and that’s why the <code>onload</code> never fired.</p>
<p>Armed with this new knowledge, we have a couple of &#8220;Safari friendly&#8221; options at our displosal:</p>
<ul>
<li>
<h5>Use visibility not display</h5>
<p>If we use <code>visibility = "hidden";</code> instead of <code>display = "none";</code> to hide the image, everything works fine. The problem with using <code>visibility</code> is that the image is not removed from the document flow, meaning a gap is left on the page where the image used to be. Depending on the layout of your image gallery that may not be an issue for you &#8211; it may in fact be desirable. If it is an issue, you can set the height of the image (or it’s containing element if there is one) to zero, then use the onload handler to reset it to it’s correct height. Fiddly, but it works.
</li>
<li>
<h5>Move the image outside the viewport</h5>
<p>If your image has the CSS property <code>position:absolute</code>, then you should be able to move it off screen by setting either it’s <code>top</code> or <code>left</code> property to a suitable low value, for example: <code>left: -1000em</code>; That ought to place the image off screen out of sight.</li>
</ul>
<p>There may be other alternatives, and you can choose the one that suits you best. The important thing to remember is don’t use <code>display:block</code> to hide images while you swap their image source, or risk the wrath of Safari users!</p>
<p>For anyone interested to see the final implementation of my image gallery, <a href="http://www.archivedestruct.com/documentation/pr/images.php">here it is</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://f6design.com/journal/2006/09/29/image-source-swapping-css-and-safari/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
