<?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>zomigi.com</title>
	<atom:link href="http://zomigi.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://zomigi.com</link>
	<description>The professional blog of Zoe Mickley Gillenwater</description>
	<lastBuildDate>Wed, 23 Nov 2011 13:48:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Media queries presentation at indieconf</title>
		<link>http://zomigi.com/blog/media-queries-presentation/</link>
		<comments>http://zomigi.com/blog/media-queries-presentation/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 16:30:40 +0000</pubDate>
		<dc:creator>Zoe Gillenwater</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Inspiration]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[flexible]]></category>
		<category><![CDATA[Flexible Web Design]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[liquid]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[responsive web design]]></category>
		<category><![CDATA[speaking]]></category>
		<category><![CDATA[Stunning CSS3]]></category>

		<guid isPermaLink="false">http://zomigi.com/?p=621</guid>
		<description><![CDATA[Download the slides for my presentation on CSS3: Using Media Queries to Improve the Web Site Experience for indieconf, as well as get links to related resources on media query techniques, tools, and inspiration.]]></description>
			<content:encoded><![CDATA[<p>Today I had the pleasure of speaking at <a href="http://www.indieconf.com/">indieconf</a>, a conference for independent web developers and designers, right here in my backyard of Raleigh, NC. I talked about the basics of CSS3 media query syntax but focused on the challenges and considerations that go into building a site from scratch with media queries to power the layout. I used the fictional <a href="http://stunningcss3.com/code/bakery/index.html">Little Pea Bakery</a> site from my book <a href="http://stunningcss3.com/"><em>Stunning CSS3</em></a> as a demo for how to adapt the CSS to make better use of the space at different viewport widths. I covered some tips for making your design work on mobile devices and even old versions of IE.</p>
<p>You can view the slides on <a href="http://www.slideshare.net/zomigi/css3-using-media-queries-to-improve-the-web-site-experience">SlideShare</a>, or download the slides here:</p>
<p><a href="/downloads/CSS3-Media-Queries_indieconf_111119.pdf">CSS3: Using media queries to improve the web site experience (PDF, 2.4 mb)</a></p>
<p>Here are several links to related resources, some of which are in the  slides plus many that were not but which I recommend and think you&#8217;ll  find useful.</p>
<h3>Media query articles, tutorials, and tools</h3>
<ul>
<li>&#8220;<a href="http://zomigi.com/blog/essential-considerations-for-crafting-quality-media-queries/">Essential considerations for crafting quality media queries</a>&#8221; by me</li>
<li><a href="http://stunningcss3.com/samples/index.html">Excerpt of Chapter 6 of Stunning CSS3 on media queries</a> by me</li>
<li>&#8220;<a href="http://artequalswork.com/posts/target-first.php">Design for a Target Experience First</a>&#8221; by Nathan C. Ford</li>
<li><a href="http://www.goldilocksapproach.com/">The Goldilocks Approach</a> by Front design agency</li>
<li>&#8220;<a href="http://www.netmagazine.com/features/21-top-tools-responsive-web-design">21 top tools for  responsive web design</a>&#8221; by Denise Jacobs for .net Magazine</li>
<li>&#8220;<a href="http://www.smashingmagazine.com/responsive-web-design-guidelines-tutorials/">Responsive Web Design Guidelines and Tutorials</a>&#8221; by Smashing Magazine</li>
<li>&#8220;<a href="http://dev.opera.com/articles/view/an-introduction-to-meta-viewport-and-viewport/">An introduction to meta viewport and @viewport</a>&#8221; by Andrea Bovens for Dev.Opera</li>
<li>&#8220;<a href="http://www.alaress.com.au/2011/04/developing-for-high-dpi-devices/">Why images appear blurry on mobile devices</a>&#8221; by Christopher Cohen</li>
</ul>
<p><span id="more-621"></span></p>
<h3>Dealing with IE 6-8 support</h3>
<ul>
<li><a href="https://github.com/scottjehl/Respond">Respond</a> script by Scott  Jehl</li>
<li><a href="http://code.google.com/p/css3-mediaqueries-js/">css3-mediaqueries.js</a> script by Wouter van der Graaf</li>
<li>“<a href="http://adactio.com/journal/4494/">Windows mobile media queries</a>” by Jeremy Keith</li>
<li>&#8220;<a href="http://blogs.msdn.com/b/iemobile/archive/2010/12/08/targeting-mobile-optimized-css-at-windows-phone-7.aspx">Targeting mobile-optimized CSS at Windows Phone 7</a>&#8221; by IE Mobile Team</li>
</ul>
<h3>Fluid/liquid layout</h3>
<ul>
<li><a href="http://flexiblewebbook.com/"><em>Flexible Web Design: Creating Liquid and Elastic Layouts with CSS</em></a> book by me</li>
<li>&#8220;<a href="../blog/essential-resources-for-creating-liquid-and-elastic-layouts/">70+ essential resources for creating liquid and elastic layouts</a>&#8221; by me</li>
</ul>
<h3>Media query inspiration</h3>
<ul>
<li><a href="http://mediaqueri.es/">Mediaqueri.es</a> gallery</li>
<li>My media query inspiration bookmarks on <a href="http://delicious.com/pixelsurge/mediaqueries+nicedesign">delicious</a> and <a href="https://gimmebar.com/loves/zomigi/tag/mediaqueries">Gimmebar</a></li>
<li>My liquid layout inspiration bookmarks on <a href="http://delicious.com/pixelsurge/liquid+nicedesign">delicious</a> and <a href="https://gimmebar.com/loves/zomigi/tag/liquid">Gimmebar</a></li>
<li>&#8220;<a href="http://zomigi.com/blog/examples-of-flexible-layouts-with-css3-media-queries/">Examples of flexible layouts with CSS3 media queries</a>&#8221; by me</li>
</ul>
<h3 class='related_post_title'>Related Posts:</h3>
<ul class='related_post'>
<li><a href='http://zomigi.com/blog/essential-considerations-for-crafting-quality-media-queries/' title='Essential considerations for crafting quality media queries'>Essential considerations for crafting quality media queries</a></li>
<li><a href='http://zomigi.com/blog/theres-already-a-book-on-responsive-web-design-want-to-win-it/' title='There&#8217;s already a book on responsive web design. Want to win it?'>There&#8217;s already a book on responsive web design. Want to win it?</a></li>
<li><a href='http://zomigi.com/blog/examples-of-flexible-layouts-with-css3-media-queries/' title='Examples of flexible layouts with CSS3 media queries'>Examples of flexible layouts with CSS3 media queries</a></li>
<li><a href='http://zomigi.com/blog/adobe-max/' title='Adobe MAX slides and resources'>Adobe MAX slides and resources</a></li>
<li><a href='http://zomigi.com/blog/web-directions-usa/' title='Web Directions USA slides and resources'>Web Directions USA slides and resources</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://zomigi.com/blog/media-queries-presentation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Web accessibility presentation and resources</title>
		<link>http://zomigi.com/blog/web-accessibility-presentation-resources/</link>
		<comments>http://zomigi.com/blog/web-accessibility-presentation-resources/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 17:15:03 +0000</pubDate>
		<dc:creator>Zoe Gillenwater</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[screen readers]]></category>
		<category><![CDATA[speaking]]></category>

		<guid isPermaLink="false">http://zomigi.com/?p=607</guid>
		<description><![CDATA[Download the slides for my presentation on Web Accessibility for the Charlotte User Experience group, as well as get links to related resources on accessibility techniques and tools.]]></description>
			<content:encoded><![CDATA[<p>Yesterday I had the pleasure of speaking at a meeting of the Charlotte User Experience group. I talked about the basics of web accessibility: what it is, who it affects, why it matters, and some of the fundamental things you ought to be doing in your pages to make them more accessible.</p>
<p>You can view the slides on <a href="http://www.slideshare.net/zomigi/web-accessibility-10172549">SlideShare</a>, or download the slides here:</p>
<p><a href="/downloads/Web-Accessibility_Charlotte-UX_111114.pdf">Web Accessibility (PDF, 2 mb)</a></p>
<p>Here are several links to related resources, some of which are in the slides plus many that were not but which I recommend and think you&#8217;ll find useful.</p>
<h3>Top sites on accessibility</h3>
<p>These are my favorite sites to read to learn accessibility techniques and news on developments in technology like HTML5 and screen readers. I highly recommend subscribing to the RSS feeds of these.</p>
<ul>
<li><a href="http://webaim.org">WebAIM</a></li>
<li><a href="http://www.accessibleculture.org">Accessible Culture</a></li>
<li><a href="http://www.paciellogroup.com/blog/">The Paciello Group Blog</a></li>
<li><a href="http://yaccessibilityblog.com/library/">Yahoo! Accessibility Lab&#8217;s Library</a></li>
</ul>
<p><span id="more-607"></span></p>
<h3>WCAG 2.0</h3>
<ul>
<li>&#8220;<a href="http://www.w3.org/WAI/WCAG20/quickref/">How to Meet WCAG 2.0</a>&#8221; customizable quick reference from the W3C</li>
<li>&#8220;<a href="http://webaim.org/standards/ wcag/checklist">WebAIM&#8217;s WCAG 2.0 Checklist</a>&#8220;</li>
</ul>
<h3>WAI-ARIA</h3>
<ul>
<li><a href="https://developer.mozilla.org/en/ARIA">ARIA portal on Mozilla Developer Network</a></li>
<li>&#8220;<a  rel="external" href="../blog/videos-of-screen-readers-using-aria-updated/" target="_blank">Videos of Screen Readers Using ARIA, Updated</a>&#8221; by me</li>
</ul>
<h3>HTML5 and accessibility</h3>
<ul>
<li><a href="http://www.html5accessibility.com/">HTML5accessibility.com</a> created by The Paciello Group</li>
<li>&#8220;<a href="http://www.accessibleculture.org/articles/2011/10/jaws-ie-and-headings-in-html5/">JAWS, IE and Headings in HTML5</a>&#8221; by Jason Kiss, Accessible Culture</li>
</ul>
<h3>CSS and accessibility</h3>
<ul>
<li>&#8220;<a href="http://yaccessibilityblog.com/library/css-clip-hidden-content.html">Clip your hidden content for better accessibility</a>&#8221; by Theirry Koblentz on Yahoo! Accessibility Lab&#8217;s Library</li>
<li>&#8220;<a href="http://webaim.org/techniques/css/invisiblecontent/">CSS in Action: Invisible Content Just for Screen Reader Users</a>&#8221; by WebAIM</li>
<li>&#8220;<a href="http://simplyaccessible.com/article/better-for-accessibility/">Better for Accessibility</a>&#8221; by Derek Featherstone</li>
</ul>
<h3>Creating accessible content</h3>
<ul>
<li>&#8220;<a href="http://www.4syllables.com.au/2010/12/text-alternatives-decision-tree/">Text alternatives for images: a decision tree</a>&#8221; by 4Syllables</li>
<li>&#8220;<a href="http://www.4syllables.com.au/2010/09/accessibility-web-writers-part-1/">Accessibility for web writers</a>&#8221; article series by 4Syllables</li>
<li>&#8220;<a href="http://www.paciellogroup.com/blog/2010/11/using-the-html-title-attribute/">Using the HTML title attribute</a>&#8221; by Steve Faulkner, The Paciello Group</li>
<li>&#8220;<a href="http://www.paciellogroup.com/blog/2011/07/html5-accessibility-chops-form-control-labeling/">HTML5 Accessibility Chops: form control labeling</a>&#8221; by Steve Faulkner, The Paciello Group</li>
<li>&#8220;<a href="http://www.alistapart.com/articles/makingcompactformsmoreaccessible/">Making Compact Forms More Accessible</a>&#8221; by Mike Brittain on A List Apart</li>
<li>&#8220;<a href="http://webaim.org/techniques/skipnav/">&#8216;Skip Navigation&#8217; Links</a>&#8221; by WebAIM</li>
<li>&#8220;<a href="http://www.paciellogroup.com/blog/2011/10/detecting-if-images-are-disabled-in-browsers/">Detecting if images are disabled in browsers</a>&#8221; by Steve Faulkner, The Paciello Group</li>
<li>&#8220;<a href="http://www.sitepoint.com/accessible-javascript/">Accessible JavaScript: Beyond the Mouse</a>&#8221; by James Edward on Sitepoint</li>
<li><a href="http://blackwidows.co.uk/resources/color-contrast-analyser.php">Black Widow Web Design&#8217;s Color Contrast Analyser</a> tells you if contrast is too high for people with dyslexia</li>
<li><a href="http://www.d.umn.edu/itss/support/Training/Online/webdesign/tools.html#colortools">Color Tools</a> links to a bunch of traditional color contrast analyzer tools</li>
</ul>
<h3>Screen readers</h3>
<ul>
<li><a href="http://www.nvda-project.org">NVDA</a>: free, Windows</li>
<li><a href="http://www.apple.com/accessibility/voiceover/">VoiceOver</a>: included on Mac and iOS</li>
<li><a href="http://www.freedomscientific.com">JAWS</a>: free trial version</li>
<li><a href="http://www.gwmicro.com">Window-Eyes</a>: free trial version</li>
<li>&#8220;<a href="http://webaim.org/projects/screenreadersurvey3/">Screen Reader User Survey #3 Results</a>&#8221; by WebAIM</li>
</ul>
<h3 class='related_post_title'>Related Posts:</h3>
<ul class='related_post'>
<li><a href='http://zomigi.com/blog/videos-of-screen-readers-using-aria-updated/' title='Videos of screen readers using ARIA, updated'>Videos of screen readers using ARIA, updated</a></li>
<li><a href='http://zomigi.com/blog/a-few-links-css-and-accessibility/' title='A few links: CSS and accessibility'>A few links: CSS and accessibility</a></li>
<li><a href='http://zomigi.com/blog/videos-of-screen-readers-using-aria/' title='Videos of screen readers using ARIA'>Videos of screen readers using ARIA</a></li>
<li><a href='http://zomigi.com/blog/media-queries-presentation/' title='Media queries presentation at indieconf'>Media queries presentation at indieconf</a></li>
<li><a href='http://zomigi.com/blog/css3-book-launch-event/' title='CSS3 book launch event'>CSS3 book launch event</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://zomigi.com/blog/web-accessibility-presentation-resources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Essential considerations for crafting quality media queries</title>
		<link>http://zomigi.com/blog/essential-considerations-for-crafting-quality-media-queries/</link>
		<comments>http://zomigi.com/blog/essential-considerations-for-crafting-quality-media-queries/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 15:00:40 +0000</pubDate>
		<dc:creator>Zoe Gillenwater</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[media queries]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[responsive web design]]></category>
		<category><![CDATA[work process]]></category>

		<guid isPermaLink="false">http://zomigi.com/?p=569</guid>
		<description><![CDATA[Learn what you need to know to set up media queries that maximize efficiency and robustness for your particular project. There are pros and cons to making your media queries embedded versus external, overlapping versus stacking your media queries, starting with mobile versus desktop styles, and using conditional comments versus JavaScript to add support for IE 8 and earlier versions.]]></description>
			<content:encoded><![CDATA[<p>CSS3 media queries are dead simple, in terms of their syntax. You&#8217;ve got an <code>@media</code> directive, a media type (which you already know from good ol&#8217; CSS 2, like <code>screen</code>, <code>print</code>, <code>all</code>, etc.) and one or more media features (the characteristics we&#8217;re testing against). That&#8217;s it:</p>
<pre><code>@media screen and (max-width:500px) {
}</code></pre>
<p>There are some additional little syntax details, but this is basically all you need to know to actually make a media query work. Once you memorize this short, simple syntax and the various media features that are available, you could technically say that you know how to use media queries. But knowing how to use media queries <em>effectively</em> requires a whole lot more considerations than just where to put an @ or {.</p>
<p>Designing web layouts with media queries is a <em>process</em>. You need to keep them in mind from the very beginning and make decisions at several points about how to integrate them in ways that will make the most sense for your site. There are very few always-right or always-wrong answers. What type of media query set-up would work best will depend on your site, your users, and your own capabilities and experience. But I wanted to cover the pros and cons of some of the essential considerations that go into crafting robust media query-driven layouts. These considerations include whether to:</p>
<ul>
<li><a href="#mq-embed-external">Make the media queries embedded or external</a></li>
<li><a href="#mq-overlap-stack">Overlap or stack your media queries</a></li>
<li><a href="#mq-default-styles">Make mobile or desktop styles the default</a></li>
<li><a href="#mq-internet-explorer">Use conditional comments or JavaScript to add support for IE 8 and earlier versions</a></li>
</ul>
<p>This article is just as much for me as it is for you—it can be hard to keep track of all the different configuration variations you can use! Hopefully I&#8217;ll be able to make the pros and cons of the various approaches clearer so you can use this article to guide your decisions when you start a project involving media queries.</p>
<h3 id="mq-embed-external">How to include your media queries: embedded vs. external</h3>
<p>There are two ways to include media queries in your site: embed them within a style sheet or include them in a call to a separate, external sheet.</p>
<p><span id="more-569"></span>Here&#8217;s what an embedded media query looks like (pretend that we&#8217;re inside a style sheet):</p>
<pre><code>body {
    background: gray;
}
@media all and (max-width:500px) {
    body {
        background: blue;
    }
}</code></pre>
<p>For an external media query, simply extend the existing media part of the <code>link</code> element or <code>@import</code> rule:</p>
<pre><code>&lt;link href="narrow.css" rel="stylesheet" media="only screen and (max-width:500px)"&gt;</code></pre>
<pre><code>@import url(narrow.css) only screen and (max-width:500px);</code></pre>
<p>Browsers that don&#8217;t support media queries won&#8217;t download these sheets, but browsers that do will download them all, regardless of whether they&#8217;re needed or not for the current viewing scenario. (The background images inside the currently-not-needed sheets won&#8217;t download, however.) On the one hand, this makes sense—the user could change his or her orientation or window size, and those alternate styles would suddenly need to be called into action.  On the other hand, <a href="http://blog.assortedgarbage.com/2010/12/css3-media-queries-download-answers/">Greg Rewis found</a> that even if you create a sheet that it seems like a device could never possibly use, such as a sheet for a <code>max-width</code> of 700 pixels never being needed by an iPad with its 768 x 1024 resolution, the device will download it anyway. But <a href="http://css-tricks.com/">Chris Coyier</a> pointed out to me that you could have an <code>iframe</code> in a page, for instance, that might need to use that smaller style sheet—so on the <em>third</em> hand, I guess this behavior is logical and unavoidable, if not perfect.</p>
<h4>The pros and cons</h4>
<table class="pros-cons">
<caption> Embedded vs external media queries<br />
</caption>
<tbody>
<tr>
<th class="pro" scope="col">Embedded pros</th>
<th class="con" scope="col">External cons</th>
</tr>
<tr>
<td class="pro">No extra HTTP request(s)</td>
<td class="con">Extra HTTP request(s)</td>
</tr>
<tr>
<td class="pro">Not out of sight, so harder to forget</td>
<td class="con">Out of sight, so could be forgotten when updating</td>
</tr>
</tbody>
</table>
<table class="pros-cons">
<caption> Embedded vs external media queries<br />
</caption>
<tbody>
<tr>
<th class="con" scope="col">Embedded cons</th>
<th class="pro" scope="col">External pros</th>
</tr>
<tr>
<td class="con">Extra kb in file size for everyone to download whether query used or not</td>
<td class="pro">Smaller file size for default sheet used by browsers that don&#8217;t support media queries</td>
</tr>
<tr>
<td class="con">Have to use JavaScript to make it work in IE 8 and earlier<span>*</span></td>
<td class="pro">Can feed one of the queries to IE using conditional comments<span>*</span></td>
</tr>
<tr>
<td class="con">Harder to keep organized if CSS extensive</td>
<td class="pro">Easier to keep organized if CSS extensive</td>
</tr>
</tbody>
</table>
<p id="note-ie">* I&#8217;ll go into the details of both of these approaches to <a href="#mq-internet-explorer">dealing with old versions of IE later on in this article</a>, so sit tight if this IE stuff doesn&#8217;t make sense just yet.</p>
<h4>The bottom line</h4>
<p>In most situations, I think that embedded is the better way to go. I&#8217;ve never been a fan of separating out styles into separate sheets because I find it harder to keep things organized and easier to forget those extra sheets when debugging or updating. Plus, it adds extra HTTP requests, which are more expensive in terms of performance than having a single sheet that&#8217;s larger in file size. Because media-query-supporting browsers will download those extra sheets even they don&#8217;t currently need them, the smaller file size that you gain by separating the media queries into their own sheets is really only a benefit to browsers that don&#8217;t support media queries, as they won&#8217;t download those extra media query sheets.</p>
<p>But again—and this is the last time I&#8217;m saying this, but it applies to everything in this article—the best approach <a href="http://adactio.com/journal/4437/">depends</a> on your project.</p>
<h3 id="mq-overlap-stack">How to use the cascade: overlapping vs. stacked</h3>
<p>Regardless of whether you make your media queries embedded or external, you also need to decide whether you want them to overlap, bringing the cascade and specificity into play, or whether you want to &#8220;stack&#8221; them so only one media query applies at once.</p>
<p>Here&#8217;s what overlapping media queries look like (this example is embedded, but the same could be done with external sheets):</p>
<pre><code>body {
    background: gray;
    font-family: sans-serif;
}
@media all and (min-width:500px) {
    body {
        background: blue;
        font-family: serif;
    }
}
@media all and (min-width:700px) {
    body {
        background: red;
        color: white;
    }
}</code></pre>
<p>Do you see how these media queries are not mutually exclusive? Both apply to windows greater than 700 pixels wide. If my viewport was 800 pixels wide, for instance, it would meet both the minimum width of 500 pixels and the minimum width of 700 pixels and apply the styles from both media queries. I&#8217;d have a red background with white text in a serif font.</p>
<p>When you overlap your media queries, the cascade and specificity come into play when determining which rules to use. For instance, if I used the same exact media queries containing the same exact CSS, but changed their order so that the <code>min-width:700px</code> one was first, I&#8217;d get different results:</p>
<pre><code>body {
    background: gray;
    font-family: sans-serif;
}
@media all and (min-width:700px) {
    body {
        background: red;
        color: white;
    }
}
@media all and (min-width:500px) {
    body {
        background: blue;
        font-family: serif;
    }
}</code></pre>
<p>Now my 800-pixel-wide viewport would have a blue background instead of red—the rule that comes later with the same specificity wins.</p>
<p>Instead of overlapping your media queries, you can stack or isolate them so that each is mutually exclusive:</p>
<pre><code>body {
    background: gray;
    font-family: sans-serif;
}
@media all and (min-width:500px) and (max-width:699px) {
    body {
        background: blue;
        font-family: serif;
    }
}
@media all and (min-width:700px) {
    body {
        background: red;
        color: white;
        font-family: serif;
    }
}</code></pre>
<p>Now only one of these media queries can apply at a time: the first applies in viewports between 500 and 699 pixels, and the second applies at 700 pixels and up. This means you don&#8217;t have to worry about cascade or specificity any more, but you do have to repeat any styles that you want to apply in both situations, such as <code>font-family:serif</code> in this example. On the other hand, you don&#8217;t have to override styles from earlier media queries that you don&#8217;t want to apply in the later media queries. So neither setup <em>always</em> leads to more or fewer lines of CSS.</p>
<p>Whether you overlap or stack also has an impact on which assets get downloaded in WebKit browsers. If you have multiple media queries that apply to the same situation (such as the 500px and 700px media queries both applying to the 800px viewport example above), WebKit-based browsers will download all the images in all of them, regardless of whether a later media query overrides one of the images in an earlier one. (This also happens with the styles <em>outside</em> any media queries, by the way.) This doesn&#8217;t happen if the media queries are stacked; in this case, WebKit will only download the images called for in the single, currently applicable one. (But again, it will download any images outside the media queries too, even if later overridden.) This handy information is from Greg&#8217;s &#8220;<a href="http://blog.assortedgarbage.com/2010/12/css3-media-queries-download-answers/">CSS3 Media Queries? Download Answers</a>&#8221; and Cloud Four&#8217;s &#8220;<a href="http://www.cloudfour.com/examples/mediaqueries/image-test/">Media Query Image Download Test</a>.&#8221;</p>
<h4>The pros and cons</h4>
<table class="pros-cons">
<caption> Overlapping vs stacked media queries<br />
</caption>
<tbody>
<tr>
<th class="pro" scope="col">Overlapping pros</th>
<th class="con" scope="col">Stacked cons</th>
</tr>
<tr>
<td class="pro">Smaller file size due to cascade not requiring you to repeat shared rules</td>
<td class="con">Bigger file size due to having to repeat rules you want to apply in multiple scenarios</td>
</tr>
<tr>
<td class="pro">Easy to update shared rule in one place</td>
<td class="con">Possible to forget to change all instance of repeated rule when updating</td>
</tr>
</tbody>
</table>
<table class="pros-cons">
<caption> Overlapping vs stacked media queries<br />
</caption>
<tbody>
<tr>
<th class="con" scope="col">Overlapping cons</th>
<th class="pro" scope="col">Stacked pros</th>
</tr>
<tr>
<td class="con">Bigger file size due to overriding rules from earlier queries in later queries</td>
<td class="pro">Smaller file size due to starting with clean slate with no earlier rules to override</td>
</tr>
<tr>
<td class="con">Images that get overridden/hidden later are still downloaded in WebKit-based browsers</td>
<td class="pro">Browsers only download  images inside currently-applicable media query</td>
</tr>
</tbody>
</table>
<h4>The bottom line</h4>
<p>I think overlapping media queries is more often than not the most efficient way to go. Most sites don&#8217;t have radically different looks between media queries—sure, the layout might appear very different, but things like the typography, colors, and various visual effects are usually the same. Because of this, I&#8217;ve found that in most cases you&#8217;ll end up writing a lot more lines of CSS if you stack your media queries and don&#8217;t get to take advantage of the cascade. (Hooray for the cascade!)</p>
<p>However, if you <em>do</em> happen to have a site that has <em>very</em> different styles in each media query, stacking may be more efficient than overlapping. Also, because of WebKit&#8217;s downloading behavior, if you&#8217;re switching a lot of images between media queries, it may be wise to stack those queries instead of overlapping them, even if that means more lines of CSS and more chance of forgetting to update a rule inside multiple queries.</p>
<h3 id="mq-default-styles">Which styles to make the &#8220;default&#8221;: mobile vs. desktop</h3>
<p>While it&#8217;s possible to put all of your styles inside media queries, you&#8217;ll almost never see this, as browsers that don&#8217;t support media queries will get no styles whatsoever. What usually happens is that a chunk of styles sit outside media queries, either inside your single style sheet or in their own style sheet using a standard <code>@import</code> call or <code>link</code>, and these essentially become your &#8220;default&#8221; or starting styles. You then layer on one or more media queries to form alternate styles for different scenarios.</p>
<p>Media queries aren&#8217;t just for creating different layouts for different screen sizes, but let&#8217;s face it, that&#8217;s their primary use right now—and a dang good one. So that&#8217;s what I&#8217;m focusing on here: whether to make the small-screen styles the default or whether to make wider-screen styles the default. A few caveats, however:</p>
<ul>
<li>For ease of writing, I&#8217;m just going to refer to the smaller-screen styles as &#8220;mobile&#8221; and the wider-screen styles as &#8220;desktop,&#8221; even though mobile styles might be viewed on desktop devices and vice versa, and even though not all mobile devices support media queries.</li>
<li>Also keep in mind that even though I&#8217;m simplifying it to two options for ease of discussion, you can have multiple media queries for each of these scenarios (such as 320px, 480px, and 600px &#8220;mobile&#8221; styles and 760px, 960px, and 1200px &#8220;desktop&#8221; styles), and any of these could be your default. You don&#8217;t have to make one extreme or the other the default.</li>
<li>Finally, I&#8217;m specifically talking about which styles you make the default in the CSS itself, not about which version of the layout you first design for when coming up with wireframes, comps, and what-have-you. In a certain project, it may make the most sense to plan for the desktop design first, but when it comes time to build the media queries, make the mobile styles first. Nathan C. Ford talks about this in &#8220;<a href="http://artequalswork.com/posts/target-first.php">Design for a Target Experience First</a>.&#8221;</li>
</ul>
<p>OK, are we all good? Good. Moving on.</p>
<p>Once again, WebKit&#8217;s downloading behavior is a big factor here. If you make the desktop styles the default and then override some of its assets in a mobile media query, either by setting new background images or setting elements that contain background or foreground images to <code>display:none</code>, Safari on iOS will still download the overridden or hidden desktop assets. The reverse is true: when mobile styles are the default, desktop Safari and Chrome will download all the mobile assets, even if overridden or hidden by the desktop styles.</p>
<p>This behavior isn&#8217;t &#8220;wrong,&#8221; by the way. It&#8217;s common for browsers to download assets that are set to <code>display:none</code>, as it allows the content to be preloaded and ready-to-go if later revealed by a script, such as a hover effect over text that reveals a thumbnail image. WebKit doesn&#8217;t discriminate between situations where the currently hidden image might be needed later, such as if the user can and does resizes her viewport, or if it will never, ever be called into play.</p>
<p>If the downloading of the unneeded image is problematic in your case, there are a few ways to work around it:</p>
<ul>
<li><a href="http://www.cloudfour.com/examples/mediaqueries/image-test/#t3">Cloud Four&#8217;s test page</a> shows that if you set an image as a background on a <code>div</code>, and then instead of hiding the <code>div</code> you hide the <code>div</code>&#8217;s <em>parent</em> element, WebKit won&#8217;t download the image.</li>
<li>You could simply choose to make your default styles neither mobile or desktop—just restrict them to basic text formatting, colors, and the like. Introduce layout and images only inside media queries.</li>
<li>There are a variety of ways to use scripting to control what gets downloaded when. Read &#8220;<a href="http://www.quirksmode.org/blog/archives/2010/08/combining_media.html">Combining media queries and JavaScript</a>&#8221; by Peter-Paul Koch for the general idea behind this, as well as &#8220;<a  rel="bookmark" href="http://www.cloudfour.com/responsive-imgs-part-2/">Responsive IMGs Part 2 — In-depth Look at Techniques</a>&#8221; by Jason Grigsby for a discussion of a whole bunch of scripting techniques to load images on an as-needed basis.</li>
</ul>
<p>These solutions won&#8217;t work with all sites, but they are options in some cases.</p>
<h4>The pros and cons</h4>
<table class="pros-cons">
<caption> Mobile-default vs desktop-default media queries<br />
</caption>
<tbody>
<tr>
<th class="pro" scope="col">Mobile-default pros</th>
<th class="con" scope="col">Desktop-default cons</th>
</tr>
<tr>
<td class="pro">Prevents mobile devices from downloading unneeded desktop assets</td>
<td class="con">Mobile devices may have to download unneeded desktop assets</td>
</tr>
<tr>
<td class="pro">Older, non-media-query-supporting mobile browsers still get the mobile styles without any extra work</td>
<td class="con">Requires separate style sheets or JavaScript to make mobile design appear in IE Mobile and older mobile browsers</td>
</tr>
</tbody>
</table>
<table class="pros-cons">
<caption> Mobile-default vs desktop-default media queries<br />
</caption>
<tbody>
<tr>
<th class="con" scope="col">Mobile-default cons</th>
<th class="pro" scope="col">Desktop-default pros</th>
</tr>
<tr>
<td class="con">Requires separate style sheets or JavaScript to make majority desktop design appear in IE 8 and earlier</td>
<td class="pro">No extra work to make majority-width appear correctly on IE 8 and earlier</td>
</tr>
<tr>
<td class="con">Desktop devices may have to download unneeded mobile assets</td>
<td class="pro">Prevents desktop devices from downloading unneeded mobile assets</td>
</tr>
<tr>
<td class="con">Requires complete overhaul of existing CSS when retrofitting existing site</td>
<td class="pro">Easiest way to retrofit existing site</td>
</tr>
</tbody>
</table>
<h4>The bottom line</h4>
<p>In most cases, I would advocate making the mobile styles the default, as it allows old mobile browsers to see the correct mobile styles. Yes, desktop IE 8 and earlier will also see those mobile styles, but this is an easy to fix with some JavaScript—a much more quick and straightforward process than getting your mobile styles to apply to non-media-query-supporting mobile browsers when you make desktop the default. Also, the fact that mobile devices won&#8217;t have to download any of the assets you call in the media-query-desktop styles is a big plus, as mobile devices are more likely (but definitely not guaranteed) to have slower connections and more limited bandwidth than desktop devices. I&#8217;ve made mobile styles the default in the last two sites I worked on, and I anticipate this being my go-to method going forward.</p>
<p>While<a href="http://www.lukew.com/ff/entry.asp?933"> mobile-first design</a>, as it&#8217;s been dubbed by Luke Wroblewski, has become quite popular, and  I too will sing its praises,  I don&#8217;t agree with those who say it&#8217;s the <em>only</em> viable way to craft media queries. Desktop-default has a fair share of merit too, as you can see in its pros list above. It&#8217;s a great way to <a href="http://simplebits.com/notebook/2011/08/19/adapted/">retrofit an existing site</a>, since you can add on a chunk of mobile styles instead of having to rewrite all the CSS from scratch. It&#8217;s also a great way to get your feet wet with media queries. Designing mobile-first is a big shift in both your mindset and design process, so sticking to desktop-first might be best on your first foray into creating a site utilizing media queries. In <a href="http://stunningcss3.com/samples/index.html">Chapter 6</a> of my book <em><a href="http://stunningcss3.com/">Stunning CSS3</a></em>, I take a desktop-default approach, as I think this is an easier way to first learn  media queries. The default styles are targeted towards a size that most desktop users will see, with styles for both wider and narrower versions layered on. This means that even if I didn&#8217;t use JavaScript to fix IE 8 and earlier, or if the JavaScript doesn&#8217;t load, users will still see a layout that will work well for the majority of desktop viewport sizes—just the same as they would before we had media queries as an option. Media queries are used as progressive enhancement, not a requirement.</p>
<h3 id="mq-internet-explorer">How to deal with IE 8 and earlier versions: conditional comments vs. JavaScript</h3>
<p>Speaking of IE, you probably know that Internet Explorer 8 and earlier versions don&#8217;t support media queries. Since these browsers are likely a big chunk of your audience, I suspect you&#8217;ll want to figure out a way to get your media queries to work in IE 8 and earlier. You have a couple options: use conditional comments to feed separate media query sheets to different versions of IE or use a pre-fab script to make media queries magically work in IE.</p>
<p>To use conditional comments, you&#8217;ll vary your approach based on which set of styles, mobile or desktop, are your default. In either case, you&#8217;ll need to have your media queries separated into external sheets, not embedded in a single sheet along with your default styles.</p>
<p>If desktop styles are the default and you want to use conditional comments, you don&#8217;t need to really worry about desktop versions of IE 8 and earlier—they&#8217;ll get the desktop styles automatically. Sure, they won&#8217;t get any variations on those desktop styles that you might have included to better fit every particular viewport size, but if you&#8217;re using media queries as progressive enhancement, this isn&#8217;t likely to be a problem. Sure, it&#8217;s not <em>ideal</em> if an IE user with an 1100-pixel viewport sees the default 700-960-pixel styles instead of the 960-and-up media query, but it shouldn&#8217;t be a deal-breaker—the layout they see isn&#8217;t likely to look broken or be unusable. They shouldn&#8217;t know anything is &#8220;wrong.&#8221; So there&#8217;s nothing extra that has to be done for desktop IE 8 and earlier in this desktop-default scenario.</p>
<p>But the default desktop styles have a much bigger impact in the mobile version of IE used on Windows Phone 7. Luckily you can <a href="http://blogs.msdn.com/b/iemobile/archive/2010/12/08/targeting-mobile-optimized-css-at-windows-phone-7.aspx">target it using a conditional comment</a> and feed it your mobile-specific sheet:</p>
<pre><code>&lt;link rel="stylesheet" href="global.css" media="all"&gt;
&lt;link rel="stylesheet" href="mobile.css" media="all and (max-width: 700px)"&gt;
&lt;!--[if IEMobile 7]&gt;
&lt;link rel="stylesheet" href="mobile.css" media="all"&gt;
&lt;![endif]--&gt;</code></pre>
<p>If mobile styles are your default, the situation is basically reversed: mobile-IE is fine without any extra work, but you have to feed desktop-IE the desktop styles using conditional comments. Again, we&#8217;re in luck when it comes to conditional comment syntax: it&#8217;s possible to craft a conditonal comment that targets IE 8 and earlier—which includes the version of IE on Windows Phone 7—but then also explicitly excludes mobile-IE:</p>
<pre><code>&lt;link rel="stylesheet" href="global.css" media="all"&gt;
&lt;link rel="stylesheet" href="desktop.css" media="all and (min-width: 700px)"&gt;
&lt;!--[if (lt IE 9)&amp;(!IEMobile 7)]&gt;
&lt;link rel="stylesheet" href="desktop.css" media="all"&gt;
&lt;![endif]--&gt;</code></pre>
<p>I learned about this handy conditional comment trick from Jeremy Keith&#8217;s article &#8220;<a href="http://adactio.com/journal/4494/">Windows mobile media queries</a>.&#8221; That Jeremy is one clever guy.</p>
<p>Both of these conditional comment variations don&#8217;t actually make media queries work in IE—they basically feed an alternate, static layout to IE, not based on viewport size or anything other than IE version number and platform, without any ability to switch dynamically between states. If you need more robust media queries support in IE 8 and earlier, or if you  want to be able to embed your media queries in a single sheet, you can instead simply link to a ready-to-use script that detects your media queries and makes them work in non-supporting browsers. There are currently two such scripts:</p>
<ul>
<li><a href="https://github.com/scottjehl/Respond">Respond</a> by Scott Jehl: This script is much smaller than the other, and when you resize your window, it makes the changes appear right away without any lag. It&#8217;s main downside is that it only supports the <code>min-width</code> and <code>max-width</code> media features (the only ones I tend to use anyway!). Also, I found it triggered some totally obscure IE bug in a layout I was working on recently. But in general, I don&#8217;t have any problems with this script and highly recommend it.</li>
<li><a href="http://code.google.com/p/css3-mediaqueries-js/">css3-mediaqueries.js</a> by Wouter van der Graaf: This script is bigger and slower than Respond, but it does support more media features and may be less buggy in some scenarios. It&#8217;s not my first choice, but it&#8217;s a great option too.</li>
</ul>
<p>Both of these scripts will work in non-IE browsers too, by the way. If you want to limit them to IE so others don&#8217;t have to take the HTTP hit, hide the script call in a conditional comment:</p>
<pre><code>&lt;!--[if (lt IE 9)&amp;(!IEMobile 7)]&gt;
&lt;script src="respond.min.js"&gt;&lt;/script&gt;
&lt;![endif]--&gt;</code></pre>
<h4>The pros and cons</h4>
<table class="pros-cons">
<caption> Conditional comments vs. JavaScript for IE media query support<br />
</caption>
<tbody>
<tr>
<th class="pro" scope="col">Conditional comments pros</th>
<th class="con" scope="col">JavaScript cons</th>
</tr>
<tr>
<td class="pro">Works when JavaScript is disabled</td>
<td class="con">Doesn&#8217;t work when JavaScript is disabled</td>
</tr>
<tr>
<td class="pro">All the pros of having external media queries</td>
<td class="con">All the cons of having embedded media queries</td>
</tr>
</tbody>
</table>
<table class="pros-cons">
<caption> Conditional comments vs. JavaScript for IE media query support<br />
</caption>
<tbody>
<tr>
<th class="con" scope="col">Conditional comments cons</th>
<th class="pro" scope="col">JavaScript pros</th>
</tr>
<tr>
<td class="con">Feed IE only one static layout, rather than making media queries work so that layout can change on the fly</td>
<td class="pro">Makes existing media queries work so layout can change on the fly</td>
</tr>
<tr>
<td class="con">All the cons of having external media queries</td>
<td class="pro">All the pros of having embedded media queries</td>
</tr>
</tbody>
</table>
<h4>The bottom line</h4>
<p>Plugging in a little script takes no effort whatsoever, so if you&#8217;re using embedded media queries, why not use one of the JavaScripts? For the small percentage of people using IE 8 and earlier with JavaScript turned off, I&#8217;m not concerned about them simply seeing the default styles; if mobile is default, they&#8217;ll get simple but readable and clean, and if desktop is default, it will probably look just right anyway!</p>
<h3>Summing it all up</h3>
<p>By now  you&#8217;ve seen that there are lots of important decisions that go into how you set up your media queries for maximum efficiency, robustness, and ease of use. These decisions include whether to:</p>
<ul>
<li><a href="#mq-embed-external">Make the media queries embedded or external</a></li>
<li><a href="#mq-overlap-stack">Overlap or stack your media queries</a></li>
<li><a href="#mq-default-styles">Make mobile or desktop styles the default</a></li>
<li><a href="#mq-internet-explorer">Use conditional comments or JavaScript to add support for IE 8 and earlier versions</a></li>
</ul>
<p>Hopefully I&#8217;ve given you the information you need to make those decisions easier.</p>
<p>There are lots of other decisions you&#8217;ll need to make along the way that I haven&#8217;t covered, such as:</p>
<ul>
<li>Which media features to use (Use <code>max-width</code> or <code>max-device-width</code>? Use <a href="http://www.quirksmode.org/blog/archives/2010/04/the_orientation.html"><code>orientation</code></a>? That sort of thing.)</li>
<li>Which dimensions to target, aka the breaking points in the design</li>
<li>Which units to use for those breaking points (Pixels or <a href="http://www.goldilocksapproach.com/">ems</a>?)</li>
</ul>
<p>Don&#8217;t let all these decisions scare you off using media queries. Just know that, like any design technique, you can go about it with careful consideration or you can just quickly slap some sloppy media queries on your site. Think through the pros and cons of your media query configuration so that your media queries don&#8217;t just work, but <em>work well</em>.<br />
<h3 class='related_post_title'>Related Posts:</h3>
<ul class='related_post'>
<li><a href='http://zomigi.com/blog/media-queries-presentation/' title='Media queries presentation at indieconf'>Media queries presentation at indieconf</a></li>
<li><a href='http://zomigi.com/blog/examples-of-flexible-layouts-with-css3-media-queries/' title='Examples of flexible layouts with CSS3 media queries'>Examples of flexible layouts with CSS3 media queries</a></li>
<li><a href='http://zomigi.com/blog/bug-fixes-for-removing-the-inner-shadow-on-ios-inputs/' title='Bug fixes for removing the inner shadow on iOS inputs'>Bug fixes for removing the inner shadow on iOS inputs</a></li>
<li><a href='http://zomigi.com/blog/theres-already-a-book-on-responsive-web-design-want-to-win-it/' title='There&#8217;s already a book on responsive web design. Want to win it?'>There&#8217;s already a book on responsive web design. Want to win it?</a></li>
<li><a href='http://zomigi.com/blog/ie-7-button-text-redraw-bug/' title='IE 7 button text redraw bug'>IE 7 button text redraw bug</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://zomigi.com/blog/essential-considerations-for-crafting-quality-media-queries/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Videos of screen readers using ARIA, updated</title>
		<link>http://zomigi.com/blog/videos-of-screen-readers-using-aria-updated/</link>
		<comments>http://zomigi.com/blog/videos-of-screen-readers-using-aria-updated/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 19:36:29 +0000</pubDate>
		<dc:creator>Zoe Gillenwater</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[aria]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[screen readers]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://zomigi.com/?p=576</guid>
		<description><![CDATA[Recordings of screen readers using web page components that do and do not make use of WAI-ARIA can be a good educational resource for why ARIA is important to accessibility. Here are all the videos of such demos that I've found.]]></description>
			<content:encoded><![CDATA[<p class="note">My previous post &#8220;<a href="http://zomigi.com/blog/videos-of-screen-readers-using-aria/">Videos of screen readers using ARIA</a>&#8221; needed a good updating: I&#8217;d found several more applicable videos and some of the original videos had disappeared from the web, leaving the links to them broken. This article includes all the content from that original post that&#8217;s still online plus all the new stuff I&#8217;ve found, organized by topic this time.</p>
<p>I&#8217;ve been doing a lot of investigation into <a href="http://www.w3.org/TR/wai-aria/">WAI-ARIA</a> for work recently, mainly revolving around educating other developers. I&#8217;ve found a lot of great demos of pages and widgets that use ARIA, but not too many videos of screen readers using said widgets. This is a shame, because it&#8217;s often hard to understand the impact of ARIA without hearing how a screen reader announces the content both without and with ARIA in place, and not many people have or know how to use screen readers. I can certainly show developers who are accessibility-newbies the ARIA demos, but their accessibility benefits aren&#8217;t that clear without a recording of a screen reader using them and their non-ARIA counterparts.</p>
<p>Nevertheless, I was able to find a few videos of screen readers using ARIA-enhanced widgets, as well as other uses of ARIA, and I wanted to share the links here. I&#8217;m willing to bet there are more out there—it&#8217;s just hard to find them, since simply searching for &#8220;aria&#8221; on YouTube will get you a bunch of videos of people singing opera, not screen readers! So if you know of others, please let us know in the comments.<br />
<span id="more-576"></span></p>
<h3>Live regions</h3>
<p>This video, though longer than it needs to be, is great because it shows a page without and then with <a href="http://www.w3.org/TR/wai-aria-practices/#docmgt">ARIA live regions</a> enabled, as well as the difference between &#8220;polite&#8221; and &#8220;rude&#8221; notifications.</p>
<iframe width="480" height="385" src="http://www.youtube.com/embed/9nZnTdSAkH0" frameborder="0" type="text/html"></iframe>
<p>Here&#8217;s a less clear but much shorter demo of live regions. Every time text is added to the log text box, the entire contents of the box are read out by the screen reader automatically:</p>
<iframe width="480" height="385" src="http://www.youtube.com/embed/jFB_zJE_pjY" frameborder="0" type="text/html"></iframe>
<p>And here&#8217;s the shortest of them all: a demo of how a screen reader would announce how many characters are remaining for your Tweet when typing one on Twitter—if Twitter were to actually <a href="http://webstandardssherpa.com/reviews/improving-the-tweet-box">implement live regions</a>:</p>
<iframe width="480" height="385" src="http://www.youtube.com/embed/EGQSx9ciJpg" frameborder="0" type="text/html"></iframe>
<p><span class="note">[Update 10/21/11]</span> Another practical example of how to put live regions to use, this time on Yahoo!&#8217;s site for real. The video doesn&#8217;t mention ARIA live regions explicitly, but that&#8217;s how they&#8217;re getting the search results suggestions to be read out automatically.</p>
<iframe width="480" height="385" src="http://www.youtube.com/embed/Vd_W_8tIDNA" frameborder="0" type="text/html"></iframe>
<h3>Landmark roles</h3>
<p>Lucica Ibanescu <a href="http://cssgallery.info/how-screen-readers-speak-a-page-with-html5-and-aria/">tested a page</a> with and without <a href="http://www.w3.org/TR/wai-aria/roles#landmark_roles">ARIA landmark roles</a> and recorded NVDA, JAWS, and Window-Eyes using both versions. Here&#8217;s the version with the ARIA landmarks:</p>
<iframe width="480" height="385" src="http://www.youtube.com/embed/LP3zLrOjQSY" frameborder="0" type="text/html"></iframe>
<p>Here&#8217;s how the landmarks on Flickr&#8217;s site are read:</p>
<iframe width="480" height="385" src="http://www.youtube.com/embed/gS7Op020o-8" frameborder="0" type="text/html"></iframe>
<p><a href="http://www.nomensa.com/">Nomensa</a> has a nice, simple demo of how landmarks are read on their own site:</p>
<iframe width="480" height="385" src="http://www.youtube.com/embed/IhWMou12_Vk" frameborder="0" type="text/html"></iframe>
<h3>Widgets</h3>
<p>Aaron Gustafson has a video of his great <a href="http://easy-designs.github.com/tabinterface.js/">TabInterface tabs widget</a> being read by NVDA.</p>
<iframe width="480" height="385" src="http://www.youtube.com/embed/LF6I-uo4frc" frameborder="0" type="text/html"></iframe>
<p>The Yahoo! User Interface (YUI) Library used to have video demos of all their ARIA-enhanced widgets online, but for some reason they&#8217;ve disappeared. However, I found someone else&#8217;s recording of YUI&#8217;s drop-down menu widget, seen here being read by NVDA:</p>
<iframe width="480" height="385" src="http://www.youtube.com/embed/1DShGU3Sqfs" frameborder="0" type="text/html"></iframe>
<p>You can also see how <a href="http://www.youtube.com/watch?v=3c8iXoomc2Y">JAWS reads this menu</a>. This same person posted a video of a different Yahoo <a href="http://www.youtube.com/watch?v=CypVC6FgMC8">drop-down menu widget that doesn&#8217;t use ARIA</a>, so you can compare the two experiences with and without ARIA.</p>
<p>Similarly, here&#8217;s the ARIA version of YUI&#8217;s tabs:</p>
<iframe width="480" height="385" src="http://www.youtube.com/embed/M8ld7AzCnXk" frameborder="0" type="text/html"></iframe>
<p>Compare this to the experience with the older YUI <a href="http://www.youtube.com/watch?v=vayOAKcQP6A">tabs that don&#8217;t use ARIA</a>.</p>
<h3>Miscellaneous</h3>
<p>Here&#8217;s a video of an extremely simple but very helpful use of ARIA: adding <code><a href="http://www.w3.org/TR/wai-aria/states_and_properties#aria-describedby">aria-describedby</a></code> to &#8220;more&#8221; links so that the text that&#8217;s read out for each makes more sense out of context, such as when tabbing through the page or reading a list of links by themselves.</p>
<iframe width="480" height="385" src="http://www.youtube.com/embed/kFQrHp9zCNY" frameborder="0" type="text/html"></iframe>
<p>Here&#8217;s how the same page sounded before using <code>aria-describedby</code>:</p>
<iframe width="480" height="385" src="http://www.youtube.com/embed/k5kO6lxnAjE" frameborder="0" type="text/html"></iframe>
<p>You can see the code that produced this change in the article <a href="http://yaccessibilityblog.com/library/easy-fixes-to-common-accessibility-problems.html#dupe-link-label">Easy Fixes to Common Accessibility Problems</a> by Todd Kloots on the Yahoo! Accessibility blog.</p>
<p>Another quick and useful ARIA trick involves using <code><a href="http://www.w3.org/TR/wai-aria/states_and_properties#aria-labelledby">aria-labelledby</a></code> to label a form text field with the content of a select field rather than the label element, as seen here:</p>
<iframe width="480" height="385" src="http://www.youtube.com/embed/Xr32OASZO_Q" frameborder="0" type="text/html"></iframe>
<p>The code for this is fully described in the article &#8220;<a href="http://yaccessibilityblog.com/library/dynamic-form-labels-aria.html">Create Dynamic Form Labels with ARIA</a>&#8221; by Ted Drake on the Yahoo! Accessibility blog.</p>
<p>Here&#8217;s another video from Yahoo! showing how to use <code><a href="http://www.w3.org/TR/wai-aria/roles#img">role="img"</a></code> and <code><a href="http://www.w3.org/TR/wai-aria/states_and_properties#aria-label">aria-label</a></code> to make a CSS background image be treated like a foreground image by a screen reader:</p>
<iframe width="480" height="385" src="http://www.youtube.com/embed/v1gsOG5IEhs" frameborder="0" type="text/html"></iframe>
<h3>Any more?</h3>
<p>If you know of any other videos of screen readers using ARIA-enhanced pages, please let me know in the comments. I&#8217;ll update this page with any videos you share plus new ones that come out over time that I happen to stumble across.<br />
<h3 class='related_post_title'>Related Posts:</h3>
<ul class='related_post'>
<li><a href='http://zomigi.com/blog/videos-of-screen-readers-using-aria/' title='Videos of screen readers using ARIA'>Videos of screen readers using ARIA</a></li>
<li><a href='http://zomigi.com/blog/web-accessibility-presentation-resources/' title='Web accessibility presentation and resources'>Web accessibility presentation and resources</a></li>
<li><a href='http://zomigi.com/blog/a-few-links-css-and-accessibility/' title='A few links: CSS and accessibility'>A few links: CSS and accessibility</a></li>
<li><a href='http://zomigi.com/blog/media-queries-presentation/' title='Media queries presentation at indieconf'>Media queries presentation at indieconf</a></li>
<li><a href='http://zomigi.com/blog/css3-book-launch-event/' title='CSS3 book launch event'>CSS3 book launch event</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://zomigi.com/blog/videos-of-screen-readers-using-aria-updated/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>A few links: CSS and accessibility</title>
		<link>http://zomigi.com/blog/a-few-links-css-and-accessibility/</link>
		<comments>http://zomigi.com/blog/a-few-links-css-and-accessibility/#comments</comments>
		<pubDate>Fri, 14 Oct 2011 16:11:07 +0000</pubDate>
		<dc:creator>Zoe Gillenwater</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[screen readers]]></category>

		<guid isPermaLink="false">http://zomigi.com/?p=571</guid>
		<description><![CDATA[A few links to handy articles from 456 Berea Street related to CSS and accessibility: using list-style:none, using display:table, and styling buttons to look like links.]]></description>
			<content:encoded><![CDATA[<p>The blog <a href="http://www.456bereastreet.com/">456 Berea Street</a> by <a href="http://twitter.com/rogerjohansson">Roger Johansson</a> is one of my favorite sites for useful information on web standards topics presented in a really clearly written and succinct way. He&#8217;s had some great articles recently related to the intersection of CSS and accessibility that I thought were worth sharing.</p>
<h3>&#8220;<a href="http://www.456bereastreet.com/archive/201109/screen_readers_list_items_and_list-stylenone/">Screen readers, list items and list-style:none</a>&#8220;</h3>
<p>Roger found that some screen readers won’t announce list items if <code>list-style:none</code> is set on the list. (They will announce the list as a whole, just not the individual list <em>items</em>.) This very common bit of CSS <em>visually </em>represses the list markers, of course, but (probably?) shouldn’t change the spoken output. Unfortunately, this falls squarely into the &#8220;good to know, but what do you want me to do about it?&#8221; camp. Just keep it in mind, and hopefully the offending screen readers will fix this behavior soon.</p>
<h3>&#8220;<a href="http://www.456bereastreet.com/archive/201110/using_displaytable_has_semantic_effects_in_some_screen_readers/">Using display:table has semantic effects in some screen readers</a>&#8220;</h3>
<p>Same sort of thing, only with <code>display:table</code>. NVDA in Firefox as well as the ORCA screen reader incorrectly announce elements that you’ve set to <code>display:table</code> as actual, semantic tables. This might be an area where you do have other options than using <code>display:table</code> (as opposed to <code>list-style:none</code>, where there are no alternatives if you don&#8217;t want markers), so this screen reader quirk is a little more helpful to know. I wouldn&#8217;t consider this a deal-breaker, but if you can easily avoid it, I say why not? If you can&#8217;t really avoid it, I wouldn&#8217;t sweat it, but again, keep it in mind.</p>
<h3>&#8220;<a href="http://www.456bereastreet.com/archive/201110/styling_button_elements_to_look_like_links/">Styling button elements to look like links</a>&#8220;</h3>
<p>This is a useful CSS snippet for when you want something to look like a link (plain text) but act like a button (initiate an action other than taking someone to a new page). Roger points out, of course, that it would be better if the design were changed so that things that act like buttons look like buttons, but this is a good option when you can’t convince those darn designers to change things! (I&#8217;m allowed to jokingly complain about designers since I am one.)<br />
<h3 class='related_post_title'>Related Posts:</h3>
<ul class='related_post'>
<li><a href='http://zomigi.com/blog/web-accessibility-presentation-resources/' title='Web accessibility presentation and resources'>Web accessibility presentation and resources</a></li>
<li><a href='http://zomigi.com/blog/videos-of-screen-readers-using-aria-updated/' title='Videos of screen readers using ARIA, updated'>Videos of screen readers using ARIA, updated</a></li>
<li><a href='http://zomigi.com/blog/videos-of-screen-readers-using-aria/' title='Videos of screen readers using ARIA'>Videos of screen readers using ARIA</a></li>
<li><a href='http://zomigi.com/blog/media-queries-presentation/' title='Media queries presentation at indieconf'>Media queries presentation at indieconf</a></li>
<li><a href='http://zomigi.com/blog/ie-7-button-text-redraw-bug/' title='IE 7 button text redraw bug'>IE 7 button text redraw bug</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://zomigi.com/blog/a-few-links-css-and-accessibility/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IE 7 button text redraw bug</title>
		<link>http://zomigi.com/blog/ie-7-button-text-redraw-bug/</link>
		<comments>http://zomigi.com/blog/ie-7-button-text-redraw-bug/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 16:37:37 +0000</pubDate>
		<dc:creator>Zoe Gillenwater</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[Internet Explorer]]></category>

		<guid isPermaLink="false">http://zomigi.com/?p=561</guid>
		<description><![CDATA[Internet Explorer 7 has a bug where, when it redraws the text of buttons after scrolling them out and then back into the viewport, lines of pixels are missing from the text. I can't figure out a fix and need some help.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve run into an IE 7 bug that I&#8217;ve been unable to fix. I&#8217;m hoping some of you, dear readers, can help me figure it out.</p>
<p>I&#8217;m working on some styled buttons, created with the <code>&lt;button&gt;</code> element and some pretty basic CSS. In IE 7, if you scroll down the page so that the buttons move out of the viewport, then scroll back up to reveal them again, you&#8217;ll see lines of missing pixels drawn across the text of the buttons. It varies each time you scroll, so sometimes you won&#8217;t see any lines, and occasionally the entire text will disappear. The lines appear most often with the buttons with the largest text, but I think this is mainly just due to there being more pixels there to draw lines through, increasing the likelihood that IE 7 can screw it up. Hovering over the buttons or refreshing the page restores the text.</p>
<p>You can see a screenshot of the bug below, and view the bug live in IE 7 in my <a href="http://zomigi.com/demo/ie7_button_text_redraw_bug.html">test page</a>.</p>
<div id="attachment_562" class="wp-caption alignnone" style="width: 421px"><a href="http://zomigi.com/wp-content/uploads/2011/04/ie7_button_text_redraw_bug.png"><img class="size-full wp-image-562"  src="http://zomigi.com/wp-content/uploads/2011/04/ie7_button_text_redraw_bug.png" alt="" width="411" height="65" /></a><p class="wp-caption-text">The buttons in IE 7 have lines drawn through their text, as if little strips of the text were erased.</p></div>
<p><span id="more-561"></span>I found a <a href="http://wnas.tumblr.com/post/897410248/redraw-problem-in-ie-7">blog post</a> that said that adding a one-pixel transparent border fixed the bug. I tried this and found that it does indeed fix the bug, but only if you remove either <code>background-color</code> or <code>font-size</code>. Both of those properties trigger the bug to begin with, and the border fix seems to only have enough power to fix one of the triggers, not both. I can&#8217;t remove either of those properties, so the border fix is a no-go. (Plus, the border does not actually show as transparent when I tested it, which makes it a deal-breaker anyway.)</p>
<p>Through experimenting, I found that removing <code>overflow:visible</code> also solves the bug. Unfortunately, that brings back the <a href="http://www.viget.com/inspire/styling-the-button-element-in-internet-explorer/">excess padding button bug</a> that IE 7 and IE 6 suffer from. Setting <code>overflow:visible</code> seems to be the only fix for this bug, so this too is a property I can&#8217;t remove.</p>
<p>I of course tried the standard fixes of adding <code>zoom:1</code> and <code>position:relative</code>, but neither of these, either together or separately, had any effect on the buttons.</p>
<p>I&#8217;ve tried so many things and I&#8217;m out of ideas. Can anyone help?<br />
<h3 class='related_post_title'>Related Posts:</h3>
<ul class='related_post'>
<li><a href='http://zomigi.com/blog/bug-fixes-for-removing-the-inner-shadow-on-ios-inputs/' title='Bug fixes for removing the inner shadow on iOS inputs'>Bug fixes for removing the inner shadow on iOS inputs</a></li>
<li><a href='http://zomigi.com/blog/media-queries-presentation/' title='Media queries presentation at indieconf'>Media queries presentation at indieconf</a></li>
<li><a href='http://zomigi.com/blog/essential-considerations-for-crafting-quality-media-queries/' title='Essential considerations for crafting quality media queries'>Essential considerations for crafting quality media queries</a></li>
<li><a href='http://zomigi.com/blog/a-few-links-css-and-accessibility/' title='A few links: CSS and accessibility'>A few links: CSS and accessibility</a></li>
<li><a href='http://zomigi.com/blog/theres-already-a-book-on-responsive-web-design-want-to-win-it/' title='There&#8217;s already a book on responsive web design. Want to win it?'>There&#8217;s already a book on responsive web design. Want to win it?</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://zomigi.com/blog/ie-7-button-text-redraw-bug/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Bug fixes for removing the inner shadow on iOS inputs</title>
		<link>http://zomigi.com/blog/bug-fixes-for-removing-the-inner-shadow-on-ios-inputs/</link>
		<comments>http://zomigi.com/blog/bug-fixes-for-removing-the-inner-shadow-on-ios-inputs/#comments</comments>
		<pubDate>Wed, 13 Apr 2011 23:30:48 +0000</pubDate>
		<dc:creator>Zoe Gillenwater</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[backgrounds]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://zomigi.com/?p=538</guid>
		<description><![CDATA[You should be able to remove the default inner shadows on text field inputs in Safari on iOS using <code>-webkit-appearance</code>, but a couple bugs with the property reduce its usefulness. Luckily, you can work around the bugs using CSS3 gradient background images instead.]]></description>
			<content:encoded><![CDATA[<p>A while back <a href="http://trentwalton.com/2010/07/14/css-webkit-appearance/">Trent Walton</a> wrote about using <code><a href="http://developer.apple.com/library/safari/#documentation/appleapplications/reference/SafariCSSRef/Articles/StandardCSSProperties.html#//apple_ref/doc/uid/TP30001266-ColorsandBackgrounds">-webkit-appearance</a></code> to override the default styles of form elements in Safari on iOS devices (iPad, iPhone, and iPod Touch). Safari on iOS adds an inner shadow to the top of input text fields. It can only be overridden by setting <code>-webkit-appearance</code> to <code>none</code> or <code>caret</code>, or by adding a background image to the field.</p>
<p>Sounds like an easy fix, right? But if you didn&#8217;t read the comments on Trent&#8217;s article, you might have missed two important bugs* connected to using <code>-webkit-appearance</code> to remove the inner shadow:</p>
<ol>
<li>If you use <code>caret</code>, it removes not just the inner shadow but also the borders on desktop versions of Safari and Chrome (as well as the beta version of the WebKit-based browser on the TouchPad tablet).</li>
<li>If you use <code>none</code>, it removes the inner shadow and leaves borders alone, but it disables focus styles on iPad.</li>
</ol>
<p>In the case of the missing focus, I haven&#8217;t been able to confirm this myself; I don&#8217;t have an iPad, but the people I&#8217;ve asked to test it for me (thanks <a href="http://twitter.com/joshmarinacci">Josh</a>!) have said the focus styles <em>do </em>show up, even when <code>-webkit-appearance: none</code> is set. Perhaps it&#8217;s a case of the version of iOS in use, perhaps the person who reported this bug in the comments to Trent&#8217;s article was simply having a problem with his individual machine, or perhaps there was something else in the CSS that was truly responsible for the problem. So it&#8217;s still not clear to me whether the second bug I listed above is really present. Do any of you iPad users have a problem seeing the red outline on focus in my <a href="http://zomigi.com/demo/styling-text-fields.html">test page</a>?</p>
<p>If both of these bugs are truly present, they severely limit the circumstances in which <code>-webkit-appearance</code> can be used to remove <code>input</code>s&#8217; inner shadows. Luckily, we can use a background image instead of <code>-webkit-appearance</code> to remove the shadow. But what if you don&#8217;t want any background image to show? Simple—make the background image invisible. Some smart people on <a href="http://stackoverflow.com/questions/2839618/iphone-web-app-type-text-inner-shadow-issue">Stack Overflow</a> suggested a couple ways to do just that:</p>
<ol>
<li>Tile a transparent GIF as the background image.</li>
<li>Add a CSS3 gradient that runs from transparent white to transparent white.</li>
</ol>
<p>I think the gradient option is ideal because it doesn&#8217;t require an extra hit to the server to retrieve the transparent GIF. And there&#8217;s no need to worry about lack of browser support, since the only browsers we want to apply the gradient are Safari on iOS.</p>
<p>Here&#8217;s what the CSS would look like for the gradient:</p>
<pre><code>background-image:-webkit-gradient(linear, 0% 0%, 0% 100%, from(hsla(0,0%,100%,0)), to(hsla(0,0%,100%,0)));
background-image:-webkit-linear-gradient(hsla(0,0%,100%,0), hsla(0,0%,100%,0));</code></pre>
<p>The first <code>background-image</code> declaration, using the <code>-webkit-gradient</code> function, is what will actually work in Safari on iOS today. The second declaration using <code>-webkit-linear-gradient</code> is there for future compatibility; WebKit has recently <a href="http://www.webkit.org/blog/1424/css3-gradients/">updated its gradient syntax</a> to match the W3C specification. These syntax changes are in nightly builds and will make it into live versions of Safari and Chrome sometime soon, and you want your CSS to be prepared.</p>
<p>Most of this is not new information—it&#8217;s almost all in <a href="http://trentwalton.com/2010/07/14/css-webkit-appearance/">Trent&#8217;s article and comments</a> and the <a href="http://stackoverflow.com/questions/2839618/iphone-web-app-type-text-inner-shadow-issue">Stack Overflow</a> page. But I wanted to put it all together in one place, clearly explained, for easy reference. Hope it helps you out!</p>
<p class="note">*I don&#8217;t actually know that these are true bugs. But they sure seem like bugs to me, and in any case, they certainly need some working around!</p>
<h3 class='related_post_title'>Related Posts:</h3>
<ul class='related_post'>
<li><a href='http://zomigi.com/blog/media-queries-presentation/' title='Media queries presentation at indieconf'>Media queries presentation at indieconf</a></li>
<li><a href='http://zomigi.com/blog/essential-considerations-for-crafting-quality-media-queries/' title='Essential considerations for crafting quality media queries'>Essential considerations for crafting quality media queries</a></li>
<li><a href='http://zomigi.com/blog/a-few-links-css-and-accessibility/' title='A few links: CSS and accessibility'>A few links: CSS and accessibility</a></li>
<li><a href='http://zomigi.com/blog/theres-already-a-book-on-responsive-web-design-want-to-win-it/' title='There&#8217;s already a book on responsive web design. Want to win it?'>There&#8217;s already a book on responsive web design. Want to win it?</a></li>
<li><a href='http://zomigi.com/blog/free-samples-of-stunning-css3/' title='Free samples of Stunning CSS3'>Free samples of Stunning CSS3</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://zomigi.com/blog/bug-fixes-for-removing-the-inner-shadow-on-ios-inputs/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>There&#8217;s already a book on responsive web design. Want to win it?</title>
		<link>http://zomigi.com/blog/theres-already-a-book-on-responsive-web-design-want-to-win-it/</link>
		<comments>http://zomigi.com/blog/theres-already-a-book-on-responsive-web-design-want-to-win-it/#comments</comments>
		<pubDate>Tue, 22 Feb 2011 13:49:59 +0000</pubDate>
		<dc:creator>Zoe Gillenwater</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Flexible Web Design]]></category>
		<category><![CDATA[giveaway]]></category>
		<category><![CDATA[responsive web design]]></category>
		<category><![CDATA[Stunning CSS3]]></category>

		<guid isPermaLink="false">http://zomigi.com/?p=522</guid>
		<description><![CDATA[I'm giving away two copies each of my two books. Use them together to learn all about how to make responsive web designs.]]></description>
			<content:encoded><![CDATA[<p>Since Ethan Marcotte wrote his <a href="http://www.alistapart.com/articles/responsive-web-design/">seminal article on responsive web design</a> less than a year ago, the concept of creating liquid/fluid designs that make use of media queries to adapt to the user&#8217;s screen has <a href="http://zomigi.com/blog/examples-of-flexible-layouts-with-css3-media-queries/">taken off</a>. I&#8217;m ecstatic about this. I&#8217;ve been designing and building primarily liquid sites for several years now, and I want others to do the same. Responsive web designs can offer tremendous usability and accessibility benefits, while still looking beautiful, not dumbed down.</p>
<p>From a technical standpoint, creating liquid designs with media queries is not that complicated, in theory. But doing so requires a sometimes huge shift in mindset and design process, and this is where brief online articles on the topic fall a little short, simply due to the nature of their publication medium. What we really need is a whole <em>book </em>on responsive web design, covering all its intricacies. Ethan Marcotte is <a href="http://books.alistapart.com/products/responsive-web-design">working on one</a>, and I can&#8217;t wait to get my hands on it when it comes out later this year.</p>
<p>But it turns out that there&#8217;s already a book on responsive web design. OK, technically, it&#8217;s more like 1.2<em> </em>books. My first book, <a href="http://www.flexiblewebbook.com/"><em>Flexible Web Design: Creating Liquid and Elastic Layouts with CSS</em></a>, is the only book out there that&#8217;s entirely devoted to designing and building robust and attractive web sites that adapt to the user&#8217;s viewing preferences. It includes not only detailed instructions on how to create the CSS for the layouts, but also how to make the images within them flexible and how to design them from the comp stage with flexibility baked in. All you need to add to any of the layouts you learn about in <em>Flexible Web Design</em> to make them &#8220;responsive&#8221; is media queries—and I cover those fully in chapter 6 of my new book <a href="http://stunningcss3.com/"><em>Stunning CSS3: A Project-based Guide to the Latest in CSS</em></a>. Put them together, and you have a detailed, comprehensive guide on how to create awesome responsive web designs.</p>
<p>I want everyone to start making responsive web designs, so I want to give away a bundle of both my books. Actually, I want to give away <em>two</em> bundles. So two people will get a copy each of <em>Flexible Web Design</em> and <em>Stunning CSS3</em>.</p>
<p><span id="more-522"></span>To win, I&#8217;m not going to ask you to <a href="http://twitter.com/zomigi/">follow me on Twitter</a> (though I would really like it if you would) and retweet some canned message about this giveaway (though you&#8217;re certainly welcome to tweet about this). All you have to do to win my books is leave a comment on this post. Any comment will do, though I&#8217;d love to hear your thoughts on flexible design, media queries, CSS3, or anything relevant to the work we all do.</p>
<p>I&#8217;ll pick two commenters at random on Saturday, February 26, at 8am Eastern US time. Good luck!</p>
<p>In the meantime, you can learn more about my books and download free samples at their respective web sites: <a href="http://www.flexiblewebbook.com/"><em>Flexible Web Design: Creating Liquid and Elastic Layouts with CSS</em></a> and <a href="http://stunningcss3.com/"><em>Stunning CSS3: A Project-based Guide to the Latest in CSS</em></a>.</p>
<h3>Update 2/28/11:</h3>
<p>The winners, picked with a random number generator, are Chris Hawkins (comment 16) and Todd C (comment 33). Congrats guys! I&#8217;ll be in touch about sending your books.<br />
<h3 class='related_post_title'>Related Posts:</h3>
<ul class='related_post'>
<li><a href='http://zomigi.com/blog/media-queries-presentation/' title='Media queries presentation at indieconf'>Media queries presentation at indieconf</a></li>
<li><a href='http://zomigi.com/blog/free-samples-of-stunning-css3/' title='Free samples of Stunning CSS3'>Free samples of Stunning CSS3</a></li>
<li><a href='http://zomigi.com/blog/examples-of-flexible-layouts-with-css3-media-queries/' title='Examples of flexible layouts with CSS3 media queries'>Examples of flexible layouts with CSS3 media queries</a></li>
<li><a href='http://zomigi.com/blog/announcing-my-new-book-stunning-css3/' title='Announcing my new book, Stunning CSS3'>Announcing my new book, Stunning CSS3</a></li>
<li><a href='http://zomigi.com/blog/essential-considerations-for-crafting-quality-media-queries/' title='Essential considerations for crafting quality media queries'>Essential considerations for crafting quality media queries</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://zomigi.com/blog/theres-already-a-book-on-responsive-web-design-want-to-win-it/feed/</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>30 things I&#8217;ve learned in 30 years</title>
		<link>http://zomigi.com/blog/30-things-ive-learned-in-30-years/</link>
		<comments>http://zomigi.com/blog/30-things-ive-learned-in-30-years/#comments</comments>
		<pubDate>Sun, 20 Feb 2011 12:00:28 +0000</pubDate>
		<dc:creator>Zoe Gillenwater</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://zomigi.com/?p=483</guid>
		<description><![CDATA[I'm 30 today. I have a lot left to learn in my life. But here are a few things I do know.]]></description>
			<content:encoded><![CDATA[<p>Inspired by Noah Stokes&#8217; blog post <a href="http://esbueno.noahstokes.com/post/2701294028/thirty-four">Thirty Four</a>, as well as the book <a href="http://www.amazon.com/Encyclopedia-Ordinary-Life-Krouse-Rosenthal/dp/1400080460/"><em>Encyclopedia of an Ordinary Life</em></a> by Amy Krouse Rosenthal that I read recently and loved, I decided to share 30 things, in no particular order, that I&#8217;ve learned in the 30 years of my life.</p>
<ol>
<li>If something electrical isn&#8217;t working, turning it off then on again is a good way to fix it.</li>
<li>Pregnancy affects every piece and function of your body, not just the parts you would expect.</li>
<li>People don&#8217;t wear silver clothes and use jetpacks in the future (which is now, of course), sadly.</li>
<li>Having someone sincerely compliment your child feels even better than a compliment to yourself, surprisingly.</li>
<li>It feels immensely satisfying to peel sunburned skin.</li>
<li>When I say my name on the phone (ZO-ee), people often think I&#8217;m saying Ellie.</li>
<li>When you get an unexpected sum of money, you will usually get an unexpected car or home repair right afterwards, which seems like a bummer, until you realize you&#8217;ve been blessed to have that money to take care of it in the first place.</li>
<li>It doesn&#8217;t feel good to over-eat.</li>
<li>People often don&#8217;t do what&#8217;s in their best interest (see above).</li>
<li>I hate yoga and yoga hates me.</li>
<li>Cheese is not overrated.</li>
<li>Chocolate chip cookies are extremely common, yet it&#8217;s sadly very difficult to find excellent ones.</li>
<li>When excellent chocolate chip cookies cannot be had, mediocre chocolate chip cookies are still hard to resist.</li>
<li>People follow the rules, even when it would be more fun or beneficial not to, an impressive amount of the time.</li>
<li>Time flies when you&#8217;re having fun.</li>
<li>It&#8217;s OK to kill thousands of people in a movie, but don&#8217;t you dare kill the dog. (Unless the whole point of the movie <em>is</em> killing the dog, aka Old Yeller.)</li>
<li>The zombie apocalypse is inevitable.</li>
<li>When you call a customer service phone number, the automated phone recording will make you input your member number. But when you finally get to a real person, they&#8217;ll ask you for it again.</li>
<li>Do a job that you love.</li>
<li>A less-nice house is worth the shorter commute.</li>
<li>You <em>can </em>do it yourself, but paying someone else to do it is more enjoyable.</li>
<li>The tiniest amount of mustard can be detected, and it ruins an entire dish.</li>
<li>Harry Conick Jr is a serial killer. Just wait. It&#8217;ll come out. You&#8217;ll see.</li>
<li>When you have extra money, spend it on trips and activities, not stuff. When you&#8217;re an old lady, you won&#8217;t reminisce about the beautiful couch you once had, but you will think about how much fun you had at Yellowstone. (I learned this one from my paternal grandma, through my mom.)</li>
<li>You <em>could</em> be angry, but wouldn&#8217;t it be more pleasant to be happy?</li>
<li>Everything at Kohl&#8217;s is always on sale, regardless of whether it&#8217;s marked on sale or not.</li>
<li>I&#8217;ll eat anything once. Almost anything.</li>
<li>When coming up with a time estimate for a project, figure out what it would take, then double it. Or triple it.</li>
<li>Some people are reliably unreliable.</li>
<li>It sounds so trite, but it really is all about love.</li>
</ol>
<h3 class='related_post_title'>Related Posts:</h3>
<ul class='related_post'>
<li><a href='http://zomigi.com/blog/im-on-twitter-now-yes-finally/' title='I&#8217;m on Twitter now. Yes, finally.'>I&#8217;m on Twitter now. Yes, finally.</a></li>
<li><a href='http://zomigi.com/blog/a-new-addition/' title='A new addition'>A new addition</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://zomigi.com/blog/30-things-ive-learned-in-30-years/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Videos of screen readers using ARIA</title>
		<link>http://zomigi.com/blog/videos-of-screen-readers-using-aria/</link>
		<comments>http://zomigi.com/blog/videos-of-screen-readers-using-aria/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 19:50:43 +0000</pubDate>
		<dc:creator>Zoe Gillenwater</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[aria]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[screen readers]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://zomigi.com/?p=502</guid>
		<description><![CDATA[Recordings of screen readers using widgets with and without WAI-ARIA can be a good educational resource for why ARIA is important to accessibility. There aren't many out there, but here's what I found.]]></description>
			<content:encoded><![CDATA[<p class="note">Note: This article is out of date. The new post &#8220;<a href="http://zomigi.com/blog/videos-of-screen-readers-using-aria-updated/">Videos of screen readers using ARIA, updated</a>&#8221; contains all the original content that is still relevant plus new content that&#8217;s arisen since this piece was written.</p>
<p>I&#8217;ve been doing a lot of investigation into <a href="http://www.w3.org/TR/wai-aria/">WAI-ARIA</a> for work recently, mainly revolving around educating other developers. I&#8217;ve found a lot of great demos of pages and widgets that use ARIA, but not too many videos of screen readers using said widgets. This is a shame, because it&#8217;s often hard to understand the impact of ARIA without hearing how a screen reader announces the content both without and with ARIA in place, and not many people have or know how to use screen readers. I can certainly show developers who are accessibility-newbies the ARIA demos, but their accessibility benefits aren&#8217;t that clear without a recording of a screen reader using them and their non-ARIA counterparts.</p>
<p>Nevertheless, I was able to find a few videos of screen readers using ARIA, and I wanted to share the links here. I&#8217;m willing to bet there are more out there—it&#8217;s just hard to find them, since simply searching for &#8220;aria&#8221; on YouTube will get you a bunch of videos of people singing opera, not screen readers! So if you know of others, please let us know in the comments.</p>
<p><span id="more-502"></span>This first video is the best, as it shows a page without and then with <a href="http://www.w3.org/TR/wai-aria-practices/#docmgt">ARIA live regions</a> enabled, as well as the difference between polite and rude notifications.</p>
<iframe width="480" height="385" src="http://www.youtube.com/embed/9nZnTdSAkH0" frameborder="0" type="text/html"></iframe>
<p><a href="http://www.youtube.com/watch?v=9nZnTdSAkH0">ARIA Live Regions Screen Reader Demo</a></p>
<p><a href="http://developer.yahoo.com/yui/">YUI</a> has ARIA versions of several of their widgets, and each has a video of a screen reader using it:</p>
<ul>
<li><a href="http://video.yahoo.com/watch/5595263/14686277">YUI 3 Beta 1 ARIA Menu Button</a></li>
<li><a href="http://video.yahoo.com/watch/5595254/14686262">YUI 3 Beta 1 ARIA Tabview</a></li>
<li><a href="http://video.yahoo.com/watch/5595217/14686161">YUI 3 Beta 1 ARIA Toolbar</a></li>
<li><a href="http://video.yahoo.com/watch/4627865/12374597">ARIA-enabled Alert dialog</a></li>
<li><a href="http://video.yahoo.com/watch/4561284/12214507">Example Page Using YUI Grids And ARIA Landmark Roles</a></li>
<li><a href="http://video.yahoo.com/watch/4497444/12052104">Menu Button Using The &#8220;activedescendant&#8221; Property</a></li>
<li><a href="http://video.yahoo.com/watch/4497181/12051469">Screen reader accessible Menu Button</a></li>
<li><a href="http://video.yahoo.com/watch/4487975/12030121">Menu Button Using Roaming TabIndex Technique</a></li>
<li><a href="http://video.yahoo.com/watch/4059872/10967271">YUI MenuNav Node Plugin using ARIA</a></li>
<li><a href="http://video.yahoo.com/watch/3609568/9957126">Using the Carousel ARIA Plugin</a></li>
<li><a href="http://video.yahoo.com/watch/3608798/9955360">Using the Menu ARIA Plugin</a></li>
<li><a href="http://video.yahoo.com/watch/3608783/9955344">Using the Container ARIA Plugin</a></li>
<li><a href="http://video.yahoo.com/watch/3608716/9955201">Using the Button ARIA Plugin</a></li>
</ul>
<p>Unfortunately none of the YUI videos demonstrate what the user would hear were it not for the addition of ARIA, but they&#8217;re interesting nonetheless.</p>
<h3>Update 2/17/11:</h3>
<p>A couple comments pointed me to some additional videos of screen readers using ARIA.</p>
<p>Lucica Ibanescu <a href="http://cssgallery.info/how-screen-readers-speak-a-page-with-html5-and-aria/">tested a page</a> with and without <a href="http://www.w3.org/TR/wai-aria/roles#landmark_roles">ARIA landmark roles</a> and recorded NVDA, JAWS, and Window-Eyes using both versions. Here&#8217;s the version with the ARIA landmarks:</p>
<iframe width="480" height="385" src="http://www.youtube.com/embed/LP3zLrOjQSY" frameborder="0" type="text/html"></iframe>
<p>Aaron Gustafson also has a video of his great <a href="http://vimeo.com/10489058">TabInterface widget being read by NVDA</a>.<br />
<h3 class='related_post_title'>Related Posts:</h3>
<ul class='related_post'>
<li><a href='http://zomigi.com/blog/videos-of-screen-readers-using-aria-updated/' title='Videos of screen readers using ARIA, updated'>Videos of screen readers using ARIA, updated</a></li>
<li><a href='http://zomigi.com/blog/web-accessibility-presentation-resources/' title='Web accessibility presentation and resources'>Web accessibility presentation and resources</a></li>
<li><a href='http://zomigi.com/blog/a-few-links-css-and-accessibility/' title='A few links: CSS and accessibility'>A few links: CSS and accessibility</a></li>
<li><a href='http://zomigi.com/blog/media-queries-presentation/' title='Media queries presentation at indieconf'>Media queries presentation at indieconf</a></li>
<li><a href='http://zomigi.com/blog/css3-book-launch-event/' title='CSS3 book launch event'>CSS3 book launch event</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://zomigi.com/blog/videos-of-screen-readers-using-aria/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>

