<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Michael P. Gilbert</title>
	
	<link>http://www.mpgilbert.com</link>
	<description />
	<pubDate>Thu, 11 Mar 2010 03:48:48 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/mpgilbert" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="mpgilbert" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">mpgilbert</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Site Launch: Linde Lee, Inc.</title>
		<link>http://www.mpgilbert.com/site-launch-linde-lee-inc</link>
		<comments>http://www.mpgilbert.com/site-launch-linde-lee-inc#comments</comments>
		<pubDate>Tue, 09 Mar 2010 05:15:06 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Accessibility]]></category>

		<category><![CDATA[News]]></category>

		<category><![CDATA[Web Standards]]></category>

		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.mpgilbert.com/?p=378</guid>
		<description><![CDATA[I&#8217;m always eager to dive into a project that presents a new, or otherwise unique, challenge. In this case, Mark Reeves at Reeves Design House created a visual design based on a grid of ten rectangular boxes &#8212; consistent across the whole site. This might seem fairly simple, but from a coding standpoint it can [...]]]></description>
			<content:encoded><![CDATA[<p><img class="imgright" src="http://www.mpgilbert.com/images/client_lindeleeinc_sm.jpg" border="0" alt="Screen shot of the Linde Lee, Inc. site" width="100" height="56" />I&#8217;m always eager to dive into a project that presents a new, or otherwise unique, challenge. In this case, Mark Reeves at <a href="http://www.reevesdesignhouse.com/" target="_blank" title="Link opens in a new window or tab.">Reeves Design House</a> created a visual design based on a grid of ten rectangular boxes &mdash; consistent across the whole site. This might seem fairly simple, but from a coding standpoint it can be tricky. It&#8217;s a balancing act between absolutely positioning multiple content boxes and ensuring that the content can grow vertically without disrupting the grid system. One more tricky requirement from the client: Can it be built in such a way that &#8220;non-techies&#8221; can maintain the content? Sure, why not! So, this site is another fine example of using <a href="http://www.mpgilbert.com/wordpress-as-a-cms/">WordPress as a <acronym title="Content Management System">CMS</acronym></a>. I&#8217;m continually amazed how far we can stretch a simple blogging system to the limit in order to provide a client-friendly solution to a common problem in an extremely short amount of time. Take a look at the <a href="http://lindeleeinc.com/" target="_blank" title="Link opens in a new window or tab.">Linde Lee, Inc.</a> site and have a look around. The site includes some great photos of their <a href="http://lindeleeinc.com/showroom/" target="_blank" title="Link opens in a new window or tab.">showroom</a> at the historic <a href="http://www.dallasmarketcenter.com/" target="_blank" title="Link opens in a new window or tab.">Dallas Market Center</a> just north of downtown Dallas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mpgilbert.com/site-launch-linde-lee-inc/feed</wfw:commentRss>
		</item>
		<item>
		<title>Site Launch: Dr. Karsan, Facial Plastic Surgeon</title>
		<link>http://www.mpgilbert.com/site-launch-dr-karsan-facial-plastic-surgeon</link>
		<comments>http://www.mpgilbert.com/site-launch-dr-karsan-facial-plastic-surgeon#comments</comments>
		<pubDate>Thu, 04 Feb 2010 04:43:42 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Accessibility]]></category>

		<category><![CDATA[News]]></category>

		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://www.mpgilbert.com/?p=371</guid>
		<description><![CDATA[I&#8217;m excited to announce the launch of a site for Dr. Karsan, a facial plastic surgeon in the Dallas area. It&#8217;s a pretty straightforward site built with PHP, XHTML, CSS, and JavaScript. It&#8217;s clean, functional, usable, and accessible. Yet another beautiful design by Mark Reeves at Reeves Design House. Take a look at the Dr. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="imgright" src="http://www.mpgilbert.com/images/client_drkarsan_sm.jpg" border="0" alt="Screen shot of the Dr. Karsan site" width="100" height="67" />I&#8217;m excited to announce the launch of a site for Dr. Karsan, a facial plastic surgeon in the Dallas area. It&#8217;s a pretty straightforward site built with PHP, XHTML, CSS, and JavaScript. It&#8217;s clean, functional, usable, and accessible. Yet another beautiful design by Mark Reeves at <a href="http://www.reevesdesignhouse.com/" target="_blank" title="Link opens in a new window or tab.">Reeves Design House</a>. Take a look at the <a href="http://www.drkarsan.com/" target="_blank" title="Link opens in a new window or tab.">Dr. Karsan</a> site and see what you think.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mpgilbert.com/site-launch-dr-karsan-facial-plastic-surgeon/feed</wfw:commentRss>
		</item>
		<item>
		<title>Site Launch: Fun with WordPress as a CMS</title>
		<link>http://www.mpgilbert.com/site-launch-triton-urbanmoto-w2t</link>
		<comments>http://www.mpgilbert.com/site-launch-triton-urbanmoto-w2t#comments</comments>
		<pubDate>Tue, 29 Sep 2009 21:05:35 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Accessibility]]></category>

		<category><![CDATA[Ajax/Scripting]]></category>

		<category><![CDATA[News]]></category>

		<category><![CDATA[Web Standards]]></category>

		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.mpgilbert.com/?p=344</guid>
		<description><![CDATA[Over the past several months I&#8217;ve been working with Glide Design &#8212; an Austin-based web site design firm &#8212; on a number of interesting projects. We&#8217;ve been building the sites with WordPress which is a great solution for a lightweight CMS. I&#8217;ve had a lot of fun working on these projects and learning as much [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.mpgilbert.com/wp-content/uploads/2009/09/thumb_triton_urban_w2t.jpg" alt="Screen Shot of Triton Custom Homes, Urban Moto Shop, Water to Thrive Web Sites" width="116" height="141" class="imgright-noframe" />Over the past several months I&#8217;ve been working with <a href="http://www.glidedesign.com/" target="_blank" title="Link opens in a new window or tab.">Glide Design</a> &mdash; an Austin-based web site design firm &mdash; on a number of interesting projects. We&#8217;ve been building the sites with WordPress which is a great solution for a <a href="http://www.mpgilbert.com/wordpress-as-a-cms">lightweight <acronym title="Content Management System">CMS</acronym></a>. I&#8217;ve had a lot of fun working on these projects and learning as much as I can about how to extend WordPress into more than just a simple blogging system. They&#8217;re not only easy to build but clients also appreciate the simplicity of the admin interface which allows them to maintain their own site content. The following three sites are a sample of the projects I&#8217;ve been working on recently. Each one had its own fun challenges and rewarding learning opportunities. Check out <a href="http://tritonaustin.com/" target="_blank" title="Link opens in a new window or tab.">Triton Custom Homes</a>, <a href="http://urbanmotoshop.com/" target="_blank" title="Link opens in a new window or tab.">Urban Moto Shop</a>, and <a href="http://watertothrive.org/" target="_blank" title="Link opens in a new window or tab.">Water to Thrive</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mpgilbert.com/site-launch-triton-urbanmoto-w2t/feed</wfw:commentRss>
		</item>
		<item>
		<title>What is Ajax (and what is it not)? Part 3 of 3</title>
		<link>http://www.mpgilbert.com/ajax-accessibility</link>
		<comments>http://www.mpgilbert.com/ajax-accessibility#comments</comments>
		<pubDate>Thu, 17 Sep 2009 06:08:01 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Accessibility]]></category>

		<category><![CDATA[Ajax/Scripting]]></category>

		<category><![CDATA[Resources]]></category>

		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://www.mpgilbert.com/?p=288</guid>
		<description><![CDATA[This is the third post (of three) discussing the topic of Ajax. If you haven&#8217;t already done so, you might want to go back and read Part 1 (general introduction, definitions, and history) and Part 2 (development sandbox with examples). Now that I&#8217;ve covered the basics of Ajax and implemented some demos, I&#8217;d like to [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.mpgilbert.com/wp-content/uploads/2009/08/ajax_glossy_3.jpg" alt="Ajax" width="100" height="61" class="imgright-noframe" />This is the third post (of three) discussing the topic of Ajax. If you haven&#8217;t already done so, you might want to go back and read <a href="http://www.mpgilbert.com/ajax/">Part 1</a> (general introduction, definitions, and history) and <a href="http://www.mpgilbert.com/ajax-sandbox/">Part 2</a> (development sandbox with examples). Now that I&#8217;ve covered the basics of Ajax and implemented some demos, I&#8217;d like to address the issue of <strong>Ajax accessibility</strong>. Does the use of Ajax necessarily exclude people with disabilities? Does Ajax cause a roadblock for search engines (search engine optimization) and mobile devices? Are there ways to improve the accessibility of Ajax and JavaScript-enhanced websites?</p>
<p>As I&#8217;m writing this, I&#8217;m wondering what kinds of accessibility concerns there are in the sandbox demos I included in <a href="http://www.mpgilbert.com/ajax-sandbox/">Part 2</a> of this series. Did you notice some issues as you were trying out the demos? Perhaps I&#8217;ll have to put them to the test in a more formal manner&#8230; but that&#8217;s a task for another day (and another blog post). In this post I&#8217;d like to discuss some general accessibility issues and possible solutions that are available to web developers today. It&#8217;s by no means an exhaustive list or a definitive hands-on guide, but hopefully it&#8217;s a good starting point for further research.</p>
<p><span id="more-288"></span></p>
<h3>Simple Interactions</h3>
<p>I think the first point that needs to be made is that Ajax, by definition, requires the use of JavaScript. Even if you&#8217;re not making a call back to the server using the <a href="http://en.wikipedia.org/wiki/XMLHttpRequest">XMLHttpRequest</a> object, JavaScript is a key component in many websites today using an increasing number of animated browser effects. That&#8217;s not a bad thing by itself. But what if JavaScript is disabled or not available? For instance, some mobile devices have limited, if any, JavaScript support. Some <a href="http://en.wikipedia.org/wiki/Screen_readers">screen readers</a> have better JavaScript support than others. Search engines are unable to follow JavaScript constructed links, so search engine optimization strategies could be hindered. For all of these cases, developers need to provide an alternate means of reaching the website&#8217;s content. However, creating two different versions of the same content can be a maintenance nightmare as well as an expensive development option. What if there was a better way? Let&#8217;s take a look at some alternatives that might offer some assistance to web developers.</p>
<h3>Creating New Scripting Habits</h3>
<p>Before we get into the more complex Ajax examples, let&#8217;s start with the simpler methods, such as JavaScript enhanced links. In a book called <a href="http://bulletproofajax.com/">Bulletproof Ajax</a>, <a href="http://adactio.com/">Jeremy Keith</a> presents a new method which I find very useful. He calls it <strong>hijax</strong> and it is built on the idea that you can &#8220;hijack&#8221; regular links, through the use of <a href="http://en.wikipedia.org/wiki/DOM_scripting">DOM scripting</a>, to add an unobtrusive behavior layer to your web pages. Without this layer, the links still work as expected, but if JavaScript is available, the user gets an enhanced experience. Jeremy encourages us to avoid bad habits of the past where we used scripting methods that caused accessibility issues. Here are two methods in particular to avoid:</p>
<p>Using the JavaScript pseudo-protocol:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;a href=&quot;javascript:window.open('help.html')&quot;&gt;contextual help&lt;/a&gt;</pre></td></tr></table></div>

<p>Using a fake link:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;a href=&quot;#&quot; onclick=&quot;window.open('help.html'); return false;&quot;&gt;contextual help&lt;/a&gt;</pre></td></tr></table></div>

<p>A better method uses a real link with some added scripting. If JavaScript is unavailable, the link still works:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;a href=&quot;help.html&quot; onclick=&quot;window.open(this.getAttribute('href')); return false;&quot;&gt;contextual help&lt;/a&gt;</pre></td></tr></table></div>

<p>But, we still have some inline JavaScript and that&#8217;s not always the best way to go. Here&#8217;s where things get exciting. How about creating a normal link and add a CSS class that can be &#8220;hijacked&#8221; by a simple JavaScript function?</p>
<p>Here&#8217;s the HTML code:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;a href=&quot;help.html&quot; class=&quot;help&quot;&gt;contextual help&lt;/a&gt;</pre></td></tr></table></div>

<p>&#8230;and here&#8217;s the JavaScript function to go along with it:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> doPopups<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> links <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;a&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> links.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>links<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">className</span>.<span style="color: #660066;">match</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;help&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        links<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">onclick</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
          window.<span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">getAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;href&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
          <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>See how that works? The <em>doPopups</em> function creates an array of all the links on the page and then adds an <em>onclick</em> event (the popup window) for any links that have a class of <em>help</em>. This is a very simplified example of Jeremy&#8217;s hijax concept. There are additional recommendations for dealing with data retrieved via the XMLHttpRequest object which are more appropriate for true Ajax development methods. I encourage you to check out his excellent books, <a href="http://bulletproofajax.com/">Bulletproof Ajax</a> and <a href="http://domscripting.com/book/">DOM Scripting</a> for additional details.</p>
<h3>More Complex Interactions</h3>
<p>When it comes to more complex Ajax methods, the subject of accessibility becomes even more important. Some Ajax techniques dynamically add new content to the page in a way that might not be obvious to the casual observer (or completely hidden in the background and therefore invisible to the user). This situation becomes critical for screen reader users since they may not get any sort of notification when the page has been updated and therefore the screen reader may not read the information. Imagine how frustrating it would be to fill out a form and receive no feedback about potential errors. You click the submit button and it just returns you to the form. In order for dynamic page updates to be accessible, there needs to be a way of effectively notifying the user so that they can read the new content.</p>
<h3>Accessible Rich Internet Applications (WAI-ARIA)</h3>
<p>There&#8217;s so much more that can be done to make Ajax (and other complex scripted interactions) more accessible. The <a href="http://www.w3.org/WAI/">Web Accessibility Initiative</a> is currently developing a specification called <a href="http://www.w3.org/WAI/intro/aria.php">Accessible Rich Internet Applications</a> (WAI-ARIA) that enables web developers to create web applications in a more accessible way.</p>
<h4>Keyboard Navigation</h4>
<p>Being able to navigate a website using the keyboard alone (without the aid of a mouse) is an essential requirement for basic accessibility. By default, only links and form elements can receive focus (make it available for user interaction). Try it out for yourself and you&#8217;ll see what I mean. Start at the top of a web page and press the Tab key several times to &#8220;focus&#8221; links and form elements as you go down the page. However, a dynamically displayed error message, for example, wouldn&#8217;t be focusable for keyboard-only and screen reader users. Therefore it would likely be missed altogether. WAI-ARIA helps alleviate this problem by enabling all visible elements to be focusable by extending the <em>tabindex</em> attribute in HTML.</p>
<h4>Roles, States, and Properties</h4>
<p>WAI-ARIA provides the <em>role attribute</em> to help define widgets (sliders, tree menus, etc.) and page structure (sections, navigation, etc.). See the <a href="http://www.w3.org/TR/wai-aria/#roles">full list of roles</a> available. Additional information about how a user can interact with a widget can be provided with WAI-ARIA&#8217;s <em>states and properties</em>. See the <a href="http://www.w3.org/TR/wai-aria/#supported">full list of states and properties</a> available.</p>
<h4>Live Regions</h4>
<p>Areas of a web page that will change dynamically using Ajax can be specified as <em>live regions</em>. Live regions provide a mechanism for notifying the assistive device (such as a screen reader) that new or updated content is available on the page and how the user should be notified about the content. The WAI-ARIA specification provides additional information on <a href="http://www.w3.org/TR/wai-aria/#liveregions">live regions</a>.</p>
<h4>Additional WAI-ARIA Resources</h4>
<p>I&#8217;ve included only a few of the many features available with WAI-ARIA. Here are some additional references available for further reading.</p>
<ul>
<li><a href="http://www.w3.org/TR/wai-aria/">Accessible Rich Internet Applications (WAI-ARIA) 1.0</a></li>
<li><a href="http://www.w3.org/WAI/PF/aria-practices/">WAI-ARIA Best Practices</a></li>
<li><a href="http://www.w3.org/WAI/aria/faq">WAI-ARIA FAQ</a></li>
<li><a href="http://webaim.org/techniques/aria/">WebAIM&#8217;s Accessibility of Rich Internet Applications</a></li>
<li><a href="http://dev.opera.com/articles/view/introduction-to-wai-aria/">Opera&#8217;s Introduction to WAI ARIA</a></li>
<li><a href="http://wiki.codetalks.org/wiki/index.php/ARIA_Quick_Reference">CodeTalks&#8217; ARIA Quick Reference</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mpgilbert.com/ajax-accessibility/feed</wfw:commentRss>
		</item>
		<item>
		<title>What is Ajax (and what is it not)? Part 2 of 3</title>
		<link>http://www.mpgilbert.com/ajax-sandbox</link>
		<comments>http://www.mpgilbert.com/ajax-sandbox#comments</comments>
		<pubDate>Mon, 14 Sep 2009 02:48:41 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Ajax/Scripting]]></category>

		<category><![CDATA[Resources]]></category>

		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://www.mpgilbert.com/?p=269</guid>
		<description><![CDATA[This is the second post (of three) discussing the topic of Ajax. In case you haven&#8217;t already done so, you might want to read Part 1. It&#8217;s not essential, but it will provide some general context and a roadmap of the three blog posts.
Now that I&#8217;ve covered the basics about what Ajax is and is [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.mpgilbert.com/wp-content/uploads/2009/08/ajax_glossy_3.jpg" alt="Ajax" width="100" height="61" class="imgright-noframe" />This is the second post (of three) discussing the topic of Ajax. In case you haven&#8217;t already done so, you might want to read <a href="http://www.mpgilbert.com/ajax">Part 1</a>. It&#8217;s not essential, but it will provide some general context and a roadmap of the three blog posts.</p>
<p>Now that I&#8217;ve covered the basics about what Ajax is and is not, I&#8217;d like to spend some time playing around with some actual Ajax code. I&#8217;ll go ahead and say up front that there&#8217;s not much original here. I&#8217;m not professing to be an expert Ajax programmer (or hard-core JavaScript programmer, for that matter). Using a home improvement analogy, I&#8217;m not trying to build my own hammer, screwdriver, or copper tubing from scratch; I&#8217;m holding the tools in my own hands and trying them out to see what each can do. In other words, I&#8217;m exploring the use of readily available Ajax and other JavaScript components in my own server environment.</p>
<p><span id="more-269"></span></p>
<p>I&#8217;m a firm believer that if you want to better understand something, it&#8217;s important to take it apart and try it out for yourself. I encourage you to do the same thing&#8230; if one of the following demos catches your eye, go read more about it on the original site and create your own demo on your site. Style it up, make some changes, and have fun. I&#8217;ve provided links to all the original sites for easy reference.</p>
<p>Enough discussion already&#8230; here are some Ajax (and Ajax-like) demos for your enjoyment.</p>
<ul>
<li><a href="http://www.mpgilbert.com/sandbox/ajax/edit-in-place/">Edit in Place</a></li>
<li><a href="http://www.mpgilbert.com/sandbox/ajax/tablesorter/">Sortable Table</a></li>
<li><a href="http://www.mpgilbert.com/sandbox/ajax/thickbox/">Modal Window</a></li>
<li><a href="http://www.mpgilbert.com/sandbox/ajax/content-slider/">Content Slider</a></li>
<li><a href="http://www.mpgilbert.com/sandbox/ajax/galleriffic/">Photo Gallery</a></li>
<li><a href="http://www.mpgilbert.com/sandbox/ajax/jqueryui/">jQuery UI</a></li>
<li><a href="http://www.mpgilbert.com/sandbox/ajax/jquerytools/">jQuery Tools</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mpgilbert.com/ajax-sandbox/feed</wfw:commentRss>
		</item>
		<item>
		<title>What is Ajax (and what is it not)? Part 1 of 3</title>
		<link>http://www.mpgilbert.com/ajax</link>
		<comments>http://www.mpgilbert.com/ajax#comments</comments>
		<pubDate>Sun, 30 Aug 2009 01:05:02 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Accessibility]]></category>

		<category><![CDATA[Ajax/Scripting]]></category>

		<category><![CDATA[Resources]]></category>

		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://www.mpgilbert.com/?p=211</guid>
		<description><![CDATA[Lately I&#8217;ve noticed a huge variance in the usage of the term Ajax. So I&#8217;ve decided to take some time to explore the topic and share my findings in a few blog posts. In this first post, I&#8217;d like to share some info from the original blog post that defined and popularized the new interaction [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.mpgilbert.com/wp-content/uploads/2009/08/ajax_glossy_3.jpg" alt="Ajax" width="100" height="61" class="imgright-noframe" />Lately I&#8217;ve noticed a huge variance in the usage of the term <strong>Ajax</strong>. So I&#8217;ve decided to take some time to explore the topic and share my findings in a few blog posts. In this first post, I&#8217;d like to share some info from the original blog post that <strong>defined and popularized</strong> the new interaction design approach. I&#8217;ll include some historical details, various definitions, and even a few technical bits and pieces thrown in for good measure.</p>
<p>In the <a href="http://www.mpgilbert.com/ajax-sandbox/" title="Read Part 2 of 3">next post</a>, I&#8217;m going to create a <strong>development sandbox</strong> to jump in and have fun implementing some popular examples in a controlled environment. I&#8217;m hoping to create a repository for my own future use as well as document competency in this area of web development. I&#8217;m not planning to reinvent the wheel here&#8230; there are a ton of great resources already available. I&#8217;m going to poke around and see what&#8217;s out there and then put together my own simple demos. Admittedly, some of the demos will be true Ajax (according to the original definition) and some will follow the more general purpose definition which I&#8217;ll call &#8220;animation effects&#8221; created with a combination of <a href="http://www.ericgiguere.com/articles/javascript-is-not-java.html">JavaScript</a>, <a href="http://en.wikipedia.org/wiki/Cascading_Style_Sheets">CSS</a>, and other technologies. There are some great JavaScript frameworks, such as <a href="http://jquery.com/">jQuery</a>, <a href="http://www.prototypejs.org/">Prototype</a>, <a href="http://developer.yahoo.com/yui/">YUI</a>, and <a href="http://www.dojotoolkit.org/">Dojo</a>, that dramatically simplify Ajax (and pseudo-Ajax) development. I&#8217;ll include a variety of examples using some of those frameworks as well.</p>
<p>In the <a href="http://www.mpgilbert.com/ajax-accessibility/" title="Read Part 3 of 3">last post</a>, I&#8217;d like to explore the topic of <strong>Ajax accessibility</strong>. Is it true that Ajax creates websites that can&#8217;t be accessed by people with disabilities? Does Ajax hurt your website&#8217;s search engine ranking? Can Ajax be implemented in an accessible way? I&#8217;m not completely sure, but I&#8217;m hoping to find out! The <a href="http://www.w3.org/WAI/">Web Accessibility Initiative</a> has created a development suite called <a href="http://www.w3.org/WAI/intro/aria.php">Accessible Rich Internet Applications</a> (WAI-ARIA) to help with accessible Ajax solutions. I&#8217;m really excited about ARIA&#8217;s possibilities, so I&#8217;ll spend some time exploring it as well.</p>
<p><span id="more-211"></span></p>
<p>Before we get into the specifics, let&#8217;s go back to the beginning, in early 2005, and examine Ajax&#8217;s humble beginnings. As described in <a href="http://www.adaptivepath.com/aboutus/jjg.php">Jesse James Garrett</a>&#8217;s original article <a href="http://www.adaptivepath.com/ideas/essays/archives/000385.php">Ajax: A New Approach to Web Applications</a>, Ajax isn&#8217;t a downloadable component, browser plugin, or desktop application add-on. It&#8217;s a term used to describe &#8220;several technologies, each flourishing in its own right, coming together in powerful new ways.&#8221; Originally, Ajax was shorthand for &#8220;Asynchronous JavaScript + XML&#8221;. Soon after, it became apparent that it doesn&#8217;t necessarily need to include XML.</p>
<p>Ajax includes a few key ingredients:</p>
<ul>
<li><strong>standards-based presentation</strong> (XHTML, CSS)</li>
<li><strong>dynamic display and interaction</strong> (Document Object Model)</li>
<li><strong>data interchange and manipulation</strong> (XML, XSLT)</li>
<li><strong>asynchronous data retrieval</strong> (XMLHttpRequest, also called XHR)</li>
<li><strong>JavaScript</strong> to bring everything together</li>
</ul>
<p>It&#8217;s the fourth item, asynchronous data retrieval, that makes it truly unique and exciting. Here&#8217;s an easier way to think about it: &#8220;grabbing data from the server and displaying it on the web page without refreshing the browser.&#8221; It&#8217;s a more seamless approach to present content to the viewer since everything else in the browser window stays put while a small area updates per the viewer&#8217;s mouse click or key press. You may have experienced this before without knowing that it used Ajax. Some popular websites that include extensive use of Ajax include <a href="http://maps.google.com/">Google Maps</a>, <a href="http://www.flickr.com/">Flickr</a>, and <a href="http://johnvey.com/features/gmailapi/">Gmail</a>.</p>
<p>Using the less strict definition &mdash; not including the hidden round trip to the server &mdash; you may have seen things like <a href="http://jquery.bassistance.de/accordion/demo/">accordion navigation</a>, <a href="http://tetlaw.id.au/view/blog/table-sorting-with-prototype/">sortable tables</a>, <a href="http://37signals.com/svn/archives/000558.php">fading yellow highlights</a>, and <a href="http://www.twospy.com/galleriffic/advanced.html">photo galleries</a>. They don&#8217;t necessarily use Ajax, but I&#8217;m including them here since they&#8217;re so prevalent in web development today. I think you know what I mean&#8230; that ubiquitous &#8220;Web 2.0&#8243; look and feel on many <a href="http://www.facebook.com/">social</a> <a href="http://twitter.com/">networking</a> <a href="http://digg.com/">sites</a> (including the glossy, lickable buttons and child-friendly rounded corners).</p>
<p>I think that&#8217;s enough introduction on Ajax for now. In the next post we&#8217;ll take a closer look at some individual Ajax elements and how they can be used to enhance a website.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mpgilbert.com/ajax/feed</wfw:commentRss>
		</item>
		<item>
		<title>WordPress as a Multilingual CMS Using WPML</title>
		<link>http://www.mpgilbert.com/wordpress-as-a-multilingual-cms</link>
		<comments>http://www.mpgilbert.com/wordpress-as-a-multilingual-cms#comments</comments>
		<pubDate>Mon, 27 Jul 2009 23:20:37 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Accessibility]]></category>

		<category><![CDATA[Multilingual]]></category>

		<category><![CDATA[Resources]]></category>

		<category><![CDATA[Web Standards]]></category>

		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.mpgilbert.com/?p=112</guid>
		<description><![CDATA[I&#8217;ve been working on a site that requires both English and Spanish content. The user interface elements, such as the primary navigation, copyright statement, and form labels, need to be bilingual as well. The client needs the ability to update all of the content (and write new blog entries) themselves, so early on I decided [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.mpgilbert.com/wp-content/uploads/2009/07/wpml_plugin_menu.gif" alt="WPML Plugin Menu" title="WPML Plugin Menu" width="100" height="97" class="imgright size-full wp-image-116" />I&#8217;ve been working on a site that requires both English and Spanish content. The user interface elements, such as the primary navigation, copyright statement, and form labels, need to be bilingual as well. The client needs the ability to update all of the content (and write new blog entries) themselves, so early on I decided to use <a href="http://wordpress.org/" title="Link opens in a new window or tab." target="_blank">WordPress</a>. I&#8217;d read that WordPress can handle multilingual sites, but I wasn&#8217;t clear on how that worked exactly. Also, I don&#8217;t speak Spanish &ndash; which means I can&#8217;t provide my own translations &ndash; so I needed a solution for that as well. I considered using something like <a href="http://www.google.com/language_tools" title="Link opens in a new window or tab." target="_blank">Google&#8217;s Language Tools</a> for little things like labels, but I&#8217;ve always been suspicious about whether I&#8217;m using the preferred form of translated bits of text like &#8220;Search&#8221; and &#8220;Older Entries&#8221; and many others.</p>
<p><span id="more-112"></span></p>
<p>After much research and a few hours of experimentation, I decided to use a WordPress plugin called <a href="http://wpml.org/" title="Link opens in a new window or tab." target="_blank">WPML</a> by <a href="http://www.onthegosystems.com/" title="Link opens in a new window or tab." target="_blank">OnTheGoSystems</a>, a small digital photography software development group located in Las Vegas. I was immediately impressed with the amount of documentation that&#8217;s available for WPML (which I believe simply stands for &#8220;WordPress Multilingual&#8221;). I especially like the <a href="http://wpml.org/home/roadmap/" title="Link opens in a new window or tab." target="_blank">Roadmap</a>, <a href="http://wpml.org/home/getting-started-guide/" title="Link opens in a new window or tab." target="_blank">Getting Started Guide</a>, and a nice argument for using <a href="http://wpml.org/home/why-wordpress-as-cms/" title="Link opens in a new window or tab." target="_blank">WordPress as a <acronym title="Content Management System">CMS</acronym></a>.</p>
<p>After installing the plugin, I set English as the default language and added Spanish as an alternate. WPML can handle multiple languages on a single site (thus the name). The WPML site itself is available in several languages: English, Chinese, German, Japanese, and Spanish &ndash; all selectable from any page on the entire site. Did I mention I was impressed? After setting the site&#8217;s languages, I set how they would be displayed: 1) different languages in directories (http://domain.com/ - English, http://domain.com/es/ - Spanish), 2) a different domain per language, or 3) a language name added as a parameter (http://domain.com?lang=es - Spanish). In order to provide the site visitor a mechanism for choosing a language, a dropdown language switcher can be added with a single line of PHP code, inserted into the WordPress theme (&lt;?php do_action(&#8217;icl_language_selector&#8217;); ?&gt;). The language switcher can be customized using the <a href="http://wpml.org/home/getting-started-guide/language-setup/custom-language-switcher/" title="Link opens in a new window or tab." target="_blank">Custom Language Switcher Guide</a>.</p>
<p>The next step was perhaps the most interesting for me. It involves localizing the WordPress theme. In other words, all the strings of text, such as all the labels for the comment form, need to be translated and made available for WordPress (and the WPML plugin) to display dynamically upon request by the language switcher. This task involves several parts: 1) collecting the texts to be translated, 2) translating the texts, and 3) making the texts available to WordPress. That second part, translating the texts, involves creating a .po (or &#8220;Portable Object&#8221;) file for each translated language. Each string of text gets paired with its corresponding translation. Additional information is available on the <a href="http://wpml.org/2009/05/wordpress-theme-localization/" title="Link opens in a new window or tab." target="_blank">WordPress Theme Localization</a> page.</p>
<p>This multilingual site has been a wonderful project so far. Hopefully I can make it available soon for everyone to see. I&#8217;d definitely be interested in working on additional multilingual projects in the future.</p>
<p>Be sure to check out the <a href="http://wpml.org/blog/" title="Link opens in a new window or tab." target="_blank">WPML Blog</a> for additional items of interest as well as news updates.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mpgilbert.com/wordpress-as-a-multilingual-cms/feed</wfw:commentRss>
		</item>
		<item>
		<title>Site Launch: Life Content</title>
		<link>http://www.mpgilbert.com/site-launch-life-content</link>
		<comments>http://www.mpgilbert.com/site-launch-life-content#comments</comments>
		<pubDate>Thu, 23 Jul 2009 21:18:35 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Accessibility]]></category>

		<category><![CDATA[News]]></category>

		<category><![CDATA[Web Standards]]></category>

		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.mpgilbert.com/?p=107</guid>
		<description><![CDATA[Once in a while a project comes along that makes you stop and think about how you&#8217;ve been doing things for a while. This project is like that. There&#8217;s nothing really revolutionary about it &#8211; a typical webzine created with WordPress and a few plugins &#8211; but it did provide some interesting opportunities to dive [...]]]></description>
			<content:encoded><![CDATA[<p><img class="imgright" src="http://www.mpgilbert.com/images/client_lifecontent_sm.jpg" border="0" alt="Screen shot of the Life Content site" width="100" height="70" />Once in a while a project comes along that makes you stop and think about how you&#8217;ve been doing things for a while. This project is like that. There&#8217;s nothing really revolutionary about it &ndash; a typical <acronym title="online magazine">webzine</acronym> created with WordPress and a few plugins &ndash; but it did provide some interesting opportunities to dive deeper into the inner workings of using WordPress as a <acronym title="Content Management System">CMS</acronym>. The fantastic (and incredibly flexible) visual design was created by Mark at <a href="http://www.reevesdesignhouse.com/" title="Link opens in a new window or tab." target="_blank">Reeves Design House</a>. This was a truly collaborative effort where we both explored that fun question &#8220;what if we did it like this&#8221; from start to finish. I should also give thanks for a receptive client who was willing to let us explore a bit while we tried to figure things out as we went along. Such a rare and exciting environment for any designer/developer.</p>
<p>Here are a few of the WordPress plugins we&#8217;re using: <a href="http://labs.dagensskiva.com/plugins/ad-minister/" title="Link opens in a new window or tab." target="_blank">Ad-minister</a>, <a href="http://www.zirona.com/software/wordpress-advanced-search/" title="Link opens in a new window or tab." target="_blank">Advanced Search</a>, <a href="http://wordpress.org/extend/plugins/category-icons/" title="Link opens in a new window or tab." target="_blank">Category Icons</a>, and <a href="http://www.deliciousdays.com/cforms-plugin" title="Link opens in a new window or tab." target="_blank">cforms II</a>.</p>
<p>Take a look at the <a href="http://www.life-content.com/" title="Link opens in a new window or tab." target="_blank">Life Content</a> site. It&#8217;s in its infancy, as far as content goes, so be sure to check back often to see how it grows in the next few months. Subscribe to the <acronym title="Really Simple Syndication">RSS</acronym> feed to track its progress in your favorite feed reader.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mpgilbert.com/site-launch-life-content/feed</wfw:commentRss>
		</item>
		<item>
		<title>WordPress as a CMS</title>
		<link>http://www.mpgilbert.com/wordpress-as-a-cms</link>
		<comments>http://www.mpgilbert.com/wordpress-as-a-cms#comments</comments>
		<pubDate>Sat, 04 Jul 2009 22:25:10 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Multilingual]]></category>

		<category><![CDATA[Resources]]></category>

		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.mpgilbert.com/?p=160</guid>
		<description><![CDATA[I&#8217;ve been using WordPress for a little over a year now. Like most people, I&#8217;ve always thought of it as a simple blogging system&#8230; and that&#8217;s about it. It works really great for blogs (like this one), but a few months ago I used it to build a job listings site for one of my [...]]]></description>
			<content:encoded><![CDATA[<p><img class="imgright-noframe" src="http://www.mpgilbert.com/images/notes/icon_wordpress.gif" border="0" alt="Free WordPress Logo Courtesy of Snap2Objects.com" width="100" height="125" />I&#8217;ve been using <a href="http://wordpress.org/">WordPress</a> for a little over a year now. Like most people, I&#8217;ve always thought of it as a simple blogging system&#8230; and that&#8217;s about it. It works really great for blogs (like this one), but a few months ago I used it to build a <a href="http://www.baatzconsulting.com/jobs/">job listings site</a> for one of my clients. Ever since that time I looked for additional creative uses for WordPress. Recently, I&#8217;ve been exploring the idea of using WordPress as a general purpose content management system (CMS). I&#8217;ve done a bunch of research, reading, and experimenting over the past few months. In this post I&#8217;d like to document some of my findings: sites of interest, handy documentation bookmarks, useful plugins, etc.</p>
<p><span id="more-160"></span></p>
<p>But before I get into the specifics, let&#8217;s back up and cover some basics&#8230;</p>
<h4>What is a Content Management System (CMS)?</h4>
<p>As stated on Wikipedia, a content management system is &#8220;a computer application used to manage work flow needed to collaboratively create, edit, review, index, search, publish and archive various kinds of digital media and electronic text.&#8221; In practical terms, a CMS gives content managers (representatives from a company often called &#8220;authors,&#8221; &#8220;editors,&#8221; and &#8220;contributors&#8221;) the ability to add and update a site&#8217;s content in an easy to use environment, typically using a visual editor instead of dealing with the code directly. It also provides a system of managing links, publishing dates, approvals, user feedback, and much more.</p>
<h4>What does it mean to use WordPress as a CMS?</h4>
<p>Don&#8217;t get me wrong&#8230; I don&#8217;t believe that WordPress is the best solution for all CMS projects. I think Drupal, Joomla, Plone, and several others are fine choices for complex database-driven sites. What I like about WordPress is its simplicity. Sometimes I need a quick and easy solution for building a site that can be managed by non-techie folks.</p>
<h3>Basic Methods</h3>
<p>Let&#8217;s take a look at some simple ways to use WordPress as a CMS. There&#8217;s an endless list of possibilities, but the following basic methods are the ones that I found most helpful when I was starting out. Please note that I&#8217;m linking directly to the original articles I read during my own learning process. I like to give credit where it&#8217;s due, but I&#8217;m also sharing some bookmarks in the process.</p>
<ul>
<li><a href="http://bloghelper.is-there.net/how-to-put-up-a-custom-front-page-in-wordpress/">Using a static front (home) page</a></li>
<li><a href="http://jonathanwold.com/tutorials/wordpress_theme/">Creating a Custom Theme</a></li>
<li><a href="http://designadaptations.com/notebook/use-wordpress-as-a-cms/">Creating Custom Templates</a></li>
<li><a href="http://bloghelper.is-there.net/advanced-customization-of-wordpress-permalink-structure/">Customizing the Permalink Structure</a></li>
<li><a href="http://wordpress.org/support/topic/241439">If Page Has Subpages, Redirect to First Child</a></li>
<li><a href="http://wphacks.com/how-to-use-wordpress-as-a-static-site/">Using WordPress as a Static Site</a></li>
<li><a href="http://www.kriesi.at/archives/how-to-use-wordpress-custom-fields">Using Custom Fields</a></li>
<li><a href="http://www.randaclay.com/how-to/how-to-hide-pages-and-rearrange-your-menu-in-wordpress/">Hiding and Rearranging Pages in the Navigation</a></li>
<li><a href="http://www.jdavidmacor.com/2007/07/24/how-to-install-wordpress-locally/">How to Install WordPress Locally on Windows</a></li>
<li><a href="http://codex.wordpress.org/Installing_WordPress_Locally_on_Your_Mac_With_MAMP">How to Install WordPress Locally on Mac</a></li>
<li><a href="http://codex.wordpress.org/Customizing_Your_Sidebar">Customizing the Sidebar</a></li>
<li><a href="http://wordpress.org/support/topic/190100">Using Custom Sidebars Per Page</a></li>
<li><a href="http://codex.wordpress.org/Using_Gravatars">Using Gravatars in the Comments Section</a></li>
</ul>
<h3>Read the Fine WordPress Documentation</h3>
<p>Sometimes it&#8217;s best to slow down and read the actual documentation. I know&#8230; it&#8217;s not what you normally do. It may not even be something you enjoy doing. However, WordPress has some great resources, plus there&#8217;s an extremely active developer community to help out when things get a little confusing. Go ahead and give it a shot. Here are some good starting points.</p>
<ul>
<li><a href="http://codex.wordpress.org/Template_Tags">Template Tags</a></li>
<li><a href="http://codex.wordpress.org/Conditional_Tags">Conditional Tags</a></li>
<li><a href="http://codex.wordpress.org/Function_Reference">Function Reference</a></li>
<li><a href="http://codex.wordpress.org/Theme_Development">Theme Development</a></li>
<li><a href="http://codex.wordpress.org/Custom_Fields">Custom Fields</a></li>
<li><a href="http://wordpress.org/extend/plugins/">Plugins</a></li>
<li><a href="http://wordpress.org/extend/themes/">Free Themes</a></li>
</ul>
<h3>Helpful Plugins</h3>
<p>It&#8217;s difficult to compile a comprehensive list of plugins for WordPress. The following plugins should be a good start though, especially for using WordPress as a CMS. I&#8217;ve used most of them from time to time. I haven&#8217;t tried a few of them on production sites, but they&#8217;re worth noting for future reference.</p>
<dl>
<dt><a href="http://wordpress.org/extend/plugins/maintenance-mode/">Maintenance Mode/Landing Page</a></dt>
<dd>Adds a splash page to your blog that lets visitors know your blog is down for maintenance. It can also be used to develop a site directly on the live server while simultaneously displaying a &#8220;coming soon&#8221; landing page for non-logged in site visitors. Disable the plugin when you&#8217;re ready to go live.</dd>
<dt><a href="http://wordpress.org/extend/plugins/wp-db-backup/">WP-DB-Backup</a></dt>
<dd>WP-DB-Backup allows you easily to backup your core WordPress database tables. You may also backup other tables in the same database.</dd>
<dt><a href="http://wordpress.org/extend/plugins/sitepress-multilingual-cms/">WPML Multilingual CMS</a></dt>
<dd>WPML makes it easy to build full multilingual websites with WordPress. It integrates multilingual content management with robust navigation.</dd>
<dt><a href="http://wordpress.org/extend/plugins/all-in-one-seo-pack/">All in One SEO Pack</a></dt>
<dd>Optimizes your site for search engines. Despite its name, it doesn&#8217;t do everything for you automatically, but it does provide some useful control of your site&#8217;s SEO features.</dd>
<dt><a href="http://wordpress.org/extend/plugins/share-this/">ShareThis</a></dt>
<dd>The ShareThis WordPress plugin provides a simple way for users to add your post to many social bookmarking sites, or to send a link to your post via email, AIM, Facebook, Twitter and more.</dd>
<dt><a href="http://www.deliciousdays.com/cforms-plugin">cforms II</a></dt>
<dd>cforms is a powerful and feature rich form plugin for WordPress, offering convenient deployment of multiple Ajax driven contact forms throughout your blog or even on the same page.</dd>
<dt><a href="http://www.zirona.com/software/wordpress-advanced-search/">Advanced Search</a></dt>
<dd>Advanced Search provides a bunch of advanced search options to tune the search by using a much more effective search method: MySQL&#8217;s fulltext search. It can be either used as a full-blown form on a dedicated page or it can be used in the sidebar as a lightweight form.</dd>
<dt><a href="http://wordpress.org/extend/plugins/category-icons/">Category Icons</a></dt>
<dd>Assigns icons to categories and displays one or more icons in front of your post title or wherever you want.</dd>
<dt><a href="http://wordpress.org/extend/plugins/search-everything/">Search Everything</a></dt>
<dd>Search Everything increases the ability of the default WordPress search, including: search categories, tags, pages, and much more.</dd>
<dt><a href="http://wordpress.org/extend/plugins/breadcrumb-navxt/">Breadcrumb NavXT</a></dt>
<dd>This plugin generates locational breadcrumb trails. These breadcrumb trails are highly customizable to suit the needs of just about any blog.</dd>
<dt><a href="http://wordpress.org/extend/plugins/sitemap-generator/">Dagon Design Sitemap Generator</a></dt>
<dd>This plugin is a true sitemap generator which is highly customizable from its own options page in the WordPress admin panel.</dd>
<dt><a href="http://wordpress.org/extend/plugins/google-analytics-for-wordpress/">Google Analytics for WordPress</a></dt>
<dd>The Google Analytics for WordPress plugin automatically tracks and segments all outbound links from within posts, comment author links, links within comments, blogroll links and downloads.</dd>
<dt><a href="http://wordpress.org/extend/plugins/feedburner-plugin/">FD Feedburner</a></dt>
<dd>This plugin redirects the main feed and optionally the comments feed to Feedburner.com. It does this seamlessly without the need to modify templates, setup new hidden feeds, modify .htaccess files, or asking users to migrate to a new feed.</dd>
<dt><a href="http://wordpress.org/extend/plugins/tubepress/">TubePress</a></dt>
<dd>TubePress displays YouTube galleries in your posts, pages, and/or sidebar.</dd>
<dt><a href="http://slidepress.net/">SlidePress</a></dt>
<dd>The SlidePress plugin makes publishing rich photo and video content a breeze. After helping create your SlideshowPro slideshow, SlidePress manages embedding the presentation within the posts or pages of your site.</dd>
<dt><a href="http://wordpress.org/extend/plugins/nextgen-gallery/">NextGen Gallery</a></dt>
<dd>NextGEN Gallery is a full integrated image gallery plugin for WordPress with a Flash slideshow option.</dd>
<dt><a href="http://wordpress.org/extend/plugins/delicious-for-wordpress/">del.icio.us for WordPress</a></dt>
<dd>del.icio.us for WordPress displays your latest del.icio.us bookmarks in your WordPress blog.</dd>
<dt><a href="http://wordpress.org/extend/plugins/wp-e-commerce/">WP e-Commerce</a></dt>
<dd>The WP e-Commerce shopping cart plugin for WordPress is an elegant easy to use fully featured shopping cart application suitable for selling your products, services, and or fees online. WP e-Commerce is a Web 2.0 application designed with usability, aesthetics, and presentation in mind. </dd>
<dt><a href="http://wordpress.org/extend/plugins/wp-print/">WP-Print</a></dt>
<dd>WP-Print provides a printer-friendly version of any blog post or page.</dd>
<dt><a href="http://wordpress.org/extend/plugins/wp-email/">WP-Email</a></dt>
<dd>This plugin allows people to recommend/send your WordPress blog&#8217;s post/page to a friend.</dd>
<dt><a href="http://wordpress.org/extend/plugins/wp-swfobject/">WP-SWFObject</a></dt>
<dd>This plugin enable you to insert Flash movies into WordPress using the SWFObject library.</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://www.mpgilbert.com/wordpress-as-a-cms/feed</wfw:commentRss>
		</item>
		<item>
		<title>Site Launch: Atrium Biodiversity Information System</title>
		<link>http://www.mpgilbert.com/site-launch-atrium-biodiversity-information-system</link>
		<comments>http://www.mpgilbert.com/site-launch-atrium-biodiversity-information-system#comments</comments>
		<pubDate>Mon, 08 Jun 2009 17:21:59 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Accessibility]]></category>

		<category><![CDATA[News]]></category>

		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://www.mpgilbert.com/?p=99</guid>
		<description><![CDATA[For the past year or so I&#8217;ve had the pleasure of working with the great folks at the Botanical Research Institute of Texas (BRIT), based in Fort Worth, Texas. They&#8217;ve been building an online system to encourage sharing, collaboration, and publication in the biodiversity research community. In their own words, &#8220;Atrium is a technology platform [...]]]></description>
			<content:encoded><![CDATA[<p><img class="imgright" src="http://www.mpgilbert.com/images/client_atrium_sm.jpg" border="0" alt="Screen shot of the Atrium Biodiversity Information System site" width="100" height="60" />For the past year or so I&#8217;ve had the pleasure of working with the great folks at the <a href="http://www.brit.org/" title="Link opens in a new window or tab." target="_blank">Botanical Research Institute of Texas</a> (BRIT), based in Fort Worth, Texas. They&#8217;ve been building an online system to encourage sharing, collaboration, and publication in the biodiversity research community. In their own words, &#8220;Atrium is a technology platform for revolutionizing biodiversity information management by enabling researchers and organizations to share, synthesize, manage and publish biodiversity data in a collaborative, online environment. Atrium provides a broad range of tools for research organizations as well as an unparalleled, open-source framework based on industry standards which facilitates the development of powerful applications and tools for the biodiversity community.&#8221;</p>
<p>I worked with BRIT to improve the front-end code integrity, usability, and accessibility of the system. It&#8217;s an extremely complex system with over 325 PHP-based templates. It was a wonderful opportunity and I enjoyed every minute of my small contribution to the huge project. The majority of the site requires registration, but several sections are available to the general public. Take a look at the <a href="http://atrium.andesamazon.org/" title="Link opens in a new window or tab." target="_blank">Atrium Biodiversity Information System</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mpgilbert.com/site-launch-atrium-biodiversity-information-system/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
