<?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>dev&#124;sushi &#187; css/xhtml</title>
	<atom:link href="http://devsushi.com/tag/cssxhtml/feed/" rel="self" type="application/rss+xml" />
	<link>http://devsushi.com</link>
	<description>Discussion on Development in Several Different Flavours</description>
	<lastBuildDate>Fri, 16 Apr 2010 01:06:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Mambo to the beat of the internet</title>
		<link>http://devsushi.com/2007/08/10/mambo-to-the-beat-of-the-internet/</link>
		<comments>http://devsushi.com/2007/08/10/mambo-to-the-beat-of-the-internet/#comments</comments>
		<pubDate>Fri, 10 Aug 2007 16:59:41 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[css/xhtml]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web standards]]></category>

		<guid isPermaLink="false">http://adamhewgill.com/devsushi/2007/08/10/mambo-to-the-beat-of-the-internet/</guid>
		<description><![CDATA[A few years ago I looked into using a Content Management System (CMS) to develop a site for a friend. At the time there were a few choices including Mambo, Joomla, Drupal, and about a hundred more which you can test at Open Source CMS. Mambo was really the only player that had the needed [...]]]></description>
			<content:encoded><![CDATA[<p>A few years ago I looked into using a Content Management System (CMS) to develop a site for a friend. At the time there were a few choices including <a href="http://mambo-foundation.org/">Mambo</a>, <a href="http://www.joomla.org/">Joomla</a>, <a href="http://drupal.org/">Drupal</a>, and about a hundred more which you can test at <a href="http://www.opensourcecms.com/">Open Source CMS</a>. Mambo was really the only player that had the needed feature set which included forum/gallery/blogs/etc all in one user based interface (thanks to the many extensions). The only issue was that the system was horribly unfriendly to the internet and its standards. Each control/plugin box on the page was wrapped in a table inside another table and finally another table. Doing any template work was nightmare-ish especially if you wanted to use proper XHTML and CSS; and don&#8217;t even get me started on accessibility. I didn&#8217;t end up doing the project because my recommendation was to write it all myself.<span id="more-50"></span></p>
<p>Today I came across a del.icio.us link from <a href="http://snook.ca/jonathan/">Jonathon Snook</a> about how <a href="http://www.source.mambo-foundation.org/content/view/126/1/">Mambo will be integrating Cake PHP for version 5.0</a>. I wasn&#8217;t able to find a development time line but did come across some other interesting news.</p>
<blockquote><p>The team has spent a considerable amount of time working on XHTML validation, WCAG 1.0 (Priority 1, 2, and some 3), removal of unnecessary and/or inaccessible JavaScript code, improved usability, plus much more.<br />
<cite><a href="http://www.source.mambo-foundation.org/content/view/126/1/">from &quot;Baking Mambo&quot; written by Chad Auld</a></cite>
</p></blockquote>
<p>I hope that 4.7 comes out soon and that the work indicated by the preceding quote actually makes a difference. It would be great to see a success for Mambo that causes a cascade of other CMSs to follow suit.</p>
]]></content:encoded>
			<wfw:commentRss>http://devsushi.com/2007/08/10/mambo-to-the-beat-of-the-internet/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ASP.Net CheckBoxes should be able to have values</title>
		<link>http://devsushi.com/2007/07/16/aspnet-checkboxes-should-be-able-to-have-values/</link>
		<comments>http://devsushi.com/2007/07/16/aspnet-checkboxes-should-be-able-to-have-values/#comments</comments>
		<pubDate>Mon, 16 Jul 2007 19:06:33 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[annoyances]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[css/xhtml]]></category>
		<category><![CDATA[web standards]]></category>

		<guid isPermaLink="false">http://adamhewgill.com/devsushi/2007/07/16/aspnet-checkboxes-should-be-able-to-have-values/</guid>
		<description><![CDATA[The ASP.Net CheckBox and CheckBoxList control don&#8217;t allow for the use of the full W3C HTML standard. For some reason Microsoft decided to implement a reduced functionality version that creates more work for the programmer. Come on Microsoft why can&#8217;t you follow even the simplest of standards? In this case it would make coding the [...]]]></description>
			<content:encoded><![CDATA[<p></p>
<p>The ASP.Net <em>CheckBox</em> and <em>CheckBoxList</em> control don&#8217;t allow for the use of the full W3C HTML standard. For some reason Microsoft decided to implement a reduced functionality version that creates more work for the programmer. Come on Microsoft why can&#8217;t you follow even the simplest of standards? In this case it would make coding the .Net framework easier for you not to mention us!<span id="more-47"></span></p>
<p>The W3C HTML 4.01 specification specifically states for the <em>value</em> attribute to:</p>
<blockquote><p>
&#8211; Specify for radio buttons and checkboxes &#8211;<br />
<cite><a href="http://www.w3.org/TR/html401/interact/forms.html#edef-INPUT">W3C HTML 4.01 Specification &#8211; INPUT Element</a></cite>
</p></blockquote>
<p>To me this quote reads as a strong recommendation to specify the <em>value</em> attribute rather than leave it up to the browsers default (generally &quot;On&quot;). Microsoft decided to not even allow the value attribute to be set. They went so far as to have a validation message built into Visual Studio that says:</p>
<blockquote><p>
Attribute &#8216;Value&#8217; is not a valid attribute of element &#8216;CheckBox&#8217;
</p></blockquote>
<p>If you ignore the warning and run the page, the <em>value</em> attribute is missing. I have even tried circumventing the ASP.Net HTML-izer by adding <em>value</em> to the attributes collection with no success. Microsoft intentionally strips it, so I can only assume they have some reasoning behind this behavior and I imagine they will say something about security in defense.</p>
<p>There is one way to circumvent the behavior but it requires not using ASP.Net controls. Simply insert traditional <em>input type=&#8221;checkbox&#8221;</em> elements into your page and collect their values using <em>Request.Form</em>.</p>
<pre class="brush: vb">Sub Page_Load ()
  Dim value As String
  value = Request.Form(&quot;chkItem&quot;)
End Sub
&hellip;
&lt;input type=&quot;checkbox&quot; id=&quot;chkItem&quot; name=&quot;chkItem&quot; /&gt;
&lt;label for=&quot;chkItem&quot;&gt;CheckBox Item Text&lt;/label&gt;
</pre>
<p>I made a big deal out of this issue simply because to me it doesn&#8217;t make any sense. You can get around the issue and still use ASP.Net controls but it requires extra coding.</p>
<pre class="brush: vb">Sub Page_Load ()
  Dim value As String
  If chkItem.Checked Then
    value = &quot;Some Value&quot;
  Else
    value = &quot;Some Other Value&quot;
  End If
End Sub
&hellip;
&lt;asp:CheckBox ID=&quot;chkItem&quot; Text=&quot;CheckBox Item Text&quot; runat=&quot;server&quot; /&gt;
</pre>
<p>When using the <em>CheckBoxList</em> control you will notice ASP.Net uses tables to layout the list. To keep it from doing this you simply need to add a few attributes. It should then use much more standards compliant code. I also show how to access which boxes are checked after postback in a <em>CheckBoxList</em>.</p>
<pre class="brush: vb">Sub Page_Load ()
  ' Find out which boxes were checked
  Dim value As String = &quot;&quot;
  For Each item As ListItem In cblTest.Items
    If item.Selected Then
      value &amp;= item.Value
    End If
  Next
End Sub
&hellip;
&lt;asp:CheckBoxList ID=&quot;cblList&quot; RepeatLayout=&quot;Flow&quot; RepeatDirection=&quot;Horizontal&quot; runat=&quot;server&quot;&gt;
  &lt;asp:ListItem Text=&quot;Item 1&quot; Value=&quot;1&quot; /&gt;
  &lt;asp:ListItem Text=&quot;Item 2&quot; Value=&quot;2&quot; /&gt;
  &lt;asp:ListItem Text=&quot;Item 3&quot; Value=&quot;3&quot; /&gt;
&lt;/asp:CheckBoxList&gt;
</pre>
<p>As always let me know if you have any questions.</p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://devsushi.com/2007/07/16/aspnet-checkboxes-should-be-able-to-have-values/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>ASP.Net Dynamic Controls (Part 3)</title>
		<link>http://devsushi.com/2006/12/23/aspnet-dynamic-controls-part-3/</link>
		<comments>http://devsushi.com/2006/12/23/aspnet-dynamic-controls-part-3/#comments</comments>
		<pubDate>Sat, 23 Dec 2006 10:10:42 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[css/xhtml]]></category>

		<guid isPermaLink="false">http://adamhewgill.com/devsushi/2006/12/23/aspnet-dynamic-controls-part-3/</guid>
		<description><![CDATA[I have received a few requests via email and in comments for more detail on how to get your data back after postback with dynamic controls. This evening I started to put together some code examples and mulled over the details of the article in my head. The first step was to re-read my previous [...]]]></description>
			<content:encoded><![CDATA[<p></p>
<p>I have received a few requests via email and in comments for more detail on how to get your data back after postback with dynamic controls. This evening I started to put together some code examples and mulled over the details of the article in my head. The first step was to re-read my previous two articles so I could get my bearings on where to start. Part 1 of this series is an initial outline of <a href="http://adamhewgill.com/devsushi/2006/08/27/aspnet-dynamic-control-creation-part-1/">how to create dynamic controls and use Request.Form to collect the data after postback</a>. Part 2 went into detail on <a href="http://adamhewgill.com/devsushi/2006/09/01/aspnet-dynamic-controls-part-2/">how to figure out which button was clicked to cause postback using a JavaScript technique</a>. In the middle of re-reading the second article I had an epiphany. There is a better way to do that! The proper method is standards compliant, accessible and is outlined in the <abbr title="World Wide Web Consortium">W3C</abbr> HTML specifications. So I will put the original article on hold and explain this technique.<span id="more-30"></span></p>
<p>What I didn&#8217;t realize when I wrote Part 2 of this series was that HTML forms have a built in way to recognize what button was clicked. Here is a relevant quote from the spec explaining it (poorly).</p>
<blockquote cite="http://www.w3.org/TR/html4/interact/forms.html#successful-controls"><p>A successful control is &#8220;valid&#8221; for submission. Every successful control has its control name paired with its current value as part of the submitted form data set. A successful control must be defined within a FORM element and must have a control name.</p></blockquote>
<p>So that is just a wordy way to say that form elements have their values returned in a name/value pair after the form is submitted. We have all seen the URL GET version (http://&#8230;../index.php?name=value&#038;name2=value2) of this and the POST version is the same inside the closed POST package. So the only question is &#8220;What is a successful control really?&#8221; which requires more digging. <a href="http://www.w3.org/TR/html4/interact/forms.html#successful-controls">Take a look for yourself there are many reasons</a>. The one that is most interesting is &#8220;If a form contains more than one submit button, only the activated submit button is successful.&#8221; Perfect! So which ever button is clicked will have its name/value pair available to us on the other side of the submit. Lets take a look at an example:</p>
<pre class="brush: html">&lt;form method="get" action="self.php"&gt;
  &lt;input type="submit" name="button1" value="Text on Button1" /&gt;
  &lt;input type="submit" name="button2" value="Text on Button2" /&gt;
&lt;/form&gt;
</pre>
<p>You can see that the name/value pair after the question mark shows which you clicked. Since this does not require JavaScript it is a much more accessible solution to the problem. A wider number of users are now able to participate which takes us closer to our goal of creating a great website. The next step is to figure out how to utilize this information to overcome the chicken and egg problem.</p>
<p>Before going further I thought I would recap the chicken and egg problem so you know why we are doing this in the first place. The simplest example is a dynamic list of, for example, your friends on Facebook. When the page is generated we go to the database and collect all the people you have tagged as friends generating a list on the page. Each entry has some tools so you can interact with your friends, this included a delete button to remove them (perhaps if they Poke you rudely or defamate your wall). In order for the buttons to function we needed to generate the list in the Page_Load event. Now when the user pushes the delete button the page is redrawn. Event handlers fire after Page_Load so we have already added the deleted person back before they are to be deleted. In some cases it wouldn&#8217;t be a problem to simply remove them but it is wasted effort. We need a way of knowing about the click before we regenerate the list</p>
<pre class="brush: vb">Sub Page_Load()
  Dim i As Integer
  Dim btn As Button
  For i = 1 To 10
    btn = New Button
    btn.ID = "btn" &#038; i
    btn.Text = "Button " &#038; i
    phFun.Controls.Add(btn)
  Next

  For i = 1 To 10
    If Not String.IsNullOrEmpty(Request.Form("btn" &#038; i)) Then
      &hellip; ' Perform action on the ith item
    End If
  Next
End Sub
&hellip;
&lt;asp:PlaceHolder ID="phFun" runat="server" /&gt;
</pre>
<p>You will notice that in the last example I don&#8217;t set the name or the value property of the button control. ASP.Net does the work behind the scenes, whatever you put for the ID will be the id and name attributes in the HTML and whatever you put in for Text will be the value attribute. I would like to hear from you, let me know if this works for you or if you need help getting it to fit the bill for your project. I&#8217;ll be back with the article I was initially going to write sometime next week and somewhere down the road I will make the jump to AJAX dynamic controls, stay tuned.</p>
<p><a href="http://adamhewgill.com/devsushi/2006/08/27/aspnet-dynamic-control-creation-part-1/">ASP.Net Dynamic Controls (Part 1) &laquo;</a><br />
<a href="http://adamhewgill.com/devsushi/2006/09/01/aspnet-dynamic-controls-part-2/">ASP.Net Dynamic Controls (Part 2) &laquo;</a><br />
<a href="http://adamhewgill.com/devsushi/2007/01/19/aspnet-dynamic-controls-part-4/">ASP.Net Dynamic Controls (Part 4) &raquo;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://devsushi.com/2006/12/23/aspnet-dynamic-controls-part-3/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Ban Comic Sans</title>
		<link>http://devsushi.com/2006/12/09/ban-comic-sans/</link>
		<comments>http://devsushi.com/2006/12/09/ban-comic-sans/#comments</comments>
		<pubDate>Sat, 09 Dec 2006 22:57:02 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[css/xhtml]]></category>
		<category><![CDATA[typography]]></category>

		<guid isPermaLink="false">http://adamhewgill.com/devsushi/2006/12/09/ban-comic-sans/</guid>
		<description><![CDATA[ban comic sans: putting the sans in comic sans I saw this on reddit today and thought it would amuse a few of you as it did me. I have used Comic Sans on occasion to mimic comic book style in Photoshop and it looks great. The guys at Little Gamers also use it for [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bancomicsans.com/">ban comic sans: putting the sans in comic sans</a></p>
<p>I saw this on <a href="http://reddit.com/">reddit</a> today and thought it would amuse a few of you as it did me. I have used Comic Sans on occasion to mimic comic book style in Photoshop and it looks great. The guys at <a href="http://www.little-gamers.com/">Little Gamers</a> also use it for their comic (9pt regular all-caps, if you were curious). The opening titles for the movie <a href="http://www.amazon.ca/gp/product/B000BJ7BCK?ie=UTF8&#038;tag=adamhewgillco-20&#038;linkCode=as2&#038;camp=15121&#038;creative=330641&#038;creativeASIN=B000BJ7BCK"><em>Sky High</em></a><img src="http://www.assoc-amazon.ca/e/ir?t=adamhewgillco-20&#038;l=as2&#038;o=15&#038;a=B000BJ7BCK" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> also take advantage of it, they use it drop shadowed in all-caps, such a fun movie to watch.<span id="more-26"></span></p>
<p>Comic Sans is certainly easy to read and is instantly recognizable but is not generally appropriate for use. Unfortunately, you can find tons of sites out there that use it since it is considered a &#8220;Web Safe&#8221; font of which there are very few. I don&#8217;t support a full out ban (other than for comedic purposes) but I agree that it should be a lot less used in the wild.</p>
<p><b>Update:</b> The comment on Reddit turned up the page of one Vincent Connare the designer of Comic Sans. He gives the <a href="http://www.connare.com/comic.htm">history of the font</a>.</p>
<p>Lately I&#8217;ve become very interested in typography and what works and doesn&#8217;t work. I ventured to the library the other day and grabbed a few tomes that I am reading slowly. It certainly is a very dense topic but is extremely interesting. Once you start to recognize a certain font coming up again and again on posters, in manuals and on TV your interest starts to snowball. Lately I have been noticing <a href="http://www.identifont.com/show?1N2"><em>Century Gothic</em></a> everywhere I go, I even use it on <a href="http://adamhewgill.com">my new commercial site</a>. Take a very good look at the small A character it is the defining character of this font. You can see that the circle is reused throughout the small letters with the exact same dimensions. Trust me it is everywhere and now you will notice it too. :o)</p>
]]></content:encoded>
			<wfw:commentRss>http://devsushi.com/2006/12/09/ban-comic-sans/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Gravatars &#8211; Not on my site</title>
		<link>http://devsushi.com/2006/11/30/gravatars-not-on-my-site/</link>
		<comments>http://devsushi.com/2006/11/30/gravatars-not-on-my-site/#comments</comments>
		<pubDate>Thu, 30 Nov 2006 19:58:22 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[css/xhtml]]></category>

		<guid isPermaLink="false">http://adamhewgill.com/devsushi/2006/11/30/gravatars-not-on-my-site/</guid>
		<description><![CDATA[In my Google Reader account I have a few blogs that use the Gravatar icon linking in the comments section. Today I have finally fully decided that I will never (unless something changes) add these to my blog. For weeks now I have been noticing that blogs are loading very slowly and sometimes the comments [...]]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://www.google.com/reader">Google Reader</a> account I have a few blogs that use the <a href="http://www.gravatar.com/">Gravatar icon</a> linking in the comments section. Today I have finally fully decided that I will never (unless something changes) add these to my blog. <span id="more-24"></span>For weeks now I have been noticing that blogs are loading very slowly and sometimes the comments are really messed up looking.  A quick glance at the status bar informs me that I am waiting on www.gravatar.com to fill in the icons on each comment. Sometimes they would appear but lately they are failing and instead loading the alt text for the icon which looks stupid.</p>
<p><a href="/images/gravatar1.gif" title="snook.ca with broken gravatars"><img src="/images/gravatar1_sm.gif" alt="snook.ca with broken gravatars" /></a><a href="/images/gravatar2.gif" title="ordered list with broken gravatars"><img src="/images/gravatar2_sm.gif" alt="ordered list with broken gravatars" /></a></p>
<p>Quite a few bloggers that used to use gravatars like <a href="http://veerle.duoh.com/">Veerle Pieters</a> and <a href="http://www.456bereastreet.com/">Roger Johansson</a> have now turned them off due to the issues. I&#8217;m not sure if the issue is with bandwidth or misconfiguration but hopefully they will fix it before people completely abandon them because the idea is great.</p>
]]></content:encoded>
			<wfw:commentRss>http://devsushi.com/2006/11/30/gravatars-not-on-my-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Post-October New Theme</title>
		<link>http://devsushi.com/2006/11/02/post-october-new-theme/</link>
		<comments>http://devsushi.com/2006/11/02/post-october-new-theme/#comments</comments>
		<pubDate>Thu, 02 Nov 2006 18:31:55 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[css/xhtml]]></category>
		<category><![CDATA[graphics]]></category>

		<guid isPermaLink="false">http://adamhewgill.com/devsushi/2006/11/02/post-october-new-theme/</guid>
		<description><![CDATA[October has come and gone and so down must come the Pink for October theme. I&#8217;ve been working on this theme in my spare hours but overall I really like it. Nothing revolutionary, no JavaScript, one Internet Explorer 6- CSS file (gif replacement for the transparent png logo) and yet its a great leap forward [...]]]></description>
			<content:encoded><![CDATA[<p>October has come and gone and so down must come the <a href="http://adamhewgill.com/devsushi/2006/09/12/pink-for-october/">Pink for October</a> theme. <span id="more-19"></span>I&#8217;ve been working on this theme in my spare hours but overall I really like it. Nothing revolutionary, no JavaScript, one Internet Explorer 6- <abbr title="Cascading Style Sheets">CSS</abbr> file (gif replacement for the transparent png logo) and yet its a great leap forward for me. This design was the first one I did using Photoshop to design the initial layout and look. I don&#8217;t know if the end result shows it but I was able to forget about the limitations of CSS and <abbr title="eXtensible HyperText Markup Language">XHTML</abbr> and really have fun. I think that future designs will translate better from Photoshop to CSS/XHTML but overall I am happy.</p>
<p>I have decided to continue supporting cancer on this site by including links to the <a href="http://www.cbcf.org/">Canadian Breast Cancer Foundation</a> and the <a href="http://www.cancer.ca/">Canadian Cancer Society</a> in the footer.</p>
]]></content:encoded>
			<wfw:commentRss>http://devsushi.com/2006/11/02/post-october-new-theme/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>HTML Tags I had never heard of</title>
		<link>http://devsushi.com/2006/09/30/html-tags-i-had-never-heard-of/</link>
		<comments>http://devsushi.com/2006/09/30/html-tags-i-had-never-heard-of/#comments</comments>
		<pubDate>Sat, 30 Sep 2006 22:36:47 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[css/xhtml]]></category>

		<guid isPermaLink="false">http://adamhewgill.com/devsushi/2006/09/30/html-tags-i-had-never-heard-of/</guid>
		<description><![CDATA[I recently checked out the source code written by our in-house web designer for the main page of the Housing and Residence website. To my surprise she had used some tags that I initially didn&#8217;t believe was valid markup. I quickly realized how wrong I was, kicked my self for my ignorance and set off [...]]]></description>
			<content:encoded><![CDATA[<p>I recently checked out the source code written by our in-house web designer for the main page of the <a href="http://www.housing.uwaterloo.ca">Housing and Residence</a> website. To my surprise she had used some tags that I initially didn&#8217;t believe was valid markup. I quickly realized how wrong I was, kicked my self for my ignorance and set off to learn all the HTML tags I was missing out on. There are quite a few tags in the <a href="http://www.w3.org/TR/html4/index/elements.html"><abbr title="HyperText Markup Language">HTML</abbr> 4.01 standard</a> developed by the <a href="http://www.w3.org/" title="World Wide Web Consortium"><abbr title="World Wide Web Consortium">W3C</abbr></a> so really I shouldn&#8217;t have been too surprised that I didn&#8217;t know them all.<span id="more-15"></span></p>
<p>Just for fun here is a complete list of all the 81 HTML tags in the standard (not including those that are deprecated). A, <a href="#abbr">ABBR</a>, <a href="#acronym">ACRONYM</a>, <a href="#address">ADDRESS</a>, AREA, B, BASE, <a href="#bdo">BDO</a>, BIG, BLOCKQUOTE, BODY, BR, BUTTON, CAPTION, <a href="#cite">CITE</a>, CODE, COL, COLGROUP, <a href="#dl">DD</a>, <a href="#del">DEL</a>, <a href="#dfn">DFN</a>, DIV, <a href="#dl">DL</a>, <a href="#dl">DT</a>, EM, FIELDSET, FORM, FRAME, FRAMESET, H1, H2, H3, H4, H5, H6, HEAD, HR, HTML, I, IFRAME, IMG, INPUT, <a href="#del">INS</a>, KBD, LABEL, LEGEND, LI, LINK, MAP, META, NOFRAMES, NOSCRIPT, OBJECT, OL, OPTGROUP, OPTION, P, PARAM, PRE, <a href="#q">Q</a>, SAMP, SCRIPT, SELECT, SMALL, SPAN, STRONG, STYLE, <a href="#sub">SUB</a>, <a href="#sub">SUP</a>, TABLE, TBODY, TD, TEXTAREA, TFOOT, TH, THEAD, TITLE, TR, TT, UL, VAR. By show of hands how many people can say what each and every tag in that list is for? Probably a very select few of you and certainly not I. In this article I will cover the function of some of these tags with a code example for each. I plan on leaving the set of table tags, form tags and coding tags for other articles since there are so many.</p>
<h3 id="abbr">ABBR</h3>
<p><em>W3C: Indicates an abbreviated form (e.g., WWW, HTTP, URI, Mass., etc.)</em><br />
The abbreviation tag is used to provide the expanded meaning of the abbreviation used in your web content. It is a very useful tag since it allows you to always use the abbreviation without wasting space on defining it. It also adds accessibility to your site since screen readers know exactly how to process it. One very unfortunate issue with this tag is that it is not supported by <abbr title="Internet Explorer 6">IE6</abbr> which simply ignores it.</p>
<pre class="brush: html">&lt;abbr title="World Wide Web"&gt;WWW&lt;/abbr&gt;</pre>
<h3 id="acronym">ACRONYM</h3>
<p><em>W3C: Indicates an acronym (e.g., WAC, radar, etc.)</em><br />
The acronym tag is very similar to the abbreviation tag which causes quite a bit of confusion. The general consensus is that if the short form is spelled out letter by letter than it is an abbreviation otherwise use an acronym tag.  Definition-wise an acronym IS an abbreviation and there is some speculation that the W3C will deprecate the acronym tag in a future HTML version. IE6 does support this tag.</p>
<pre class="brush: html">&lt;acronym title="What You See Is What You Get"&gt;WYSIWYG&lt;/acronym&gt;</pre>
<h3 id="address">ADDRESS</h3>
<p><em>W3C: &hellip;used by authors to supply contact information for a document&hellip;</em><br />
The address tag is for semantic purposes. By default browsers will render the contained text in italics unless you style it with CSS but its primary purpose is to provide search engines and other tools with a better picture of how your content is laid out. Many people use the address tag to wrap their entire <a href="http://microformats.org/wiki/hcard">hCard</a> and others use it only for physical addresses. There is also debate as to whether it is proper to put any contact info or address in the tag only that of the page maintainer/author.</p>
<pre class="brush: html">&lt;address class="vcard"&gt;
  &lt;a class="url fn" href="http://adamhewgill.com/"&gt;Adam Hewgill&lt;/a&gt;
  &lt;div class="org"&gt;dev|sushi&lt;/div&gt;
&lt;/address&gt;</pre>
<h3 id="bdo">BDO</h3>
<p><em>W3C: allows authors to turn off the bidirectional algorithm for selected fragments of text</em><br />
I didn&#8217;t look much into bi-directional text since I don&#8217;t do any internationalization. The tag is an abbreviation of Bi-Directional Override and does just that. It overrides the dir property of parent tags for certain problem areas.</p>
<pre class="brush: html">&lt;p&gt;
  &lt;bdo dir="ltr"&gt;Some Text&lt;/bdo&gt;
  &lt;bdo dir="rtl"&gt;Some Other Text&lt;/bdo&gt;
&lt;/p&gt;</pre>
<h3 id="cite">CITE</h3>
<p><em>W3C: Contains a citation or a reference to other sources</em><br />
The citation tag causes browsers to render the content in italics. This may or may not be the desired result that was intended. There is a very good discussion on the <a href="http://">proper use of the cite tag</a> at <a href="http://www.thescripts.com/">thescripts</a>. The issues stem from the difference between print typography and semantic markup. Semantically it makes sense to use a cite tag when referencing external works but typographers only italicize citation names when the reference is to a book or magazine not a person.</p>
<pre class="brush: html">&lt;blockquote&gt;
I've thought of an ending for my book -
&ldquo;And he lived happily ever after&hellip; to the end of his days.&rdquo;
&lt;/blockquote&gt;
- &lt;cite&gt;Bilbo Baggins&lt;/cite&gt;</pre>
<h3 id="dl">DL, DT, DD</h3>
<p><em>W3C: Definition lists vary only slightly from other types of lists in that list items consist of two parts: a term and a description</em><br />
I&#8217;ve never really seen this in the wild and a quick Google search doesn&#8217;t do much to fix that. There may be some rendering weirdness with this tag but more than likely people just do definitions differently. The definition list would work well for a synopsis of definitions at the end of a document but that isn&#8217;t very convenient. Definitions work better spread out so that if your reading a document and you reach a word you don&#8217;t know you don’t have to scroll far to find it. (In my opinion anyway)</p>
<pre class="brush: html">&lt;dl&gt;
  &lt;dt&gt;Water&lt;/dt&gt;&lt;dd&gt;fluid substance comprised of H<sub>2</sub>O molecules&lt;/dd&gt;
  &lt;dt&gt;Ice&lt;/dt&gt;&lt;dd&gt;frozen water&lt;/dd&gt;
&lt;/dl&gt;</pre>
<h3 id="del">DEL, INS</h3>
<p><em>W3C: used to markup sections of the document that have been inserted or deleted with respect to a different version of a document</em><br />
These tags are very odd so to get the low down it is best to read <a href="http://www.w3.org/TR/html4/struct/text.html#edef-del">the standard</a>. You can include a citation for the reason for the change and the date of the change via properties.  I suspect that these tags are really bad for the accessibility of your document although it may improve search hits (however I have no proof either way).</p>
<pre class="brush: html">&lt;p&gt;I have &lt;del&gt;one&lt;/del&gt;&lt;ins&gt;two&lt;/ins&gt; grey cat&lt;ins&gt;s&lt;/ins&gt;.&lt;/p&gt;</pre>
<h3 id="dfn">DFN</h3>
<p><em>W3C: Indicates that this is the defining instance of the enclosed term</em><br />
A good discussion of this tag is held on the <a href="http://juicystudio.com/article/jargon-busting-with-the-definition-element.php">juicy studio blog</a>. The gist is that the content text is rendered in italics and the title attribute is provided as a tooltip on mouse-over.</p>
<pre class="brush: html">&lt;dfn title="unsolicited email"&gt;spam&lt;/dfn&gt;</pre>
<h3 id="q">Q</h3>
<p><em>W3C: short quotations (inline content) that don&#8217;t require paragraph breaks</em><br />
For the most part the quote tag is just an inline version of the blockquote tag with a few differences worth noting when it comes to rendering. A blockquote is usually rendered as an indented block where the quote tag is rendered as a quoted inline length of text. The standard says that the quotes are not to be entered by the author and instead are rendered by the browser. Unfortunately IE6 doesn&#8217;t do this so you must work around the issue. There is a great article written by Stacey Cordoni at A List Apart that <a href="http://www.alistapart.com/articles/qtag">discusses a CSS based solution</a>. <b>Update:</b> Roger Johansson <a href="http://www.456bereastreet.com/archive/200610/inline_quotations_use_q_elements_or_not/">adds his two cents</a> about the Q tag issues and brings up some great points about accessibility and effecting the least number of people. I am now leaning toward the JavaScript solution, thanks Roger.</p>
<pre class="brush: html">&lt;p&gt;I have always enjoyed the saying &lt;q&gt;Carpe Diem!&lt;/q&gt;,
it says so much in so few words.&lt;/p&gt;</pre>
<h3 id="sub">SUB, SUP</h3>
<p><em>W3C: Many scripts (e.g., French) require superscripts or subscripts for proper rendering. The SUB and SUP elements should be used to markup text in these cases</em><br />
The subscript and superscript tags are very simple and do exactly as you would expect. Both tags render the contained text much smaller and the difference lies in the final placement. The superscript tag raises it off the base of the line and the subscript tag lowers it below. These are primarily used for footnote numbers or the &#8220;st, nd, rd, th&#8221; markers when referring to position.</p>
<pre class="brush: html">&lt;p&gt;Itō Hirobumi was the 1&lt;sup&gt;st&lt;/sup&gt; Prime Minister of Japan.&lt;p&gt;</pre>
<p>There are several other tags that I don&#8217;t know but chances are I will cover them at some time in the future but for now here are the three groups. Form tags: FIELDSET, LEGEND and LABEL. Table tags: CAPTION, COL, COLGROUP, TH, TBODY, THEAD and TFOOT. Code display tags: CODE, SAMP, KBD, VAR. They all have their uses and for the most part are very infrequently used to markup their respective categories. If we start to expand our knowledge of the basic elements of the language we use we become better developers. If you want to start somewhere try adding a hCard to your site using <a href="http://www.blue-anvil.com/archives/introduction-to-microformats-a-look-at-hcard-hatom">Mike Jolley&#8217;s microformats article</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://devsushi.com/2006/09/30/html-tags-i-had-never-heard-of/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Pink for October</title>
		<link>http://devsushi.com/2006/09/12/pink-for-october/</link>
		<comments>http://devsushi.com/2006/09/12/pink-for-october/#comments</comments>
		<pubDate>Tue, 12 Sep 2006 06:00:38 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[miscellaneous]]></category>
		<category><![CDATA[css/xhtml]]></category>

		<guid isPermaLink="false">http://adamhewgill.com/devsushi/2006/09/12/pink-for-october/</guid>
		<description><![CDATA[I am planning on doing a quick redesign for the month of October to support breast cancer awareness month. If you are interested in participating check it out. If instead you wish to donate money to the cause make sure to buy a few ribbons, bracelets or any other supporting product. Most importantly get the [...]]]></description>
			<content:encoded><![CDATA[<p>I am planning on doing a quick redesign for the month of October to support <a href="http://nbcam.org/">breast cancer awareness month</a>. If you are interested in participating <a href="http://pinkforoctober.org/">check it out</a>. If instead you wish to donate money to the cause make sure to buy a few ribbons, bracelets or any other supporting product. Most importantly get the word out that checking for breast cancer is simple and should be done by all women, get a mammogram.</p>
]]></content:encoded>
			<wfw:commentRss>http://devsushi.com/2006/09/12/pink-for-october/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

