<?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>alt-tag.com &#187; Web Standards</title>
	<atom:link href="http://alt-tag.com/blog/archives/category/web-standards/feed/" rel="self" type="application/rss+xml" />
	<link>http://alt-tag.com/blog</link>
	<description>Thoughts on everything from education and politics to internet usability, and programming.</description>
	<lastBuildDate>Sun, 22 Nov 2009 17:52:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>IE DOM Bugs</title>
		<link>http://alt-tag.com/blog/archives/2006/02/ie-dom-bugs/</link>
		<comments>http://alt-tag.com/blog/archives/2006/02/ie-dom-bugs/#comments</comments>
		<pubDate>Wed, 08 Feb 2006 05:40:41 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://tag-strategia.com/blog/?p=31</guid>
		<description><![CDATA[I&#8217;ve been working on a Javascript project where it&#8217;s necessary to create input elements (radio buttons and checkboxes) dynamically. With a functional DOM, it takes only a couple of lines of code, and works fine in Firefox and Safari. Too bad IE isn&#8217;t as DOM compatible as it claims to be.
After several searches, I discovered [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on a Javascript project where it&#8217;s necessary to create <code>input</code> elements (radio buttons and checkboxes) dynamically. With a functional <abbr title="Document Object Model">DOM</abbr>, it takes only a couple of lines of code, and works fine in Firefox and Safari. Too bad IE isn&#8217;t as DOM compatible as it claims to be.</p>
<p>After several searches, I discovered <a href="http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/properties/name_2.asp" title="MSDN Reference: name attribute">IE doesn&#8217;t allow the <code>name</code> attribute to be changed</a> after the element is created&#8212;and it can&#8217;t be set in a DOM compatible way during creation.</p>
<p>Bennett McElwee <a href="http://www.thunderguy.com/semicolon/2005/05/23/setting-the-name-attribute-in-internet-explorer/" title="Semicolon: Setting the &quot;name&quot; attribute in Internet Explorer">suggested a solution in his blog</a> that is nicely cross-browser; anything other than IE throws an exception and gets created properly. (I suspect modifying the parent node&#8217;s <code>innerHTML</code> would work as well.)</p>
<p><code class="codeblock"><span class="keyword">function</span> <span class="function">createElement</span>(type, name) {<br />
&nbsp;&nbsp;&nbsp;<span class="keyword">var</span> element = <span class="keyword">null</span>;<br />
<br />&nbsp;&nbsp;&nbsp;<span class="keyword">try</span> {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">// First try the IE way; if this fails then use the standard way</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;element = <span class="keyword">document</span>.<span class="function">createElement</span>(<span class="string">&#39;&lt;&#39;</span>+type+<span class="string">&#39; name=&quot;&#39;</span>+name+<span class="string">&#39;&quot;>&#39;</span>);<br />
&nbsp;&nbsp;&nbsp;} <span class="keyword">catch</span> (e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">// Probably failed because we're not running on IE</span><br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;<span class="keyword">if</span> (!element) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;element = <span class="keyword">document</span>.<span class="function">createElement</span>(type);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;element.name = name;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;<span class="keyword">return</span> element;<br />
}</code></p>
<h3>And your <code>type</code> attribute too</h3>
<p>Another part of the project requires we transform checkboxes to radio buttons and hidden fields. This could be accomplished through a page reload, but it&#8217;s overkill for such a small change. Once again, in truly DOM-compliant browsers, this requires only a couple of lines of code:</p>
<p><code class="codeblock">element.<span class="function">setAttribute</span>(<span class="string">&quot;type&quot;</span>, <span class="string">&quot;radio&quot;</span>);</code></p>
<p>The <a href="http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/properties/name_2.asp" title="MSDN Reference: name attribute">MSDN reference for the <code>type</code> attribute</a> says:</p>
<blockquote cite="http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/properties/name_2.asp"><p>As of Microsoft Internet Explorer 5, the <code>type</code> property is read/write-once, but only when an <code>input</code> element is created with the <code>createElement</code> method and before it is added to the document.</p></blockquote>
<p><a href="http://www.quirksmode.org/home.shtml" title="QuirksMode.org">QuirksMode</a> has a <a href="http://www.quirksmode.org/bugreports/archives/2006/01/Changing_the_type_of_an_input_field.html">bug report</a> for this, complete with <a href="http://stijn.gamerzheaven.nl/tests/JS2.htm">test page</a> and workaround submitted by Stijn Peeters.  Stijn admits the workaround needs a little bit of cleanup.</p>
<p>Essentially, his solution is to always remove the element, and recreate a modified one. (See the bug above!) Here&#8217;s my solution:</p>
<p><code class="codeblock"><span class="keyword">try</span> {<br />
&nbsp;&nbsp;&nbsp;element.<span class="function">setAttribute</span>(<span class="string">&quot;type&quot;</span>, <span class="string">&quot;radio&quot;</span>);<br />
} <span class="keyword">catch</span> (e) {<br />
&nbsp;&nbsp;&nbsp;<span class="keyword">var</span> newElement = <span class="keyword">null</span>;<br />
&nbsp;&nbsp;&nbsp;<span class="keyword">var</span> tempStr = element.<span class="function">getAttribute</span>(<span class="string">&quot;name&quot;</span>);<br />
&nbsp;&nbsp;&nbsp;<span class="keyword">try</span> {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newElement = <span class="keyword">document</span>.<span class="function">createElement</span>(<span class="string">&quot;&lt;input type=\&quot;&quot;</span> +typeStr+ <span class="string">&quot;\&quot; name=\&quot;&quot;</span> +tempStr+ <span class="string">&quot;\&quot;>&quot;</span>);<br />
&nbsp;&nbsp;&nbsp;} <span class="keyword">catch</span> (e) {}<br />
&nbsp;&nbsp;&nbsp;<span class="keyword">if</span> (!newElement) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newElement = <span class="keyword">document</span>.<span class="function">createElement</span>(<span class="string">&quot;input&quot;</span>);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newElement.<span class="function">setAttribute</span>(<span class="string">&quot;type&quot;</span>, <span class="string">&quot;radio&quot;</span>);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newElement.<span class="function">setAttribute</span>(<span class="string">&quot;name&quot;</span>, tempStr);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;<span class="keyword">if</span> (tempStr = element.<span class="function">getAttribute</span>(<span class="string">&quot;value&quot;</span>)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newElement.<span class="function">setAttribute</span>(<span class="string">&quot;value&quot;</span>, tempStr);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;element.parentNode.<span class="function">replaceChild</span>(newElement, element);<br />
}</code></p>
<div class="seeAlso">
<h3>Update:</h3>
<p>Aaron over at easy-reader.net <a href="http://www.easy-reader.net/archives/2005/09/02/death-to-bad-dom-implementations/" title="easy-reader.net: Death to bad DOM implementations">encountered the same problem</a> a few months before I did. His solution is similar, and the comments there are good. If only I had found it sooner!</div>
]]></content:encoded>
			<wfw:commentRss>http://alt-tag.com/blog/archives/2006/02/ie-dom-bugs/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>PHP Bugs, Headers, and Such</title>
		<link>http://alt-tag.com/blog/archives/2006/01/php-bugs-headers-and-such/</link>
		<comments>http://alt-tag.com/blog/archives/2006/01/php-bugs-headers-and-such/#comments</comments>
		<pubDate>Tue, 10 Jan 2006 17:33:06 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://tag-strategia.com/blog/?p=25</guid>
		<description><![CDATA[We just resolved a series of related bugs in the web product we&#8217;re developing. I&#8217;m hoping by documenting the symptoms and solutions it may ease someone else&#8217;s fruitless search.
The application has a &#8220;skin&#8221; feature allowing non-technical users to customize colors, font, and a handful of other things easily accomplished with CSS. Rather than edit more [...]]]></description>
			<content:encoded><![CDATA[<p>We just resolved a series of related bugs in the web product we&#8217;re developing. I&#8217;m hoping by documenting the symptoms and solutions it may ease someone else&#8217;s fruitless search.</p>
<p>The application has a &#8220;skin&#8221; feature allowing non-technical users to customize colors, font, and a handful of other things easily accomplished with <abbr title="Cascading Style Sheet">CSS</abbr>. Rather than edit more than twenty other pages to add an extra <code>&lt;link /&gt;</code> tag, we chose to add the following line to the top of our primary CSS file:</p>
<p><code class="codeblock"><span class="keyword">@import</span>(<span class="string">&quot;custom.css&quot;</span>) screen;</code></p>
<p>Notice how we defined the media type for the imported CSS file as part of the import rule, as suggested by the <a href="http://www.w3.org/TR/REC-CSS2/cascade.html#at-import" title="W3.org: CSS2 Specification - @import">CSS2 specification</a>.</p>
<p>A little  more background: using a little bit of Apache magic courtesy of <code>mod_rewrite</code> in the <code>httpd.conf</code>, requests for the file <code>custom.css</code> are redirected to <code>custom.php</code>, in the same folder.</p>
<p><code class="codeblock">&lt;Directory &quot;/www/css&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;RewriteEngine on<br />
&nbsp;&nbsp;&nbsp;RewriteRule ^custom\.css$ custom.php [nc]<br />
&lt;/Directory&gt;</code></p>
<p>It didn&#8217;t work. Firefox&#8217;s Javascript Console was pointed directly to the problem: &#8220;The stylesheet http://localhost/css/custom.css was not loaded because its <abbr title="Multipurpose Internet Mail Extensions">MIME</abbr> type, &#8216;text/html&#8217;, is not &#8216;text/css&#8217;.&#8221; (Also, <code>custom.css</code> did not show up in Firefox&#8217;s built-in <abbr title="Document Object Model">DOM</abbr> Inspector.) The error was easily fixed, by adding the following line to <code>custom.php</code>:</p>
<p><code class="codeblock"><span class="function">header</span>(<span class="string">&quot;Content-type: text/css&quot;</span>);</code></p>
<p>The styles then loaded properly in Firefox (and Safari), but not in Internet Explorer. Browsing directly to <code>custom.css</code> worked fine in Firefox, but IE behaved oddly. It first acted as if it was about to download the file (oddly, the default action for the working CSS file), but then popped up a dialog saying the URL could not be found.</p>
<p>I then examined the <abbr title="HyperText Transfer Protocol">HTTP</abbr> headers, and compared them with a working file. (It&#8217;s off-topic for this post, but I stumbled across this while Googling for solutions. If you&#8217;re a geek and want to see some fun headers in the wild, visit <a href="http://www.nextthing.org/archives/2005/08/07/fun-with-http-headers" title="Andrew Wooster’s nextthing.org: Fun With HTTP Headers">Fun With HTTP Headers</a>.)</p>
<p>Headers unique to main.css (working):</p>
<p><code class="codeblock">Last-Modified: Mon, 09 Jan 2006 22:28:54 GMT<br />
ETag: "ce134-ed8-43c2e3a6"<br />
Accept-Ranges: bytes<br />
Content-Length: 3800<br />
X-Pad: avoid browser bug</code></p>
<p>Headers unique to custom.css (not working):</p>
<p><code class="codeblock">X-Powered-By: PHP/5.0.4<br />
Set-Cookie: PHPSESSID=uah38ktr3mgq3td5j6qmcdgjf3; path=/<br />
Expires: Thu, 19 Nov 1981 08:52:00 GMT<br />
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0<br />
Pragma: no-cache</code></p>
<p>The cookie is generated automatically by PHP because of the need to use session information as part of the customization process. But, this is a CSS file, so I want it to be cached by default. Adding the following line before <code>session_start()</code> is called hid the no-cache headers, and things began to work in IE almost as they should.</p>
<p><code class="codeblock"><span class="function">session_cache_limiter</span>(<span class="string">&quot;none&quot;</span>);</code></p>
<p>I said, &#8220;Almost.&#8221; After tweaking the headers, I could now visit the file directly in IE without the &#8220;URL not found&#8221; error. (Meaning, it attempted to download it, rather than display it, but it was a step in the right direction.) However, it would still not apply the styles from the imported CSS file.  It was difficult to debug as there were no error messages, and IE&#8217;s DOM tree is not consistent with <abbr title="World Wide Web Consortium">W3C</abbr> standards. The final piece&#8212;and I could find no documentation anywhere for this&#8212;was to strip the media type from the import statement (at the top of this post), making it:</p>
<p><code class="codeblock"><span class="keyword">@import</span>(<span class="string">&quot;custom.css&quot;</span>);</code></p>
<p>It sounds easy now that I write it, but this series of bugs cost several hours of work. I hope this post will save someone else similar trouble. (If you see something I missed, or know of a faster course we could have taken to solve this problem, feel free to add your comments!)</p>
]]></content:encoded>
			<wfw:commentRss>http://alt-tag.com/blog/archives/2006/01/php-bugs-headers-and-such/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Standards Are For Corporations Too</title>
		<link>http://alt-tag.com/blog/archives/2005/11/web-standards-are-for-corporations-too/</link>
		<comments>http://alt-tag.com/blog/archives/2005/11/web-standards-are-for-corporations-too/#comments</comments>
		<pubDate>Tue, 15 Nov 2005 07:56:23 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://tag-strategia.com/blog/?p=21</guid>
		<description><![CDATA[I like web standards. But I think there are many standards proponents whose advocacy misses the mark when it comes to business.
Being able to easily replicate presentational effects across multiple browsers, from IE or Firefox, to a PDA or cell phone is a web developer&#8217;s Utopia. The ability to use semantic markup to not only [...]]]></description>
			<content:encoded><![CDATA[<p>I like web standards. But I think there are many standards proponents whose advocacy misses the mark when it comes to business.</p>
<p>Being able to easily replicate presentational effects across multiple browsers, from <abbr title="Internet Explorer">IE</abbr> or Firefox, to a <abbr title="Personal digital assistant">PDA</abbr> or cell phone is a web developer&#8217;s <a href="http://en.wikipedia.org/wiki/Utopia" title="Wikipedia: Utopia">Utopia</a>. The ability to use semantic markup to not only accommodate users with disabilities and effect clean design, but also to reduce the weight of code and improve response times is a wonderful thing.</p>
<p>Molly Holzschlag has posted a <a href="http://webstandards.org/buzz/archive/2005_11.html#a000589" title="WASP: An Open Letter to Disney Store UK">scathing open letter</a> to Disney Store UK, taking them to task for their new design, which is, from an HTML standpoint, a step backward, making some rookie mistakes like bad alt text for images. (I don&#8217;t know how it compares visually&#8212;I didn&#8217;t see the original site.) Like standards advocates frequently do, she cites total cost of ownership, server performance, and search engine rankings.</p>
<p>She&#8217;s right on some points: table-based layout and in-page scripts will result in slower downloads and slower renders. Even sub-second delays, while not consciously identifiable, contribute to a <a href="http://www.useit.com/alertbox/990530.html" title="Jakob Nielsen: The Top Ten New Mistakes of Web Design">reduced level of trust</a>. But Molly, and most of the comments, miss the point from the company&#8217;s point of view: does the new site make more money? It&#8217;s not until well over 100 comments that <a href="http://www.adamwebdesign.ca/" title="Adam Web Design">Adam</a> <a href="http://www.molly.com/2005/11/03/an-open-letter-to-disney-store-uk/#comment-15560" title="Molly.com: An Open Letter To Disney (comments)">brings this up</a>. (Gee, it&#8217;d be nice to have that many people react to my blog.) Revenue, not web standards, is the primary driver for corporations.</p>
<p>As for the accessibility issues she brings up, she&#8217;s spot on. I think if she had made accessibility the main thrust of her letter rather than just another item in a over-long list of talking points it would have had more impact. But the fault isn&#8217;t really with Disney, but with the designer. As I&#8217;ve <a href="/blog/archives/2005/09/what-managers-should-know-about-web-developers/" title="TAG: What Managers Should Know About Web Developers">mentioned before</a>, few managers have the skill set to evaluate the work of web programmers on anything other than a visual level. Who is training the managers?</p>
<p>The blogosphere has been accused of being an <a href="http://sethgodin.typepad.com/seths_blog/2004/09/the_echo_chambe_1.html" title="Seth Goodin: The echo chamber (part 2)">echo chamber</a>, or as <a href="http://www.salon.com/tech/feature/2004/02/20/echo_chamber/index_np.html" title="Salon.com: Is there an echo in here?">David Weinberger puts it</a>, &#8220;Those Internet spaces where like-minded people listen only to those people who already agree with them.&#8221; The Web Standards community is no exception. The <a href="http://www.molly.com/2005/11/03/an-open-letter-to-disney-store-uk/#comment-15198" title="Molly.com: An Open Letter To Disney (comment by Dr Livingston)">sole voice</a> who suggested that an open letter criticizing the new Disney site may not have been the most effective course of action was attacked by multiple readers. There is merit in his position, and I was frustrated so many dismissed him out of hand.</p>
<p>Web standards are good. Designers who employ web standards are good. Evangelism does not need to include condescension or criticism. Until corporations with a major internet presence discover for themselves the benefits of web standards on the bottom line, they will not willingly change. Trying to push it on them won&#8217;t speed the process. Molly gets it right in her <a href="http://www.molly.com/2005/11/14/web-standards-and-the-new-professionalism/" title="Molly.com: Web Standards and The New Professionalism">follow-up post</a> (before burying the thought with more indignation): &#8220;Professionalism means taking responsibility for educating ourselves and each other.&#8221; And education happens best when the learner is excited about learning.</p>
]]></content:encoded>
			<wfw:commentRss>http://alt-tag.com/blog/archives/2005/11/web-standards-are-for-corporations-too/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Back to Blogging</title>
		<link>http://alt-tag.com/blog/archives/2005/09/back-to-blogging/</link>
		<comments>http://alt-tag.com/blog/archives/2005/09/back-to-blogging/#comments</comments>
		<pubDate>Thu, 08 Sep 2005 18:31:36 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[ General]]></category>
		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://tag-strategia.com/blog/?p=10</guid>
		<description><![CDATA[Nearly a year after a rather abortive attempt at blogging, I’ve decided to try again. I’ve chosen to violate one of  Jakob Nielsen&#8217;s Top Ten New Mistakes of Web Design, by removing a handful of my old posts (it&#8217;s number six on his list).  They weren&#8217;t me; they lacked personality, and tended to [...]]]></description>
			<content:encoded><![CDATA[<p>Nearly a year after a rather abortive attempt at blogging, I’ve decided to try again. I’ve chosen to violate one of  Jakob Nielsen&#8217;s <a href="http://www.useit.com/alertbox/990530.html" title="Alertbox: Top Ten New Mistakes of Web Design (May 1999)">Top Ten <em>New</em> Mistakes of Web Design</a>, by removing a handful of my old posts (it&#8217;s number six on his list).  They weren&#8217;t me; they lacked personality, and tended to be overly preachy and high-minded. But that&#8217;s okay, as no one read them anyway. I&#8217;ve also chosen to expand my focus to include politics and public education in Utah. I realize this is a rather broad leap from discussions on web standards and Internet usability/accessibility, but it&#8217;s an issue that is important to me.</p>
<p>I&#8217;ve struggled with the site layout.  I wanted something different from what WordPress offered.  In no particular order, I wanted:</p>
<ul>
<li>Table-less design</li>
<li>Three-column layout, with fixed sides and a variable width</li>
<li>Browser-independent (X)HTML, free of hacks</li>
<li>A source order that placed my content first, and my side columns second, yet still maintaining left and right columns</li>
</ul>
<p>I didn&#8217;t get everything I wanted, but I came pretty close.  This layout is based loosely on <a href="http://www.positioniseverything.net/articles/sidepages/jello-piefecta-clean.html" title="PositionIsEverything: The Jello Mold Piefecta">The Jello Mold Piefecta</a>.  I&#8217;m still moving things around a bit, so you may find an occasional validation error or glitch.</p>
<p>I also still need to add some usability pieces, including &quot;jump to navigation&quot; links, and a stylesheet for smaller screens. I also intent to experiment with ways to allow users to apply a large print style sheet easily.  I&#8217;ve seen several sites do it, but it&#8217;s generally through a prefs link that isn&#8217;t easily accessible.</p>
]]></content:encoded>
			<wfw:commentRss>http://alt-tag.com/blog/archives/2005/09/back-to-blogging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Standards and Search Engines</title>
		<link>http://alt-tag.com/blog/archives/2005/09/standards-and-search-engines/</link>
		<comments>http://alt-tag.com/blog/archives/2005/09/standards-and-search-engines/#comments</comments>
		<pubDate>Thu, 08 Sep 2005 18:05:54 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://tag-strategia.com/blog/archives/2005/09/standards-and-search-engines/</guid>
		<description><![CDATA[Molly Holzschlag has posted an interesting comparison of web standards as used by popular search engines.  Of particular interest were the comments regarding Google, whose site does not validate, uses tables for layout, and generally violates the sensibilities of hard core standards proponents.  The following comment to Molly&#8217;s post by &#34;Frank&#34; says it [...]]]></description>
			<content:encoded><![CDATA[<p>Molly Holzschlag has <a href="http://www.molly.com/2005/09/08/searching-for-standards/">posted an interesting comparison</a> of web standards as used by popular search engines.  Of particular interest were the comments regarding Google, whose site does not validate, uses tables for layout, and generally violates the sensibilities of hard core standards proponents.  The following comment to Molly&#8217;s post by &quot;Frank&quot; says it all.</p>
<blockquote cite="http://www.molly.com/2005/09/08/searching-for-standards/#comment-12778" title="Searching for Standards (Comments)"><p>Google&#8217;s search results page has been retooled using semantic markup and CSS by at least two dozen people as it is, but they just don&#8217;t care. It&#8217;s annoying, it&#8217;s sad, and it&#8217;s also pointless.</p>
<p>There have been some retooling jobs that saved an awful lot of markup and would thus, as a result, save Google ridiculous amounts of bandwidth, but did they show any interest? Nope.</p>
<div class="cite">From <a href="http://www.molly.com/2005/09/08/searching-for-standards/#comment-12778">Searching for Standards (Comments)</a><br />Referenced Thu, 08 Sep 2005 11:45 (MDT)</div>
</blockquote>
<p>This flies in the face of what I&#8217;ve heard about Google: namely that they make every effort to optimize their output&#8212;not for file size, but for speed.  Changes which increase their output time are rolled back.  (I imagine gzipping their output is an exception to that, but given their traffic volume, the savings are likely significant.) Take a look at their source code, there are several things worth noting.  First, it&#8217;s quite compact; there is little extraneous white space, and shortened versions of tags are frequently used. Second, style information is embedded in each page rather than linked separately.  Why? I suspect they found it&#8217;s faster to simply output their (brief) style sheet than to embed the link and have to process and additional web request, causing load on their servers (TCP is not exactly a light protocol), and delaying the browser&#8217;s ability to display content.</p>
<p>I made a similar standards argument during my recent work with a major internet retailer.  Not only did they use table-based layout (frequently wrapping single-cell tables around block level elements), they unabashedly used spacer gifs.  I jus about screamed when I saw it, but I wasn&#8217;t there as a web programmer, so their wasn&#8217;t much I could do about it.  I did, however, write a brief paper outlining the performance and bandwidth savings.  While processor performance likely wouldn&#8217;t be terribly affected (the limiting factor being the network connection), I estimated bandwidth savings to be at least 15%, just for tweaking the worst 20% of the page!  The idea was tossed around, and gained some interest by a handful of middle managers, but was never implemented.  Strategic projects&#8212;those focused on making money, not saving it (and bandwidth is sort of a sunk cost anyway)&#8212;were given priority, and developer resources were limited.  Additionally, all changes to the web code were costly, as the entire site was handled by a monolithic CGI (which should be apparent to any technical user who bothered to study the URLs).</p>
<p>Web standards is a great ideal, and can be a great cost savings, but can also get in the way of performance.  It requires web developers trained in implementing them properly&#8212;which nearly always costs more than college students who learned on their own.  Few companies are willing to pay a premium for an end result that looks the same to 80%+ of their customers.</p>
<p>While I firmly believe standards should have broader adherence, I think standards advocates sometimes forget about the bottom line.</p>
]]></content:encoded>
			<wfw:commentRss>http://alt-tag.com/blog/archives/2005/09/standards-and-search-engines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Accessible Resources</title>
		<link>http://alt-tag.com/blog/archives/2004/08/accessible-resources/</link>
		<comments>http://alt-tag.com/blog/archives/2004/08/accessible-resources/#comments</comments>
		<pubDate>Fri, 06 Aug 2004 22:55:22 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">/?p=7</guid>
		<description><![CDATA[I have been documenting some coding best-practices to be followed by web programmers I work with.  Two of the best resources on HTML accessibility that I have come across so far are:

Dive Into Accessibility by Mark Pilgrim
Accessible HTML/XHTML Forms found at The Web Standards Project


Found on Amazon.com:

Constructing Accessible Websites

Designing with Web Standards by Jeffrey [...]]]></description>
			<content:encoded><![CDATA[<p>I have been documenting some coding best-practices to be followed by web programmers I work with.  Two of the best resources on HTML accessibility that I have come across so far are:</p>
<ul>
<li><a href="http://diveintoaccessibility.org/">Dive Into Accessibility</a> by <a href="http://diveintomark.org/" title="Mark's Blog">Mark Pilgrim</a></li>
<li><a href="http://webstandards.org/learn/tutorials/accessible-forms/01-accessible-forms.html">Accessible HTML/XHTML Forms</a> found at <a href="http://webstandards.org/">The Web Standards Project</a></li>
</ul>
<div class="seeAlso">
<h4>Found on Amazon.com:</h4>
<ul>
<li><a href="http://www.amazon.com/exec/obidos/ASIN/1590591488/tagstrategia-20">Constructing Accessible Websites</a></li>
<li>
<a href="http://www.amazon.com/exec/obidos/ASIN/0735712018/tagstrategia-20">Designing with Web Standards</a> by Jeffrey Zeldman</li>
<li>
<a href="http://www.amazon.com/exec/obidos/ASIN/0471374865/tagstrategia-20">Xhtml 1.0 Web Development Sourcebook: Building Better Sites and Applications</a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://alt-tag.com/blog/archives/2004/08/accessible-resources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Lite</title>
		<link>http://alt-tag.com/blog/archives/2004/08/code-lite/</link>
		<comments>http://alt-tag.com/blog/archives/2004/08/code-lite/#comments</comments>
		<pubDate>Wed, 04 Aug 2004 16:44:18 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">/?p=6</guid>
		<description><![CDATA[By way of an article at The Web Standards Project, I came across a good piece by Douglas Bowman, which he presented at Digital Design World, called &#34;Throwing Tables Out the Window.&#34;
In it he walks through the benefits of redesigning the presentation layer of a corporate web site (in this case, Microsoft.com), and not only [...]]]></description>
			<content:encoded><![CDATA[<p>By way of an <a href="http://webstandards.org/buzz/archive/2004_07.html#a000389" title="WaSP: Defenestrating Tables">article</a> at <a href="http://webstandards.org/">The Web Standards Project</a>, I came across a good piece by Douglas Bowman, which he presented at <a href="http://www.ftponline.com/conferences/digitaldesignworld/Seattle/">Digital Design World</a>, called &quot;<a href="http://www.stopdesign.com/articles/throwing_tables/">Throwing Tables Out the Window</a>.&quot;</p>
<p>In it he walks through the benefits of redesigning the presentation layer of a corporate web site (in this case, Microsoft.com), and not only successfully argues the time savings for developers who code to <a href="http://w3.org" title="World Wide Web Consortium site">W3C</a> standards, but also gives a quantitative analysis of bandwidth savings from the redesign: an estimated 924 GB in bandwidth savings <em>per day</em>.  In Microsoft&#8217;s case, the design-time savings would be even more significant, as the site serves different versions of pages depending on whether you are using IE with Windows or not.</p>
<p>Pay attention to what he is saying.  I have had a similar experience (though not nearly on that scale) with a local non-profit organization.  After using their web site, I volunteered to make some improvements, as I found the <acronym title="Hypertext Markup Language">HTML</acronym> to be convoluted, and usability and consistency were nearly non-existent.  By removing most of the font tags, applying a more correct document structure with header tags, and creating a simple style sheet, I was able to reduce the file size of most of the site pages by as much as 80%.  (I would estimate an average 60% savings in file size across the site.)</p>
<p>These are extreme examples, but bloated code is prevalent across the internet. If we can write our code properly up front, we can optimize download and render times, and make our code more maintainable.</p>
]]></content:encoded>
			<wfw:commentRss>http://alt-tag.com/blog/archives/2004/08/code-lite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
