<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Advanced CSS Design Resources - last-child.com</title>
	<atom:link href="http://www.last-child.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.last-child.com</link>
	<description>CSS Toys for Professional Web Developers</description>
	<lastBuildDate>Mon, 19 Dec 2011 18:30:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Debugging aria-label on elements</title>
		<link>http://www.last-child.com/debugging-aria-label/</link>
		<comments>http://www.last-child.com/debugging-aria-label/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 18:30:15 +0000</pubDate>
		<dc:creator>Ted</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[ARIA]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Span]]></category>
		<category><![CDATA[aria-label]]></category>
		<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://www.last-child.com/?p=300</guid>
		<description><![CDATA[I recently helped do some testing on the new version Yahoo! Mail for iPads and was stumped by an aria-label not working as expected. It was one of those gotcha moments, when you realize a confusion with a fundamental process. Are you wondering why your aria-label is not being announced? The aria-label attribute is tempting [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.last-child.com/wp-content/uploads/2011/12/forecast-icons.png" alt="Sat, Sun, Mon - Forecast icons" width="89" height="110" class="alignright size-full wp-image-302" />I recently helped do some testing on the new version <a href="http://mail.yahoo.com">Yahoo! Mail</a> for iPads and was stumped by an aria-label not working as expected. It was one of those gotcha moments, when you realize a confusion with a fundamental process. Are you wondering why your aria-label is not being announced?</p>
<p>The aria-label attribute is tempting to use in situations where the visible text is not adequate.  For instance, you may use a background image to represent a value and you&#8217;d like the user to know that value via an aria-label on the parent. </p>
<p>This basic test page will walk through the simple assumption and show how the aria-label is meant to be used.</p>
<h3>Base configuration</h3>
<ul>
<li><a href="/" aria-label="this basic link has an aria label attribute" >basic link</a><br />
<code>&lt;a href=&quot;/&quot; aria-label=&quot;this basic link has an aria label attribute&quot; &gt;basic link&lt;/a&gt;</code></li>
<li><span aria-label="this basic span has an aria label attribute">basic span</span><br />
<code>&lt;span aria-label=&quot;this basic span has an aria label attribute&quot;&gt;basic span&lt;/span&gt;</code></li>
<li><b aria-label="this basic b has an aria label attribute">basic bold</b><br />
<code>&lt;b aria-label=&quot;this basic b has an aria label attribute&quot;&gt;basic bold&lt;/b&gt;</code></li>
</ul>
<h4>Give &lt;span&gt; and &lt;b&gt; tabindex=&quot;0&quot; to place into tab flow</h4>
<p>Span and b tags are not in the native tab flow. I added tabindex=&quot;0&quot; to see if that was the problem. Now that we can give them focus, the aria-label is still ignored.</p>
<ul>
<li><span aria-label="this basic span has an aria label attribute" tabindex="0">basic span</span><br />
<code>&lt;span aria-label=&quot;this basic span has an aria label attribute&quot; tabindex=&quot;0&quot;&gt;basic span&lt;/span&gt;</code></li>
<li><b aria-label="this basic b has an aria label attribute" tabindex="0">basic bold</b><br />
<code>&lt;b aria-label=&quot;this basic b has an aria label attribute&quot; tabindex=&quot;0&quot;&gt;basic bold&lt;/b&gt;</code></li>
</ul>
<h3>What&#8217;s going wrong</h3>
<p><a href="http://yaccessibilityblog.com/library/tag/aria">ARIA</a> is a tool to make our web sites more accessible. It&#8217;s meant to restore semantic structure and act as a bridge between dynamic web sites and assistive technology. ARIA roles, states, and values allow the web developer to give directions to assistive technology to explain how an element should be treated. This is especially true when the element is expected to work in a non-standard method. For instance, <a href="http://yaccessibilityblog.com/library/aria-fix-non-standard-images.html">Flickr uses divs with background images</a> as images to improve animation on mobile devices.</p>
<p>The aria-label attribute allows us to place a label on these elements that have been re-purposed via JavaScript. It&#8217;s not meant to replace the title attribute on generic tags. </p>
<h3>Convert elements with aria</h3>
<p>The following elements now have ARIA roles: button, img, and slider. These ARIA roles announce the new purpose of these elements. Their aria-label attributes are announced, as they are adding information to these faux-elements. </p>
<ul>
<li><a href="/" aria-label="this link is now a button" role="button">basic link</a><br />
<code>&lt;a href=&quot;/&quot; aria-label=&quot;this link is now a button&quot; role=&quot;button&quot;&gt;basic link&lt;/a&gt;</code></li>
<li><span aria-label="this span is now treated as an image." role="img" class="fakeimg" tabindex="0">basic span</span><br />
<code>&lt;span aria-label=&quot;this span is now treated as an image.&quot; role=&quot;img&quot; class=&quot;fakeimg&quot; tabindex=&quot;0&quot;&gt;basic span&lt;/span&gt;</code></li>
<li><b aria-label="this b is now treated as a slider" role="radio" tabindex="0">basic bold</b><br />
<code>&lt;b aria-label=&quot;this b is now treated as a radio button&quot; role=&quot;radio&quot; tabindex=&quot;0&quot;&gt;basic bold&lt;/b&gt;</code></li>
</ul>
<h3>Back to the original problem</h3>
<p><img src="http://www.last-child.com/wp-content/uploads/2011/12/forecast-icons.png" alt="Sat, Sun, Mon - Forecast icons" width="89" height="110" class="alignright size-full wp-image-302" /> In the forecast example, the original idea was to put aria-label on the span that included the text &#8220;Sat&#8221;, &#8220;Sun&#8221;, or &#8220;Mon&#8221;. The aria-label described the weather illustrated in the icon. After realizing this was not working, we realized it was being over-thought. The icons were background images, we just needed to add the desired text to the background image container. </p>
<p>ARIA is a great way to solve problems. However, it wasn&#8217;t meant to replace basic HTML.  Here&#8217;s a proposed solution sans ARIA:</p>
<pre>
<code>
&lt;th scope="row" title=&quot;Saturday&quot;&gt;Sat&lt;/th&gt;
&lt;td class=&quot;cloudy&quot;&gt;&lt;span class=&quot;visuallyhidden&quot;&gt;Cloudy&lt;/span&gt;&lt;/td&gt;
</code>
</pre>
<h3>Resources</h3>
<ul>
<li><a href="http://www.w3.org/TR/wai-aria/roles#textalternativecomputation">ARIA Text Alternative Computation</a></li>
<li><a href="http://www.w3.org/TR/wai-aria/states_and_properties#aria-label">Spec for aria-label</a></li>
<li><a href="http://yaccessibilityblog.com/library/css-clip-hidden-content.html" >Clip your hidden content for better accessibility</a></li>
<li><a href="http://yaccessibilityblog.com/library/dynamic-form-labels-aria.html">Create Dynamic Form Labels with ARIA</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.last-child.com/debugging-aria-label/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Design for users with Cognitive Disabilities</title>
		<link>http://www.last-child.com/design-cognitive-disabilities/</link>
		<comments>http://www.last-child.com/design-cognitive-disabilities/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 16:58:08 +0000</pubDate>
		<dc:creator>Ted</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Online Resource]]></category>
		<category><![CDATA[cognitive disability]]></category>
		<category><![CDATA[dyslexia]]></category>
		<category><![CDATA[slideshare]]></category>

		<guid isPermaLink="false">http://www.last-child.com/?p=296</guid>
		<description><![CDATA[Ruth Ellison created this presentation about cognitive disabilities. It&#8217;s difficult to design for these users due to the wide spectrum of disability impact and what helps one person may cause problems for another. However, there are some solid suggestions in this presentation that will help you create a more accessible web site. Designing for cognitive [...]]]></description>
			<content:encoded><![CDATA[<p>Ruth Ellison created this presentation about cognitive disabilities. It&#8217;s difficult to design for these users due to the wide spectrum of disability impact and what helps one person may cause problems for another. However, there are some solid suggestions in this presentation that will help you create a more accessible web site.</p>
<div style="width:425px" id="__ss_8990819"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/RuthEllison/designing-for-cognitive-disabilities" title="Designing for cognitive disabilities" target="_blank">Designing for cognitive disabilities</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/8990819" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/RuthEllison" target="_blank">Ruth Ellison</a> </div>
</p></div>
<p>It helps to view this on slideshare to view the presenter&#8217;s notes on each slide. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.last-child.com/design-cognitive-disabilities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yahoo! Accessibility Lab code library</title>
		<link>http://www.last-child.com/yahoo-accessibility-library/</link>
		<comments>http://www.last-child.com/yahoo-accessibility-library/#comments</comments>
		<pubDate>Fri, 12 Aug 2011 21:13:19 +0000</pubDate>
		<dc:creator>Ted</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[ARIA]]></category>
		<category><![CDATA[Yahoo!]]></category>

		<guid isPermaLink="false">http://www.last-child.com/?p=290</guid>
		<description><![CDATA[I haven&#8217;t been posting much to this blog for the past year. But that&#8217;s not because I&#8217;ve been lazy. I&#8217;ve been writing a lot of tutorials about creating more accessible web sites on the Yahoo! Accessibility Lab&#8217;s Code Library. You&#8217;ll find some great resources for using CSS, basic HTML, JavaScript, and ARIA.]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t been posting much to this blog for the past year. But that&#8217;s not because I&#8217;ve been lazy. I&#8217;ve been writing a lot of tutorials about creating more accessible web sites on the <a href="http://accessibility.yahoo.com/library/"><img src="http://yaccessibilityblog.com/wp/wp-content/uploads/2010/11/50495_157949004219357_4287_n.jpg" alt=""> Yahoo! Accessibility Lab&#8217;s Code Library</a>. </p>
<p>You&#8217;ll find some great resources for using CSS, basic HTML, JavaScript, and ARIA.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.last-child.com/yahoo-accessibility-library/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Improve your WordPress site by forcing plugins to put JS at the bottom of the page</title>
		<link>http://www.last-child.com/improve-wordpress-js-performance/</link>
		<comments>http://www.last-child.com/improve-wordpress-js-performance/#comments</comments>
		<pubDate>Fri, 12 Aug 2011 21:04:20 +0000</pubDate>
		<dc:creator>Ted</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[Yslow]]></category>

		<guid isPermaLink="false">http://www.last-child.com/?p=280</guid>
		<description><![CDATA[WordPress makes it easy to add features by installing plugins. While most of these are well designed, they often use WordPress defaults that are not the greatest for accessibility or performance. One of the key elements of making your site load faster is to put the JavaScript at the bottom of the page, just before [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress makes it easy to add features by installing plugins. While most of these are well designed, they often use WordPress defaults that are not the greatest for accessibility or performance. One of the key elements of making your site load faster is to put the JavaScript at the bottom of the page, just before closing the body tag. </p>
<blockquote>
<h3>Put Scripts at the Bottom</h3>
<p>The problem caused by scripts is that they block parallel downloads. The HTTP/1.1 specification suggests that browsers download no more than two components in parallel per hostname. If you serve your images from multiple hostnames, you can get more than two downloads to occur in parallel. While a script is downloading, however, the browser won&#8217;t start any other downloads, even on different hostnames.<br />
<cite><a href="http://developer.yahoo.com/performance/rules.html#js_bottom">Best Practices for Speeding Up Your Web Site</a> &#8211; Yahoo! Developer Network</cite>
</p></blockquote>
<p>Good WordPress plugins will use the <a href="http://codex.wordpress.org/Function_Reference/wp_enqueue_script">wp_enqueue_script</a> function to bundle their js and insert it into the page. The default setting is to place the JavaScript into the head. It&#8217;s easy to modify your individual plugins to switch to the bottom of the page.</p>
<p>You&#8217;ll need to add a true value to the in_footer variable. </p>
<blockquote>
<h3>$in_footer</h3>
<p>    (boolean) (optional) Normally scripts are placed in the &lt;head> section. If this parameter is true the script is placed at the bottom of the &lt;body>. This requires the theme to have the <strong>wp_footer()</strong> hook in the appropriate place. Note that you have to enqueue your script before wp_head is run, even if it will be placed in the footer. (New in WordPress 2.8)<br />
<cite><a href="http://codex.wordpress.org/Function_Reference/wp_enqueue_script">Function Reference/wp enqueue script</a> &#8211; WordPress Codec</cite>
</p></blockquote>
<p>Let&#8217;s look at a sample module: <a href="http://tweet-blender.com/">Tweet Blender</a>. If you&#8217;ve got this module installed, open <em>tweet-blender.php</em> in your editor. Here&#8217;s the original code for inserting the main JavaScript.<br />
<code lang="PHP"><br />
// load main JS code<br />
wp_enqueue_script('tb-main', '/' . PLUGINDIR . '/tweet-blender/js/main.js', $dependencies);<br />
</code></p>
<p>This line is creating a link to the needed JavaScript and passing an array of the dependencies to the wp_enqueue_script function. We want to add a couple variables to this. The final set will be (script, dependencies, version, in_footer). The default value for version is false, so that is what I&#8217;m adding.</p>
<p><code lang="PHP"><br />
// load main JS code<br />
wp_enqueue_script('tb-main', '/' . PLUGINDIR . '/tweet-blender/js/main.js', $dependencies,false,true);<br />
</code></p>
<p>Try this with your module, refresh the page and make sure it doesn&#8217;t break the functionality. If it does, consult the WordPress documentation for setting up the correct stacking order for your scripts. This change was all I needed to make the Tweet Blender place the scripts in the footer.</p>
<h3>Check your site&#8217;s performance</h3>
<p>How many plugins are inserting javascript into the head of your blog? Use the <a href="http://developer.yahoo.com/yslow/">Yslow</a> plugin to do a performance evaluation. It&#8217;s now available for multiple browsers and even mobile devices. Click on the &#8220;Put JavaScript at the bottom&#8221; link to see which ones are still in the head. It&#8217;ll take a bit of time to track down the correct file in your plugins directory, but your site will be faster and your visitors will appreciate the performance boost.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.last-child.com/improve-wordpress-js-performance/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS3 Gradient Backgrounds and Controlling Their Height</title>
		<link>http://www.last-child.com/gradient-backgrounds-height/</link>
		<comments>http://www.last-child.com/gradient-backgrounds-height/#comments</comments>
		<pubDate>Thu, 02 Dec 2010 21:42:28 +0000</pubDate>
		<dc:creator>Ted</dc:creator>
				<category><![CDATA[background]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[gradient]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://www.last-child.com/?p=268</guid>
		<description><![CDATA[Let&#8217;s assume you want to create a gradient background that starts at the top of the page and finishes at the bottom of your page header, i.e. is 100px tall. You can do this with a combination of CSS3 rules and avoid those ugly background images. First off, I&#8217;m going to use the excellent Colorzilla [...]]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s assume you want to create a gradient background that starts at the top of the page and finishes at the bottom of your page header, i.e. is 100px tall. You can do this with a combination of CSS3 rules and avoid those ugly background images.</p>
<p>First off, I&#8217;m going to use the excellent <a href="http://www.colorzilla.com/gradient-editor/">Colorzilla gradient creator</a> to establish the colors.<br />
<code lang="CSS"><br />
div#gradientbg { /*the following rules are from colorzilla*/<br />
background: #e6f0a3; /* old browsers */<br />
background: -moz-linear-gradient(top, #e6f0a3 0%, #d2e638 50%, #c3d825 51%, #FFFFFF 100%); /* firefox */<br />
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#e6f0a3), color-stop(50%,#d2e638), color-stop(51%,#c3d825), color-stop(100%,#FFFFFF); /* webkit */<br />
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e6f0a3', endColorstr='#dbf043',GradientType=1 ); /* ie */<br />
}<br />
</code></p>
<p>This works great for applying a background to the entire page. But we want to limit this to just the header. We&#8217;ll need two declarations. First a browser-specific rule (<a href="http://www.css3.info/preview/background-size/">background-size</a>). This, however could cause a series of gradient bands to tile across the screen. so simply add the no-repeat as well.<br />
<code lang="CSS"><br />
-moz-background-size:100% 100px;<br />
...<br />
background:no-repeat;<br />
</code></p>
<h3>Final CSS</h3>
<p><code lang="CSS"><br />
div#gradientbg {<br />
  display:block; width:500px; height:400px; border:1px solid #ccc;<br />
  /*the following rules are from colorzilla*/</p>
<p>  background: #e6f0a3; /* old browsers */</p>
<p>  background: no-repeat -moz-linear-gradient(top, #e6f0a3 0%, #d2e638 50%, #c3d825 51%, #FFFFFF 100%);<br />
  -moz-background-size:100% 100px;/* firefox */</p>
<p>  background:  no-repeat -webkit-gradient(linear, left top, left bottom, color-stop(0%,#e6f0a3), color-stop(50%,#d2e638),<br />
  color-stop(51%,#c3d825), color-stop(100%,#FFFFFF));<br />
  -webkit-background-size:100% 100px;/* webkit */</p>
<p>  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e6f0a3', endColorstr='#FFFFFF',GradientType=0 ); /* ie */<br />
}<br />
</code></p>
<p><a href="http://tests.last-child.com/gradient-test.html">View the example page</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.last-child.com/gradient-backgrounds-height/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yahoo! to downgrade IE6 in 2011</title>
		<link>http://www.last-child.com/yahoo-to-downgrade-ie6-in-2011/</link>
		<comments>http://www.last-child.com/yahoo-to-downgrade-ie6-in-2011/#comments</comments>
		<pubDate>Thu, 04 Nov 2010 15:28:55 +0000</pubDate>
		<dc:creator>Ted</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Yahoo!]]></category>
		<category><![CDATA[YUI]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[GBS]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[IE6]]></category>

		<guid isPermaLink="false">http://www.last-child.com/?p=262</guid>
		<description><![CDATA[Yahoo! introduced the Graded Browser Support grid years ago to give developers a guideline on what browsers deserved the greatest amount of resources for debugging, hacking, and development. This has been well received amongst the developer community as a justification for not dwelling on obscure browsers, such as IE5.5 for mac. This has made our [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://developer.yahoo.com/yui"><img src="http://l.yimg.com/a/i/ydn/icons/yui.png" alt="Yahoo User Interface Library"/></a>Yahoo! introduced the <a href="http://developer.yahoo.com/yui/articles/gbs/">Graded Browser Support</a> grid years ago to give developers a guideline on what browsers deserved the greatest amount of resources for debugging, hacking, and development. This has been well received amongst the developer community as a justification for not dwelling on obscure browsers, such as IE5.5 for mac. This has made our code cleaner and easier to maintain as the browser-specific hacks are no longer needed.</p>
<p>Yahoo just announced the GBS change we&#8217;ve all been waiting for. <strong>IE6 will be downgraded to a C-status browser in Q1, 2011.</strong> This means I can finally upgrade my own laptop to IE8! This means we can focus on building for the future and not the past. Excuse me as I hyperventilate over the joy.</p>
<blockquote><p>
<strong>Internet Explorer 6:</strong> We are forecasting the transition of Internet Explorer 6 from A-grade to C-grade in the next GBS update. The calculus here is simple: The proliferation of devices and browsers on the leading edge (including mobile) requires an increase in testing and attention. That testing and attention should come from shifting resources away from the trailing edge. By moving IE6 to the C-grade, we ensure a consistent baseline experience for those users while freeing up cycles to invest in richer experiences for millions of users coming to the internet today on modern, capable browsers. Note: This forecast should not be taken as an indication that IE6 users will see an abrupt change in their experience of Yahoo! websites in Q1 2011; the change in philosophy toward IE6 will be reflected in new development and products and applied in ways that make sense based on product needs.<br />
<cite><a href="http://www.yuiblog.com/blog/2010/11/03/gbs-update-2010q4/">Graded Browser Support Update: Q4 2010</a> &#8211; Eric Miraglia and Matt Sweeney, Yahoo! Developer Network</cite><br />
</blockqoute></p>
]]></content:encoded>
			<wfw:commentRss>http://www.last-child.com/yahoo-to-downgrade-ie6-in-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Best Practices for Creating JavaScript</title>
		<link>http://www.last-child.com/best-practices-for-javascript/</link>
		<comments>http://www.last-child.com/best-practices-for-javascript/#comments</comments>
		<pubDate>Sun, 03 Oct 2010 22:02:47 +0000</pubDate>
		<dc:creator>Ted</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[DHTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Online Resource]]></category>
		<category><![CDATA[Standardista]]></category>
		<category><![CDATA[Yahoo!]]></category>
		<category><![CDATA[YUI]]></category>

		<guid isPermaLink="false">http://www.last-child.com/?p=254</guid>
		<description><![CDATA[I&#8217;m on a mission to relearn JavaScript. My limited skills are from trying to shoehorn scripts into pages without completely understanding the theory. Christian Heilmann, a developer evangelist for Yahoo!, is a great resource for not only learning how to code but also why you should use method A over B. This presentation by Christian [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m on a mission to relearn <a href="http://www.amazon.com/gp/product/0596517742?ie=UTF8&#038;tag=csstoyslastch-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0596517742">JavaScript</a><img src="http://www.assoc-amazon.com/e/ir?t=csstoyslastch-20&#038;l=as2&#038;o=1&#038;a=0596517742" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />. My limited skills are from trying to shoehorn scripts into pages without completely understanding the theory. <a href="http://www.amazon.com/gp/product/1590596803?ie=UTF8&#038;tag=csstoyslastch-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1590596803">Christian Heilmann</a><img src="http://www.assoc-amazon.com/e/ir?t=csstoyslastch-20&#038;l=as2&#038;o=1&#038;a=1590596803" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, a developer evangelist for <a href="http://developer.yahoo.com">Yahoo!</a>, is a great resource for not only learning how to code but also why you should use method A over B. </p>
<p>This presentation by Christian sheds a lot of light on how to create re-usable, maintainable scripts.</p>
<div style="width:425px" id="__ss_5191387"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/cheilmann/maintainable-javascript-carsonified" title="Maintainable Javascript carsonified">Maintainable Javascript carsonified</a></strong><object id="__sse5191387" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=maintainable-javascript-carsonified-live-100913105613-phpapp01&#038;stripped_title=maintainable-javascript-carsonified&#038;userName=cheilmann" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse5191387" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=maintainable-javascript-carsonified-live-100913105613-phpapp01&#038;stripped_title=maintainable-javascript-carsonified&#038;userName=cheilmann" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/cheilmann">Christian Heilmann</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.last-child.com/best-practices-for-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to include a copyright symbol in any language</title>
		<link>http://www.last-child.com/include-copyright-symbol/</link>
		<comments>http://www.last-child.com/include-copyright-symbol/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 16:59:14 +0000</pubDate>
		<dc:creator>Ted</dc:creator>
				<category><![CDATA[Online Resource]]></category>
		<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[XSL]]></category>

		<guid isPermaLink="false">http://www.last-child.com/?p=248</guid>
		<description><![CDATA[I found this page today while trying to find the proper way to add a copyright symbol ( © ) with XSL. Copyright Symbol Webpage is simply a good reference to how and why to use the copyright symbol. Here&#8217;s a snippet on how to use it in XSL Unicode Copyright Symbol &#8211; Programmers, please [...]]]></description>
			<content:encoded><![CDATA[<p>I found this page today while trying to find the proper way to add a copyright symbol ( © ) with XSL. <a href="http://www.copyrightauthority.com/copyright-symbol/">Copyright Symbol Webpage</a> is simply a good reference to how and why to use the copyright symbol.</p>
<p>Here&#8217;s a snippet on how to use it in XSL</p>
<blockquote cite="">
<h3>Unicode Copyright Symbol &#8211; Programmers, please NOTE:</h3>
<p>Unicode is required by modern standards such as Java, XML, ECMAScript / JavaScript, CORBA, WML, LDAP etc.</p>
<p>Pretty much all of the questions about Copyright Symbols for standards that use Unicode will require the <strong>&amp;#169;</strong> input. however, this may differ such as for XSL as listed below. We have tried to collate what we can for you &#8211; if you can&#8217;t work out the answer from here&#8230;keep on searching – and please write to us with any information that you think would be useful on this site.</p>
<h4>Java Script / JSP Copyright Symbol</h4>
<p>In Java use the unicode   <strong>&amp;#169;</strong> or  <strong>&amp;#xA9;</strong> to get the copyright symbol.  One common mistake is typing the © into the code, which will not work.</p>
<h4>XML Copyright Symbol</h4>
<p>In XML use the unicode   <strong>&amp;#169;</strong> or  <strong>&amp;#xA9;</strong> to get the copyright symbol.</p>
<h4>XSL Copyright Symbol</h4>
<p>If you were to use the &#8216;<strong>&amp;copy;</strong>&#8216; entity with XSL, you may well come across the complaint of &#8220;Reference to undefined entity &#8216;copy&#8217;.&#8221;</p>
<p>In XSL always use <strong>&amp;#xA9;</strong></p>
<p><cite><a href="http://www.copyrightauthority.com/copyright-symbol/">Copyright Symbol Webpage</a></cite>
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.last-child.com/include-copyright-symbol/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A quick CSS3 sibling test with the video tag</title>
		<link>http://www.last-child.com/css3-sibling-with-video-tag/</link>
		<comments>http://www.last-child.com/css3-sibling-with-video-tag/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 15:56:31 +0000</pubDate>
		<dc:creator>Ted</dc:creator>
				<category><![CDATA[:absolute]]></category>
		<category><![CDATA[:block]]></category>
		<category><![CDATA[:focus]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[display]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[position]]></category>
		<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[Siblings]]></category>

		<guid isPermaLink="false">http://www.last-child.com/?p=240</guid>
		<description><![CDATA[I am working on a little widget that uses the html5 video tag on one of my test sites: Fyvr.net. I wanted to display related information when the video is playing. The sibling selector makes this easy. Here&#8217;s the basic markup &#60;li> &#60;video>...&#60;/video> &#60;p>...&#60;/p> &#60;/li> I wanted the paragraph to appear when the video is [...]]]></description>
			<content:encoded><![CDATA[<p>I am working on a little widget that uses the html5 video tag on one of my test sites: <a href="http://fyvr.net">Fyvr.net</a>.<br />
I wanted to display related information when the video is playing.  The sibling selector makes this easy. </p>
<p>Here&#8217;s the basic markup</p>
<pre><code lang="HTML">
&lt;li>
&lt;video>...&lt;/video>
&lt;p>...&lt;/p>
&lt;/li>
</code>
</pre>
<p>I wanted the paragraph to appear when the video is selected. So here&#8217;s the simple CSS</p>
<pre><code lang="CSS">
section#videolist li {
	position:relative;
}
section#videolist li p {
	display:none;
	position:absolute;
	bottom:-100px;
	left:0;
}
section#videolist li video:focus+p {
	display:block;
}
</code></pre>
<p>The sibling selector (+) is telling the browser to display the paragraph as block when its video brother has focus. This is a rough test. There could be some accessibility issues and I&#8217;ll need to test this out. Obviously this will not work in Internet Explorer. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.last-child.com/css3-sibling-with-video-tag/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cross-browser HTML5 video tag with fallback for Flash users</title>
		<link>http://www.last-child.com/cross-browser-html5-video/</link>
		<comments>http://www.last-child.com/cross-browser-html5-video/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 17:00:44 +0000</pubDate>
		<dc:creator>Ted</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Online Resource]]></category>
		<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[apple]]></category>

		<guid isPermaLink="false">http://www.last-child.com/?p=235</guid>
		<description><![CDATA[Apple&#8217;s lack of support for Flash on the iPhone and iPad has forced people to reconsider the value of HTML5 and its video tag. It&#8217;s no longer something to put off until the future. However, adding HTML5 video support to your site AND continue to provide a Flash option for older browsers (I.E.) is not [...]]]></description>
			<content:encoded><![CDATA[<p>Apple&#8217;s lack of support for <a href="http://www.amazon.com/gp/product/B003B32AJ2?ie=UTF8&#038;tag=csstoyslastch-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B003B32AJ2">Flash</a><img src="http://www.assoc-amazon.com/e/ir?t=csstoyslastch-20&#038;l=as2&#038;o=1&#038;a=B003B32AJ2" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> on the <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2Fs%3Fie%3DUTF8%26x%3D0%26ref_%3Dnb%5Fsb%5Fnoss%26y%3D0%26field-keywords%3Diphone%2520%26url%3Dsearch-alias%253Delectronics&#038;tag=csstoyslastch-20&#038;linkCode=ur2&#038;camp=1789&#038;creative=390957">iPhone</a><img src="https://www.assoc-amazon.com/e/ir?t=csstoyslastch-20&#038;l=ur2&#038;o=1" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> and <a href="http://www.amazon.com/gp/product/B003K824EO?ie=UTF8&#038;tag=csstoyslastch-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B003K824EO">iPad</a><img src="http://www.assoc-amazon.com/e/ir?t=csstoyslastch-20&#038;l=as2&#038;o=1&#038;a=B003K824EO" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> has forced people to reconsider the value of HTML5 and its video tag. It&#8217;s no longer something to put off until the future. However, adding HTML5 video support to your site AND continue to provide a Flash option for older browsers (I.E.) is not as simple as you might expect.</p>
<p>While the video tag has been standardized, there is a lack of consensus for supporting the <a href="http://en.wikipedia.org/wiki/Video_codec">codecs</a> used to package the videos for distribution and playback. Some browsers are supporting the  OGV format, some support the more popular but licensed mp4 format. Others, such as Chrome, will support both. To make it even more exciting, there is a new version under development to make a truly open-sourced format: <a href="http://en.wikipedia.org/wiki/Webm">WebM</a>. </p>
<p>This means your video tag needs to define multiple movie sources to make it playable on all browsers. It sounds complicated because it is. Luckily, <a href="http://camendesign.com/">Kroc Camen</a> has written a great article and code pattern for adding a cross-browser video tag with fallback to Flash for the older browsers: <a href="http://camendesign.com/code/video_for_everybody">Video for Everybody!</a>.</p>
<p>The article is full of great advice from a programmer that has learned the stuff the hard way. Here&#8217;s an explanation of how you&#8217;ll need to adjust your <a href="http://en.wikipedia.org/wiki/Htaccess">htaccess</a> file.</p>
<blockquote cite="http://camendesign.com/code/video_for_everybody">
<p>
			Ensure your server is using the correct mime-types. <cite>Firefox</cite> will <strong>not</strong><br />
			play the OGG video if the mime-type is wrong. Place these lines in your <samp>.htaccess</samp><br />
			file to send the correct mime-types to browsers
		</p>
<pre><code>
AddType video/ogg  .ogv
AddType video/mp4  .mp4
AddType video/webm .webm</code></pre>
<p><cite><a href="http://camendesign.com/code/video_for_everybody">Video for Everybody!</a> &#8211; Kroc Camen</cite>
</p></blockquote>
<h3>Related Resources</h3>
<ul>
<li><a href="http://speckyboy.com/2010/04/23/html5-video-libraries-toolkits-and-players/">HTML5 video Libraries, Toolkits and Players</a> &#8211; Specky Boy</li>
<li><a href="http://www.longtailvideo.com/players/jw-flv-player/">JW Player: Flash Video Player</a> &#8211; a base flash movie to use as your fallback flash movie</li>
<li><a href="http://hacks.mozilla.org/2009/06/html5-video-fallbacks-markup/">html5 video fallbacks with markup</a>  &#8211; Mozilla Hacks</li>
<li><a href="http://www.archive.org/details/FedFlix">Fed Flix</a> &#8211; Repository of US Government films in various formats. These are good for testing your video markup.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.last-child.com/cross-browser-html5-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

