<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>AmyVarga&#039;s Blog</title>
	<atom:link href="http://amyvarga.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://amyvarga.wordpress.com</link>
	<description>Blogs featuring technologies in front end web development</description>
	<lastBuildDate>Tue, 11 May 2010 13:45:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='amyvarga.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>AmyVarga&#039;s Blog</title>
		<link>http://amyvarga.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://amyvarga.wordpress.com/osd.xml" title="AmyVarga&#039;s Blog" />
	<atom:link rel='hub' href='http://amyvarga.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Aria</title>
		<link>http://amyvarga.wordpress.com/2010/05/11/aria/</link>
		<comments>http://amyvarga.wordpress.com/2010/05/11/aria/#comments</comments>
		<pubDate>Tue, 11 May 2010 09:53:36 +0000</pubDate>
		<dc:creator>Amy Varga</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://amyvarga.wordpress.com/?p=238</guid>
		<description><![CDATA[Two weeks ago I decided to present WAI-ARIA (Web Accessibility Initiative &#8211; Accessible Rich Internet Applications) to my colleagues in our weekly meet. Since I had previously read about WAI-ARIA it didn&#8217;t take long for me to understand the theory behind the ARIA specification. In summary: ARIA forms part of the Web Content Accessibility Guidelines [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=amyvarga.wordpress.com&amp;blog=8005292&amp;post=238&amp;subd=amyvarga&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Two weeks ago I decided to present WAI-ARIA (Web Accessibility Initiative &#8211; Accessible Rich Internet Applications) to my colleagues in our weekly meet.  Since I had previously read about WAI-ARIA it didn&#8217;t take long for me to understand the theory behind the ARIA specification.  In summary:</p>
<p>ARIA forms part of the Web Content Accessibility Guidelines 2.0 (WCAG 2.0) which succeeds WCAG 1.0 and which are both at working draft level with the W3C. </p>
<p>It has been developed to address the accessibility problem that occurs when rich interaction semantics are added outside of the markup.  When this happens the markup no longer expresses the information needed to populate accessibility metadata which is then mapped by the browser to the platform accessibility APIs.</p>
<p>WAI-ARIA provides a framework for providing proper semantics to HTML elements that provide information about:</p>
<ul>
<li>the role of the element within the page and in relation to other elements &#8211; the ARIA specification provides an ontology of roles that can be attached to content</li>
<li>the states and properties of elements which are used to declare important attributes of an element that affect and describe interaction.  These are categorised as widget attributes, live region attributes, drag-and-drop attributes, relationship attributes</li>
</ul>
<p>The target audience for WAI-ARIA includes user agents, assistive technology, authors who create content, authoring tools and conformance checkers.  The relationship between the user agent, the accessibility API and the assistive technology is best illustrated below:</p>
<div class="clearboth"></div>
<div class="media">
<img title="Relationship between user agents and accessibility api's" src="http://www.absoluteorange.com/images/blog/user_agent_accessibility_api_relationship.jpg">
</div>
<p>My next step was to implement WAI-ARIA and test it on my Mac accessibility software (Universal Access).  This is where my headaches begun.  ARIA does not validate on standard DTD&#8217;s and only has limited support from HTML 5.0.  ARIA is also only party supported by browsers and accessibility software making it difficult to know which bits to implement.  Furthermore, the W3C Validator for HTML 5.0 only has limited support for ARIA conformance making it difficult to confirm whether you&#8217;re implementing it correctly.</p>
<p>Despite these hurdles I decided that perhaps before I tried to implement WAI-ARIA I should test some real live examples using the accessibility software on my Mac.  The learning curve for using Universal Access was steep but in the end I was using it on Safari.  For obvious reasons, the first website I visited was the RNIB (Royal National Institute of the Blind).   Whilst there are some obvious improvements in accessible navigation including the Web Item Rotor and Web Auto Spots, overall I could find no implementation of ARIA on their website.</p>
<p>I spent the next few hours trying to find real live examples or demonstrations of WAI-ARIA.  I found a few websites which I have referenced below but to be honest either the examples didn&#8217;t work i.e. they weren&#8217;t supported by Safari or Universal Access, or I didn&#8217;t quite grasp the concepts.</p>
<p>In conclusion, the concept of WAI-ARIA is a good one however,  it requires a considerable amount of effort to implement and to date has limited support.  Furthermore at the time of writing there are very few examples of ARIA being implemented.  For the time being I am going to put WAI-ARIA on hold, perhaps when the specification is recommended by the W3C and HTML 5.0 is more widely implemented then I will come back to it.</p>
<div class="references">References:</p>
<ul>
<li>
<em>http://www.w3.org/WAI/PA/</em> [Online].  Available: <a title="http://www.w3.org/WAI/PA/" href="http://www.w3.org/WAI/PA/" target="_blank">http://www.w3.org/WAI/PA/</a> [11th May 2010]
</li>
<li>
<em>Accessible Rich Internet Applications (WAI-ARIA) 1.0</em> [Online].  Available: <a title="Accessible Rich Internet Applications (WAI-ARIA) 1.0" href="http://www.w3.org/TR/wai-aria/" target="_blank">Accessible Rich Internet Applications (WAI-ARIA) 1.0</a> [11th May 2010]
</li>
<li>
<em>Web Content Accessibility Guidelines (WCAG 2.0)</em> [Online].  Available: <a title="Web Content Accessibility Guidelines (WCAG 2.0)" href="http://www.w3.org/TR/WCAG20/" target="_blank">Web Content Accessibility Guidelines (WCAG 2.0)</a> [11th May 2010]
</li>
<li>
<em>Appendices | Accessible Rich Internet Applications</em> [Online].  Available: <a title="Appendices | Accessible Rich Internet Applications" href="http://www.w3.org/TR/wai-aria/appendices" target="_blank">Appendices | Accessible Rich Internet Applications</a> [11th May 2010]
</li>
<li>
<em>Accessible Ajax</em> [Online].  Available: <a title="Accessible Ajax" href="http://accessibleajax.clcworld.net/" target="_blank">Accessible Ajax</a> [11th May 2010]
</li>
<li>
<em>Accessible drag and drop using WAI-ARIA &#8211; Opera Developer Community</em> [Online].  Available: <a title="Accessible drag and drop using WAI-ARIA - Opera Developer Community" href="http://dev.opera.com/articles/view/accessible-drag-and-drop/" target="_blank">Accessible drag and drop using WAI-ARIA &#8211; Opera Developer Community</a> [11th May 2010]
</li>
</ul>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/amyvarga.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/amyvarga.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/amyvarga.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/amyvarga.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/amyvarga.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/amyvarga.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/amyvarga.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/amyvarga.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/amyvarga.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/amyvarga.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/amyvarga.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/amyvarga.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/amyvarga.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/amyvarga.wordpress.com/238/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=amyvarga.wordpress.com&amp;blog=8005292&amp;post=238&amp;subd=amyvarga&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://amyvarga.wordpress.com/2010/05/11/aria/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d57ff2aafd9084127f84a084eb6e0516?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">amyvarga</media:title>
		</media:content>

		<media:content url="http://www.absoluteorange.com/images/blog/user_agent_accessibility_api_relationship.jpg" medium="image">
			<media:title type="html">Relationship between user agents and accessibility api&#039;s</media:title>
		</media:content>
	</item>
		<item>
		<title>Structured data : implementing RDFas and Microformats in web pages</title>
		<link>http://amyvarga.wordpress.com/2009/09/21/rdfas-and-microformats-for-enchanced-search-results/</link>
		<comments>http://amyvarga.wordpress.com/2009/09/21/rdfas-and-microformats-for-enchanced-search-results/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 08:45:30 +0000</pubDate>
		<dc:creator>Amy Varga</dc:creator>
				<category><![CDATA[Front end web development]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[semantic web]]></category>
		<category><![CDATA[structured web]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://amyvarga.wordpress.com/?p=155</guid>
		<description><![CDATA[Amy Varga takes a quick look at implementing RDFas and Microformats in web pages and the advantages of structured data.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=amyvarga.wordpress.com&amp;blog=8005292&amp;post=155&amp;subd=amyvarga&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The introduction of structured data on the web is nothing new.  More recently however structured data has become a more pertinent issue with more emphasis on the &#8216;semantic web&#8217; and &#8216;linked data&#8217;, both initiatives which have been heavily promoted by the W3C.</p>
<p>RDFas (Resource descriptor framework attributes) and Microformats are 2 technologies which can be used to to structure data.  More specifically, RDFas  and Microformats are a set of (X)HTML attributes designed to augment human visible text by encoding semantic information read by machines.  This information is typically hidden from users and provides metadata used by machines.  This metadata can be used by applications that collect data about on-line resources such as browsers and desktop applications including search engines, e-mail clients, scheduling software, communication software and map software.</p>
<p>For more than a year Yahoo and, more recently, Google have been using RDFas and Microformats to structure data which is indexed to provide &#8216;Rich Snippets&#8217;, a convenient summary of information about a web page displayed as a search result.  Certainly, the use of structured data by search engines will see a huge leap in its implementation across the web.</p>
<p>In this blog I will briefly introduce Microformats and RDFas as well as give a simple of example of how to implement it in web pages.</p>
<div class="clearboth"></div>
<div class="media">
<img title="Examples of structural data used by Google and Yahoo in their searches" src="http://www.absoluteorange.com/images/blog/google-and-yahoo-examples.jpg">
</div>
<h3>Microformats</h3>
<p>Microformats indicate the presence of metadata using the following attributes:</p>
<ul>
<li>class</li>
<li>rel</li>
</ul>
<p>These are wrapped in HTML elements with specific class names.  Specific Microformats have been developed to semantically markup particular types of information.  For example hCard has the following properties (class names)    </p>
<ul>
<li>vcard {1} : MUST be present exactly once</li>
<li>adr*</li>
<ul>
<li>+type [work|home|pref|postal|dom|intl]?</li>
<li>+post-office-box?</li>
<li>+street-address*</li>
<li>+extended-address?</li>
<li>+region?</li>
<li>+locality?</li>
<li>+postal-code?</li>
<li>+country-name?</li>
</ul>
<li>agent*</li>
<li>bday? (ISO date)</li>
<li>class? confidentiality/access classification of the entire hCard</li>
<li>category*</li>
<li>email*</li>
<ul>
<li>+type?</li>
<li>+value?</li>
</ul>
<li>fn {1} : MUST be present exactly once</li>
<li>geo?</li>
<ul>
<li>+latitude?</li>
<li>+longitude?</li>
</ul>
<li>key*</li>
<li>label*</li>
<li>logo*</li>
<li>mailer*</li>
<li>n?</li>
<ul>
<li>+honorific-prefix*</li>
<li>+given-name*</li>
<li>+additional-name*</li>
<li>+family-name*</li>
<li>+honorific-suffix*</li>
</ul>
<li>nickname*</li>
<li>note*</li>
<li>org*</li>
<ul>
<li>+organization-name?</li>
<li>+organization-unit*</li>
</ul>
<li>photo*</li>
<li>rev? datetime of the revision of the entire hCard</li>
<li>role*</li>
<li>sort-string?</li>
<li>sound*</li>
<li>title*</li>
<li>tel* (Note E.123 for formatting info.)</li>
<ul>
<li>type [home|work|pref|fax|cell|pager]?</li>
<li>value?</li>
</ul>
<li>tz? timezone of the person</li>
<li>uid? applies to the entire hCard</li>
<li>url*</li>
</ul>
<p>Key<br />
* = OPTIONAL, and MAY occur more than once<br />
+ = MUST be present, and MAY occur more than once<br />
? = OPTIONAL, but MUST NOT occur more than once<br />
[square brackets] = list of common values<br />
(parentheses) = data format<br />
pref 	    = preferred<br />
dom 	    = domestic<br />
intl 	    = international<br />
cell 	    = mobile </p>
<h4>A simple example</h4>
<pre>
&lt;address class="vcard"&gt;
&lt;a class="fn org url" href="http://www.absoluteorange.com/"&gt;Absolute Orange&lt;/a&gt;
&lt;/address&gt;
</pre>
<p>which is displayed as:</p>
<address class="vcard">
<a class="fn org url" href="http://www.absoluteorange.com/">Absolute Orange</a><br />
</address>
<h3>RDFa</h3>
<p>RDFa became a W3C recommendation in October 2008.  It is an extension to RDF, a lightweight multipurpose extensible metadata description and syndication format.   Whilst RDFa is XML it can be used in HTML4 pages and whilst they will not alter the display of HTML pages, they may not validate.  HTML 5 are working on a mechanism for embedding RDF in HTML.  Perhaps the best time to use RDFa is when there is no supporting Microformat. </p>
<p>RDFa use the following attributes:</p>
<ul>
<li>about – a <abbr title="universal resource index">URI</abbr> or <abbr title="compact universal resource index">CURIE</abbr> specifying the resource the metadata is about; in its absence it defaults to the current document</li>
<li>rel and rev – specifying a relationship or reverse-relationship with another resource</li>
<li>href, src and resource – specifying the partner resource</li>
<li>property – specifying a property for the content of an element</li>
<li>content – optional attribute that overrides the content of the element when using the property attribute</li>
<li>datatype – optional attribute that specifies the datatype of text specified for use with the property attribute</li>
<li>typeof – optional attribute that specifies the RDF type(s) of the subject (the resource that the metadata is about)</li>
</ul>
<p>In RDFa when specifying terms within the property attribute, the meaning of the term must be linked to a vocabularly whose namespace must be included.  There are a number of existing vocabularies for example the Dublin Core vocabulary which has the following properties:</p>
<p>&lt;rdf:Description rdf:about=&#8221;http://purl.org/dc/elements/1.1/&#8221;&gt;<br />
+<br />
&lt;rdf:Property rdf:about=&#8221;http://purl.org/dc/elements/1.1/title&#8221;&gt;<br />
&lt;rdfs:label xml:lang=&#8221;en-US&#8221;&gt;Title&lt;/rdfs:label&gt;<br />
&lt;rdfs:comment xml:lang=&#8221;en-US&#8221;&gt;A name given to the resource.&lt;/rdfs:comment&gt;<br />
+<br />
&lt;rdf:Property rdf:about=&#8221;http://purl.org/dc/elements/1.1/creator&#8221;&gt;<br />
&lt;rdfs:label xml:lang=&#8221;en-US&#8221;&gt;Creator&lt;/rdfs:label&gt;<br />
&lt;rdfs:comment xml:lang=&#8221;en-US&#8221;&gt;An entity primarily responsible for making the resource.&lt;/rdfs:comment&gt;<br />
+<br />
&lt;rdf:Property rdf:about=&#8221;http://purl.org/dc/elements/1.1/subject&#8221;&gt;<br />
&lt;rdfs:label xml:lang=&#8221;en-US&#8221;&gt;Subject&lt;/rdfs:label&gt;<br />
&lt;rdfs:comment xml:lang=&#8221;en-US&#8221;&gt;The topic of the resource.&lt;/rdfs:comment&gt;<br />
+<br />
&lt;rdf:Property rdf:about=&#8221;http://purl.org/dc/elements/1.1/description&#8221;&gt;<br />
&lt;rdfs:label xml:lang=&#8221;en-US&#8221;&gt;Description&lt;/rdfs:label&gt;<br />
&lt;rdfs:comment xml:lang=&#8221;en-US&#8221;&gt;An account of the resource.&lt;/rdfs:comment&gt;<br />
+<br />
&lt;rdf:Property rdf:about=&#8221;http://purl.org/dc/elements/1.1/publisher&#8221;&gt;<br />
&lt;rdfs:label xml:lang=&#8221;en-US&#8221;&gt;Publisher&lt;/rdfs:label&gt;<br />
&lt;rdfs:comment xml:lang=&#8221;en-US&#8221;&gt;An entity responsible for making the resource available.&lt;/rdfs:comment&gt;<br />
+<br />
&lt;rdf:Property rdf:about=&#8221;http://purl.org/dc/elements/1.1/contributor&#8221;&gt;<br />
&lt;rdfs:label xml:lang=&#8221;en-US&#8221;&gt;Contributor&lt;/rdfs:label&gt;<br />
&lt;rdfs:comment xml:lang=&#8221;en-US&#8221;&gt;An entity responsible for making contributions to the resource.<br />
&lt;/rdfs:comment&gt;<br />
+<br />
&lt;rdf:Property rdf:about=&#8221;http://purl.org/dc/elements/1.1/date&#8221;&gt;<br />
&lt;rdfs:label xml:lang=&#8221;en-US&#8221;&gt;Date&lt;/rdfs:label&gt;<br />
&lt;rdfs:comment xml:lang=&#8221;en-US&#8221;&gt;A point or period of time associated with an event in the lifecycle of the resource.&lt;/rdfs:comment&gt;<br />
+<br />
&lt;rdf:Property rdf:about=&#8221;http://purl.org/dc/elements/1.1/type&#8221;&gt;<br />
&lt;rdfs:label xml:lang=&#8221;en-US&#8221;&gt;Type&lt;/rdfs:label&gt;<br />
&lt;rdfs:comment xml:lang=&#8221;en-US&#8221;&gt;The nature or genre of the resource.&lt;/rdfs:comment&gt;<br />
+<br />
&lt;rdf:Property rdf:about=&#8221;http://purl.org/dc/elements/1.1/format&#8221;&gt;<br />
&lt;rdfs:label xml:lang=&#8221;en-US&#8221;&gt;Format&lt;/rdfs:label&gt;<br />
&lt;rdfs:comment xml:lang=&#8221;en-US&#8221;&gt;The file format, physical medium, or dimensions of the resource.&lt;/rdfs:comment&gt;<br />
+<br />
&lt;rdf:Property rdf:about=&#8221;http://purl.org/dc/elements/1.1/identifier&#8221;&gt;<br />
&lt;rdfs:label xml:lang=&#8221;en-US&#8221;&gt;Identifier&lt;/rdfs:label&gt;<br />
&lt;rdfs:comment xml:lang=&#8221;en-US&#8221;&gt;An unambiguous reference to the resource within a given context.&lt;/rdfs:comment&gt;<br />
+<br />
&lt;rdf:Property rdf:about=&#8221;http://purl.org/dc/elements/1.1/source&#8221;&gt;<br />
&lt;rdfs:label xml:lang=&#8221;en-US&#8221;&gt;Source&lt;/rdfs:label&gt;<br />
&lt;rdfs:comment xml:lang=&#8221;en-US&#8221;&gt;A related resource from which the described resource is derived.&lt;/rdfs:comment&gt;<br />
+<br />
&lt;rdf:Property rdf:about=&#8221;http://purl.org/dc/elements/1.1/language&#8221;&gt;<br />
&lt;rdfs:label xml:lang=&#8221;en-US&#8221;&gt;Language&lt;/rdfs:label&gt;<br />
&lt;rdfs:comment xml:lang=&#8221;en-US&#8221;&gt;A language of the resource.&lt;/rdfs:comment&gt;<br />
+<br />
&lt;rdf:Property rdf:about=&#8221;http://purl.org/dc/elements/1.1/relation&#8221;&gt;<br />
&lt;rdfs:label xml:lang=&#8221;en-US&#8221;&gt;Relation&lt;/rdfs:label&gt;<br />
&lt;rdfs:comment xml:lang=&#8221;en-US&#8221;&gt;A related resource.&lt;/rdfs:comment&gt;<br />
+<br />
&lt;rdf:Property rdf:about=&#8221;http://purl.org/dc/elements/1.1/coverage&#8221;&gt;<br />
&lt;rdfs:label xml:lang=&#8221;en-US&#8221;&gt;Coverage&lt;/rdfs:label&gt;<br />
&lt;rdfs:comment xml:lang=&#8221;en-US&#8221;&gt;<br />
The spatial or temporal topic of the resource, the spatial applicability of the resource, or the jurisdiction under which the resource is relevant.&lt;/rdfs:comment&gt;<br />
+<br />
&lt;rdf:Property rdf:about=&#8221;http://purl.org/dc/elements/1.1/rights&#8221;&gt;<br />
&lt;rdfs:label xml:lang=&#8221;en-US&#8221;&gt;Rights&lt;/rdfs:label&gt;<br />
&lt;rdfs:comment xml:lang=&#8221;en-US&#8221;&gt;Information about rights held in and over the resource.&lt;/rdfs:comment&gt;</p>
<h4>A simple example</h4>
<pre>
&lt;p xmlns:dc="http://purl.org/dc/elements/1.1/" about="http://www.absoluteorange.com/blogs/structured data implementing RDFas and Microformats in web pages"&gt;
      In her latest blog
      &lt;cite property="dc:title"&gt;Structured data : implementing RDFas and Microformats in web pages&lt;/cite&gt;,
      &lt;span property="dc:creator"&gt;Amy Varga&lt;/span&gt;
      briefly discusses the RDFa and Microformat technologies for implementing structured data in web pagesas.  The blog is due to be published in
      &lt;span property="dc:date" content="2009-09-01"&gt;September 2009&lt;/span&gt;.
&lt;/p&gt;
</pre>
<p>Unfortunately it was impossible for me to display the above as it stands because Word Press would not allow the xmlns, about, property or content attributes within their HTML elements, presumably because they do not validate.</p>
<h3>Conclusion</h3>
<p>Whilst there may be much future development and improvement of structured data technologies and indeed the RDFa and Microformat technologies I believe it wise to start implementing these technologies in web pages now.</p>
<div class="references">References:</p>
<ul>
<li>
Bribeck, M. 23rd June 2009<em>An Introduction to RDFa</em> [Online].  Available: <a title="An introduction to RDFa" href="http://www.alistapart.com/articles/introduction-to-rdfa/" target="_blank">An introduction to RDFa</a> [21st September 2009]</li>
<li>
Bribeck, M.  7th July 2009<em>An Introduction to RDFa II</em> [Online].  Available: <a title="An introduction to RDFa II" href="http://www.alistapart.com/articles/introduction-to-rdfa-ii/" target="_blank">An introduction to RDFa II</a> [21st September 2009]</li>
<li>
Goel, K. Guha, R. V. and Hansson, O.  12th May 2009<em>Introducing Rich Snippets</em> [Online].  Available: <a title="Introducing Rich Snippets" href="http://googlewebmastercentral.blogspot.com/2009/05/introducing-rich-snippets.html" target="_blank">Introducing Rich Snippets</a> [21st September 2009]</li>
<li>
10th January 2009<em>Introduction to Microformats</em> [Online].  Available: <a title="Introduction to Microformats" href="http://microformats.org/wiki/introduction" target="_blank">Introduction to Microformats</a> [21st September 2009]</li>
<li>
Prodromou, E. <em>RDFa vs Microformats</em> [Online].  Available: <a title="RDFa vs Microformats" href="http://evan.prodromou.name/RDFa_vs_microformats" target="_blank">RDFa vs Microformats</a> [21st September 2009]</li>
<li>
15th September 2009<em>Rich Snippets</em> [Online].  Available: <a title="Rich Snippets" href="http://www.google.com/support/webmasters/bin/answer.py?answer=99170" target="_blank">Rich Snippets</a> [21st September 2009]</li>
<li>
Sherman, C.  26th February 2008<em>Yahoo To Announce &#8216;Search Monkey&#8217; Enhanced, Annotated Results At SMX West</em> [Online].  Available: <a title="Yahoo To Announce 'Search Monkey' Enhanced, Annotated Results At SMX West" href="http://searchengineland.com/yahoo-to-announce-search-monkey-enhanced-annotated-results-at-smx-west-13453" target="_blank">Yahoo To Announce &#8216;Search Monkey&#8217; Enhanced, Annotated Results At SMX West</a> [21st September 2009]</li>
<li>
<em>Search Monkey Guide</em> [Online].  Available: <a title="Search Monkey Guide" href="http://developer.yahoo.com/searchmonkey/smguide/overview.html" target="_blank">Search Monkey Guide</a> [21st September 2009]</li>
<li>
Adida, B. Birbeck, M.  14th October 2008.<em>RDFa Primer</em> [Online].  Available: <a title="RDFa Primer" href="http://www.w3.org/TR/xhtml-rdfa-primer/" target="_blank">RDFa Primer</a> [21st September 2009]</li>
<li>
Davis, I.  12th May 2009<em>Google’s RDFa a Damp Squib</em> [Online].  Available: <a title="Google’s RDFa a Damp Squib" href="http://iandavis.com/blog/2009/05/googles-rdfa-a-damp-squib" target="_blank">Google’s RDFa a Damp Squib</a> [21st September 2009]</li>
<li>
20th December 2008<em>hcard-cheatsheet</em> [Online].  Available: <a title="hcard-cheatsheet" href="http://microformats.org/wiki/hcard-cheatsheet" target="_blank">hcard-cheatsheet</a> [22nd September 2009]</li>
<li>
<em>Resource Description Framework</em> [Online].  Available: <a title="Resource Description Framework" href="http://www.w3.org/RDF/" target="_blank">Resource Description Framework</a> [22nd September 2009]</li>
<li>
Jägenstedt, P.  23rd August 2009<em>Microformats vs RDFa vs Microdata</em> [Online].  Available: <a title="Microformats vs RDFa vs Microdata" href="http://blog.foolip.org/2009/08/23/microformats-vs-rdfa-vs-microdata/" target="_blank">Microformats vs RDFa vs Microdata</a> [22nd September 2009]</li>
<li>
Tennison, J.   21st August 2009<em>HTML5/RDFa Arguments</em> [Online].  Available: <a title="HTML5/RDFa Arguments" href="http://www.jenitennison.com/blog/node/124" target="_blank">HTML5/RDFa Arguments</a> [22nd September 2009]</li>
<li>
Macmanus, R.  7th September 2009<em>Top 5 Web Trends of 2009</em> [Online].  Available: <a title="Top 5 Web Trends of 2009" href="http://www.readwriteweb.com/archives/top_5_web_trends_of_2009_structured_data.php" target="_blank">Top 5 Web Trends of 2009</a> [22nd September 2009]</li>
</ul>
</div>
<br /> Tagged: semantic web, structured web, web development <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/amyvarga.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/amyvarga.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/amyvarga.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/amyvarga.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/amyvarga.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/amyvarga.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/amyvarga.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/amyvarga.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/amyvarga.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/amyvarga.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/amyvarga.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/amyvarga.wordpress.com/155/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/amyvarga.wordpress.com/155/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/amyvarga.wordpress.com/155/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=amyvarga.wordpress.com&amp;blog=8005292&amp;post=155&amp;subd=amyvarga&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://amyvarga.wordpress.com/2009/09/21/rdfas-and-microformats-for-enchanced-search-results/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d57ff2aafd9084127f84a084eb6e0516?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">amyvarga</media:title>
		</media:content>

		<media:content url="http://www.absoluteorange.com/images/blog/google-and-yahoo-examples.jpg" medium="image">
			<media:title type="html">Examples of structural data used by Google and Yahoo in their searches</media:title>
		</media:content>
	</item>
		<item>
		<title>Enhancing Lightbox</title>
		<link>http://amyvarga.wordpress.com/2009/08/19/extending-lightbox/</link>
		<comments>http://amyvarga.wordpress.com/2009/08/19/extending-lightbox/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 07:23:07 +0000</pubDate>
		<dc:creator>Amy Varga</dc:creator>
				<category><![CDATA[Front end web development]]></category>
		<category><![CDATA[image gallery]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Lightbox]]></category>

		<guid isPermaLink="false">http://amyvarga.wordpress.com/?p=116</guid>
		<description><![CDATA[Amy Varga enhances Lightbox by improving the script for images that are larger than the initial Lightbox interface as well as offering users the choice for viewing images at multiple sizes.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=amyvarga.wordpress.com&amp;blog=8005292&amp;post=116&amp;subd=amyvarga&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="media">
<img class="alignleft" height="148" width="199" title="Enhancing lightbox" src="http://www.absoluteorange.com/images/blog/enhancing_lightbox.jpg">
</div>
<p>I like Lightbox.  I use it in this website and in <a title="Rocklands Boulders" target="_blank" href="http://www.rocklandsboulders.com">Rocklands Boulders</a> because it presents images elegantly and allows for slideshow functionality.</p>
<p>More recently I have had to extend the functionality of Lightbox in 2 ways:</p>
<ol>
<li>Add functionality that resizes the Lightbox overlay if the image presented is larger than the initial overlay dimensions</li>
<li>Add functionality that allows users to choose whether to view images at maximum size or half size (this is for users who do not have high Internet speeds)</li>
</ol>
<p>In this blog I will demonstrate how I have implement this.</p>
<h3 class="replacement">Resize the Lightbox overlay if the image is larger than the initial overlay dimensions</h3>
<p>This solution is demonstrated at <a href="http://www.absoluteorange.com/showcase/BT%20Fresca" target="_blank" title="BT Fresca">BT Fresca</a></p>
<p>The Lightbox interface contains a semi-transparent div with an id of &#8216;jquery-overlay&#8217;.  The dimensions of the overlay are based on the browser window size as well as the x and y scroll.  The problem I experienced was when images being displayed were larger than the jquery-overlay.  In the screen shot &#8216;Lightbox overlay too short&#8217; you can see that the overlay is too short.</p>
<p>To overcome this problem I wrote a function called &#8216;check_page_height(intImageHeight)&#8217;.  This function merely calls the lightbox function &#8216;__getPageSize&#8217; and adjusts the &#8216;jquery-overlay&#8217; dimensions accordingly.  As you will see Opera (in this case version 9.62) required a separate calculation.</p>
<p><em>Line 265</em></p>
<pre>
function check_page_height(intImageHeight){
	//resize overlay if image is bigger than page
	// Get page sizes
	var arrPageSizes = ___getPageSize();
	if ($.browser.opera) {
		body_height=Math.floor(intImageHeight)+Math.floor(arrPageSizes[1])+120;
		$('#jquery-overlay').css({
			width:				arrPageSizes[0],
			height:				body_height
		});
	}
	else {
		$('#jquery-overlay').css({
			width:				arrPageSizes[0],
			height:				arrPageSizes[1]
		});
	}
</pre>
<p>I called this function twice, once in the function &#8216;_resize_container_image_box&#8217; just before the lightbox-container-image-box is animated and again in the function &#8216;_show_image_data&#8217; when the &#8216;lightbox-image-data-box slides down i.e. </p>
<p><em>line 300</em></p>
<pre>
$('#lightbox-container-image-data-box').slideDown('fast',function(){
           check_page_height(intImageHeight);
});
</pre>
<p>Be sure to pass the variable  intImageHeight to the appropriate Lightbox functions &#8216;_show_image&#8217; and &#8216;_show_image_data&#8217; on <em>lines 253, 287, 290, 299 and 300</em>.</p>
<h3 class="replacement">Allow users the choice to view images at maximum size or half size</h3>
<p>On this <a href="http://www.rocklandsboulders.com/show/feature/Rockstock%20III" target="_blank" title="”Rocklands">Rocklands Boulders</a> page I have 102 photos.  Since I am currently working in South Africa slow Internet access is common.  I decided that in this case users should have an option for viewing photos at half their size to improve the user experience.  I implemented this in Lightbox by:</p>
<p>1.   Adding two more properties to the Lightbox settings object namely, &#8216;multiple_photo_size = false&#8217; and &#8216;large_image = true&#8217;</p>
<p>2.  On my web page I set a condition that if the number of images being displayed was greater than 100 the thumbnail link attribute &#8216;rel&#8217; contained &#8216;lightbox multiple_photo_size&#8217; as opposed to just &#8216;lightbox&#8217;</p>
<p>3.  In the Lightbox function &#8216;_initialize&#8217; I called my function &#8216;_check_multiple_photo_size&#8217;.  This function checks to see if the &#8216;rel&#8217; attribute contains the string &#8216; multiple_photo_size&#8217;.  If it does then the property &#8216; multiple_photo_size&#8217; is set to true i.e.</p>
<p><em>line 67</em></p>
<pre>
function _check_multiple_photo_size(objClicked,jQueryMatchedObj) {
	if (objClicked.getAttribute('rel').search('multiple_photo_size') &gt;= 0) {
		settings.multiple_photo_size = true;
	}
	_start(objClicked,jQueryMatchedObj); // This, in this context, refer to object (link)
                                                               which the user have clicked
	return false;
}
</pre>
<p>4.  In the Lightbox funtion &#8216;_set_interface&#8217; I append the links for multiple photo sizes to Lightbox interface i.e.</p>
<p><em>line 150</em></p>
<pre>
if (settings.multiple_photo_size == true) {
	$('#lightbox-image-details').prepend('&lt;span style="float:left;" id="photo-size"&gt;
        &lt;img src="http://www.rocklandsboulders.com/images/large_image_selected.jpg"
        title="Photos displayed at maximum size"&gt;&lt;a href="void(0)" id="small_image"&gt;
        &lt;img src="http://www.rocklandsboulders.com/images/small_image_select.jpg"
        title="View photos at half size" alt="View photos at half size" /&gt;&lt;/a&gt;&lt;/span&gt;');
}
</pre>
<p>5.  I limited the click area for closing the Lightbox interface so that clicking on my new icons did not close Lightbox  i.e.</p>
<p><em>line 171:</em></p>
<pre>
$('#jquery-overlay').click(function() {
	settings.large_image = true;
	_finish();
});
</pre>
<p>6.  You will see that I also reset the &#8216;large_image&#8217; property to true when the Lightbox interface is closed on <em>line 171, 177 and 424</em>.</p>
<p>7.  In the Lightbox function &#8216;_set_image_to_view&#8217; I set a condition that changed the image src idepending on whether the property &#8216;large_image&#8217; is set to true or false i.e.</p>
<p><em>line 223</em></p>
<pre>
//adjust image src depending on whether setttings.large_image is true or false
if (settings.large_image == false) {
	imageSrc=settings.imageArray[settings.activeImage][0].split('images');
	imageSrc[1] = imageSrc[1].replace('/', 'images/small_');
	settings.imageArray[settings.activeImage][0] = imageSrc[0]+imageSrc[1];
}
else if (settings.large_image == true &amp;&amp; settings.imageArray[settings.activeImage]
[0].search('small_') &gt;= 0){
	settings.imageArray[settings.activeImage][0]
        = settings.imageArray[settings.activeImage][0].replace('small_', '');
}
</pre>
<p>8.  I added the onclick functionality for my new icons i.e.</p>
<p><em>line 574</em></p>
<pre>
function __small_image() {
	$('#small_image').click(function(){
		$('#small_image').unbind();
		settings.large_image = false;
		$('#photo-size').fadeOut('fast', function() {
			$('#photo-size').html('&lt;a href="void(0)" id="large_image"&gt;
&lt;img src="http://www.rocklandsboulders.com/images/large_image_select.jpg"
title="View photos at maximum size" alt="View photos at maximum size" /&gt;
&lt;/a&gt;&lt;img src="http://www.rocklandsboulders.com/images/small_image_selected.jpg"
title="Photos displayed at half size"&gt;');
				$('#photo-size').fadeIn('fast', function () {;
					__large_image();
					_set_image_to_view();
				});
			});
			return false;
	});
}

function __large_image() {
	$('#large_image').click(function(){
		$('#large_image').unbind();
		settings.large_image = true;
		$('#photo-size').fadeOut('fast', function() {
			$('#large_image').remove();
			$('#photo-size').html('
&lt;img src="http://www.rocklandsboulders.com/images/large_image_selected.jpg"
title="Photos displayed at maximum size" alt="Photos displayed at maximum size" /&gt; &lt;/a&gt;
&lt;a href="void(0)" id="small_image"&gt;
&lt;img src="http://www.rocklandsboulders.com/images/small_image_select.jpg"
title="View photos at half size"&gt;');
				$('#photo-size').fadeIn('fast', function () {;
					__small_image();
					_set_image_to_view();
				});
		});
		return false;
	});
}
</pre>
<p>9.  And finally I called my function &#8216;__small_image&#8217; on line 198 when the Lightbox interface is set.</p>
<div class="media">
<h4>Screenshots:</h4>
<ul>
<li class="thumbnail-image"><a id="image_1" title="Lightbox overlay too short" rel="lightbox" href="http://www.absoluteorange.com/images/blog/lightbox_overlay_short.jpg"><img src="http://www.absoluteorange.com/images/blog/thumbnail_lightbox_overlay_short.jpg" alt="Lightbox overlay too short" title="Lightbox overlay too short"></a></li>
</ul>
</div>
<div class="references">References:</p>
<ul>
<li>
<em>Lightbox</em> [Online].  Available: <a title="Lightbox" href="http://www.huddletogether.com/projects/lightbox/" target="_blank">Lightbox</a> [18th August 2009]
</li>
<li>
<em>Lightbox 2</em> [Online].  Available: <a title="Lightbox 2" href="http://www.huddletogether.com/projects/lightbox2/" target="_blank">Lightbox 2</a> [18th August 2009]
</li>
<p>Varga, A.  [2009]<em>My adjusted Lightbox Javascript file</em> [Online].  Available: <a title="My adjusted Lightbox Javascript file" href="http://www.rocklandsboulders.com/js/jquery.lightbox-0.5.js" target="_blank">My adjusted Lightbox Javascript file</a> [18th August 2009]
</li>
</ul>
</div>
<br /> Tagged: image gallery, javascript, Lightbox <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/amyvarga.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/amyvarga.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/amyvarga.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/amyvarga.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/amyvarga.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/amyvarga.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/amyvarga.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/amyvarga.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/amyvarga.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/amyvarga.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/amyvarga.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/amyvarga.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/amyvarga.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/amyvarga.wordpress.com/116/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=amyvarga.wordpress.com&amp;blog=8005292&amp;post=116&amp;subd=amyvarga&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://amyvarga.wordpress.com/2009/08/19/extending-lightbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d57ff2aafd9084127f84a084eb6e0516?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">amyvarga</media:title>
		</media:content>

		<media:content url="http://www.absoluteorange.com/images/blog/enhancing_lightbox.jpg" medium="image">
			<media:title type="html">Enhancing lightbox</media:title>
		</media:content>

		<media:content url="http://www.absoluteorange.com/images/blog/thumbnail_lightbox_overlay_short.jpg" medium="image">
			<media:title type="html">Lightbox overlay too short</media:title>
		</media:content>
	</item>
		<item>
		<title>Lists</title>
		<link>http://amyvarga.wordpress.com/2009/07/27/lists/</link>
		<comments>http://amyvarga.wordpress.com/2009/07/27/lists/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 12:37:30 +0000</pubDate>
		<dc:creator>Amy Varga</dc:creator>
				<category><![CDATA[Front end web development]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Block lists]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Lists]]></category>

		<guid isPermaLink="false">http://amyvarga.wordpress.com/?p=74</guid>
		<description><![CDATA[Amy Varga looks at the options for implementing block lists using bespoke list images<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=amyvarga.wordpress.com&amp;blog=8005292&amp;post=74&amp;subd=amyvarga&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently implemented some block (as opposed to inline) lists on my web page.  I wanted the lists to use my own list image.  There are two ways to implement this kind of list; use the CSS background-image option or the CSS list-style-image option.</p>
<h3 class="replacement">Using CSS background-image</h3>
<p>The CSS background-image option is quite popular as it allows complete control over the positioning of the list images.  However, the problem I had with this option, which can be seen in the first screen grab &#8216;List using background image&#8217;, is that the list images do not float correctly against div.media.  The CSS relative:position illustrates that the list images are floated left against the holding div.wrapper.  I could find no way to get the list images to float correctly against div.media.</p>
<h3 class="replacement">Using CSS list-style-image</h3>
<p>By using the CSS list-style-image with list-style-position:inside, which one can see in the second screen grab &#8216;List using list-style-image&#8217;, this works correctly in Firefox i.e. the list images are floating correctly against div.media.  Unfortunately however, IE does not position the list images optionally as can be seen in the third screen grab &#8216;List using list-style-image in IE&#8217;.  I&#8217;ve checked that my list image is a square with no white space on the left.  I could find not way to position the list images correctly in IE. </p>
<h3 class="replacement">Using CSS list-style-type for IE</h3>
<p>The best alternative I could come up with for IE is to resort to list-style-type which correctly positions the list images as can be seen in the fourth screen grab, &#8216;List using list-style-type in IE&#8217;.</p>
<div class="media">
<h4>Screenshots:</h4>
<ul>
<li class="thumbnail-image"><a id="image_1" title="List using background image" rel="lightbox" href="http://www.absoluteorange.com/images/blog/lists_background_images.jpg"><img src="http://www.absoluteorange.com/images/blog/thumbnail_lists_background_images.jpg" alt="List using background-image" title="List using background image"></a></li>
<li class="thumbnail-image"><a id="image_2" title="List using list-style-image" rel="lightbox" href="http://www.absoluteorange.com/images/blog/lists_list_style_images.jpg"><img src="http://www.absoluteorange.com/images/blog/thumbnail_lists_list_style_images.jpg" title="List using list-style-image" alt="List using list-style-image"></a></li>
<li class="thumbnail-image"><a id="image_3" title="List using list-style-image in IE" rel="lightbox" href="http://www.absoluteorange.com/images/blog/lists_list_style_images_ie7.jpg"><img src="http://www.absoluteorange.com/images/blog/thumbnail_lists_list_style_images_ie7.jpg" alt="List using list-style-image in IE" title="List using list-style-image in IE"></a></li>
<li class="thumbnail-image"><a id="image_4" title="List using list-style-type in IE" rel="lightbox" href="http://www.absoluteorange.com/images/blog/lists_list_style_type_ie7.jpg"><img src="http://www.absoluteorange.com/images/blog/thumbnail_lists_list_style_type_ie7.jpg" alt="List using list-style-type in IE" title="List using list-style-type in IE"></a></li>
</ul>
</div>
<div class="references">References:</p>
<ul>
<li>
Olsson, T and O’Brien, P. <em>List-style-image</em> [Online].  Available: <a title="List-style-image" href="http://reference.sitepoint.com/css/list-style-image" target="_blank">List-style-image</a> [28th July 2009]
</li>
</ul>
</div>
<br /> Tagged: Block lists, CSS, Lists <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/amyvarga.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/amyvarga.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/amyvarga.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/amyvarga.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/amyvarga.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/amyvarga.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/amyvarga.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/amyvarga.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/amyvarga.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/amyvarga.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/amyvarga.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/amyvarga.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/amyvarga.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/amyvarga.wordpress.com/74/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=amyvarga.wordpress.com&amp;blog=8005292&amp;post=74&amp;subd=amyvarga&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://amyvarga.wordpress.com/2009/07/27/lists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d57ff2aafd9084127f84a084eb6e0516?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">amyvarga</media:title>
		</media:content>

		<media:content url="http://www.absoluteorange.com/images/blog/thumbnail_lists_background_images.jpg" medium="image">
			<media:title type="html">List using background image</media:title>
		</media:content>

		<media:content url="http://www.absoluteorange.com/images/blog/thumbnail_lists_list_style_images.jpg" medium="image">
			<media:title type="html">List using list-style-image</media:title>
		</media:content>

		<media:content url="http://www.absoluteorange.com/images/blog/thumbnail_lists_list_style_images_ie7.jpg" medium="image">
			<media:title type="html">List using list-style-image in IE</media:title>
		</media:content>

		<media:content url="http://www.absoluteorange.com/images/blog/thumbnail_lists_list_style_type_ie7.jpg" medium="image">
			<media:title type="html">List using list-style-type in IE</media:title>
		</media:content>
	</item>
		<item>
		<title>Developments in CSS</title>
		<link>http://amyvarga.wordpress.com/2009/07/01/developments-in-css/</link>
		<comments>http://amyvarga.wordpress.com/2009/07/01/developments-in-css/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 14:35:12 +0000</pubDate>
		<dc:creator>Amy Varga</dc:creator>
				<category><![CDATA[Front end web development]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Object oriented CSS]]></category>

		<guid isPermaLink="false">http://amyvarga.wordpress.com/?p=26</guid>
		<description><![CDATA[Amy Varga takes a look at two recent developments in CSS namely the concept of object oriented CSS and the semantic naming of classes and ID's, finally she makes some suggestions of how to best write CSS.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=amyvarga.wordpress.com&amp;blog=8005292&amp;post=26&amp;subd=amyvarga&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>During a recent contract I came face to face with &#8216;the CSS nightmare&#8217;.  Huge websites with multiple style sheets using complex specificity to assign styles to elements.  The result was inconsistent styles across various sections of the website, lengthy style sheets and more development hours then was necessary.</p>
<p>Realising there was a problem I needed to find a solution.</p>
<h3>Object oriented CSS</h3>
<p>Object oriented CSS works in a similar way to Object Oriented Programming (OOP):</p>
<ul>
<li>In OOP objects have their own class definitions.  In CSS, selectors (element type selectors, class selectors, ID selectors, attribute selectors and pseudo-classes) have their own style declarations</li>
<li>In OOP classes inherit each others methods and properties.  In CSS inheritance and the cascade determine which style declaration should be applied to any given element.
<p>Inheritance is the means by which, in the absence of any specific declarations applied by the CSS cascade, a property value of an element is obtained from its parent element.  Inheritance is a mechanism that’s separate from the cascade: inheritance applies to the DOM (Document Object Model) tree.</p>
<p>The cascade deals with the style sheet rules.  The cascade combines the importance, origin, specificity, and source order of the applicable style declarations to determine exactly—and without conflict—which declaration should be applied to any given element.</li>
<li>In OOP classes can be public or private.  Objects automatically inherit public classes.  In CSS, properties that are not automatically inherited from the parent can be inherited by specifying a value or &#8216;inherit&#8217; for that CSS property, similar to a private class.  Properties that are inherited automatically are similar to public classes.</li>
</ul>
<h4>Properties that inherit:</h4>
<ul>
<li>color</li>
<li>font (and related properties)</li>
<li>letter-spacing</li>
<li>line-height</li>
<li>list-style (and related properties)</li>
<li>text-align</li>
<li>text-indent</li>
<li>text-transform</li>
<li>visibility</li>
<li>white-space</li>
<li>word-spacing</li>
</ul>
<h4>Properties that don&#8217;t inherit:</h4>
<ul>
<li>background (and related properties)
<li>border (and related properties)</li>
<li>display</li>
<li>float and clear</li>
<li>height and width</li>
<li>margin (and related properties)</li>
<li>min- and max-height and -width</li>
<li>outline</li>
<li>overflow</li>
<li>padding (and related properties)</li>
<li>position (and related properties)</li>
<li>text-decoration</li>
<li>vertical-align</li>
<li>z-index</li>
</ul>
<p>The concept of object oriented CSS is noteworthy.  The principles of the reuse of styles and inheritance / cascade are fundamental in creating an optimal CSS.</p>
<h3>Semantic naming of classes and IDs</h3>
<p>The semantic naming of classes and IDs is a controversial one.  This concept requires that all classes and IDs be named according to their meaning or role within a web page.  Unfortunately only web developers, designers and author benefit from semantically named classes and IDs.  Web page browsers, screen readers and search engines do not use classes or ID&#8217;s to gain more information about a web page.</p>
<p>The benefits to web developers, designers and authors are:</p>
<ol>
<li> Semantically named classes and IDs give more meaning to a web page</li>
<li> Semantically named classes and IDs can be stylistically changed in the CSS without having to be renamed in the HTML page</li>
</ol>
<p>The disadvantage of semantically naming classes and IDs is that it in some cases there is no  logic in naming it semantically.   Yahoo Grids and Blueprint CSS are both CSS frameworks based on grids and both frameworks name their classes based on their presentation.  For example, Blueprint&#8217;s &lt;div class=”span-24”&gt; relates to a &lt;div&gt; that spans the entire 960px over 24 columns.</p>
<p>The semantic naming of classes and IDs have their benefits and should be encouraged however, when there is no logical reason to name an element semantically when a name relating to presentation may be more appropriate.  For example, a rounded corner &lt;span&gt; may be named roundedCornerTopLeft.</p>
<h3>How to write your CSS</h3>
<ol>
<li>Create an element type selectors library<br />Defining the design of all HTML elements during the initial stages of web development ensures that all elements that make up a web page, visually communicate their semantic meaning in relation to each other.  It also sets the basic inheritance properties for elements with no further declarations.</li>
<li>Define style templates for repeated designs within a web site<br />Defining a style template for repeated designs within a web site ensures that they can be consistently and easily repeated throughout the website.  When defining style templates carefully consider redundancy vs dependency.  Should a style be repeated across different class selectors so that a design change in one does not effect all the others?  Or should they be dependent resulting in a design change affecting all associated elements?   In this case you may also consider using  multiple classes to achieve your design.</li>
<li>Minimise the use of specific selectors wherever possible and when using them, reference them as specifically as possible.</li>
<li> Carefully consider the proximity of the cascade</li>
<li>Always consider progressive enhancement and graceful degradation when styling.  For example if your design has rounded corners use the Mozilla and Webkit rounded corners styles.  However, also consider the best way to implement rounded corners in other browsers as well as a design without rounded corners.</li>
<li>Remember to check how your page looks with CSS disabled</li>
</ol>
<div class="references">
<h4>References:</h4>
<ul>
<li>2009.  <em>Nicole Sullivan&#8217;s Object Oriented CSS</em> [Online].  Available:  <a title="Nicole Sullivan's Object Oriented CSS" href="http://ajaxian.com/archives/nicole-sullivans-object-oriented-css" target="_blank">Nicole Sullivan&#8217;s Object Oriented CSS</a> [2nd June 2009]</li>
<li>Tip for Webmastsers [Online].  Available:  <a title="Tip for Webmastsers" href="http://www.w3.org/QA/Tips/goodclassnames" target="_blank">Tip for Webmastsers</a> [2nd June 2009]</li>
<li>Lupetti, A. 2008. <em>CSS Coding: Semantic approach in naming convention</em> [Online].  Available:  <a title="CSS Coding: Semantic approach in naming convention" href="http://woork.blogspot.com/2008/11/css-coding-semantic-approach-in-naming.html" target="_blank">CSS Coding: Semantic approach in naming convention</a> [2nd June 2009]</li>
<li><em>Semantics (CSS naming schemes that describe function not appearance)</em> [Online].  Available: <a title="Semantics (CSS naming schemes that describe function not appearance)" href="http://www.d.umn.edu/itss/support/Training/Online/csstips/semantics.html" target="_blank">Semantics (CSS naming schemes that describe function not appearance)</a> [2nd June 2009]</li>
<li>McDermott, M.  2009. <em>Using Grids in Web design</em> [Online].  Available:<br />
<a title="Using Grids in Web design" href="http://www.apaddedcell.com/beginning-web-design/design/using-grids-web-design" target="_blank">Using Grids in Web design</a> [2nd June 2009]</li>
<li>Wodjak, K.<em> Object Oriented CSS</em> [Online].  Available:  <a title="Object Oriented CSS" href="http://www.wojzworld.com/docs/Object-Oriented_CSS_v1.2.pdf" target="_blank">Object Oriented CSS</a>[9th June 2009]</li>
<li>2009. <em>What is Semantic HTML?</em> [Online].  Available:  <a title="What is Semantic HTML?" href="http://leonpaternoster.com/2009/05/what-is-semantic-html/" target="_blank">What is Semantic HTML?</a>[9th June 2009]</li>
<li><em>CSS Inheritance</em> [Online].  Available:  <a title="CSS Inheritance" href="http://dorward.me.uk/www/css/inheritance/" target="_blank">CSS Inheritance</a> [9th June 2009]</li>
<li>Olsson, T and O&#8217;Brien, P.  <em>The Cascade</em> [Online].  Available:  <a title="The Cascade" href="http://reference.sitepoint.com/css/cascade" target="_blank">The Cascade</a> [9th June 2009]</li>
<li>Olsson, T and O&#8217;Brien, P.  <em>Inheritance </em>[Online].  Available:  <a title="Inheritance" href="http://reference.sitepoint.com/css/inheritance" target="_blank">Inheritance</a> [9th June 2009]</li>
<li>Gillenwater, Z.  <em>CSS Cheat Sheet: Inhertiance, Cascade, Specificity</em> [Online].  Available:  <a title="CSS Cheat Sheet: Inhertiance, Cascade, Specificity" href="http://www.communitymx.com/content/article.cfm?cid=2795D" target="_blank">CSS Cheat Sheet: Inhertiance, Cascade, Specificity</a> [9th June 2009]</li>
<li>2009.  <em>CSS Best Practice #4:  Understand Selector Specificity for Better Speed and Easier Override</em> [Online].  Available:  <a title="CSS Best Practice #4:  Understand Selector Specificity for Better Speed and Easier Override" href="http://www.garrickcheung.com/css/css-best-practice-4-understand-selector-specificity-for-speed-and-override/" target="_blank">CSS Best Practice #4:  Understand Selector Specificity for Better Speed and Easier Override</a> [9th June 2009]</li>
<li>McDermott, M. 2008. 21 <em>Ways to Streamline your CSS</em> [Online].  Available:  <a title="Ways to Streamline your CSS" href="http://www.apaddedcell.com/21-ways-streamline-your-css" target="_blank">Ways to Streamline your CSS</a> [10th June 2009]</li>
</ul>
</div>
<br /> Tagged: CSS, Object oriented CSS <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/amyvarga.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/amyvarga.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/amyvarga.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/amyvarga.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/amyvarga.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/amyvarga.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/amyvarga.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/amyvarga.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/amyvarga.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/amyvarga.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/amyvarga.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/amyvarga.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/amyvarga.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/amyvarga.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=amyvarga.wordpress.com&amp;blog=8005292&amp;post=26&amp;subd=amyvarga&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://amyvarga.wordpress.com/2009/07/01/developments-in-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d57ff2aafd9084127f84a084eb6e0516?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">amyvarga</media:title>
		</media:content>
	</item>
		<item>
		<title>HTML replacement text</title>
		<link>http://amyvarga.wordpress.com/2009/07/01/html-replacement-text/</link>
		<comments>http://amyvarga.wordpress.com/2009/07/01/html-replacement-text/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 14:28:05 +0000</pubDate>
		<dc:creator>Amy Varga</dc:creator>
				<category><![CDATA[Front end web development]]></category>
		<category><![CDATA[Cufon]]></category>
		<category><![CDATA[HTML Replacement Text]]></category>
		<category><![CDATA[sIFR]]></category>

		<guid isPermaLink="false">http://amyvarga.wordpress.com/?p=21</guid>
		<description><![CDATA[Amy Varga conducts a review (advantages and disadvantages) of 3 technologies for inserting rich typography into web pages namely, sIFR, server-side installed fonts and Cufón.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=amyvarga.wordpress.com&amp;blog=8005292&amp;post=21&amp;subd=amyvarga&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="media">
<img alt="" src="http://www.absoluteorange.com/images/blog/html_replacement_text.jpg" title="HTML replacement text" class="alignleft" width="199" height="148" />
</div>
<p>When deciding how to best insert rich typography into my web pages I implemented 4 technologies namely sIFR, server-side installed fonts, TypeSelect and Cufón which I have reviewed below:</p>
<h3>sIFR</h3>
<p>sIFR stands for Scalable Inman Flash Replacement and is an ongoing development on the invention made by Shaun Inman in 2003.   sIFR uses JavaScript and the Document Object Model to replace all designated text with Flash rendered text.</p>
<h4>Advantages</h4>
<ol>
<li> Fairly easy to implement</li>
<li> Degrades gracefully</li>
<li> Accessible</li>
<li> Search engine friendly</li>
</ol>
<h4>Disadvantages</h4>
<ol>
<li> Requires a Macromedia Flash plugin</li>
<li> Requires Macromedia Flash software to create the font file</li>
<li> Online documentation is extremely fragmented</li>
<li> Can slow the loading of the web page if used frequently on a web page</li>
<li> Requires  careful tweaking of the CSS font size to get the the desired size</li>
<li> Overestimates the number of lines required to fit the text which occasionally  leaves the text with a blank line below</li>
<li> Does not handle hover states as defined in the CSS</li>
<li> Does not handle customisation of text eg. drop shadows</li>
</ol>
<h3>Server side fonts</h3>
<p>Server side fonts require font file(s) to be uploaded to the server.  A script written in PHP, Perl, ASP, Java servlets or any other server side programming language creates PNG images of all replacement text.  JavaScript replaces the designated text once it has loaded.</p>
<h4>Advantages</h4>
<ol>
<li> No Macromedia Flash plugin required</li>
<li> Degrades gracefully</li>
<li> Accessible</li>
<li> Search engine friendly</li>
</ol>
<h4>Disadvantages</h4>
<ol>
<li> Writing of the script requires an in depth understanding of the server-side language</li>
<li> Forcing a background colour on the heading does not give the best text results</li>
<li> Does not use font styles as defined in the CSS to style the font</li>
<li> Text cannot be selected</li>
</ol>
<h3>Type Select</h3>
<p>Type Select uses a font generator, which converts fonts to a proprietary format.  It uses Javascript to create PNG images for each text replacement letter which it inserts into the web page using the <span> element whose style attribute is set to use PNG image as the background image.</p>
<h4>Advantages</h4>
<ol>
<li> No Macromedia Flash plugin required</li>
<li> Degrades gracefully</li>
</ol>
<h4>Disadvantages</h4>
<ol>
<li> The font family as to be set within the HTML page</li>
<li>Styling on descendant text elements is ignored</li>
</ol>
<h3>Cufón:</h3>
<p>Cufón uses a font generator, which converts fonts to a proprietary format, and a rendering engine written in Javascript.  The font generator builds a custom FontForge script based on the user input, runs it and saves the result as an SVG font.  The SVG font is then parsed and SVG paths are converted to VML paths. The resulting document is then converted into JSON with a mix of functional JavaScript. The rendering machine has a core API and two rendering engines, one which renders VML shapes used for Internet Explorer and one which renders as &lt;canvas&gt; element for other browsers.</p>
<h4>Advantages</h4>
<ol>
<li> Does not require a Macromedia Flash plugin</li>
<li> Degrades gracefully</li>
<li> Extremely easy to implement</li>
<li> Accessible</li>
<li> Search engine friendly</li>
<li> Good online documentation</li>
<li> Lightweight</li>
<li> Quick to load even when used more than 10 times on a page</li>
<li> Easy to choose different character sets</li>
<li> Applies CSS font definitions exactly including hover definitions</li>
<li> Applies text customisation like drop shadows</li>
</ol>
<h4>Disadvantages</h4>
<ol>
<li>The image replacement text cannot be selected, except weirdly in IE</li>
<li>In IE text decoration on the a:hover does not show</li>
</ol>
<p>Personally, I found Cufón to be the best and most easiest to use.</p>
<div class="references">References:</p>
<ul>
<li>2004. <em>Introducing sIFR: The Healthy Alternative to Browser Text</em> [Online].  Available: <a title="Introducing sIFR: The Healthy Alternative to Browser Text" href="http://www.mikeindustries.com/blog/archive/2004/08/sifr" target="_blank">Introducing sIFR: The Healthy Alternative to Browser Text</a> [30th June 2009]</li>
<li>Rosenberger, S. 2004. <em>Dynamic Text Replacement</em> [Online].  Available: <a title="Dynamic Text Replacement" href="http://www.alistapart.com/articles/dynatext/" target="_blank">Dynamic Text Replacement</a> [30th June 2009]</li>
<li><em>About</em> [Online].  Available: <a title="About Cufon" href="http://wiki.github.com/sorccu/cufon/about" target="_blank">About Cufon</a> [30th June 2009]</li>
<li>Polhill, A. 2009.  <em>Text Replacement Comparison</em> [Online]. <a title="Text Replacement Comparison" href="http://thatguynamedandy.com/blog/text-replacement-comparison" target="_blank">Text Replacement Comparison</a> [1st July 2009]</li>
<li><em>sIFR Documentation and FAQ, How To Use</em> [Online].  <a title="sIFR Documentation and FAQ, How To Use" href="http://wiki.novemberborn.net/sifr/How+to+use" target="_blank">sIFR Documentation and FAQ, How To Use</a> [1st July 2009]</li>
<li>2005.  <em>sIFR 2.0: Rich Accessible Typography for the Masses</em> [Online].<br />
<a title="sIFR 2.0: Rich Accessible Typography for the Masses" href="http://wiki.novemberborn.net/sifr/How+to+use" target="_blank">sIFR 2.0: Rich Accessible Typography for the Masses</a> [1st July 2009]</li>
</ul>
</div>
<br /> Tagged: Cufon, HTML Replacement Text, sIFR <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/amyvarga.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/amyvarga.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/amyvarga.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/amyvarga.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/amyvarga.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/amyvarga.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/amyvarga.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/amyvarga.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/amyvarga.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/amyvarga.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/amyvarga.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/amyvarga.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/amyvarga.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/amyvarga.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=amyvarga.wordpress.com&amp;blog=8005292&amp;post=21&amp;subd=amyvarga&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://amyvarga.wordpress.com/2009/07/01/html-replacement-text/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d57ff2aafd9084127f84a084eb6e0516?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">amyvarga</media:title>
		</media:content>

		<media:content url="http://www.absoluteorange.com/images/blog/html_replacement_text.jpg" medium="image">
			<media:title type="html">HTML replacement text</media:title>
		</media:content>
	</item>
		<item>
		<title>XHTML vs HTML</title>
		<link>http://amyvarga.wordpress.com/2009/06/02/xhtml-vs-html/</link>
		<comments>http://amyvarga.wordpress.com/2009/06/02/xhtml-vs-html/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 16:25:52 +0000</pubDate>
		<dc:creator>Amy Varga</dc:creator>
				<category><![CDATA[Front end web development]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://amyvarga.wordpress.com/?p=3</guid>
		<description><![CDATA[Amy Varga assesses the XHTML 2.0 and HTML 5 specification in terms of which is the most appropriate to use in web development now.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=amyvarga.wordpress.com&amp;blog=8005292&amp;post=3&amp;subd=amyvarga&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am in the process of re-building my website and have always used the XHTML 1.0 specification.  With the recent interest in HTML 5 I thought it timely to investigate whether I should be implementing HTML 5 on my website.</p>
<p>Most XHTML web pages (including BBC, Times Online and Facebook) are effectively not XML on the web because they are being parsed as HTML not XML.  This is because they generally use a MIME content type of “text/html” as opposed to “application/xhtml+xml”; browsers use MIME type to distinguish between two types of syntax to represent HTML documents namely, HTML serialisation and XML serialisation.</p>
<p>The reason for parsing XHTML pages as HTML and not XML makes sense.  Whilst the DTD&#8217;s for HTML and XHTML are both based on SGML, XHTML is a more restrictive subset of SGML meaning that it has very strict syntax rules.  An XML parser will stop processing an invalid page and nothing except an error message will be displayed.  An HTML parser on the other hand is much more complex and lenient.  It uses an error-correcting tag soup parser to display an invalid page to the best of its ability.</p>
<p>In reality the interoperability of the Web means that invalid pages are a reality; content feeds, user generated content, body content (CMS), trackbacks, ad services and widgets can all create invalid pages.  By using an HTML parser the page is displayed regardless of its well-formedness.</p>
<p>The XHMTL 2.0 specification has been in progress since 2001 and is in its eighth public working draft.  It is based solely on XML and is driven by how markup should be used, rather than how markup is currently being used.  It proposes sophisticated and elegant solutions that may also  require a learning curve and it is not backward compatible with XHTML 1.0.</p>
<p>The proposed XForms, which replaces forms in the XHTML 2.0 specification, was the catalyst for the current HTML 5 specification.  In late 2003 Opera intended to prove that it was possible to extend HTML 4&#8242;s forms to provide many of the introduced features of XForms 1.0 without requiring browsers to implement rendering machines incompatible with existing HTML.  The draft proposal, presented jointly by Mozilla and Opera, was rejected by the W3C on the grounds that it conflicted with the previously chosen direction for the Web&#8217;s evolution.</p>
<p>Subsequently, Apple, Mozilla and Opera announced their intention to continue working on the effort under the Web Hypertext Application Technology Working Group (WHATWG).  In 2006 the W3C expressed interest in the specification, and created an HTML Working Group to work with the WHATWG on the development of the HTML 5 specification.</p>
<p>Whilst the HTML 5 specification aims to be backwards compatible with HTML4.0 and XHTML 1.0 this hasn&#8217;t been achieved completely as some elements have new meanings.  The specification focuses on creating a language for web applications as well as the creation of API&#8217;s that improve the client side web development environment.</p>
<p>The proposed API&#8217;s which include a 2D drawing API, a video and audio API, an offline web application API, an API that allows web applications to register themselves for certain protocols or MIME types, an editing API, a drag and drop API, network API&#8217;s and a cross document messaging API will no doubt prove most useful to web developers and is certainly a highlight of HMTL 5 for me.</p>
<p>Over and above that the HTML 5 specification has overwhelming industry support from browsers, search engines, CMS&#8217;s and authoring tools.</p>
<p>Perhaps the notion that all documents on the web should be written in an XML format is an ideal one.  Ian Hickson in a conversation about the HTML 5 specification stated that the HTML 5 specification came about because 95% of the Web today is HTML.  He also questioned whether the web would have been successful if it showed error messages whenever something was the least bit wrong.  Ian estimated that 93% of documents on the web have markup errors which would mean that over 90% of the web could not be browsed.</p>
<p>Neither specification has been implemented in its entirety and the HTML 5 specification looks unlikely to reach its deadline of 2010.  Saying that the &lt;canvas&gt; feature has been widely implemented and with such industry support implementation of some sections may take place sooner.</p>
<p>Since the XHTML 2.0 specification is not backwards compatible with XHTML 1.0 I am going to embrace the HTML 5 specification until the XHTML 2.0 specification gets implemented.</p>
<div class="references">
<h4>References:</h4>
<ul>
<li>Andersson, D. 2007. HTML5, XHTML2, and the Future of the Web [Online].  Available: <a title="HTML5, XHTML2, and the Future of the Web" href="http://www.digital-web.com/articles/html5_xhtml2_and_the_future_of_the_web/" target="_blank">HTML5, XHTML2, and the Future of the Web</a> [26th May 2009]</li>
<li>WHATWG Wiki [Online].  Available: <a title="WHATWG Wiki" href="http://wiki.whatwg.org/wiki/Main_Page" target="_blank">WHATWG Wiki </a> [2nd June 2009]
<li>HTML vs. XHTML [Online].  Available: <a title="HTML vs. XHTML" href="http://wiki.whatwg.org/wiki/HTML_vs._XHTML" target="_blank">HTML vs. XHTML</a> [2nd June 2009]</li>
<li>Dumbill, E.  2005. The Future of HTML, Part 1: WHATWG [Online].  Available: The Future of HTML, Part 1: WHATWG</a> [2nd June 2009]</li>
<li>HTML 5 Draft Standard – 2 June 2009 [Online].  Available:  <a title="HTML 5 Draft Standard – 2 June 2009" href="http://www.whatwg.org/specs/web-apps/current-work/#the-canvas-element" target="_blank">HTML 5 Draft Standard – 2 June 2009</a> [2nd June 2009]</li>
<li>Ducharme, B.  2007.  Put XHMTL 2 to work now [Online].  Available:  <a title="Put XHMTL 2 to work now" href="http://www.ibm.com/developerworks/library/x-xhtml2now.html" target="_blank">Put XHMTL 2 to work now</a> [29th May 2009]</li>
<li>Conversation With X/HTML 5 Team [Online].  Available:  <a title="Conversation With X/HTML 5 Team" href="http://xhtml.com/en/future/conversation-with-x-html-5-team/" target="_blank">Conversation With X/HTML 5 Team</a> [2nd June 2009]</li>
<li>2007.  HTML 5 and XHTML 2.0? [Online].  Available:  <a title="HTML 5 and XHTML 2.0?" href="http://www.hfccwebclub.com/webtips/webtips7-20-07.php" target="_blank">HTML 5 and XHTML 2.0?</a> [29th May 2009]</li>
<li>2008.  XHTML 2 vs. HTML 5 [Online].  Available:  <a title="XHTML 2 vs. HTML 5" href="http://immike.net/blog/2008/02/06/xhtml-2-vs-html-5/" target="_blank">XHTML 2 vs. HTML 5</a> [29th May 2009]</li>
<li>Introduction to XML For Web Developers [Online].  Available:  <a title="Introduction to XML For Web Developers" href="http://www.extropia.com/tutorials/xml/disadvantages_of_xml.html" target="_blank">Introduction to XML For Web Developers</a> [29th May 2009]</li>
<li>2005.  Introduction to XML and XML With Java  [Online].  Available:<br />
<a title="Introduction to XML and XML With Java" href="http://www.totheriver.com/learn/xml/xmltutorial.html#3" target="_blank">Introduction to XML and XML With Java</a> [29th May 2009]</li>
<li>XHTML2 Working Group Home Page [Online].  Available:  <a title="XHTML2 Working Group Home Page" href="http://www.w3.org/MarkUp/" target="_blank">XHTML2 Working Group Home Page</a> [29th May 2009]</li>
<li>Advantages of XML [Online].  Available:  <a title="Advantages of XML" href="http://publib.boulder.ibm.com/iseries/v5r1/ic2924/index.htm?info/rzakl/rzaklintroadvantages.htm" target="_blank">Advantages of XML</a> [29th May 2009]</li>
<li>X/HTML 5 Versus XHTML 2 [Online].  Available:  <a title="X/HTML 5 Versus XHTML 2" href="http://xhtml.com/en/future/x-html-5-versus-xhtml-2/#x2-cool" target="_blank">X/HTML 5 Versus XHTML 2</a>[29th May 2009]</li>
<li>2006.  Frequently Asked Questions About XHTML vs HTML [Online].<br />
Available:  <a title="Frequently Asked Questions About XHTML vs HTML" href="http://www.sitepoint.com/forums/showthread.php?t=393445" target="_blank">Frequently Asked Questions About XHTML vs HTML</a> [27th May 2009]</li>
<li>2006.  General advantages and disadvantages of HTML vs XML and XHTML [Online].  Available: <a title="General advantages and disadvantages of HTML vs XML and XHTML" href="http://e-articles.info/e/a/title/General-advantages-and-disadvantages-of-HTML-vs-XML-and-XHTML/" target="_blank">General advantages and disadvantages of HTML vs XML and XHTML</a> [27th May 2009]</li>
<li>Pemberton, S.  2004.  HTML and XHTML Frequently Answered Questions [Online].  Available:  <a title="HTML and XHTML Frequently Answered Questions" href="http://www.w3.org/MarkUp/2004/xhtml-faq#need" target="_blank">HTML and XHTML Frequently Answered Questions</a> [27th May 2009]</li>
<li>Advantages and disadvantages of XHTML [Online].  Available:<br />
<a title="Advantages and disadvantages of XHTML" href="http://www.webrichtlijnen.nl/english/manual/development/production/webstandards/xhtml1-0/pros-and-cons/" target="_blank">Advantages and disadvantages of XHTML</a>[27th May 2009]</li>
<li>2003.  HTML Versus XHTML  [Online].  Available: <a title="HTML Versus XHTML" href="http://www.webstandards.org/learn/articles/askw3c/oct2003/" target="_blank">HTML Versus XHTML</a>[27th May 2009]</li>
</ul>
<br /> Tagged: HTML, XHTML <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/amyvarga.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/amyvarga.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/amyvarga.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/amyvarga.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/amyvarga.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/amyvarga.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/amyvarga.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/amyvarga.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/amyvarga.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/amyvarga.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/amyvarga.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/amyvarga.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/amyvarga.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/amyvarga.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=amyvarga.wordpress.com&amp;blog=8005292&amp;post=3&amp;subd=amyvarga&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://amyvarga.wordpress.com/2009/06/02/xhtml-vs-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d57ff2aafd9084127f84a084eb6e0516?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">amyvarga</media:title>
		</media:content>
	</item>
	</channel>
</rss>
