<?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>Web 3.0, 6 Bladed Razors, 7 Minute Abs &#187; Gmail</title>
	<atom:link href="http://www.zachleat.com/web/tag/gmail/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zachleat.com/web</link>
	<description></description>
	<lastBuildDate>Fri, 30 Jul 2010 01:59:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>If the Menu Fitts, We Must Acquit</title>
		<link>http://www.zachleat.com/web/2010/02/15/if-the-menu-fitts-we-must-acquit/</link>
		<comments>http://www.zachleat.com/web/2010/02/15/if-the-menu-fitts-we-must-acquit/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 05:52:14 +0000</pubDate>
		<dc:creator>Zach Leatherman</dc:creator>
				<category><![CDATA[Interface Design]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Fitts's Law]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[Google Reader]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.zachleat.com/web/?p=542</guid>
		<description><![CDATA[One of the first things you&#8217;ll learn when diving into a self-taught course on usability is the hugely popular Fitts&#8217;s Law. In a nutshell, Fitts&#8217;s Law tries to predict the time needed to move to a &#8220;target area&#8221; (usually a link, menu, button, or form element) as a function of the distance to the element [...]]]></description>
			<content:encoded><![CDATA[<p>One of the first things you&#8217;ll learn when diving into a self-taught course on usability is the hugely popular Fitts&#8217;s Law.  In a nutshell, Fitts&#8217;s Law tries to predict the time needed to move to a &#8220;target area&#8221; (usually a link, menu, button, or form element) as a function of the distance to the element and its size.  <strong>The bigger/closer the element, the faster a user can move to it.</strong></p>
<p>Now, upon discovering myself a newly minted Mac OS convert from the hugely popular World of Windows, I quickly discovered that the application menus (File, Edit, etc) were one of the glaring differences I&#8217;d have to adjust to.  Mac OS had all menus separated from the application window, all the way at the top of the screen.  Coming from the Windows environment, this seemed unintuitive.  But after reading more about Fitts&#8217;s Law, I discovered the reasoning: the <a href="http://www.codinghorror.com/blog/2006/08/fitts-law-and-infinite-width.html">edges of the screen are treated as an infinite height or width</a>!  Which is just a way of modifying the Fitts&#8217;s Law to say: <strong>the easiest things to click on are at the edges of the screen.</strong>  That&#8217;s why the close icon or the Start Menu is so easy to access on Windows, and <a href="http://www.asktog.com/basics/firstPrinciples.html#fittsLaw">why the Application Menu is at the top of the screen in Mac OS</a>.</p>
<p>We know about Fitts&#8217;s Law, but <strong>why aren&#8217;t we applying it to our web applications?</strong>  Why aren&#8217;t we using the power of infinite height/width to help out on our designs?  It seems like this crucial usability law has been overlooked on the web, and without good reason. Let&#8217;s look at a few applications that get it wrong (of course, in my humble opinion).</p>
<p><img src="http://www.zachleat.com/web/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.08.15-PM.png" alt="WordPress Admin Menu" title="Screen shot 2010-02-15 at 11.08.15 PM" width="174" height="307" class="alignleft size-full wp-image-550"/><img src="http://www.zachleat.com/web/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.12.57-PM.png" alt="Google Mail Menu" title="Screen shot 2010-02-15 at 11.12.57 PM" width="176" height="251" class="alignleft size-full wp-image-552"/><img src="http://www.zachleat.com/web/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.09.16-PM.png" alt="Google Reader Menu" title="Screen shot 2010-02-15 at 11.09.16 PM" width="192" height="367" class="alignleft size-full wp-image-551" /></p>
<div style="clear: left"></div>
<p>All of these screenshots were taken from 100% width designs, with no real reason not to incorporate the ideas behind Fitts&#8217;s Law into the menuing system.  At first glance when I brought up Google Reader, I was excited.  The hover behavior appeared when the mouse cursor was positioned at the very far left of the screen, but was disappointed to discover that the although the hover background color had changed, the entire hover target was not clickable.</p>
<p>Naturally, I decided to make a test of my own, to test which web browsers allowed <em>Fitts&#8217;s Law Menus</em>.  The test case encompassed both left and bottom aligned menus, for completeness.  A top menu was excluded, given that the top of the screen is reserved for browser chrome or application menuing.  A right menu was also excluded as the right portion of the screen is reserved for the page scrollbar (which is the easiest scrollbar to manipulate with your mouse, per the same rules).</p>
<p>Also, on the Mac OS 10.6 and Windows XP operating systems, a <em>Fitts&#8217;s Law Menu</em> at the bottom of the screen is not possible, given that the Dock and Taskbar in these operating systems occupy at least a 4 pixel trough of the bottom-most space on the monitor, even as a hover target in &#8220;auto-hide&#8221; mode.  <strong>Everyone is fighting over these crucial and very useful edge pixels.</strong></p>
<p>To test whether or not this behavior is working correctly, <strong>maximize your browser window</strong> and <strong>move the cursor as far left on the screen as possible</strong>, but still over the menu.  If the links are still clickable, congratulations, your browser works!</p>
<h2><a href="/test/fittmenu/">View the Demo / Test Page for the Fitts&#8217;s Law Menu</a></h2>
<h2>Compatibility Table</h2>
<style type="text/css"> 
#compatibility td { font-family: Verdana; }
#compatibility td.yes { background-color: #00882D; color: #fff; }
#compatibility td.no { background-color: #CB000F; color: #fff; }
#compatibility td.emulate { background-color: #40A662; color: #fff; }</p>
</style>
<table id="compatibility">
<thead>
<tr>
<th>Browser</th>
<th>Operating System</th>
<th>Left Menu</th>
<th>Bottom Menu</th>
<th>Status Bar</th>
<th>Detail</th>
</tr>
</thead>
<tbody>
<tr>
<td>Internet Explorer 8</td>
<td>Windows XP</td>
<td class="no">no</td>
<td class="no">no</td>
<td>yes</td>
<td>IE8 has a small 3 pixel border on the left and right of each window.</td>
</tr>
<tr>
<td>Internet Explorer 7</td>
<td>Windows XP</td>
<td class="no">no</td>
<td class="no">no</td>
<td>yes</td>
<td>IE7 has a small 3 pixel border on the left and right of each window.</td>
</tr>
<tr>
<td>Internet Explorer 6</td>
<td>Windows XP</td>
<td class="no">no</td>
<td class="no">no</td>
<td>yes</td>
<td>IE6 has a small 3 pixel border on the left and right of each window.</td>
</tr>
<tr>
<td>Google Chrome</td>
<td>Windows XP and Mac OS 10.6</td>
<td class="yes">yes</td>
<td class="no">no</td>
<td>no</td>
<td></td>
</tr>
<tr>
<td>Mozilla Firefox 3.5 and 3.6</td>
<td>Windows XP and Mac OS 10.6</td>
<td class="yes">yes</td>
<td class="no">no</td>
<td>yes</td>
<td></td>
</tr>
<tr>
<td>Safari 4.0.4</td>
<td>Windows XP and Mac OS 10.6</td>
<td class="yes">yes</td>
<td class="no">no</td>
<td>no</td>
<td></td>
</tr>
</tbody>
</table>
<p><em>The full screen mode of each individual browser was considered outside the scope of this study.</em></p>
<h2>Conclusion</h2>
<p>We should stand on the shoulders of giants and reuse the usability studies already completed on software that has gone before us.  The left side of the browser window is the best place to utilize Fitts&#8217;s Law, and we should move our left-aligned menus on fluid width designs to occupy the space flush with the window&#8217;s edge to increase the speed at which those menus will be accessible by users.  Having an infinite width menu is a big click target to hit.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zachleat.com/web/2010/02/15/if-the-menu-fitts-we-must-acquit/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t Let the Door Hit You Onunload and Onbeforeunload</title>
		<link>http://www.zachleat.com/web/2008/04/22/dont-let-the-door-hit-you-onunload-and-onbeforeunload/</link>
		<comments>http://www.zachleat.com/web/2008/04/22/dont-let-the-door-hit-you-onunload-and-onbeforeunload/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 04:51:08 +0000</pubDate>
		<dc:creator>Zach Leatherman</dc:creator>
				<category><![CDATA[Interface Design]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web Browsers]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Undo]]></category>

		<guid isPermaLink="false">http://www.zachleat.com/web/?p=126</guid>
		<description><![CDATA[Many people attempt a last ditch effort to save page state in the browser by using the onunload or onbeforeunload events. This has been studied at great length by Patrick Hunlock, who uses the perhaps now common knowledge of using a Synchronous Ajax call to perform the page state save. Another use for the onbeforeunload [...]]]></description>
			<content:encoded><![CDATA[<p>Many people attempt a last ditch effort to save page state in the browser by using the onunload or onbeforeunload events.  This has been studied at great length by <a href="http://www.hunlock.com/blogs/Mastering_The_Back_Button_With_Javascript">Patrick Hunlock</a>,  who uses the perhaps now common knowledge of using a Synchronous Ajax call to perform the page state save.</p>
<p>Another use for the onbeforeunload event to allow the user to cancel the action that initiated the user leaving in the first place.  Gmail uses this technique when the user is in the middle of writing a draft of an e-mail and attempts to leave the page.</p>
<p><a href='http://www.zachleat.com/web/wp-content/uploads/2008/04/gmail-confirm.png'><img src="http://www.zachleat.com/web/wp-content/uploads/2008/04/gmail-confirm.png" alt="" title="gmail-confirm" width="455" height="157" class="aligncenter size-full wp-image-129" /></a><br />
<em>Gmail&#8217;s pops up this prompt when the user attempts to leave the page while drafting an email.</em></p>
<p>Worthy to note, however, is that Opera <a href="http://www.quirksmode.org/bugreports/archives/2004/11/load_and_unload.html">doesn&#8217;t fire the unload event</a> when the browser refreshes the page, or uses the back/forward buttons to browse off of the page (I had no success with the fix posted in the comments on that page).  What&#8217;s worse, Opera never fires the onbeforeunload event.  This creates a serious problem with attempting to save page state prior to a user leaving your page.</p>
<p>Browser support aside, I believe that the onbeforeunload prompt is not an ideal way to protect the user from lost work (or unsaved page state).  Humanized has argued, and I agree, that <a href="http://www.alistapart.com/articles/neveruseawarning">an undo operation is much easier on the end user than a warning message</a>.  The strange thing is, Gmail could save the draft in a synchronous Ajax request in the onunload event.  They aren&#8217;t using the prompt to save Opera users from losing their drafts, since the Opera web browser doesn&#8217;t even fire the onbeforeunload event.  (Interestingly enough, they are using some sort of browser history management to fire a warning to the user when they press back, or forward, in Opera &#8212; but Reload can&#8217;t be caught using this method, so your could draft email be lost).</p>
<p>From a User Interface design standpoint, I would recommend just sticking with onunload.  You can still perform your synchronous Ajax call in the method to save the state of your page, so that the user can later resume their state or undo the operation. (Except for Back/Forward/Refresh in Opera, until they support a better onunload or any onbeforeunload).  The onbeforeunload prompt is an unnecessary evil, and doesn&#8217;t do much besides annoy the end user with another warning message and a mouse click.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zachleat.com/web/2008/04/22/dont-let-the-door-hit-you-onunload-and-onbeforeunload/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
