<?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>Bradley Holt &#187; XHTML</title>
	<atom:link href="http://bradley-holt.com/tag/xhtml/feed/" rel="self" type="application/rss+xml" />
	<link>http://bradley-holt.com</link>
	<description></description>
	<lastBuildDate>Fri, 06 Jan 2012 18:57:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Tagnabit Launched!</title>
		<link>http://bradley-holt.com/2009/06/tagnabit-launched/</link>
		<comments>http://bradley-holt.com/2009/06/tagnabit-launched/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 16:37:00 +0000</pubDate>
		<dc:creator>Bradley Holt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[acmne09]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Folksonomy]]></category>
		<category><![CDATA[Found Line]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[tagnabit]]></category>
		<category><![CDATA[tmdvt09]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://bradley-holt.com/2009/06/tagnabit-launched/</guid>
		<description><![CDATA[Last night we announced the launch of tagnabit, a social media aggregator. It&#8217;s &#8220;a service that aggregates tags from popular social media websites. It is useful for conferences or other events. Participants can use a shared tag across Twitter, Flickr, Technorati, YouTube and Delicious. Tagnabit then aggregates this content in one place.&#8221; The idea originally [...]]]></description>
			<content:encoded><![CDATA[<p>Last night we <a href="http://twitter.com/BradleyHolt/status/1986607969">announced</a> the launch of <a href="http://tagnabit.net/">tagnabit, a social media aggregator</a>. It&#8217;s &#8220;a service that aggregates tags from popular social media websites. It is useful for conferences or other events. Participants can use a shared tag across Twitter, Flickr, Technorati, YouTube and Delicious. Tagnabit then aggregates this content in one place.&#8221; The idea originally started with <a href="http://bradley-holt.com/2009/03/tmd-vt-social-media-recap/">Town Meeting Day Vermont </a>and then was used for the <a href="http://bradley-holt.com/2009/05/acm-ne-conference/">Alliance for Community Media Northeast regional conference</a>. People found it useful, so we decided to make a &#8220;generic&#8221; version that basically has the same functionality as these sites, but for any arbitrary tag. Bill Simmon has a few ideas on <a href="http://candleboy.com/2009/06/tagnabit/">how tagnabit can be used</a>.</p>
<p>The functionality behind tagnabit was built using <a href="http://framework.zend.com/">Zend Framework</a> (MVC components, Zend_Feed, Zend_Service_Flickr, and Zend_Cache). The client side is all semantic XHTML (with a few Microformats), CSS, and a few JavaScript enhancements (using jQuery). We&#8217;ve got plans for some new features &#8211; but we&#8217;re curious to see how people use the site first.  If you&#8217;ve got feedback, please send it our way via <a href="http://twitter.com/home?status=%23tagnabit+">Twitter</a>, Flickr, Technorati, YouTube or Delicious by tagging your content with <a href="http://tagnabit.net/tagnabit">tagnabit</a> (#tagnabit on Twitter).</p>
]]></content:encoded>
			<wfw:commentRss>http://bradley-holt.com/2009/06/tagnabit-launched/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Web Is Not A Visual Medium</title>
		<link>http://bradley-holt.com/2009/03/the-web-is-not-a-visual-medium/</link>
		<comments>http://bradley-holt.com/2009/03/the-web-is-not-a-visual-medium/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 22:50:00 +0000</pubDate>
		<dc:creator>Bradley Holt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Open Standards]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://bradley-holt.com/2009/03/the-web-is-not-a-visual-medium/</guid>
		<description><![CDATA[A claim you may have heard me make before is that the web is not a visual medium. Some of you know exactly what I mean and some of you probably think I&#8217;m nuts. For those of you who think I&#8217;m crazy, let me elaborate. You, like most people, probably experience the web visually. However, [...]]]></description>
			<content:encoded><![CDATA[<p>A claim you may have heard me make before is that the web is not a visual medium. Some of you know exactly what I mean and some of you probably think I&#8217;m nuts. For those of you who think I&#8217;m crazy, let me elaborate. You, like most people, probably experience the web visually. However, this visual aspect is only one facet of the web. Underneath the visual aspect you will find that the web is a structured, or <em>semantic</em>, medium. This means that people (or even machines) of varying capabilities (as opposed to disabilities), using all sorts of user agents (a fancy way of saying web browsers) can experience this same web non-visually. If built correctly, the same web page should be accessible to you visually as well as to visually impaired people, search engine robots, people that want to use text only web browsers, people using older versions of web browsers (backward compatibility), people using mobile devices, and user agents that weren&#8217;t even invented yet when the web page was first built (<a href="http://en.wikipedia.org/wiki/Forward_compatibility">forward compatibility</a>).</p>
<p>There&#8217;s one catch. There are <em>many</em> web sites and web applications built on the incorrect assumption that the web is a visual medium. The web designers and web developers who build these web sites and web applications <a href="http://store.mozilla.org/product.php?code=14%2013108&amp;catid=0">break the web</a>. In order to not break the web, web designers and web developers need to use open standards starting with <a href="http://bradley-holt.com/2008/03/plain-old-semantic-html-posh/">plain old semantic (X)HTML</a>. This <em>semantic</em> (X)HTML can then be <a href="http://www.alistapart.com/articles/understandingprogressiveenhancement">progressively enriched/enhanced</a> using <abbr title="Cascading Style Sheets">CSS</abbr> (for presentation) and JavaScript (for behavior). This approach works well with the concept of <a href="http://www.w3.org/TR/mobile-bp/#OneWeb">One Web</a> which &#8220;means making, as far as is reasonable, the same information and services available to users irrespective of the device they are using.&#8221;</p>
<p>Craig Cook has a good article about <a href="http://www.alistapart.com/articles/grokwebstandards">How to Grok Web Standards</a> in which he addresses many of these ideas and more. If you still think I&#8217;m crazy, hopefully it&#8217;s not because you think I&#8217;m wrong about the web not being a visual medium. If you don&#8217;t think I&#8217;m crazy then maybe in another blog post I&#8217;ll talk about why I think that content management systems (CMSs) in general, and WYSIWYG editors specifically, break the web.</p>
]]></content:encoded>
			<wfw:commentRss>http://bradley-holt.com/2009/03/the-web-is-not-a-visual-medium/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>VPR Reports Campaign 2008</title>
		<link>http://bradley-holt.com/2008/11/vpr-reports-campaign-2008/</link>
		<comments>http://bradley-holt.com/2008/11/vpr-reports-campaign-2008/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 21:31:00 +0000</pubDate>
		<dc:creator>Bradley Holt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Open Standards]]></category>
		<category><![CDATA[Vermont]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://bradley-holt.com/2008/11/vpr-reports-campaign-2008/</guid>
		<description><![CDATA[For coverage of local Vermont and national election news, check out the VPR Reports Campaign 2008 page that we (well, Jason really) put together. The 2008 Election Map is a Flash widget provided by NPR but other than that the page is all XHTML, CSS, and JavaScript (via jQuery and jQuery UI). Check back throughout [...]]]></description>
			<content:encoded><![CDATA[<p>For coverage of local Vermont and national election news, check out the <a href="http://www.vpr.net/news/campaign_2008/index.php">VPR Reports Campaign 2008</a> page that we (well, Jason really) put together. The 2008 Election Map is a Flash widget provided by NPR but other than that the page is all XHTML, CSS, and JavaScript (via jQuery and <a href="http://ui.jquery.com/">jQuery UI</a>). Check back throughout the evening for updated information and listen to live coverage on VPR starting at 7pm tonight!</p>
]]></content:encoded>
			<wfw:commentRss>http://bradley-holt.com/2008/11/vpr-reports-campaign-2008/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>VSA Arts of Vermont Website</title>
		<link>http://bradley-holt.com/2008/10/vsa-arts-of-vermont-website/</link>
		<comments>http://bradley-holt.com/2008/10/vsa-arts-of-vermont-website/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 12:02:00 +0000</pubDate>
		<dc:creator>Bradley Holt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://bradley-holt.com/2008/10/vsa-arts-of-vermont-website/</guid>
		<description><![CDATA[We recently launched the updated VSA Arts of Vermont website. Since VSA Arts of Vermont&#8217;s mission is to make &#8220;the world of the arts accessible to Vermonters of all abilities&#8221; it was critical that their new website be accessible. This was a challenge we readily accepted as web accessibility is something we take very seriously. [...]]]></description>
			<content:encoded><![CDATA[<p>We recently launched the updated <a href="http://www.vsavt.org/">VSA Arts of Vermont</a> website. Since VSA Arts of Vermont&#8217;s mission is to make &#8220;the world of the arts accessible to Vermonters of all abilities&#8221; it was critical that their new website be accessible. This was a challenge we readily accepted as web accessibility is something we take very seriously.</p>
<p>Web accessibility is fairly straightforward if you take a content-first approach and focus on web standards. The real challenge is doing this <em>and</em> making a great looking website that doesn&#8217;t have to compromise on functionality. We accomplished this by using semantic XHTML that contains enough structure to stand on its own without any visual representation. Then, this content was stylized using CSS. Finally, some behavior was added using unobtrusive JavaScript (using jQuery). This concept is called <a href="http://www.alistapart.com/articles/understandingprogressiveenhancement">progressive enhancement</a>. The final result is a great looking and very functional website that is accessible to all users.</p>
]]></content:encoded>
			<wfw:commentRss>http://bradley-holt.com/2008/10/vsa-arts-of-vermont-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Northeast Pools &amp; Spas Website Launch</title>
		<link>http://bradley-holt.com/2008/08/northeast-pools-spas-website-launch/</link>
		<comments>http://bradley-holt.com/2008/08/northeast-pools-spas-website-launch/#comments</comments>
		<pubDate>Sat, 23 Aug 2008 16:27:00 +0000</pubDate>
		<dc:creator>Bradley Holt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Found Line]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://bradley-holt.com/2008/08/northeast-pools-spas-website-launch/</guid>
		<description><![CDATA[We just launched the new Northeast Pools &#38; Spas website. I think Dave and Jason did a great job on the visual design and Liz did a fabulous job on organizing and helping to write the content! I worked primarily on the functionality for the construction and portfolio pages. The site is implemented using semantic [...]]]></description>
			<content:encoded><![CDATA[<p>We just launched the new <a href="http://www.northeastpools.net/">Northeast Pools &amp; Spas</a> website. I think Dave and Jason did a great job on the visual design and Liz did a fabulous job on organizing and helping to write the content! I worked primarily on the functionality for the <a href="http://www.northeastpools.net/what-we-do/construction/">construction</a> and <a href="http://www.northeastpools.net/portfolio/">portfolio</a> pages. The site is implemented using semantic XHTML, CSS, <a href="http://jquery.com/">jQuery</a>, and <a href="http://framework.zend.com/">Zend Framework</a>.</p>
<p>The cool thing about the construction and portfolio pages is that they use <a href="http://en.wikipedia.org/wiki/Progressive_enhancement">progressive enhancement</a>. What this means is that users without JavaScript (i.e. search engine robots &amp; screen readers) can navigate the content by fully reloading the page on each click. You can try this out yourself by disabling JavaScript in your browser. For users with JavaScript, each click on &#8220;next&#8221; or &#8220;previous&#8221; (on the construction page) or each portfolio feature (on the portfolio page) will cause their browsers to load the appropriate content dynamically into the right spot on the page without needing a full page reload.</p>
<p>One of the common problems with this type of JavaScript navigation is that you often break the browser&#8217;s back and forward navigation capabilities. Another common problem is that you can&#8217;t bookmark the page or send the link to a friend and have the same content loaded. Because these pages update the browser&#8217;s &#8220;hash&#8221; we get the browser&#8217;s back and forward capabilities as well as bookmarkability. The &#8220;hash&#8221; is the part of the URL that starts with the &#8220;#&#8221; character. For example, assuming you have JavaScript enabled you should be able to navigate right to the waterfall photo using the following link:
</p>
<p><a href="http://www.northeastpools.net/portfolio/#feature/waterfall/">http://www.northeastpools.net/portfolio/#feature/waterfall/</a></p>
<p>Critiques are welcome!</p>
]]></content:encoded>
			<wfw:commentRss>http://bradley-holt.com/2008/08/northeast-pools-spas-website-launch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Found Line Website Launched</title>
		<link>http://bradley-holt.com/2008/04/new-found-line-website-launched/</link>
		<comments>http://bradley-holt.com/2008/04/new-found-line-website-launched/#comments</comments>
		<pubDate>Sun, 27 Apr 2008 23:51:00 +0000</pubDate>
		<dc:creator>Bradley Holt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Found Line]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://bradley-holt.com/2008/04/new-found-line-website-launched/</guid>
		<description><![CDATA[I am happy to report that the new Found Line website has launched! This new version includes some much needed content and visual updates and is now running in Zend Framework (although there is very little functionality beyond static content). All of the visual effects use jQuery, there is no Flash to be found on [...]]]></description>
			<content:encoded><![CDATA[<p>I am happy to report that the new <a href="http://www.foundline.com/">Found Line</a> website has launched! This new version includes some much needed content and visual updates and is now running in Zend Framework (although there is very little functionality beyond static content). All of the visual effects use jQuery, there is no Flash to be found on the site, and all behavior should degrade gracefully if JavaScript is not enabled. The site is almost entirely valid XHTML and CSS &#8211; the only exceptions are a couple of visual effects that required a bit of hacking (but we&#8217;re hoping to find a valid XHTML alternative). The site has been checked for cross-browser compatibility in 25+ browser/OS combinations. It has also been tested in a text only browser and should be accessible to screen readers. Please take a look and let me know your thoughts &#8211; good, bad, or indifferent!</p>
]]></content:encoded>
			<wfw:commentRss>http://bradley-holt.com/2008/04/new-found-line-website-launched/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>POSH In Action</title>
		<link>http://bradley-holt.com/2008/04/posh-in-action/</link>
		<comments>http://bradley-holt.com/2008/04/posh-in-action/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 20:11:00 +0000</pubDate>
		<dc:creator>Bradley Holt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://bradley-holt.com/2008/04/posh-in-action/</guid>
		<description><![CDATA[In a previous post I talked about Plain Old Semantic HTML (POSH). The POSH concept saved us a lot of time and frustration on a recent project. Our task was to create a cold water wash calculator for Seventh Generation&#8217;s Get Out of Hot Water for Earth Day promotion. The calculator takes four inputs: water [...]]]></description>
			<content:encoded><![CDATA[<p>In a previous post I talked about <a href="http://bradley-holt.com/2008/03/plain-old-semantic-html-posh/">Plain Old Semantic HTML (POSH)</a>. The POSH concept saved us a lot of time and frustration on a recent project. Our task was to create a cold water wash calculator for Seventh Generation&#8217;s Get Out of Hot Water for Earth Day promotion. The calculator takes four inputs: water temperature, type of hot water heater, type of clothes washer, and loads per week. It then tells you the savings if you switch to (or are already using) cold water, an Energy Star washer, and/or 2X Concentrate Natural Laundry Detergent.</p>
<p>They wanted  a smooth user experience. This sort of thing would normally be created in Flash but we decided to use XHTML + CSS + jQuery instead. The first step was to create functional and technical specifications. The specifications (and looking through all of the calculations to make sure we understand everything correctly) were actually a big part of the project. After that we moved into production.</p>
<p>We had two people working on this project &#8211; I implemented the functionality in jQuery and Jason implemented the design in CSS. We spent the first two hours working together on getting the semantic XHTML correct. Once we had the semantic XHTML we essentially had an <a href="http://en.wikipedia.org/wiki/Application_programming_interface">API</a> that we both could use to do our work. It was worth the time upfront getting this part right.</p>
<p>Next we went to our respective corners. I created the jQuery functionality selecting and manipulating the <a href="http://en.wikipedia.org/wiki/Document_Object_Model">DOM</a> using CSS selectors. Jason used the XHTML structure we had come up with to add CSS and make it all look pretty. The great part was that, since we had come up with the the XHTML structure as the one touch point, we were each able to do our jobs without hardly bothering the other person to ask questions or make changes.</p>
<p>Of course, there were a few changes needed to the XHTML once we started working on our individual pieces &#8211; we&#8217;re not perfect after all. This is were <a href="http://subversion.tigris.org/">Subversion</a> came in handy. I could change my local copy and when I was sure I wanted to I could commit that change and Jason could update his local copy merging any of his own changes (or vice-versa). The whole process went quite smoothly and we&#8217;re very happy with the <a href="http://www.seventhgeneration.com/get-out-of-hot-water">results</a> (the &#8220;Switch to Cold Water and Save&#8221; calculator on the right).</p>
]]></content:encoded>
			<wfw:commentRss>http://bradley-holt.com/2008/04/posh-in-action/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Standards</title>
		<link>http://bradley-holt.com/2008/03/standards/</link>
		<comments>http://bradley-holt.com/2008/03/standards/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 16:23:00 +0000</pubDate>
		<dc:creator>Bradley Holt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://bradley-holt.com/2008/03/standards/</guid>
		<description><![CDATA[I&#8217;m sure everyone has heard the phrase, &#8220;The great thing about standards is that there are so many to choose from.&#8221; I think we finally have a coding standard for everything we do at Found Line &#8211; from PHP to CSS to web file names. We&#8217;ve gone through a couple of iterations and various options [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sure everyone has heard the phrase, &#8220;The great thing about standards is that there are so many to choose from.&#8221; I think we <span style="font-style: italic;">finally</span> have a coding standard for everything we do at <a href="http://www.foundline.com/">Found Line</a> &#8211; from PHP to CSS to web file names. We&#8217;ve gone through a couple of iterations and various options but here&#8217;s what we&#8217;ve come up with.</p>
<p>For application code we&#8217;ve decided to simply follow the <a href="http://framework.zend.com/manual/en/coding-standard.html">Zend Framework PHP Coding Standard</a>. It gives us guidance on PHP file formatting, naming conventions, coding style, and inline documentation. If it works for a project like Zend Framework with a large number of developers it should work for us. Plus, I wouldn&#8217;t be surprise if many applications start standardizing on Zend Framework conventions so following their standards should put us in a good position when doing integration work.</p>
<p>For id and class names in XHTML and CSS we&#8217;ve decided to adopt the <a href="http://microformats.org/wiki/naming-principles#Some_Details">microformats naming principle</a> of dash-separated-lowercase-words. This is the only CSS naming convention I&#8217;ve seen that has a real purpose behind it. We will try to use names from existing microformat standards before coming up with our own. However, when we have to come up with our own names at least they will be consistent with the microformat names.</p>
<p>For files that will be web-accessible we&#8217;ve decided to use the dash-separated-lowercase-words standard as well. This is for a couple of reasons. First, it&#8217;s consistent with what Zend Framework expects. Second, Matt Cutts <a href="http://www.mattcutts.com/blog/dashes-vs-underscores/">recommends dashes instead of underscores</a> as word separators.</p>
]]></content:encoded>
			<wfw:commentRss>http://bradley-holt.com/2008/03/standards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plain Old Semantic HTML (POSH)</title>
		<link>http://bradley-holt.com/2008/03/plain-old-semantic-html-posh/</link>
		<comments>http://bradley-holt.com/2008/03/plain-old-semantic-html-posh/#comments</comments>
		<pubDate>Mon, 24 Mar 2008 22:33:00 +0000</pubDate>
		<dc:creator>Bradley Holt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://bradley-holt.com/2008/03/plain-old-semantic-html-posh/</guid>
		<description><![CDATA[I didn&#8217;t realize someone had coined a clever phrase for this concept. The basic concept of POSH is creating (X)HTML that is semantic, or structural, rather than presentational. Most people experience the web as a visual medium and thus assume that it is a visual medium. Many web development tools (such as Dreamweaver&#8217;s WYSIWYG editor) [...]]]></description>
			<content:encoded><![CDATA[<p>I didn&#8217;t realize someone had coined a clever phrase for this concept. The basic concept of <a href="http://microformats.org/wiki/posh">POSH</a> is creating (X)HTML that is semantic, or <em>structural</em>, rather than presentational. Most people experience the web as a visual medium and thus assume that it is a visual medium. Many web development tools (such as Dreamweaver&#8217;s WYSIWYG editor) reinforce this misconception. The web is in fact a structured medium and one facade to that structure is its visual side that most of us experience every day. People without the gift of sight, search engine robots, and other web crawlers don&#8217;t experience the web visually. In order to make the web available to the widest audience possible we need to build websites with proper structure first. Then we can add presentation via CSS and behavior through a JavaScript library such as <a href="http://jquery.com/">jQuery</a>.</p>
<p>Here are the basic steps to make your next website POSH:
<ul>
<li>validate your (X)HTML &#8211; invalid markup is not very POSH at all;</li>
<li>use tables only for tabular data, never for layout;</li>
<li>use existing elements and attributes if they fit the semantics of what you&#8217;re creating (e.g. ul, li, dl, dt, dd) instead of generic div or span elements;</li>
<li>use class and id names that are semantic, not presentational (e.g. MainNav is semantic but LeftNav implies presentation and is not so POSH);</li>
<li>use as little (X)HTML as possible to markup your content.</li>
</ul>
<p>For those who claim that this is too limiting when it comes to design I suggest you check out <a href="http://www.csszengarden.com/">css Zen Garden</a>. Very POSH, very cool. Every single design you can pick from uses the same structured XHTML page &#8211; the only thing that changes is the CSS style sheet.</p>
<p>Earlier I mentioned something about adding behavior with JavaScript. My favorite JavaScript library is jQuery. jQuery lets you <em>unobtrusively</em> add JavaScript behavior to your (X)HTML pages using simple CSS selectors. This means no inline JavaScript code in your (X)HTML &#8211; no onclick or onmouseover event handlers cluttering things up.</p>
<p>POSH + CSS + jQuery (or another unobtrusive JavaScript library) is very cool indeed. But it&#8217;s more than just cool. It makes your websites easier to maintain and it opens the door to concepts such as <a href="http://en.wikipedia.org/wiki/Microformats">microformats</a> &#8211; data that is both human and machine-readable. Are you ready to get POSH?</p>
]]></content:encoded>
			<wfw:commentRss>http://bradley-holt.com/2008/03/plain-old-semantic-html-posh/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

