<?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>AlastairC &#187; Browsers</title>
	<atom:link href="http://alastairc.ac/category/browsers/feed/" rel="self" type="application/rss+xml" />
	<link>http://alastairc.ac</link>
	<description>Kything web interactions</description>
	<lastBuildDate>Thu, 12 Apr 2012 22:34:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Relative pixels</title>
		<link>http://alastairc.ac/2012/04/relative-pixels/</link>
		<comments>http://alastairc.ac/2012/04/relative-pixels/#comments</comments>
		<pubDate>Sat, 07 Apr 2012 13:55:32 +0000</pubDate>
		<dc:creator>AlastairC</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Front-end code]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://alastairc.ac/?p=819</guid>
		<description><![CDATA[Layout methods in web design have gone through a transition in the last few years, unfortunately we're still using floats a lot, but flexible layouts have made a comeback in the form of responsive design - which is great. Recently though, I have been puzzled by people suggesting that we should use EMs for layout...]]></description>
			<content:encoded><![CDATA[<p>Layout methods in web design have gone through a transition in the last few years, unfortunately we&#8217;re still using floats a lot, but flexible layouts have made a comeback in the form of responsive design &#8211; which is great.</p>
<p>Recently though, I have been puzzled by people suggesting that we should use EMs for layout, for two main reasons:</p>
<ul>
<li>Browsers translate EMs to pixels anyway, so why add a layer of abstraction?</li>
<li>It is actually difficult for users to change the text size in browsers these days, so why do people think that EMs vary in a useful way?</li>
</ul>
<p>In this article from <a href="http://blog.cloudfour.com/the-ems-have-it-proportional-media-queries-ftw/">Cloudfour on EM media queries</a>, Lyza Gardner notes that the EM based media queries worked with zoom (in Webkit) and not with pixels.</p>
<p>However, that&#8217;s <a href="/2012/01/zooming-bug-in-webkit/">a bug in webkit</a>. If you try the same in Firefox/IE/Opera, pixel based media queries work great with zoom. It just happens that <a href="https://bugs.webkit.org/show_bug.cgi?id=41063">a webkit bug for zooming EM based media queries</a> has had some work, but not for pixels.</p>
<blockquote cite="http://blog.cloudfour.com/the-ems-have-it-proportional-media-queries-ftw/"><p>We noted that pixel measurement and divided it by the rough baseline of 16px to arrive at our em units. There may well be a better way to do this math, but this seems to do the trick so far.</p></blockquote>
<p>If and when the bug in webkit is fixed, there would be no need for that <span lang="en-gb">maths</span>, just note the pixel value!</p>
<p>Pixels (that is to say, CSS pixels) have always been a <a href="http://joeclark.org/appearances/atmedia2005/atmedia-NOTES-2.html#code-185">relative unit</a>, but with new devices coming out that have higher (physical) pixel densities the relativeness is more obvious than ever.</p>
<p>There are some issues at the moment that can be worked around by using EMs, as shown in <a href="http://www.alistapart.com/articles/a-pixel-identity-crisis/">the Alistapart article</a>. However, I think devices like the Kindle Fire are going to have to catch up and use CSS-pixels rather than hardware pixels. My Android phone does a great job of this, most websites have reasonable sized text and the site designers haven&#8217;t had to  jump through hoops.</p>
<p>Long term I bet that <strong>the pixel will be the most useful and consistent relative unit</strong>.</p>
<p>The people in the best position to decide what a (CSS) pixel should be on a device, are the people making the device. There are simply too many devices to test your website with; if web designers can&#8217;t rely on CSS pixels working across devices then those devices are going to loose out.</p>
<p>Device makers are going to have to make &#8216;normal&#8217; sites readable and useful, so CSS pixels will need to be relative to the screen size rather than pixel density. This will be equally important on TV displays, where the resolution is quite high, but the distance from screen to eye is greater. So for TVs CSS pixels could vary by TV size even though they all have 1920 pixel wide resolutions (for HD screens).</p>
<p>Lets just make sure when we talk about pixels in web design, we are talking about CSS pixels.</p>
<hr />
<h2 id="pictures">Sidenote &#8211;  foreground pictures</h2>
<p>Most things in web design scale to higher pixel-density displays nicely, for example, pixel sized text and css borders. Background images in the CSS can be adjusted with media queries, so you could have different background images depending on the pixel-density. (<a href="http://www.lukew.com/ff/entry.asp?1142">LukeW has some good resources</a> on workarounds.)</p>
<p>Where the water is murkier is foreground pictures. We can scale down larger images with CSS, but that doesn&#8217;t affect the file size, so someone on a mobile connection might still get a 1MB image scaled down to 200px.</p>
<p>Something like <a href="http://adaptive-images.com/">Adaptive Images</a> is probably the best solution to this at the moment, but I do wonder if it could be more automatic?</p>
<p>Progressive JPGs appear to offer a solution: You provide the biggest image as a progressive JPG (e.g. 3000px wide), and set the (CSS) pixels width in the HTML or CSS. The browser then downloads a sufficient amount of pixels to meet the device&#8217;s pixel density.</p>
<p>This thought was triggered by this <a href="http://duncandavidson.com/blog/2012/03/photography_on_retina">example of photography on the iPad 3</a>. However, to extend that idea, wouldn&#8217;t it be great if you could just use one image for every size from thumbnails up?</p>
<p>Having tried a quick test, unfortunately browsers (currently) download all the information, not just enough to fill the current size. Still, <em>could</em> it work? Is it worth considering?</p>
]]></content:encoded>
			<wfw:commentRss>http://alastairc.ac/2012/04/relative-pixels/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Zooming bug in Webkit</title>
		<link>http://alastairc.ac/2012/01/zooming-bug-in-webkit/</link>
		<comments>http://alastairc.ac/2012/01/zooming-bug-in-webkit/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 00:08:12 +0000</pubDate>
		<dc:creator>AlastairC</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Front-end code]]></category>
		<category><![CDATA[media queries]]></category>
		<category><![CDATA[responsive design]]></category>
		<category><![CDATA[zoom]]></category>

		<guid isPermaLink="false">http://alastairc.ac/?p=786</guid>
		<description><![CDATA[<img class="alignleft size-thumbnail wp-image-794" title="Boston globe zoomed in Chrome" src="http://alastairc.ac/wp-content/uploads/2012/01/boston-globe-chrome-200-150x108.png" alt="Boston globe zoomed in Chrome" width="150" height="108" />I've noticed a bug in Webkit browsers that impacts accessibility: Zooming in does not trigger media queries. Responsive design techniques can really help people who zoom in with their browser, but not in Chrome or Safari at the moment.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve noticed a bug in Webkit browsers (Chrome and Safari) that impacts accessibility: Zooming in does not trigger media queries.</p>
<p>To show the effect, take a recent responsive design such as the <a href="http://bostonglobe.com/">Boston Globe</a> and zoom in. In Firefox, Internet Explorer or Opera and it behaves how I expected, the media-queries trigger and the layout adapts:</p>
<p><a href="/wp-content/uploads/2012/01/boston-globe-ff-both.png"><img class="aligncenter size-full wp-image-792" title="Boston Globe Firefox screenshots" src="http://alastairc.ac/wp-content/uploads/2012/01/boston-globe-ff-both-small.png" alt="Two screen shots of the boston globe site at different zoom levels." width="500" height="187" /></a></p>
<p>&nbsp;</p>
<p>However, when you try the same thing with Chrome or Safari, the zoom works (text and images get bigger), but all within the same layout:</p>
<p><a href="/wp-content/uploads/2012/01/boston-globe-chrome-both.png"><img class="aligncenter size-full wp-image-793" title="Boston Globe Chrome screenshots." src="http://alastairc.ac/wp-content/uploads/2012/01/boston-globe-chrome-both-small.png" alt="Two screenshots using Chrome, where the zoomed in version has a lot of overlapping elements." width="500" height="182" /></a></p>
<p>&nbsp;</p>
<p>NB: I think it is around 200% zoom, but it may be a little off.</p>
<p>It gets even more obvious when you scroll down, as you have huge text in narrow columns.</p>
<h2>Accessibility</h2>
<p>It looks like a bug, but you might be asking what effect that has on accessibility? The main impact is on people with mild to moderate visual impairment who use browser controls to increase the visibility of websites.</p>
<p>The browser landscape has changed a lot in the last few years, including how browsers zoom. In ye-olde days most browsers allowed you to increase the text size. Now the default method across virtually all browsers is to &#8220;zoom&#8221;, which increases the size of <em>everything</em>.</p>
<p>Zoom works well for people who need things a bit bigger unless you immediately get <strong>horizontal scrolling</strong>. That is why <a href="http://www.alistapart.com/articles/responsive-web-design/">responsive designs</a> (which re-flows the layout at smaller resolutions) work well for zooming, because the layout adapts to the available width.</p>
<h2>What is a zoomed pixel?</h2>
<p>I don&#8217;t know what the root cause is, however, from a front-end development point of view it is as though Firefox and Internet Explorer increase the effective pixel size, so when you zoom in there are less pixels in the same area. Webkit does not seem to take the same approach.</p>
<p>It is not event-related, as reloading the page does not trigger the media queries (except the edge-case described below). Overall it is very odd, because the reported pixel size of the window does change, at least for JavaScript (<a href="/testing/window_sizing.html">test example</a>).</p>
<p>Mobile Webkit uses a different style of zooming, as when you &#8216;zoom in&#8217; the window stays the same, but your view zooms in without affecting the layout. I wonder if this is a conflicting method?</p>
<p>Another oddity is the difference when using EMs. I created a <a href="/testing/media-query-width.html">simple test case of max-width media queries</a> in pixels and EMs. If you zoom in so the page reports less than 500px of width, neither triggers. However, if you then refresh the page, the EM based query (only) does trigger. Bizarre, but another facet to the bug(s).</p>
<p>I suspect that Google is aware of some issues to do with this, otherwise you wouldn&#8217;t get a red-banner warning if you zoom in on a Google Doc:</p>
<p><a href="/wp-content/uploads/2012/01/Good-doc-warning.png"><img class="aligncenter size-medium wp-image-790" title="Google doc warning" src="http://alastairc.ac/wp-content/uploads/2012/01/Good-doc-warning-300x107.png" alt="Screenshot of a blank Google document with a red banner saying this zoom level is not supported." width="300" height="107" /></a></p>
<p>It might not affect many people at the moment (although that is debatable), but Chrome is rapidly gathering market share, so either it will affect people or it reduces Webkit browsers usefulness on the desktop.</p>
<p>I&#8217;m not in the Webkit browser world, so my question is: where&#8217;s the best place to report this?</p>
]]></content:encoded>
			<wfw:commentRss>http://alastairc.ac/2012/01/zooming-bug-in-webkit/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>The &#8220;Open Web Stack&#8221; &#8211; Snappy acronym needed</title>
		<link>http://alastairc.ac/2011/01/the-open-web-stack-snappy-acronym-needed/</link>
		<comments>http://alastairc.ac/2011/01/the-open-web-stack-snappy-acronym-needed/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 18:13:50 +0000</pubDate>
		<dc:creator>AlastairC</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://alastairc.ac/?p=759</guid>
		<description><![CDATA[<img src="/wp-content/uploads/2011/01/is_it_really_html5.png" alt="The W3C&#039;s new logo for HTML5 with a whacking great question mark next to it." title="HTML5, really?" width="180" height="128" class="alignleft size-full wp-image-761" />Chris Mills at the Web Standards project posted up <a href="http://www.webstandards.org/2011/01/18/regarding-the-html5-logo/">an open letter to the W3C</a> about the new "<a href="http://www.w3.org/html/logo/">HTML5 logo</a>", which I commented on, but it seems comments are off. So here's what I wrote...]]></description>
			<content:encoded><![CDATA[<p><img src="/wp-content/uploads/2011/01/is_it_really_html5.png" alt="The W3C&#039;s new logo for HTML5 with a whacking great question mark next to it." title="HTML5, really?" width="180" height="128" class="alignleft size-full wp-image-761" />Chris Mills at the Web Standards project posted up <a href="http://www.webstandards.org/2011/01/18/regarding-the-html5-logo/">an open letter to the W3C</a> about the new &#8220;<a href="http://www.w3.org/html/logo/">HTML5 logo</a>&#8220;, which I commented on, but it seems comments are off. So here&#8217;s what I wrote:</p>
<p class="cl">Good points, and I certainly agree with not using HTML5 as the umbrella term.</p>
<p>However, I’m not sure <a href="http://adactio.com/journal/4289/">Jeremy’s point</a> that we didn’t need a catch-all term for “HTML4.01 plus JavaScript” is going to help. (We did have DHTML as an umbrella term. Ok, that is a tarnished example, but my point is that people still remember the acronym.).</p>
<p>Presumably the aim of the logo is to let (non-developers) know that a site is built with a certain set of technologies?</p>
<p>So the next question is: <strong>What should the umbrella term be?</strong></p>
<p>I believe Eric Meyer has been using “Open web stack”, which is accurate and works with developers. However, I think we need something a little shorter and snappier (preferably an acronym of 6 letters or less that can be pronounced easily. Like AJAX.).</p>
<p>Something that combines W3C, open, web… the WOW stack? Maybe not, <strong>any other ideas?</strong></p>
<p>We need <em>something else</em>, or HTML5 will become entrenched as the umbrella term.</p>
]]></content:encoded>
			<wfw:commentRss>http://alastairc.ac/2011/01/the-open-web-stack-snappy-acronym-needed/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Are browser-updates a thing of the past?</title>
		<link>http://alastairc.ac/2010/05/are-browser-updates-a-thing-of-the-past/</link>
		<comments>http://alastairc.ac/2010/05/are-browser-updates-a-thing-of-the-past/#comments</comments>
		<pubDate>Wed, 05 May 2010 23:07:38 +0000</pubDate>
		<dc:creator>AlastairC</dc:creator>
				<category><![CDATA[Browsers]]></category>

		<guid isPermaLink="false">http://alastairc.ac/?p=649</guid>
		<description><![CDATA[<img src="/wp-content/uploads/2010/05/chrome_stats_2010-05-05.png" alt="Chrome stats during the upgrade from three to four, they switch between February and March." width="150" class="alignleft" />I noticed something in the browser stats before I noticed it on my laptop - Google's Chrome doesn't ask you about updates. I knew, almost subconsciously, that there was a Google updater programme running. However, I didn't realise the impact it could have on web development, and potentially users as well.]]></description>
			<content:encoded><![CDATA[<p>I noticed something in the browser stats before I noticed it on my laptop &#8211; Google&#8217;s Chrome doesn&#8217;t ask you about updates. I knew, almost subconsciously, that there was a Google updater programme running. However, I didn&#8217;t realise the impact it could have on web development, and potentially users as well.</p>
<p>A small part of StatCounter&#8217;s Global statistics for browser versions caught my eye:<br />
<a href="http://gs.statcounter.com/#browser_version-ww-monthly-200904-201005"><img src="/wp-content/uploads/2010/05/global_stats_2010-05-05.png" alt="Global browser version statistics from StatCounter." title="" class="aligncenter size-full wp-image-650" /></a></p>
<p>You might remember from Jacob Neilson&#8217;s Alert Box that we were <a href="http://www.useit.com/alertbox/990418.html">stuck with old browsers for three years</a>:</p>
<blockquote><p><img src="http://www.useit.com/alertbox/990418_browserversions.gif" alt="Browser usage in the late '90s, showing slow upgrade times."></p>
</blockquote>
<p>With <a href="http://cwilso.com/2010/04/30/the-ie-plateau-a-history-lesson/">IE6&#8242;s plateau</a>, it seemed like things were getting worse. Even Firefox (with more tech-savvy users, we assume) is taking the better part of a year to drop under 5% from the release of a new version.</p>
<h2>The Google Way</h2>
<p>But now there is a new browser in town, with a web application perspective. Let&#8217;s zoom in on Chrome, when it updated from Chrome 3 to 4. Light green is 3, dark green is 4:</p>
<p><img src="/wp-content/uploads/2010/05/chrome_stats_2010-05-05.png" alt="Chrome stats during the upgrade from three to four, they switch between February and March." width="250" class="centered" /></p>
<p>In a month, <strong>Chrome 3 virtually disappeared</strong> (5% down to 0.3%), and Chrome 4 took off.</p>
<p>As a web developer: This is fantastic! No more waiting for users to download, they don&#8217;t even need to think about it. I don&#8217;t need to worry about having multiple browsers installed, because the general population can&#8217;t use old versions.</p>
<p>As a user: It&#8217;s great&#8230; until it breaks. Taking the choice away about <em>when</em> to update a program strikes me as dangerous.</p>
<p>The potential danger is very limited at the moment because Chrome is not bursting with pluggins and isn&#8217;t relied on by anything else. However, pluggins are becoming more popular, and upgrades that break web-apps could be a new problem.</p>
<p>We know how well Microsofts upgrades are received when they break things, if Chrome carries on gaining market-share, is it risking the same issues without even giving people the choice of when to update?</p>
<h2>Update (August 2010)</h2>
<p>This is a consistent approach from Google, the update from 4 to 5 happened just as quickly:</p>
<p><a href="http://gs.statcounter.com/#browser_version-ww-monthly-200908-201007"><img src="http://alastairc.ac/wp-content/uploads/2010/05/chrome-stats.png" title="" alt="Browser stats chart, showing chrome 4 dip to almost nothing, and Chrome 5 take over." width="176" height="184" class="centered" /></a></p>
<p>The line that chrome overtakes in July is IE6 by the way, so Chrome 5 is more popular than IE6 now.</p>
]]></content:encoded>
			<wfw:commentRss>http://alastairc.ac/2010/05/are-browser-updates-a-thing-of-the-past/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Chrome market share</title>
		<link>http://alastairc.ac/2008/09/google-chrome-market-share/</link>
		<comments>http://alastairc.ac/2008/09/google-chrome-market-share/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 13:04:02 +0000</pubDate>
		<dc:creator>AlastairC</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://alastairc.ac/?p=381</guid>
		<description><![CDATA[I've seen a few articles recently about Google's Chrome browser market share, some sites seem to have had quite a lot of visits from people using Chrome, which then fell off again. However, these sort of stats are probably missing the point, what sites is it that people are most likely to use Chrome on?]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve seen a few articles recently about Google&#8217;s <a href="http://www.google.com/chrome">Chrome browser</a> market share, some sites seem to have had quite a lot of visits from people using Chrome, which then fell off again. For example:</p>
<blockquote title="Macworld article" cite="http://www.macworld.co.uk/digitallifestyle/news/index.cfm?RSS&amp;NewsID=22906"><p>At the end of its third week of availability, Google&#8217;s Chrome accounted for 0.77% per cent of the browsers that visited the 40,000 sites tracked by Net Applications, down from a 0.85 per cent share the week before.</p></blockquote>
<p>On sites that I have access to, it&#8217;s varied between 0.4% and 2.6%, not particularly climbing or dipping. I heard of others having 8% on the first week after launch, dropping back to 1 or 2% the next week.</p>
<p>However, these sort of stats are probably missing the point, what sites is it that people are most likely to use Chrome on?</p>
<p>I suspect it is Google&#8217;s own sites, or rather <strong>Google&#8217;s applications</strong>.</p>
<p>It is an express aim of the browser to work well on their apps, and for people to be able to create their own &#8216;short-cuts&#8217; to applications.</p>
<p>We seem to be moving away from &#8216;the blue E is the internet&#8217;, to application icons for Google Mail, Reader etc. Perhaps BaseCamp and others as well. That is what I now have on Windows at least.</p>
]]></content:encoded>
			<wfw:commentRss>http://alastairc.ac/2008/09/google-chrome-market-share/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Font-based layouts becoming fashionable?</title>
		<link>http://alastairc.ac/2008/02/font-based-layouts-becoming-fashionable/</link>
		<comments>http://alastairc.ac/2008/02/font-based-layouts-becoming-fashionable/#comments</comments>
		<pubDate>Sun, 03 Feb 2008 20:12:18 +0000</pubDate>
		<dc:creator>AlastairC</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Front-end code]]></category>
		<category><![CDATA[font-size]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[zoom]]></category>

		<guid isPermaLink="false">http://alastairc.ac/2008/02/font-based-layouts-becoming-fashionable/</guid>
		<description><![CDATA[Layouts are becoming an issue again. The (browser) landscape is changing, as are the fashion in layouts, but not really in unison. I can understand giving a greater weight towards design aspects, and maintaining the grid, however, I find the timing curious, as these changes seem likely to be obsolete soon. ]]></description>
			<content:encoded><![CDATA[<p>Layouts are becoming an issue again. The (browser) landscape is changing, as are the fashion in layouts, but not really in unison. Before I continue, I should state that my perspective is not one of a visual designer&#8217;s, so my decisions tend to be weighted towards usability &amp; accessibility.</p>
<h2>EM based layouts becoming more popular?</h2>
<p>Recently <a href="http://www.simplebits.com/about/">Dan Cederholm</a> released his new layout &#8216;<a href="http://www.simplebits.com/notebook/2008/01/31/gridlasticness.html">gridlasticness</a>&#8216;, an EM based layout that expands with your font-size choice.</p>
<p>I&#8217;ve looked at <a href="/2006/05/accessible-layouts/">accessible layouts</a> before, and bemoaned the fact that <a href="/2007/01/elastic-layout-wrong-term/">elastic layouts are mis-named</a>. My main point was that font-based layouts will cause issues for people with visual impairments. When usability testing with people at <abbr title="Royal National Institute of Blind People">RNIB</abbr> centers, a fairly standard setup was an 800 or 1024 width screen, and large fonts.</p>
<p>That means lots of horizontal scrolling. In usability testing I&#8217;ve seen people get really frustrated with horizontal scrolling. Or when they don&#8217;t notice the scrolling, frustrated with trying to do things that should be easy, and are easy if you can see the right side of the screen!</p>
<p>This part of Dan&#8217;s post worries me:</p>
<blockquote cite="http://www.simplebits.com/notebook/2008/01/31/gridlasticness.html" title="Gridlasticness, by Dan Cederholm"><p>Understand that when building an already-wide layout, it’ll get really wide, really fast. That’s OK.  Wide is the new drop shadow.</p>
</blockquote>
<p>If you&#8217;re someone that often needs to adjust your font-size, you&#8217;d be encouraged to tick the &#8220;ignore site&#8217;s font sizes&#8221; setting in IE (or use larger sizing in your prefered browser), and you would immediately get substantial horizontal scrolling:</p>
<p><a href='/wp-content/uploads/2008/02/simplebits_gridlastic.png'><img src='/wp-content/uploads/2008/02/simplebits_gridlastic.png' alt='Simplebits layout when viewed through Firefox 3’s zoom' /></a></p>
<p>I&#8217;m not singling out Dan here, font-based layouts are popping up in quite a few places, such as the new <a href="http://www.odeon.co.uk/">Odeon site</a>. He just happened to draw my attention to it and mention the fashion aspect.</p>
<p>Now, I can understand giving a greater weight towards design aspects, and maintaining the grid (although I wouldn&#8217;t do the same). However, I find the timing curious, as these changes seem likely to be obsolete soon. </p>
<h2>Browser zooming coming of age</h2>
<p>Firefox 3 has a full zoom (rather than text-zoom), and you get pretty much the same effect as the EM based layout. Except that the browser zoom is often better, as (unless it&#8217;s a font-based layout), it can try and fit the page to the viewport.</p>
<p>In a very little testing, Opera&#8217;s version still seems more effective with the fit-to-width option enabled, and of course IE7&#8242;s trails behind with it&#8217;s linear-only zoom. (Side prediction: I suspect that IE8&#8242;s zoom will be better, but not when using IE7&#8242;s rendering.)</p>
<p>The bottom line is, that when these browsers are the mainstream, the differences between pixel and font-sizing becomes academic. Of course, I still find sizing layouts based on the viewport more robust over font or pixels methods, but when browser zooming is standard it will be more difficult to argue.</p>
<p>Ironically <a href="http://web.archive.org/web/20060207024826/http://simplebits.com/">Simplebits old design</a> using percentages works much better with zooming that fits-to width. What&#8217;s the big deal with font-based layouts, what have I missed?</p>
]]></content:encoded>
			<wfw:commentRss>http://alastairc.ac/2008/02/font-based-layouts-becoming-fashionable/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>CMS editable Flash</title>
		<link>http://alastairc.ac/2007/06/cms-editable-flash/</link>
		<comments>http://alastairc.ac/2007/06/cms-editable-flash/#comments</comments>
		<pubDate>Thu, 14 Jun 2007 15:00:02 +0000</pubDate>
		<dc:creator>AlastairC</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Front-end code]]></category>
		<category><![CDATA[PDF / Flash]]></category>
		<category><![CDATA[Usability / IA]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash SEO]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Progressive Enhancement]]></category>

		<guid isPermaLink="false">http://alastairc.ac/2007/06/cms-editable-flash/</guid>
		<description><![CDATA[<img src="/wp-content/uploads/2007/06/defacto_carousel.thumbnail.jpg" class="alignleft" alt="The Defacto-CMS website carousel widget." />With all the fuss over AJAX and Flash accessibility you get, I thought it might be worth outlining the process we used to create a Flash/AJAX widget and highlight one of the advantages you get with this method. It also means that the use of Flash has no impact on your Search Engine Optimisation.]]></description>
			<content:encoded><![CDATA[<p>With all the fuss over AJAX and Flash accessibility you get, I thought it might be worth outlining the process <a href="http://www.nomensa.com">we</a> use and highlight one of the advantages you get with it. (Hint, it&#8217;s in the title.) It also means that the use of Flash has no impact on your Search Engine Optimisation.</p>
<p>Oh, and although I&#8217;m writing this article, much of the implementation (and Flash expertise) is from my colleague and co-author <a href="http://www.stainlessvision.com">Tom Hooper</a>. Any Flash questions will be directed his way!</p>
<h2 id="intro">Intro</h2>
<p>Recently we  re-launched our CMS&#8217;s site, <a href="http://www.defacto-cms.com/">defacto-cms.com</a>, and with it a flashy (in both senses) case study selector. If this were a clients site it probably wouldn&#8217;t be worth the time  for this purpose, but now the framework is in place it will be easy to replicate.</p>
<p>The &#8216;carousel&#8217; navigation widget is only used in the case-studies section at the moment, and it is essentially local navigation for that section. You select a case study, it spins into the center, and if you select it the content below is replaced by that case study&#8217;s information. The visual effect is not 100 miles away from the iTunes &#8216;coverflow&#8217; effect, although there are some subtle differences. It uses the <a href="http://blog.papervision3d.org/">Papervision3D</a> open source ActionScript 3 engine for the 3D effect, plus a fair bit of scripting!</p>
<p>NB: <strong>Don&#8217;t use this in Safari yet!</strong> There&#8217;s a crash-bug we&#8217;ve discovered in Safari affecting the AJAX. You can load and play, but don&#8217;t select a case study with the Flash.</p>
<p><a href="http://www.defacto-cms.com/about-defacto/case-studies.html" title="Go to the Defacto Web site."><img src='/wp-content/uploads/2007/06/defacto_carousel.jpg' alt='The Defacto CMS Flash widget, where selected items spin into focus. Select to go to the site.' /></a></p>
<p>It is worth noting that we needed to use quite a recent version of Flash to get that effect (V9.0.28+). </p>
<h2 id="whats-different">What&#8217;s different?</h2>
<p>I don&#8217;t think there is much new in terms of techniques, although I haven&#8217;t seen people use the content of a page as source for the Flash in this way before. It has also had quite a lot of attention in terms of bullet proofing and making accessible.</p>
<h2 id="the-foundation">The foundation</h2>
<p>The foundation is straight XHTML 1.0, and on a basic browser you get a list of links with images. </p>
<p>The HTML needed to run it is a container <code>div</code>, its content (used in the Flash), and an object which is used to configure the Flash element on the page. This is a very generic method that we will be using for any Flash content, but as an example, for carousel that skeleton is:</p>
<pre><code>
&lt;div class="flash-object" id="landing-proposition-inner"&gt;
&lt;h2&gt;Websites powered by Defacto include...&lt;/h2&gt;
&lt;ul&gt;
 &lt;li&gt;&lt;a href="page1.html"&gt;
&lt;img alt="Organisation website screenshot" src="shot1.gif" /&gt;Organisation Name&lt;/a&gt;
&lt;/li&gt;
&lt;!-- more items --&gt;
&lt;/ul&gt;
&lt;object&gt;
	&lt;param value="/defacto/live/swf/carousel.swf" name="swfLocation" /&gt;
	&lt;param value="200" name="height" /&gt;
	&lt;param value="#0E3E80" name="bgColour" /&gt;
	&lt;param value="url" name="sendMode" /&gt;
	&lt;param value="9" name="reqMajorVer" /&gt;
	&lt;param value="0" name="reqMinorVer" /&gt;
	&lt;param value="28" name="reqRevision" /&gt;
&lt;/object&gt;
&lt;/div&gt;
</code></pre>
<h3 id="what-the-scripts-do">What the scripts do</h3>
<p>A JavaScript script is used to embed the actual Flash into the page, in broad strokes, the page loads and the script then:</p>
<ol>
<li>Runs, if you have a fairly recent browser (we used <a href="http://www.jquery.org/">jQuery</a>, so it matches Yahoo!&#8217;s graded browser support table fairly closely).</li>
<li>Checks the version of Flash that you have, and either:
<ul>
<li>Replaces the content of the container <code>div</code> with the Flash, or</li>
<li>Adds a small &#8220;Would you like to upgrade your Flash&#8221; link.</li>
</ul>
</li>
<li>If the Flash is added, the current URL and container ID is passed to the Flash.</li>
</ol>
<p>The Flash then loads, then displays the carousel using the images and links from the URL and ID it was sent. When a case study is selected, the Flash calls a JavaScript function to replace the content of the page (using AJAX).</p>
<h2 id="reasoning">Reasoning</h2>
<p>If I were you, there would be several questions going through my mind: </p>
<p>Question: Why use AJAX?<br />
It prevents you having to re-load the Flash each time you view a case study. Even cached, it&#8217;s doesn&#8217;t load instantly, and this way you don&#8217;t have to sit through the initial animation again and again</p>
<p>Question: Flash has to load the page itself to get the content, why not pass the content from the JavaScript to Flash?<br />
We tried that, but it seemed very CPU intensive, and given that the nature of the widget is already CPU intensive, we steered away from that. Although it may mean loading the thumbnails twice, they should be cached for the second load. In our initial testing, the caching/loading differed between browsers:</p>
<ul>
<li>Firefox loaded the page fully before the Flash, which is strange, so Flash gets the cached images.</li>
<li>IE seems to load the Flash and page simultaneously, so the first request for the images is usually from Flash.</li>
</ul>
<p>Technically as the images are removed from the page when the DOM is ready, they shouldn&#8217;t all load, but I can&#8217;t confirm this yet.</p>
<p>Question: Why not do the Flash version detection in the Flash?<br />
In the case of Flash not being installed, you either get a warning from the browser, or a broken plugin display. There is also a problem with signposting users what to do next, as you end up with dodgy inaccessible buttons or messages in Flash. Since the AJAX interaction requires JavaScript anyway, we decided to use JavaScript detection to deliver a much smoother user experience.</p>
<h2 id="progress-enhancement">Progressive layering / enhancement</h2>
<p>The easiest way to describe the layering is to describe the progressive enhancement, i.e. what you get with what capabilities the browser has:</p>
<dl>
<dt>Basic browser (no CSS or JavaScript)</dt>
<dd>An HTML list (<code>ul</code>) of standard links that work and image thumbnails. </dd>
<dt>Standard browser without JavaScript support</dt>
<dd>An HTML list of links that work. (Images are hidden with CSS, as they are too big when you have the layout in place.)</dd>
<dt>Standard browser with JavaScript, but without the required version of Flash</dt>
<dd>An HTML list of links, and a little link at the bottom of the area suggesting you update Flash.</dd>
<dt>Standard browser with JavaScript and required Flash version</dt>
<dd>The Flash carousel version, using AJAX to load the content.</dd>
</dl>
<p>In the first version the &#8220;has JavaScript but not Flash&#8221; condition used AJAX to load the content, which seemed like a more even step. However, the accessibility and browser support issues mean that the weak point is really scripting (AJAX), not Flash.</p>
<h2>Benefits</h2>
<p>There are several advantages to this whole method that appealed to us:</p>
<ul>
<li>The method scales up. The first time we tested this was for a micro-site that replaced the whole site with Flash.</li>
<li>Search Engine Optimisation (SEO). Since your content is well structured XHTML, Google doesn&#8217;t even know you&#8217;re using Flash.</li>
<li>The presentation in Flash can be very different from HTML, even with the same source content. (Caveat: the more Flash elements you layer on top of the source content, the less flexible the content becomes.)</li>
<li>Flash can call JavaScript functions to interact with other parts of the page, so you can still use (X)HTML when it is best suited to the content.</li>
<li>You can have multiple Flash instances on the same page, each with it&#8217;s own variables.</li>
<li>It is easy to turn on/off, bulletproofing the accessibility.</li>
<li>No duplication of content, you don&#8217;t have to update two things.</li>
<li>You can edit the content within any XHTML capable CMS.</li>
</ul>
<p>I&#8217;ll repeat that for those at the back: <strong>You can edit the content in a CMS</strong>, not one coded specifically for editing Flash or custom XML files.</p>
<p>Obviously, you can&#8217;t add or change functionality, but in this case you can add case studies (links and their thumbnails), and in other cases you could change the content of pages (i.e. text and images).</p>
<h2 id="accesibility-issues">Accessibility issues</h2>
<p>We are tripping several alarm bells in terms of accessibility by using Flash and AJAX, but actually it wasn&#8217;t that hard.</p>
<p>The pages work fine without JavaScipt. The AJAX loads on a keypress of enter, so screen readers will generally update the virtual buffer. There could be a problem if the content takes a little while to load, but adding Juicy studio&#8217;s <a href="http://juicystudio.com/article/improving-ajax-applications-for-jaws-users.php#theupdatefunction">update buffer</a> function should resolve that.</p>
<p>For the the Flash you just have to put in the work (and knowledge and testing) to ensure that it works with both visual keyboard access and with screen readers. You also have to work out what should be shown to screen readers in what order for it to make sense. We did find a bizarre bug in JAWs (8.0 original version) where the <em>whole pages content</em> was repeated when it entered the Flash, but applying the later patches to JAWs fixed that.</p>
<h3 id="user-control">User control</h3>
<p>One of the basic assumptions we accepted is that people may not be able to, or want to, use this feature. Therefore we added a &#8220;Disable scripts&#8221; option at the top. This essentially turns off the advanced scripted features such as the flash, but leaves the cosmetic ones in place (e.g. adding rounded corners).</p>
<p>This is very useful for older screen readers, which may understand just enough JavaScript to get into trouble. At the moment, it&#8217;s also useful for Safari, as we&#8217;ve encountered quite a severe bug when it encounters the AJAX function. </p>
<h2 id="usability">Usability additions</h2>
<p>Usurping the innate page model of the web comes at a cost, some of which we&#8217;ve worked around. If you just use the Flash, it&#8217;s fine, but if you switch between navigation methods it&#8217;s a little clunky as the Flash is not reloaded.</p>
<p>The aspects we did work around were primarily changing the page title when you load a new case study, and providing a mechanism to get back to the index page (in the breadcrumbs).</p>
<p>We also made the visual aspect somewhat more HTML-like, so that a case study has underlined text &#8220;View case study&#8221;, then when you select it that disappears. Adding this made the keyboard/screen reader aspects easier to deal with as well.</p>
<h2 id="improvements">Improvements still to make</h2>
<p>There are a few things we would still like to adjust, the first of which has to be the Safari bug we&#8217;ve tripped. It actually crashes Safari! Unless we can track it down, we might have to add an &#8220;if browser is Safari then don&#8217;t run&#8221; type rule. JavaScript debugging in Safari isn&#8217;t that easy, and yes messieurs <a href="http://www.wait-till-i.com/index.php?p=366">Christian</a> &amp; <a href="http://www.quirksmode.org/blog/archives/2007/01/again_javascrip.html">PPK</a>, you can say &#8220;I told you so&#8221;. However, it would have taken an awful lot longer than we had (1.5 days on JS) to complete it without a library.</p>
<p>Although we&#8217;ve restored the titles to individual (AJAX) pages, we haven&#8217;t re-enabled bookmarking of individual pages. Although search engines will have no trouble finding the pages, people will have difficulty bookmarking individual case studies.</p>
<p>I&#8217;m also not convinced that the double click aspect (i.e. one to move the case study to the center, a second to select it) is the way to go. Some people expect the first click to select a new page, some don&#8217;t.</p>
<p>Which did you expect?</p>
]]></content:encoded>
			<wfw:commentRss>http://alastairc.ac/2007/06/cms-editable-flash/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Tabindex for keyboard accessibility</title>
		<link>http://alastairc.ac/2007/05/tabindex-for-keyboard-accessibility/</link>
		<comments>http://alastairc.ac/2007/05/tabindex-for-keyboard-accessibility/#comments</comments>
		<pubDate>Sun, 20 May 2007 00:47:52 +0000</pubDate>
		<dc:creator>AlastairC</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Front-end code]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[keyboard-accessibility]]></category>
		<category><![CDATA[tabindex]]></category>

		<guid isPermaLink="false">http://alastairc.ac/2007/05/tabindex-for-keyboard-accessibility/</guid>
		<description><![CDATA[Steve Falkner did a good presentation to the <acronym title="Web Standard Group">WSG</acronym> last week, outlining how and why AJAX can work with screen readers. One tiny little point I wanted to pick up on was whether it was a waste of time to update AJAX content if you've attached an event to an element that isn't a link or form control. ]]></description>
			<content:encoded><![CDATA[<p>Steve Falkner did a good presentation to the <a href="http://muffinresearch.co.uk/wsg/" title="Web Standard Group">WSG</a> last week, outlining how and why AJAX can work with screen readers (primarily Jaws and Windows eyes).</p>
<p>One tiny little point I wanted to pick up on was whether it was a waste of time to update AJAX content if you&#8217;ve attached an event to an element that isn&#8217;t a link or form control. The reason being that you can&#8217;t tab to these elements anyway so they aren&#8217;t keyboard accessible.</p>
<p>However, there is a trick I uncovered out a few years ago, that has since been included into the <a href="http://www.w3.org/TR/aria-roadmap/#focus">ARIA spec</a>: <code>tabindex="0"</code></p>
<p>I used a value of -1 originally (around 2002?) to prevent screen reader users getting caught in Flash, as before the accessibility improvements you could easily get stuck in Flash elements.</p>
<p>However, although not strictly legitimate HTML (from memory values are supposed to be from 0 and up), it functions as a cross-browser mechanism for allowing keyboard focus.</p>
<p>Based on <a href="http://juicystudio.com/article/screen-reader-mouseover.php">Steve &#038; Gez Lemon&#8217;s work</a>, I created a little <a href="http://alastairc.ac/testing/voiceover/javascript/click-event-para.html">test-case</a> that uses a simple paragraph that you can tab to and select (with the &#8216;enter&#8217; key), or click on it to activate.</p>
<p>This actually works quite well across some browsers now: IE 5.0+, and Firefox 1+. (It also works with Safari &#038; Voiceover, although you have to be told to select it, there is no notification.)</p>
<p>If other browsers support soon, the principle is:</p>
<dl>
<dt>No tabindex</dt>
<dd>Default (current) behaviour of the element.</dd>
<dt><code>tabindex="-1"</code></dt>
<dd>Not in tab order, but is focusable via scripts.</dd>
<dt><code>tabindex="0"</code></dt>
<dd>In tab order based on the location in the source order.</dd>
<dt><code>tabindex="30"</code> (any number over 0)</dt>
<dd>In tab order at the specified location, before anything without tabindex or with a tabindex of 0.</dd>
</dl>
<p>To be clear, it probably isn&#8217;t a good idea to use this, any command the user can select should probably be a based on a link or form control such as a button. Also, changing the tab order by <a href="http://www.netmag.co.uk/zine/the-accessibility-test/www-huntforproperty-ie">using positive values is often very confusing</a>, as it won&#8217;t match the reading order of the page. Still, a useful little trick to have in mind.</p>
<p>I almost mentioned this technique at the presentation, but Steve was so let down by technology (JAWs and projectors don&#8217;t mix!) it seemed ungrateful to do so. Plus I wanted to check it worked first.</p>
]]></content:encoded>
			<wfw:commentRss>http://alastairc.ac/2007/05/tabindex-for-keyboard-accessibility/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Closing the gap &#8211; User Agent improvements</title>
		<link>http://alastairc.ac/2007/05/user-agent-improvements/</link>
		<comments>http://alastairc.ac/2007/05/user-agent-improvements/#comments</comments>
		<pubDate>Thu, 17 May 2007 22:53:48 +0000</pubDate>
		<dc:creator>AlastairC</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[assistive technologies]]></category>
		<category><![CDATA[user-agents]]></category>

		<guid isPermaLink="false">http://alastairc.ac/2007/05/user-agent-improvements/</guid>
		<description><![CDATA[<img src="/wp-content/uploads/2007/05/ff_accessbar-navigation.thumbnail.gif" alt="screen shot from an accessibility extension. " class="alignleft" /> Following up on the responsibilities in accessibility, some of the most critical gaps at the moment are on the User Agent (UA) end. This post highlights the things I think would make the most difference to people's experience of accessibility on the web.]]></description>
			<content:encoded><![CDATA[<p>Following up on the <a href="/2007/05/responsibilities-in-accessibility/">responsibilities in accessibility</a>, some of the most critical gaps at the moment are on the User Agent (UA) end. Improvements here would actually make the most difference to accessibility in general on the web. This post highlights the things I think would make the most difference to people&#8217;s experience of accessibility on the web. If I get into too much detail for you, skip to <a href="#profiles">Profiles</a>, that&#8217;s the most important aspect.</p>
<h2 id="sizing-layout-colours">Sizing, layout and colours</h2>
<h3>Text sizing vs zoom</h3>
<p>Text sizing is easy to set, easy to adjust, and easy to break a web site by making adjustments!</p>
<p>The site&#8217;s responsibility is to <a href="/2007/02/wcag-2-response-on-relative-units/">ensure that the layout copes with an increase in text-size</a>, which has been made part of WCAG 2. (In hind site, 200% of very very small isn&#8217;t going to be partcularly big, but the chances are that the layout will have similarly small margin for expansion as well.) Much of it is good practice, and for a &#8216;how-to&#8217; check out Dan Cederholm&#8217;s <a href="http://www.simplebits.com/publications/bulletproof/">Bulletproof web design</a>.</p>
<p>The user already has control over the text size, but it isn&#8217;t very usable. A recent extension for Firefox shows a great example of how it should work:</p>
<blockquote cite="http://urandom.ca/nosquint/" title="The NoSquint extension for Firefox, from urandom.ca"><p>
<a href='/wp-content/uploads/2007/05/nosquint-chrome.jpg'><img src='/wp-content/uploads/2007/05/nosquint-chrome.jpg' alt='Two buttons integrated with the Firefox browser interface, showing larger and smaller "A"s.' /></a>
</p>
</blockquote>
<p>In this case, it also saves the preference on a per-site basis. It might even be <a href="http://wiki.mozilla.org/Site-Specific_Preferences#Text_Zoom">included in Firefox 3</a> by default.</p>
<p>That&#8217;s good, it will help for people with minor visual impairments, or those with very high resolution displays. However, it isn&#8217;t enough for many. Opera&#8217;s full zoom (images and layout included) is a very powerful mechanism for coping with small text and layouts that won&#8217;t leave you squinting at images. (It would be even better if it could handle increasing the system fonts as well, the text in the zoom control is cut off on my PC.)</p>
<p><a href="/wp-content/uploads/2007/05/opera_zoom_feature.png"><img src="/wp-content/uploads/2007/05/opera_zoom_feature.png" alt="A portal site shown in the Opera browser at 200% size, where everything is increased, but fitted into the screen’s width." class="centered" /></a></p>
<p><a href="/2006/11/browser-zoom-comparison/">Opera&#8217;s zoom is better</a> than other browser&#8217;s versions because you can turn on or off the &#8216;fit to width&#8217; option, as well as setting global defaults. If you use a massively increased size (over 400%), it will switch to a one-column zoom layout. Apart from making users choose whether they want this functionality when they install, it&#8217;s difficult to see how this function could be improved.</p>
<p>Opera also allows the user to change the styles applied to the page, so you can use high or low contrast colour schemes and remove the layout:</p>
<p><a href='/wp-content/uploads/2007/05/opera_styles_feature.png'><img src='/wp-content/uploads/2007/05/opera_styles_feature.png' alt='The same portal site with white on black text, and the layout removed so it is linear. The drop-down showing the options is also shown.' class="centered" /></a></p>
<p>However, this feature is something of a sledgehammer on a walnut. It pretty much destroys any personality the site had, and some images (with transparencies) will be difficult to read. Given that our <a href="http://presentations.nomensa.com/techshare2005_zoom/">research into Zoom layouts</a> suggested that a simple 2 column layout with well sized contrasting text was the best option for those with mild/moderate visual impairments, it is something that a site could handle better than the UA.</p>
<p>Ideally, a site would provide several alternative styles that still have some personality / branding, and allow the user to choose between them. In fact, the ideal would be that a user sets up (or is forced to choose) a &#8216;profile&#8217; and they automatically get the best layout and colour scheme for them. (See <a href="#profiles">profiles</a> below.)</p>
<p>One thing that can be dealt with fairly well by the user agent is <a href="http://accessites.org/site/2007/05/keyboard-friendly-link-focus/#comment-451">highlighting the keyboard focus</a>. It has even been considered as a <a href="http://diveintomark.org/archives/2006/04/25/new-focus-indicator">core part of Firefox</a>. If a site provides these, great, but the user(-agent) can and should override them if that&#8217;s what the user wants. Given that people who don&#8217;t use the keyboard for navigation will probably never see this, it is probably best for browsers to have highlighting of focus enabled by default, with an option to turn it off.</p>
<h2 id="changes-of-context">Prevent &#8216;changes of context&#8217; or flashing/blinking</h2>
<p>Automatically refreshing or redirecting pages can be confusing, especially if you can&#8217;t take in the whole page at a glance. Flashing and blinking content is an obvious problem for those with epilepsy, and can be a severe distraction for people with cognitive issues. </p>
<p>All of these things can be turned off in the browser, but there are usability and experience problems with doing so across the board. Essentially, the user needs more control, more easily, than they currently have.</p>
<p>The parts are all in place, each problem can be turned off or prevented, but there isn&#8217;t an easy way to do so. <a href="http://firefox.cita.uiuc.edu/index.php">Firefox&#8217;s accessibility toolbar</a> has much of the functionality, but is not an extension aimed at people with disabilities as it includes everything possible, including tests. It also doesn&#8217;t include the required notifications.</p>
<h3>Browser notifications</h3>
<p>If things like automatic refreshes are a problem for the user, they need to be blocked in general, and allowed when the user wants. There are several interaction methods in use for this already, from adding an icon to the status bar, adding a large bar at the top, to pop-up dialogues. Each has a certain level of intrusion, depending on how much the browser developers wanted to interrupt the user. </p>
<p><img src="/wp-content/uploads/2007/05/internet_explorer-bar.gif" alt="Internet Explorer’s warning that you are no longer using Internet Explorer’s &quot;Internet&quot; settings." class="centered"/></p>
<p>I&#8217;m going to assume for the sake of conciseness that each of these methods is accessible, but obviously changing the status of an icon requires you to check, adding a bar (with sound effect) is noticed but can be ignored, and a dialogue requires you&#8217;re attention.</p>
<p>If you&#8217;ve set your browser to ignore pop-ups, redirects and refreshes, how should you be informed?</p>
<dl>
<dt>Pop-up windows</dt>
<dd>This has largely been dealt with by browsers, unwanted pop-ups no longer open new windows in most browsers. The status bar icon is used if anything, but now site&#8217;s generally know not to use unrequested pop-ups.</dd>
<dt>Automatically refreshing pages</dt>
<dd>If a page automatically updates (for a good reason), the chances are you would like to let it &#8211; when <em>you</em> are ready. This would lend itself to the status bar icon or top-bar approaches.</dd>
<dt>Re-directs</dt>
<dd>A slightly trickier one, as in some cases (ahem, Microsoft), you are sent via about 15 re-directs when you login to something. For these cases, you would want to allow re-directs on a site, domain or even time basis (e.g. <code>*.microsoft.com</code> or 5 minutes). This lends itself to the top-bar or pop-up interaction style.</dd>
</dl>
<h2>Animations</h2>
<p>Animations can be very distracting, but they can also be real content, so a broad-brush rule to stop all animation will not be particularly useful. The Firefox extension <a href="http://flashblock.mozdev.org/">Flash block</a> has this covered for Flash, but from the accessibility point of view it would be best applied to all animations, including animated GIFs and any other <code>objects</code>.</p>
<p><a href="/wp-content/uploads/2007/05/flash_block.gif"><img src="/wp-content/uploads/2007/05/flash_block.gif" alt="The adobe flash welcome page shown, except that instead of a square of flash, there is a play button." class="centered" /></a></p>
<p>An option like this where you selectively play what you want is ideal.</p>
<p>A slightly tricker problem is when JavaScript is used to move things around the page. It would be nice to stop large adds being moved over the content, but not to prevent the usability touches that show where a items has disappeared to (e.g. when a program minimises to the OSX dock).</p>
<p>For JavaScript, I would trial the prevention of movement based scripts from working, but put a &#8216;play&#8217; button in a corner of the screen (with an audible beep) when something tries to move.</p>
<h2 id="skip-links">Skip links</h2>
<p>Skip links are one of the few things I recommend people do from WCAG 1&#8242;s priority 3 guidelines. Getting around a page can be quite a time consuming process on a keyboard, whether or not you can see the page, it&#8217;s a linear process.</p>
<p>However, it is something that can be at least partly built into the user-agent. If there are a bunch of links with no non-link content, provide a key command to skip over it (JAWs uses <kbd>N</kbd> for this).</p>
<p>Currently, to provide a better experience the site can provide useful short cuts that make sense to those using a linear device (a screen reader, text browser or small screen device). For example, if your navigation is at the end, a &quot;skip to menu&quot; would be useful. </p>
<p>However, with a site that has a good (and consistent) structure, this is all available now. The Firefox accessibility extension includes several methods of navigating by page structure both visually and for screen reader usage:</p>
<p><a href="/wp-content/uploads/2007/05/ff_accessbar-navigation.gif"><img src="/wp-content/uploads/2007/05/ff_accessbar-navigation.gif" alt="The firefox accessibility extension with the navigation menu selected, show items such as headings, menu &amp; navigation bars, links, forms and tables." class="centered" /></a></p>
<p>If you select the menu and navigation bars option, it highlights the menu bars that it picks up on the page:</p>
<p><a href="/wp-content/uploads/2007/05/ff_accessbar-menu_selection.gif"><img src="/wp-content/uploads/2007/05/ff_accessbar-menu_selection.gif" alt="Menu dialogue selected which then highlights areas of the page that you select, and give access to the links." class="centered"/></a></p>
<p>The whole point of a well structured page is that you can programmatically identify these things, and give them meaningful names for people to use. Which brings us nicely onto the <a href="http://www.w3.org/TR/aria-roadmap/">W3C&#8217;s ARIA</a> work.</p>
<p>In future you should be able to use <a href="http://www.w3.org/TR/aria-roadmap/#landmarks">XHTML role landmarks to improve document navigation</a>, in fact Firefox with the accessibility extension already has some support for this. Once these are reasonably well supported, skip-links become obsolete. A short cut in the meantime would be  <a href="http://www.webstock.org.nz/recordings.php#06">consistent id and class names (Doug Bowman&#8217;s presentation)</a>, as would some of the new elements from <a href="http://dev.w3.org/cvsweb/~checkout~/html5/spec/Overview.html?rev=1.29&#038;content-type=text/html;%20charset=iso-8859-1">HTML5</a>.</p>
<h2 id="accessing-attributes">Accessing useful attributes</h2>
<p>Some elements and attributes are already used, such as <code>lang</code> attributes that can be used by screen readers to automatically switch the speech synthesizer, and <code>title</code>s that provide explanation for abbreviations and form inputs. But there are quite a few that would be useful to add:</p>
<dl>
<dt><code>cite</code></dt>
<dd>On <code>blockquote</code> and <code>q</code> (mainly, but <code>del</code> and <code>ins</code> as well), where the author can provide a reference URL. I make these explicit on this site with JavaScript, adding the cite as a link at the end of the quote, or as an <code>onclick</code> for the <code>q</code>.</dd>
<dt><code>title</code></dt>
<dd>
<p>Titles are available for people with mice, Jaws or Windows Eyes. However the mechanism in screen readers isn&#8217;t that great. For links it is either ignored or replaces the link text (in Jaws), and it&#8217;s generally ignored on most elements.</p>
<p>What you could do with is an audible alert (called an &#8216;audio icon&#8217; by some researchers) each time you find a title, and a keyboard command to read it out.</p>
<p>NB: There would have to be a preference to turn this off, as there are quite a lot of sites <a href="http://www.rnib.org.uk/wacblog/articles/too-much-accessibility/too-much-accessibility-title-attributes/" title="RNIB post on title usage, good despite the IE-centric logic. ">mis-using title</a>.</p>
</dd>
<dt><code>hreflang</code></dt>
<dd>This underused attribute indicates the language of the target URL, and could be used to alert the user that it&#8217;s in a different language.</dd>
<dt>Microformats</dt>
<dd>
<p>Although there isn&#8217;t a mainstream browser that is &#8216;microformat&#8217; enabled by default yet, it would be pretty easy to give an alert when a microformat is encountered, and allow the user to sending it to the appropriate program. For example, in a screen reader it could use an audible alert to say that this element contains a microformat, and the user could interrogate the item to find there is an address, and add the contact details to their address book. </p>
<p>(My favorite example that doesn&#8217;t exist yet: taking a geo-location from a site that you can immediately download to a GPS device and find your way there &#8211; without sight.)</p>
</dd>
</dl>
<p>There maybe other useful attributes (or elements) for assistive technologies to use, any other suggestions?</p>
<p>In terms of responsibility, there is a responsibility on the user to know how to use their technology. I&#8217;ve observed usability testing with someone using JAWs, who came across a perfectly marked up data table, but said that she would contact the site and complain about the accessibility. She didn&#8217;t know how to use tables in JAWs. Of course nothing was said about this during the session, but we did not recommend that the site dispense with tables!</p>
<h2 id="profiles">Profiles</h2>
<p>This is the item that could make the most difference overall: allowing users to <em>easily</em> set up a profile that web sites can access and use to customise the experience.</p>
<p>Ideally this would be part of the browser, where it asks the user on first-loading whether they would like to set preferences to make sites easier to use (or words to that effect). Interestingly, <a href="http://icant.co.uk/">Christian Heilmann</a> had a similar suggestion at the recent <a href="http://muffinresearch.co.uk/wsg/"><acronym title="Web Standards Group">WSG</acronym>-UK</a> meeting, where he suggested that large companies (like Yahoo!, Google &amp; Microsoft) who have central identities for users could allow them to set an option such as &#8220;I use a screen reader&#8221;. It is certainly better than sniffing for assistive technology, which even the creators of <a href="http://osflash.org/flashaid">Flash-aid</a> would only use to give the user the option to opt-in to accessibility enhancements.</p>
<p>This isn&#8217;t a new concept, Kynn Bartlett was <a href="http://www.w3.org/2000/10/DIAWorkshop/bartlett.html">suggesting similar things</a> (using XML/XSL) back in 2000. I see standardised user-profiles as the only realistic way to balance up the responsibilities of the site and user in a usable fashion. The basic principle is that the user-agent sends certain information in the <span class="help" title="Hidden information sent to the web server by the user-agent.">http-request headers</span> which the site can use to customise what the user receives.</p>
<p>To set this up, the user would be presented with the option to customise their experience, and could choose from options like:</p>
<ul>
<li>Increase the text size.</li>
<li>Reduce the columns (where provided by the site).</li>
<li>Reduce the columns anyway.</li>
<li>Use alternative colour schemes when available.</li>
<li>Enforce your own colour scheme.</li>
<li>Prevent animations playing automatically.</li>
<li>Show page navigation options.</li>
<li>Prevent pages updating.</li>
<li>Disable scripting when the site makes this possible.</li>
</ul>
<p>Each one you ticked could then take you to further settings, such as how big should text be, and what your preferred colour scheme is.</p>
<p>The site would then check the user&#8217;s preference and adjust the HTML/CSS/scripts (or other technologies) appropriately. For example, if the user&#8217;s preference is for a light-on-dark colour scheme, the site could have one prepared that works with all the images, which is an issue if the user agent applies a colour scheme regardless. Another example is to disable the scripting when the site accepts that preference (i.e. it&#8217;s done unobtrusive scripting properly).</p>
<p>In this way the user can choose to completely over-ride the site (which is currently possible, just difficult), or use alternative displays when made available (and more usable) by the site.</p>
]]></content:encoded>
			<wfw:commentRss>http://alastairc.ac/2007/05/user-agent-improvements/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Responsibilities in accessibility</title>
		<link>http://alastairc.ac/2007/05/responsibilities-in-accessibility/</link>
		<comments>http://alastairc.ac/2007/05/responsibilities-in-accessibility/#comments</comments>
		<pubDate>Tue, 08 May 2007 21:58:22 +0000</pubDate>
		<dc:creator>AlastairC</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[W3C]]></category>

		<guid isPermaLink="false">http://alastairc.ac/2007/05/responsibilities-in-accessibility/</guid>
		<description><![CDATA[The W3C has defined what to do for accessibility at each 'end' (i.e. client side or web site site), but there is quite a lot of overlap, and scant advice on who <em>should</em> be responsible for what. I'm going to try and show who's responsible now, and where things should go.]]></description>
			<content:encoded><![CDATA[<p>I have drafts of a couple of posts on accessibility topics that I haven&#8217;t been able to finish because they got too complicated. Not because the subject matter was particularly complex, but because they required the reader to start with knowledge of a particular framework.</p>
<p>The W3C has defined what to do for accessibility at each &#8216;end&#8217; (i.e. client side or web site site), but there is quite a lot of overlap, and scant advice on who <em>should</em> be responsible for what.</p>
<p>I&#8217;m going to try and show who&#8217;s responsible now, and where things should go.</p>
<hr />
<p>Note: As a base assumption, I take &#8216;web accessibility&#8217; in the stricter sense of ensuring that <em>people</em> are able to use web sites, regardless of their (dis)ability.</p>
<h2 id="w3c-model">W3C model</h2>
<p>The W3C, with responsibility for shepherding web technologies along a useful path, long ago outlined how things <em>should</em> fit together. Their <a href="http://www.w3.org/WAI/intro/components.php">essential components of accessibility</a> include the User Agent Guidelines for browsers and assistive technologies, the Authoring tool guidelines for Content Management Systems and other tools, and the Web Content Guidelines for developers and site owners.</p>
<blockquote title="Essential Components of Web Accessibility - W3C" cite="http://www.w3.org/WAI/intro/components.php"><p><img src="/wp-content/uploads/2007/05/specs.png" alt="A triangular diagram from the W3C, showing the users, content, and authors at each point. It also shows many of the specs that underline these guidelines." /></p></blockquote>
<p>However, in the late 90&#8242;s when these guidelines were being developed, they were already starting from a very imperfect place. The accessibility of most sites, tools and browsers were appalling. You probably remember that there are many guidelines that start: &#8220;Until user agents&#8221; can do this that or the other. The developer wasn&#8217;t allowed to use pop-ups, client side redirects, or blinking text (amongst other things).</p>
<p>The next version of the guidelines has tried to avoid this, but it&#8217;s interesting that several of the things that they assumed would be fixed at the user-agent end, haven&#8217;t been (e.g. <q title="Web content checkpoint 7.4" cite="http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505/#tech-avoid-flicker">allow users to control flickering</q>).</p>
<p>There is no getting away from the fact that you <strong>must</strong> have standards (or guidelines in W3C speak) for how the various web technologies interact. There are simply too many user-agents for developers to test against. The popular browsers are hard enough to deal with, without the dozens of screen readers, magnifiers, keyboards, voice recognition and other technologies that all create a different experience of a web site.</p>
<p>As <a href="http://www.isolani.co.uk/blog/access/BarCampLondon2AccessibilityPanelThoughts">Mike Davies said</a>, there has to be trust on each side that the other will perform in an expected way. For progress, you need mutually developed standards, as the WHATWG has demonstrated recently by actually making process in advancing HTML.</p>
<h2 id="usability-gap">The usability gap</h2>
<p>Currently, the weight of responsibility for accessibility falls on web site owners, and by proxy, web developers. This is actually harmful for the accessibility of the web in the long term, as it stifles progression.</p>
<p><a href="/wp-content/uploads/2007/04/robin_reliant_spoiler.JPG"><img class="alignright" src="/wp-content/uploads/2007/04/robin_reliant_spoiler.thumbnail.JPG" alt="Robin Reliant, a 3 wheeled car incapable of going fast enough to make use of the attached spoiler." /></a>An obvious example is text-size widgets, a feature on a site that allows the user to change the font-size of the text. In the W3C model, this is superfluous, the user should be able to re-size the text from their browser. In web site accessibility terms, it&#8217;s like a spoiler on a Robin Reliant, unnecessary and in effect useless.</p>
<p>However, there is a <strong>usability gap</strong> at the moment.</p>
<p>You can argue that a text-size widget increases the accessibility of the site because people don&#8217;t know that they can increase the text size in their browser. And, in general, people don&#8217;t. There are many things that user&#8217;s can do to any site (built reasonably well with HTML &amp; CSS), from re-sizing the text to changing or removing the layout, or even applying their own colour scheme. Given the multitude of abilities and preferences there are, this is the only way to have a hope of catering for everyone.</p>
<p>But so few people know how to adapt their user-agents that an impartial observer could conclude that it is reasonable for the site to be responsible these aspects.</p>
<p>But that doesn&#8217;t make it the right approach to the problem, and in this case the problem is cross-site applicability.</p>
<h2 id="all-sites">Best for users across <em>all</em> sites</h2>
<p><img class="alignleft" src="http://alastairc.ac/wp-content/uploads/2007/05/speaker_sm.jpg" alt="Speaker from stereo." />I&#8217;ve spoken before about the <a href="/2006/03/subscription-accessibility/">limiting business models</a> of certain products. If a site with a particularly enthusiastic developer, or a shed load of cash invests in something that improves the experience of the site for a certain population, that&#8217;s great, but should others have to?</p>
<p>If users like a feature on one site because the site becomes easier to read or use, they will miss it (and ask for it) on other sites. But they won&#8217;t get it on all other sites, whether it&#8217;s because other site owners can&#8217;t afford it, don&#8217;t care, or for other reasons. It&#8217;s not scalable.</p>
<p>There are some things that the site owner (and by extension the developer) has to be responsible for, such as the content, and the technology used to create the site.</p>
<p>Some things the user (and their technology) have to be responsible for, such as rendering the content according to the standards, and knowing that you can click links to navigate. (Yes, this used to be an issue in usability testing a few years ago!)</p>
<p>There are a couple of views that tend to highlight where people think this balance should lie. I&#8217;m highlighting extreme versions of these views:</p>
<dl>
<dt>Technical view of accessibility</dt>
<dd>If it works in Lynx (a text browser) it must be accessible.</dd>
<dt>User&#8217;s view of accessibility</dt>
<dd>If something doesn&#8217;t work for everyone (e.g. the <code>title</code> attribute), you shouldn&#8217;t use it.</dd>
</dl>
<p>Neither is &#8216;right&#8217;, but going back to my base assumption, you have to consider what accessibility is.</p>
<h2 id="accessibility-is-usabillity">Accessibility = usability</h2>
<p>A common theme, but if you are familiar with the definition of usability, accessibility fits right in. Usability is:</p>
<blockquote title="ISO 9241-11, Guidance on usability." cite="http://www.usabilitynet.org/tools/r_international.htm#9241-11"><p>the extent to which a product can be used by <strong>specified users</strong> to achieve specified goals with effectiveness, efficiency and satisfaction in a <strong>specified context</strong> of use.</p></blockquote>
<p>In web accessibility, the product is the web site, &#8220;specified users&#8221; are people with disabilities, and the &#8220;specified context of use&#8221; encompasses  their task, knowledge, technology, and ability. Whether you think this is too all-encompassing a definition or not, the bottom line is that a real accessibility issue is when a person (with a disability) can&#8217;t use your site, not necessarily that a certain technology can&#8217;t.</p>
<p>What makes accessibility complex is that different technologies give the person a different view of the same site. That&#8217;s what intrigued me in the first place. There are so many contributing factors at play, from the end-user, their technology (and whether they know how to use it), what the site does, and how that site is produced.</p>
<p>This makes it very difficult to say whether an issue a person has should be fixed by the site, the tools that made the site, the browser/assistive technology, or that the user needs educating. Usability is rarely clear cut, humans are messy and it&#8217;s probably better to either create a standard that can work for all, or accept the current situation.</p>
<h2 id="analysing-the-gaps">Analysing the gaps</h2>
<h3>Site responsibilities</h3>
<p>Working from WCAG 1 &amp; general web standards, these are squarely in the domain of the site. These cannot (usually) be worked around on the user-agent end:</p>
<ul>
<li>Text equivalents.</li>
<li>Using clear language.</li>
<li>Separation of content, presentation and behaviour.</li>
<li>Proper use of semantic elements.</li>
<li>The site works without client-side scripting.</li>
<li>Ensure that non-HTML formats are accessible (JavaScript, Flash, PDF, multimedia etc. <a href="/2007/05/note-on-non-html-formats/">Note on other formats</a>.)</li>
<li>Identifying the natural language (and changes to it).</li>
<li>Using valid code.</li>
<li>Ensure information conveyed with colour is also available via markup or content.</li>
<li>Clearly identifying links.</li>
<li>Consistent and understandable layout and navigation.</li>
<li>Correct use of labels in forms.</li>
<li>Ensure images with text have sufficient contrast.</li>
<li>Specifying the expansion of abbreviations.</li>
<li>Keywords first for headings and links.</li>
<li>Supplementing text with graphical or auditory presentations.</li>
</ul>
<p>I&#8217;ve put together a list of <a href="/testing/notes/wcag-1_updates.php">categorised WCAG 1 checkpoints</a> if you really want the details. I was surprised by how many don&#8217;t come up any more.</p>
<h3 id="user-agent">User / User Agent responsibility&#8217;s</h3>
<p>These <em>could</em> be adjusted by the user, although some are currently very difficult to do via a normal browser:</p>
<ul>
<li>Prevent the screen from flickering/blinking.</li>
<li>Expand / contract font size and layout.</li>
<li>Prevent redirects, refreshes and pop-ups.</li>
<li>Skip over sets of links.</li>
<li>Access to useful <acronym title="Document Object Model">DOM</acronym> elements (e.g. <code>title</code> and <code>cite</code> attributes).</li>
<li>Navigating pages via <acronym title="Document Object Model">DOM</acronym> elements (e.g. Scanning headings)</li>
</ul>
<h3 id="filling-gaps">Filling the gaps</h3>
<p>There are really two main gaps, each with a technology and knowledge component. The tech components are that the:</p>
<ol>
<li>Tools to create web sites don&#8217;t produce accessible code easily.</li>
<li>User agents don&#8217;t allow people to customise their experience easily.</li>
</ol>
<p>The knowledge component of each is that:</p>
<ol>
<li>People don&#8217;t know to buy <a href="http://www.defacto-cms.com/">better tools</a>.</li>
<li>People don&#8217;t know to try better browsers/user agents.</li>
</ol>
<h2 id="whos-responsible">So who&#8217;s responsible?</h2>
<p>I&#8217;m afraid I&#8217;m not going to answer that for another two posts yet. In the next post, I&#8217;m going to examine the user-agent issues, and see how they could be improved. After that, there is the practical &#8220;how do people implement these sites&#8221; (the authoring tools).</p>
<p>However, I&#8217;m fairly sure that it&#8217;s going to be a path. If a site implements something that should be on the user-agent end, it should do so in such as way as to pave the way for user-agents to take over.</p>
<p><strong>Technorati Tags:</strong></p>
<ul class="tags">
<li><a rel="tag" href="http://technorati.com/tag/accessibility">accessibility</a></li>
<li><a rel="tag" href="http://technorati.com/tag/site-owners">site-owners</a></li>
<li><a rel="tag" href="http://technorati.com/tag/user-agents">user-agents</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://alastairc.ac/2007/05/responsibilities-in-accessibility/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

