<?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/"
xmlns:series="http://organizeseries.com/"
> <channel><title>SitePoint &#187; UX</title> <atom:link href="http://www.sitepoint.com/category/ux-2/feed/" rel="self" type="application/rss+xml" /><link>http://www.sitepoint.com</link> <description>Learn CSS &#124; HTML5 &#124; JavaScript &#124; Wordpress &#124; Tutorials-Web Development &#124; Reference &#124; Books and More</description> <lastBuildDate>Mon, 13 May 2013 13:12:07 +0000</lastBuildDate> <language>en-US</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.5.1</generator> <item><title>How to Create a Toggle Switch in CSS3</title><link>http://www.sitepoint.com/css3-toggle-switch/</link> <comments>http://www.sitepoint.com/css3-toggle-switch/#comments</comments> <pubDate>Wed, 08 May 2013 14:59:50 +0000</pubDate> <dc:creator>Craig Buckler</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[CSS3]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[HTML5]]></category> <category><![CDATA[Responsive Web Design]]></category> <category><![CDATA[UX]]></category> <category><![CDATA[form]]></category> <category><![CDATA[HTML5 Dev Center]]></category> <category><![CDATA[HTML5 Tutorials & Articles]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=65585</guid> <description><![CDATA[Checkboxes are boring. Why not bring some excitement into your users' lives with a slick toggle switch implemented in pure CSS as demonstrated in Craig's latest tutorial.]]></description> <content:encoded><![CDATA[<p></p><p>You&#8217;ll find mobile-interface-like toggle switches in various places around the web but I wanted to improve existing examples.</p><p><img
src="http://blogs.sitepointstatic.com/images/tech/819-css3-toggle-switch-example.png" alt="toggle switch" class="center" /></p><p>Specifically, I wanted a solution which:</p><ol><li>progressively enhanced standard checkboxes</li><li>did not use superfluous HTML tags or attributes</li><li>supported input labels</li><li>used only CSS without images or JavaScript</li><li>used relative units so the controls are resizable/responsive</li><li>had some slick animation</li><li>ideally worked in a range of mobile browsers, and</li><li>degraded gracefully so it remained usable in all browsers</li></ol><p><a
href="http://cssdeck.com/labs/full/css3-toggle-switch"><strong>View the demonstration page</strong></a> and <a
href="http://cssdeck.com/labs/css3-toggle-switch">the HTML/CSS code&hellip;</a></p><h2>The HTML</h2><p>We require a <code>input</code> checkbox and a <code>label</code>:</p><pre><code>&lt;div&gt;
	&lt;input type=&quot;checkbox&quot; id=&quot;switch1&quot; name=&quot;switch1&quot; class=&quot;switch&quot; /&gt;
	&lt;label for=&quot;switch1&quot;&gt;first switch&lt;/label&gt;
&lt;/div&gt;
</code></pre><p>The <code>input</code> has a class of &#8220;switch&#8221; assigned. This ensures we can retain normal checkboxes should we need them.<div
id='div-gpt-ad-1328644474660-10' style='width:728px; height:90px;'> <script type='text/javascript'>googletag.cmd.push(function() { googletag.display('div-gpt-ad-1328644474660-10'); });</script> </div></p><p>HTML purists will be horrified to see a wrapper <code>div</code> but it&#8217;s only necessary if you require two or more toggle switches &#8212; you cannot have more than one switch (or further labels) in the the same parent container. Besides, you&#8217;ll probably need <code>div</code> wrappers to separate form elements anyway.</p><p>The HTML will render well in most browsers with minimal styling. IE6, 7 and 8 users will see this:</p><p><img
src="http://blogs.sitepointstatic.com/images/tech/819-css3-toggle-switch-ie8.png" alt="toggle switch" class="center" /></p><h2>The CSS</h2><p>Now for the interesting part. First, we&#8217;ll hide the input box using a negative margin &#8212; this can be preferable to display:none which often disables it on mobile devices:</p><pre><code>input.switch:empty
{
	margin-left: -999px;
}
</code></pre><p>You may have seen the <code>:empty</code> selector used in my recent post, <a
href="/css3-responsive-centered-image/">How to Create a Responsive Centered Image in CSS3</a>. It only matches elements which have no children but, since it&#8217;s not supported in IE8 and below, those browsers won&#8217;t attempt to apply the styles.</p><p>Next, we&#8217;ll style the sibling labels of the input checkbox:</p><pre><code>input.switch:empty ~ label
{
	position: relative;
	float: left;
	line-height: 1.6em;
	text-indent: 4em;
	margin: 0.2em 0;
	cursor: pointer;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}</code></pre><p>The main properties to note are position:relative, the text-indent which provides room for our switch, and the line-height which defines its height.</p><p>The toggle itself is created using <code>:before</code> and <code>:after</code> pseudo-elements for the colored background and the white switch accordingly:</p><ul><li>both elements are absolutely positioned at the left-hand edge of our label</li><li>the white switch is set to a smaller size and has a left margin applied to align it on the background</li><li>a border-radius and inset box-shadow is applied to give some depth, and</li><li>a transition is defined for the animation.</li></ul><pre><code>input.switch:empty ~ label:before,
input.switch:empty ~ label:after
{
	position: absolute;
	display: block;
	top: 0;
	bottom: 0;
	left: 0;
	content: ' ';
	width: 3.6em;
	background-color: #c33;
	border-radius: 0.3em;
	box-shadow: inset 0 0.2em 0 rgba(0,0,0,0.3);
	-webkit-transition: all 100ms ease-in;
	transition: all 100ms ease-in;
}
input.switch:empty ~ label:after
{
	width: 1.4em;
	top: 0.1em;
	bottom: 0.1em;
	margin-left: 0.1em;
	background-color: #fff;
	border-radius: 0.15em;
	box-shadow: inset 0 -0.2em 0 rgba(0,0,0,0.2);
}
</code></pre><p>Finally, when the checkbox is checked, we move the switch to the right-hand edge and change the background color:</p><pre><code>input.switch:checked ~ label:before
{
	background-color: #393;
}
input.switch:checked ~ label:after
{
	margin-left: 2em;
}
</code></pre><p><a
href="http://cssdeck.com/labs/full/css3-toggle-switch"><strong>View the demonstration page</strong></a> and <a
href="http://cssdeck.com/labs/css3-toggle-switch">the HTML/CSS code&hellip;</a></p><p>Everyone likes a toggle switch! Please use the code however you like. A link back to this article or a <em>&#8220;hey Craig, that&#8217;s awesome/awful&#8221;</em> <a
href="http://twitter.com/craigbuckler">tweet</a> is appreciated.</p><div
class='after-content-widget-1'><div
id="sitepointcontextualcontentmanagerwidget-5" class="widget widget_sitepointcontextualcontentmanagerwidget"><div
class="dfp-ad show-desktop"><div
id="div-gpt-ad-1340873946991-4" style="width: 728px; height: 90px;"> <script type="text/javascript">googletag.cmd.push(function() { googletag.display("div-gpt-ad-1340873946991-4"); });</script> </div></div></div></div>]]></content:encoded> <wfw:commentRss>http://www.sitepoint.com/css3-toggle-switch/feed/</wfw:commentRss> <slash:comments>27</slash:comments> </item> <item><title>5 Ways to Support High-Density Retina Displays</title><link>http://www.sitepoint.com/support-retina-displays/</link> <comments>http://www.sitepoint.com/support-retina-displays/#comments</comments> <pubDate>Mon, 06 May 2013 17:22:46 +0000</pubDate> <dc:creator>Craig Buckler</dc:creator> <category><![CDATA[Apple]]></category> <category><![CDATA[Browsers]]></category> <category><![CDATA[CSS]]></category> <category><![CDATA[CSS3]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[HTML5]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[Responsive Web Design]]></category> <category><![CDATA[UX]]></category> <category><![CDATA[display]]></category> <category><![CDATA[HTML5 Dev Center]]></category> <category><![CDATA[images]]></category> <category><![CDATA[javascript]]></category> <category><![CDATA[Retina]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=65653</guid> <description><![CDATA[Are the images on your website looking a little ugly on your new iPad or MacBook Pro? Craig discusses Retina high-density pixel displays and offers a number of pragmatic solutions.]]></description> <content:encoded><![CDATA[<p></p><p>An interesting point was raised by Brendan Davis in my recent post <a
href="/rwd-scrollbars-is-chrome-better/">&#8220;Responsive Web Design and Scrollbars: Is Chrome’s Implementation Better?&#8221;</a>: <em>are RWD breakpoints affected by high pixel-density screens?</em></p><p>The short answer is: no &#8212; but we need to delve a little deeper and look at the problems they can cause.</p><h2>What is Retina?</h2><p>&#8220;Retina&#8221; is Apple&#8217;s brand name for double-density screens but other manufacturers are creating similar displays. The technology is used in recent iPhones, iPads, MacBook Pros and other high-end devices.</p><p>For example, the MacBook Pro 15&#8243; has a resolution of 2,880&#215;1,800 or 220 pixels per inch. At this scale, most people are unable to notice individual pixels at typical viewing distances &#8212; applications and websites would be too small to use.</p><p>Therefore, the device reverts to a standard resolution of 1,440&#215;900 but the additional pixels can be used to make fonts and graphics appear smoother.</p><h2>What&#8217;s the Problem?</h2><p>Standard-resolution bitmap images can look blocky on a Retina display. A 400 x 300 photograph is scaled to 800 x 600 pixels but there&#8217;s no additional detail. This can be noticeable when compared to smooth fonts and other high-resolution images.<div
id='div-gpt-ad-1328644474660-10' style='width:728px; height:90px;'> <script type='text/javascript'>googletag.cmd.push(function() { googletag.display('div-gpt-ad-1328644474660-10'); });</script> </div></p><h2>Real-World Usage</h2><p>If you look around the web, you&#8217;d be forgiven for thinking everyone has a Retina display. Currently, it&#8217;s only available in high-end devices, but these are coveted by developers so it leads to a disproportionate volume of online discussion. In the real world, the percentage of people using similar displays is in low single figures.</p><p>Let&#8217;s put it into context: if you&#8217;re not developing for the 1% of IE6/7 users, you probably shouldn&#8217;t be too concerned about people using Rentina &#8212; especially since they can still view your website.</p><p>That said, Retina-like screens will eventually migrate to all devices. There&#8217;s little reason to fret now, but there&#8217;s no harm in some forward planning. Let&#8217;s look at the options in order of recommendation&hellip;</p><h2>1. Use SVGs and CSS3 Effects</h2><p>The clue is in the name but Scalable Vector Graphics are &hellip; <em>scalable!</em> It doesn&#8217;t matter how big an SVG becomes &#8212; it will always be smooth because it&#8217;s defined using vectors (lines and shapes) rather than individual pixels.</p><p>SVG is not practical for photographs but is ideal for logos, diagrams and charts. The primary drawback is a lack of support in IE8 and below but you could always provide a PNG fallback or use a shim such as <a
href="http://raphaeljs.com/">Rapha&euml;l</a> or <a
href="http://code.google.com/p/svgweb/">svgweb</a>. See also: <a
href="http://www.sitepoint.com/add-svg-to-web-page/">How to Add Scalable Vector Graphics to Your Web Page</a>.</p><p>You may also be able to replace some images entirely. For example, titles, gradients, corners or shadows defined as graphics can be reproduced using CSS3 alone. They will render at a better quality, result in fewer HTTP requests and use less bandwidth.</p><h2>2. Use Webfonts Icons</h2><p>The more I use <a
href="http://www.sitepoint.com/webfont-icons/">webfonts icons</a>, the more I love them. Like SVGs, fonts are vectors so they&#8217;re scalable so you can use font sets which contain icons. They&#8217;re ideal for small, frequently used shapes such as email envelopes, telephones, widget controls and social media logos. They also work in every browser including IE6+.</p><p>There are plenty of commercial and free icon font sets available:</p><ul><li><a
href="http://typicons.com/">Typicons</a></li><li><a
href="http://fortawesome.github.io/Font-Awesome/">Font Awesome</a></li><li><a
href="http://somerandomdude.com/work/iconic/">Iconic</a></li><li><a
href="http://www.zurb.com/playground/foundation-icons">Foundation</a></li></ul><p>Or you can use a hosted font service such as <a
href="http://weloveiconfonts.com/">We Love Icon Fonts</a>.</p><p>I recommend creating your own small set of custom icons using online tools such as <a
href="http://fontello.com/">Fontello</a> or <a
href="http://www.sitepoint.com/icomoon-webfont-icon-packs/">IcoMoon</a>.</p><h2>3. Use High-Resolution Images When Practical</h2><p>Retina has four times more pixels than standard screens. If you have a 400 x 300 image (120,000 pixels), you&#8217;d need to use an 800 x 600 alternative (480,000 pixels) to render it well on a high-density display.</p><p>However, the high-resolution file size may not necessarily be four times larger. Every image is different but if it contains solid blocks of color or details which can be omitted, it may be practical to use a 800 x 600 image and scale it in the browser.</p><p>Be pragmatic: if the standard image is 200Kb and the high-resolution version is 250Kb, there is negligible benefit using image replacement techniques. Use the better version throughout.</p><h2>4. Use CSS Image Replacement</h2><p>There will be times when high-resolution versions of your image are four times larger &#8212; or more. In those circumstances you may want to consider image replacement techniques, i.e. the standard image is replaced by larger alternative on Retina displays. The following media query code could be used:</p><pre><code>#myimage {
	width: 400px;
	height: 300px;
	background: url(lo-res.jpg) 0 0 no-repeat;
}
@media
screen and (-webkit-min-device-pixel-ratio: 1.5),
screen and (-moz-min-device-pixel-ratio: 1.5),
screen and (min-device-pixel-ratio: 1.5) {
	#myimage {
		background-image: url(hi-res.jpg);
	}
}
</code></pre><p>The drawbacks:</p><ol><li>You will need to create and maintain two sets of images.</li><li>Some browsers will download both images.</li></ol><p>Remember that many of these users will be using smartphones or tablets on slower mobile networks. Detecting the connection speed would be more beneficial than determining the pixel density.</p><h2>5. Use JavaScript Image Replacement</h2><p>Retina display detection can be implemented using the following code:</p><pre><code>var isRetina = (
	window.devicePixelRatio &gt; 1 ||
	(window.matchMedia &amp;&amp; window.matchMedia(&quot;(-webkit-min-device-pixel-ratio: 1.5),(-moz-min-device-pixel-ratio: 1.5),(min-device-pixel-ratio: 1.5)&quot;).matches)
);
</code></pre><p>Once a Retina display is determined, you could:</p><ol><li>Loop through all page images and extract the URL.</li><li>Append &#8216;@2x&#8217; to the file name and attempt to load the resulting image URL using Ajax.</li><li>If found, replace the current image with the high-resolution alternative.</li></ol><p>Fortunately, the hard work&#8217;s been done for you at <a
href="http://retinajs.com/">retinajs.com</a>. While it only adds 4Kb weight, high-density display devices will download images twice &#8212; although the second time will occur as a background process after the page has loaded.</p><p>My advice: be practical and keep it simple. Don&#8217;t spend inordinate amounts of time attempting to solve minor rendering problems on devices with proportionally few users. Of course, none of that matters when your boss receives his new iPad and starts to complain about image quality&hellip;</p><div
class='after-content-widget-1'><div
id="sitepointcontextualcontentmanagerwidget-5" class="widget widget_sitepointcontextualcontentmanagerwidget"><div
class="dfp-ad show-desktop"><div
id="div-gpt-ad-1340873946991-4" style="width: 728px; height: 90px;"> <script type="text/javascript">googletag.cmd.push(function() { googletag.display("div-gpt-ad-1340873946991-4"); });</script> </div></div></div></div>]]></content:encoded> <wfw:commentRss>http://www.sitepoint.com/support-retina-displays/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Interface Text: Call To Action or Hidden Hurdle?</title><link>http://www.sitepoint.com/interface-text-call-to-action-or-hidden-hurdle/</link> <comments>http://www.sitepoint.com/interface-text-call-to-action-or-hidden-hurdle/#comments</comments> <pubDate>Thu, 28 Mar 2013 14:00:15 +0000</pubDate> <dc:creator>Georgina Laidlaw</dc:creator> <category><![CDATA[Business]]></category> <category><![CDATA[Content strategy]]></category> <category><![CDATA[UX]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=64963</guid> <description><![CDATA[Georgina Laidlaw gives some overdue attention to the nature of interface text, the text tells your site visitors what to do and why. ]]></description> <content:encoded><![CDATA[<p></p><p>How&#8217;s your site&#8217;s bounce rate? How many of the people who downloaded your app ever actually use it? What&#8217;s the comment rate like on your company blog?</p><p>If your answers to these questions are less than stellar, you might have a problem.</p><p>A problem with words.</p><h2>The hidden hurdle</h2><p>Every one of us can string a sentence together. In many cases online, sentences aren&#8217;t even needed: we can all type &#8220;Buy now&#8221; or &#8220;Log in&#8221; onto a button or &#8220;Click here&#8221; into a link.</p><p>When most people think of web writing, they think of long copy for informational pages, ebooks and emails.</p><p>What they don&#8217;t consider is interface text.</p><p>Interface text is the words that tell people what to do on your pages: what your site or app does, and how they can access those features. Think: orientating sentences, descriptive text, links, buttons, menus and labels.</p><p>Text directly influences the interactivity, functionality and usability of interfaces. I&#8217;d go so far as to say it&#8217;s as important as design.</p><p>Don&#8217;t believe me? Well, let&#8217;s take my theory for a spin.</p><h2>See for yourself</h2><p>If there&#8217;s one thing the web is great for, it&#8217;s setting a trend. Just as there are trends in design and development, there are trends in interface text.<div
id='div-gpt-ad-1328644474660-10' style='width:728px; height:90px;'> <script type='text/javascript'>googletag.cmd.push(function() { googletag.display('div-gpt-ad-1328644474660-10'); });</script> </div></p><p>One example is the humble Get Started button. Ten years ago, Get Started wasn&#8217;t a popular CTA—people were still focused on Click Here and Buy Now.</p><p>But today, Get Started is the go, particularly as a call to action for what the press loves to call &#8220;disruptive&#8221; online services—<a
href="http://learnable.com/">Learnable</a> and <a
href="http://99designs.com/">99designs</a> are just two examples.</p><p><img
class="alignnone size-full wp-image-64964" alt="Learnable and 99designs" src="http://www.sitepoint.com/wp-content/uploads/1/files/2013/03/learn99d.png" width="720" height="250" /></p><p>However, as <a
href="http://www.tweaky.com/blog/how-tweaky-increased-conversions-43-listening-to-peep-laja/">Tweaky recently discovered</a>, even a straigthtforward, concise Get Started CTA isn&#8217;t necessarily as clear as it could be.</p><p>Following professional advice, they tweaked Tweaky.</p><p>Three out of the four changes Tweaky made to their site <em>were text-based</em>. They didn&#8217;t change layout, imagery or even IA. All they did was change wording in three places on the site, and increase the color contrast on the Chat tab.</p><p><img
class="alignnone size-full wp-image-64965" alt="Tweaky" src="http://www.sitepoint.com/wp-content/uploads/1/files/2013/03/tweaky.png" width="720" height="499" /></p><p>Wiht regard to their primary call to action, they added a caption so users will know what happens when they click.</p><p>The results? Conversions increased by 43%.</p><p>As Tweaky found out, a few little words can make a big difference to a site&#8217;s conversions.</p><p>But that particular solution demands extra reading and attention from users. Is that the best option?</p><p>Other examples from around the web—<a
href="http://www.shopify.com/">Create your store now</a>, <a
href="http://www.ebay.com/">Register</a>, <a
href="http://www.yelp.com/">Create your free account</a>, <a
href="https://www.airbnb.com">Search</a>, <a
href="http://instagram.com/">Log in</a>, <a
href="http://www.offscreenmag.com/">Buy now</a>—show that there&#8217;s a lot of variety in terms of common CTAs.</p><p><img
class="alignnone size-full wp-image-64966" alt="CTA" src="http://www.sitepoint.com/wp-content/uploads/1/files/2013/03/ctas.png" width="720" height="160" /></p><p>Which one do <em>you</em> want to use on <em>your</em> site?</p><h2>Is it time you focused on the hidden hurdle?</h2><p>In the coming weeks, we&#8217;ll be looking more closely at a range of interface and usability-related text issues that digital developers, designers, and entrepreneurs face—whether you realise it or not—every day.</p><p>The aim is to help you get a grip on the text-related issues that might be holding back your site, your app and, ultimately, your business.</p><p>If you have any specific questions you&#8217;d like to ask, tell us in the comments below.</p><p>Next week, we&#8217;ll see whether the way you talk about your offering is actually confusing site&#8217;s users, rather than educating (or even exciting) them. See you then.</p><div
class='after-content-widget-1'><div
id="sitepointcontextualcontentmanagerwidget-5" class="widget widget_sitepointcontextualcontentmanagerwidget"><div
class="dfp-ad show-desktop"><div
id="div-gpt-ad-1340873946991-4" style="width: 728px; height: 90px;"> <script type="text/javascript">googletag.cmd.push(function() { googletag.display("div-gpt-ad-1340873946991-4"); });</script> </div></div></div></div>]]></content:encoded> <wfw:commentRss>http://www.sitepoint.com/interface-text-call-to-action-or-hidden-hurdle/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Don&#8217;t Hijack My Browser</title><link>http://www.sitepoint.com/dont-hijack-my-browser/</link> <comments>http://www.sitepoint.com/dont-hijack-my-browser/#comments</comments> <pubDate>Mon, 25 Mar 2013 11:03:44 +0000</pubDate> <dc:creator>Mike Ritter</dc:creator> <category><![CDATA[Accessibility]]></category> <category><![CDATA[Usability]]></category> <category><![CDATA[UX]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=64764</guid> <description><![CDATA[Mike Ritter asks web developers to not implement functionality that prevents people with disabilities from being able to use their sites. ]]></description> <content:encoded><![CDATA[<p></p><p>As a person with a disability I find navigating most websites fairly straightforward. I can use the keyboard or a mouse to scroll up and down to view content. With just the space bar I can scroll the page a frame at a time.</p><p>Until my browser is hijacked by elements on the page. Then I have to use my mouse to get control of the experience.</p><p>Here are four frustrating ways websites hijack my browser.</p><h2>Search Bar</h2><p>Hey Google (and now Yahoo!), I&#8217;m talking to you!</p><p>I get that you want to make it easy for someone to get going on that search, but does my cursor <em>really</em> have to jump to the search box as soon as the page loads?!</p><p>You can set up the tab order using <code>tabindex</code> to take the cursor to the box on the tab click.</p><p><code>&lt;input type="text" id="search" tabindex="1"&gt;</code></p><p>I get that Google has built this into their system and it&#8217;s the expected behavior, but it is a nuisance for people like myself who navigate with our keyboards.</p><p>First, it interrupts the browsing flow because I am unable to follow my keyboard shortcut (just backspace on <em>most</em> browsers) to go back a page.<div
id='div-gpt-ad-1328644474660-10' style='width:728px; height:90px;'> <script type='text/javascript'>googletag.cmd.push(function() { googletag.display('div-gpt-ad-1328644474660-10'); });</script> </div></p><p>Second, when I start pressing the space bar and want to scroll the page I&#8217;m just filling in the search bar. It just doesn&#8217;t work.</p><h2>Confirmation Alert Box</h2><p>Every now and then I&#8217;m surfing the Web and end up on a site with a confirmation box. Sometimes the box pops up on arrival, other times it pops up when I try to leave the page.</p><p>I know enough about programming to recognize an opportunity to insert malware. So I never click the confirmation. I don&#8217;t know if pressing <strong>okay</strong> will close the tab or take me to russianhotties.xxx.</p><p>My remedy is shutting down my browser then reopening it and tromping through history to the sites I had open.</p><h2>Popup Ads</h2><p>This one drives me <strong><em>crazy</em></strong> and I&#8217;ll wager most developers are guilty of this one.</p><p>Attractive popup ads are no longer an annoyance, but part of the business model of many websites. I&#8217;m left to watch the popup obscure my content. I get it. The company has to generate revenue. But the ad should get out of my way.</p><p>The standard was to timeout the popup years ago. Some ads creatively move to the sidebar in a static ad. Regardless of the technology, this is available functionality. Another former standard was to tie a keyboard shortcut like <strong>esc</strong> or <strong>x</strong> to a close function on the popup. But rarely do I see a popup that I don&#8217;t have to click an action item or a tiny close link in the top corner with the mouse.</p><h2>Static Navbar</h2><p>Finally, there&#8217;s the static navigation bar across the top of the page. Sometimes these are three or four lines tall. They <em>are</em> convenient, giving users easy access to site information.</p><p>But go back to scrolling.</p><p>When I tap <strong>space bar</strong> on a typical webpage the window scrolls down one frame. This is such a convenient way to quickly browse a page. As I pointed out above, hijacking my cursor gets in the way. But so do those fancy navigation bars.</p><p><em>Some</em> websites account for the navbar adding padding to accommodate the bar across the top. However, plenty of popular websites are oblivious. As the content scrolls, several lines are obscured by the handy bar.</p><h2>Am I Just a Curmudgeon?</h2><p>Our lives as developers are already full of <abbr
title="user experience">UX</abbr> demands.</p><p><em>Another accommodation now from this guy who just wants to click his spacebar to scroll is not floating to the top of my list.</em></p><p>I get it. But imagine how all of the little tweaks you build into your workflow save you steps and then having to do away with them because somebody else just changed the way things are done. Look at recent decisions by <a
href="http://www.sitepoint.com/adobe-shuts-browserlab/">Adobe</a> and <a
href="http://www.sitepoint.com/goodbye-google-reader/">Google</a> to shut down services, for example.</p><p>For people with mobility impairments, added obstacles to the content are a real barrier. Just getting a mouse cursor in the precise spot can be a chore.</p><p>But thoughtful design and graceful transitions can give the browser back to users like myself to enjoy our convenient web experience.</p><div
class='after-content-widget-1'><div
id="sitepointcontextualcontentmanagerwidget-5" class="widget widget_sitepointcontextualcontentmanagerwidget"><div
class="dfp-ad show-desktop"><div
id="div-gpt-ad-1340873946991-4" style="width: 728px; height: 90px;"> <script type="text/javascript">googletag.cmd.push(function() { googletag.display("div-gpt-ad-1340873946991-4"); });</script> </div></div></div></div>]]></content:encoded> <wfw:commentRss>http://www.sitepoint.com/dont-hijack-my-browser/feed/</wfw:commentRss> <slash:comments>12</slash:comments> </item> <item><title>Sara Wachter-Boettcher: The Emerging Field of Content Strategy</title><link>http://www.sitepoint.com/sara-wachter-boettcher-the-emerging-field-of-content-strategy/</link> <comments>http://www.sitepoint.com/sara-wachter-boettcher-the-emerging-field-of-content-strategy/#comments</comments> <pubDate>Thu, 15 Nov 2012 04:28:29 +0000</pubDate> <dc:creator>Tom Museth</dc:creator> <category><![CDATA[Content management]]></category> <category><![CDATA[UX]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=60476</guid> <description><![CDATA[At the recent Web Directions South 2012 conference held in Sydney, Sara Wachter-Boettcher, an independent content strategist, gave a talk on &#8220;Getting Unstuck: Content Strategy for the Future&#8221;. Among the detailed and varied presentations on everything from responsive design to MVC to JavaScript performance patterns, here was someone keen to step back and tackle the [...]]]></description> <content:encoded><![CDATA[<p></p><p>At the recent Web Directions South 2012 conference held in Sydney, Sara Wachter-Boettcher, an independent content strategist, gave a talk on &#8220;Getting Unstuck: Content Strategy for the Future&#8221;. Among the detailed and varied presentations on everything from responsive design to MVC to JavaScript performance patterns, here was someone keen to step back and tackle the more nebulous subject of web content &#8212; specifically, what we&#8217;re meant to be doing with it.</p><p>Content is king, right? Well, maybe. The web would certainly be one lonely place without it. But while the technologies underpinning the web evolve at a dizzying rate, attitudes to how we publish content &#8212; the stuff that actually populates our applications and sites, whether video, text, forms, widgets, whatever &#8212; hasn&#8217;t necessarily kept pace. Many of the characteristics of contemporary web publishing still glaringly show their roots in the world of print media. Skeuomorphism remains in the most common design patterns. Grids, paragraphs, captions &#8230; is it time web content grew up?</p><p>Which is where content strategy comes in. It&#8217;s a field you may or may not have heard of &#8212; and if you have, you might not grasp its nuts and bolts. What does a content strategist do? Where did the vocation originate? Maybe it&#8217;s just best to let Sara explain.<div
id='div-gpt-ad-1328644474660-10' style='width:728px; height:90px;'> <script type='text/javascript'>googletag.cmd.push(function() { googletag.display('div-gpt-ad-1328644474660-10'); });</script> </div></p><p><strong>Hi Sara. Before we drill into content strategy, it might help to tell us a bit about your background, and how you got into the field.</strong></p><p>I went to journalism school in Oregon, then worked at community newspapers writing features. Then I moved to Arizona and ended up copywriting for ad agencies, which was fun for maybe six months. I just wrote clever little one liners and somebody would hand me some money. But it got boring really quickly.</p><p><strong>And then you got into web editing.</strong></p><p>I learned a lot of things along the way. The first few years I talked to developers and product managers, getting closer to project work, and asked tonnes of hard questions about why things were being done the way they were being done, and why the concept of content wasn&#8217;t being included in these projects. Projects often got delayed because the client was trying to work on their content &#8212; how could we stop this happening, so that the client wasn&#8217;t left with a website containing no content? These kinds of issues kept coming up again and again.</p><p>Then, around the end of 2008, I found people were talking about this thing called content strategy. It was just emerging. Shortly after that, <a
title="Content strategy" href="http://www.alistapart.com/articles/thedisciplineofcontentstrategy/" target="_blank">Kristina Halvorson wrote an article for A List Apart</a> about it,  and all of a sudden a name was attached to the practices I&#8217;d already started to formalize. It became clear that I needed to change where I sat with an organization and how I approached things. I wormed my way into dozens of projects with a content strategy approach, and that also led me to speaking and writing about content strategy. I realised other people were struggling with the same stuff. It&#8217;s useful to know you&#8217;re not the only one struggling.</p><p><strong>Content strategy seems to cover a broad area, and the definition of what it is seems a little hazy. Do you have a definition for it?</strong></p><p>The trouble with content strategy is that as much as it was an emerging discipline in 2008 or so, it also wasn&#8217;t &#8212; it had been around for a long time, but really hadn&#8217;t caught on. It was a term that had been in use in a few different communities &#8212; technical communication, some elements of the web, large-scale entertainment media. It&#8217;s not so much a practice as it is a collection of practices involving the planning of content that&#8217;s going to be good for an organisation and good for its users.</p><p><strong>Purely in an online context?</strong></p><p>Not necessarily. The online context tends to be the most important one because it&#8217;s changing so quickly and it is clear that businesses can&#8217;t operate without the internet anymore. Businesses can stop putting out brochures, say, but they couldn&#8217;t function without a website.</p><p>I believe there was always a need for content strategy. Endemic problems kept happening on the web projects I worked on, and I heard the same stories: &#8220;We&#8217;ve built a website and the client hasn&#8217;t entered their content into a CMS yet, so we can&#8217;t build the last 25% of the project!&#8221;. There were issues about content that was never completed, or was horribly out of date, or broke the design. I think I knew it was something that always needed consideration, but the reason we weren&#8217;t considering it was because we had people in the industry who were doing more complex designs, and clients became more demanding, so completing content became really hard. Dealing with lots of content got even harder. People didn&#8217;t want to do it.</p><p>There are issues of user-generated content, issues with mobile, issues that have made content even more of a challenge than it ever was. These problems aren&#8217;t always new, they&#8217;re just more pronounced, or harder to avoid. More organizations are willing to ask for help now.</p><p><strong>You talk a lot about a mobile-first approach. How does that apply to content strategy? When we talk responsive design, for instance, it&#8217;s a lot simpler to delineate a design strategy for mobile &#8212; breakpoints, media queries, mobile wireframing. With content it seems more amorphous.</strong></p><p>I hear people talk about mobile content and the desire to cut everything down to micro-size, and I take issue with that, because you&#8217;re making assumptions about what people might want. My take on it is that mobile content should probably be the same as your regular content for the most part, or at least, that&#8217;s your baseline. But for a long time we put whatever the hell we felt like up on the web, and didn&#8217;t necessarily think about what was going to provide the clearest solution for users. Different departments of the same companies have been posting overlapping content all over the place, resulting in humungous corporate sites.</p><p>Mobile is an opportunity to fix a lot of that, and bring things back to what is needed in the first place &#8212; to fix sad, excessive, outdated content that we&#8217;ve allowed to fester for so long. Mobile can make you focus on what really matters. The question you have to ask is, if a mobile user doesn&#8217;t need this, then does anybody need this? Especially when you start looking at trends with how mobile usage is going to overtake desktop usage. Trying to say that there is a single mobile usecase, you&#8217;re fighting a losing battle.</p><p><strong>How do we get clients thinking about what a mobile approach might entail, rather than simply saying: &#8220;Make me a mobile site&#8221;?</strong></p><p>I think it&#8217;ll take some time. It wasn&#8217;t very long ago that mobile was a novelty. But people are becoming comfortable with the idea that there isn&#8217;t a mobile web &#8212; it&#8217;s just the web.</p><p><strong>You also mention clutter in your writing &#8212; specifically, that getting rid of clutter shouldn&#8217;t just be reserved for mobile development and design, but extended to web content in general; that there&#8217;s no room for cruft on the web.</strong></p><p>Well &#8230; the thing is, there <em>is</em> room for cruft on the web &#8212; I mean, you can put anything you want up there! There&#8217;s room to do it and that&#8217;s why people have done it for so long. For a long time it didn&#8217;t occur to people that they needed to pay attention to what they put up. That&#8217;s the wrong perspective: it&#8217;s only the perspective of the person who&#8217;s posting. If you take the perspective of the person who has to wade through that information and buy your product or choose your service, things gets problematic.</p><p>Just because you can, you should? That goes against any strategic endeavour an organization would be involved in. If you&#8217;re putting up content that has no purpose, who are you serving? What&#8217;s the point?</p><p><strong>And this is where content strategists come in?</strong></p><p>The key to a good content strategist is they&#8217;ll realise if they want to publish good content, it&#8217;s not just a matter of who&#8217;s going to fix it, it&#8217;s a matter of actually changing how content is handled for the long term.</p><p><strong>I think one problem regarding web publishing is that the bulk of content is delivered via a handful of similar content management systems.</strong></p><p>I think what&#8217;s shocking is that a huge amount of content is <em>not</em> delivered via a CMS!</p><p><strong>Really?</strong></p><p>Start talking to organizations and you realise that a lot of big companies are actually hand coding a lot of things. Which is surprising, yeah. I talk to a lot of clients who say they want to get structure from their content, and have authors enter content into 12 different fields, say, to achieve that. They want to use an interface where an author can edit content literally like they would on the front end of the site. The problem is, this assumes a desktop perspective &#8212; it doesn&#8217;t deal with a mobile approach, it doesn&#8217;t get authors thinking differently about their content. It makes them think about it as just &#8220;stuff they put on a page&#8221;.</p><p>The interfaces we give the public can be beautiful and pleasurable to use, and the interfaces we give to authors are generally crap. We have not spent nearly enough time trying to improve the way our CMSs work.</p><p><strong>Are there any CMSs you prefer, or recommend?</strong></p><p>I&#8217;ve used a lot of custom CMSs. In tems of off-the-shelf ones, I&#8217;ve used Drupal a bit. But Drupal requires customization to achieve the things you want to do with it.</p><p>I don&#8217;t make CMS recommendations because I&#8217;m not a CMS person. And anyway, I could have a personal website that runs on WordPress, but it doesn&#8217;t mean it&#8217;s going to work for every situation. People can get hung up on one solution. After my talk at Web Directions, I had somebody send me a tweet that just said: &#8220;Drupal &#8230; that is all&#8221;. I think they missed the point, because Drupal might be well and good, but it doesn&#8217;t solve all the underlying problems about what you might need your content to do.</p><p>People also get hung up on the technology part. It&#8217;s easy to put blinders on. And developers have been encouraged to have their blinders on &#8212; there&#8217;s this mentality about not bothering the dev team, that they need to focus. They <em>do</em> need to focus in order to code &#8212; I get that. But that doesn&#8217;t mean they can&#8217;t be part of the decision making. It doesn&#8217;t mean they shouldn&#8217;t be part of a discussion about how to structure data in a way that users will benefit from.</p><p><strong>Another concept you talk about is how we need to look at the web as a series of patterns, as opposed to pages. Can you elaborate a little on that?</strong></p><p>When you&#8217;re dealing with a big site, and when you&#8217;re looking at hundreds or thousands of pages of content, you have to be able to see what&#8217;s underlying them. The word &#8220;page&#8221; isn&#8217;t a semantic term; it doesn&#8217;t mean anything in a web context. &#8220;Page&#8221; is a term we took from print.</p><p>You have to look at what the content actually comprises. What is it communicating? What purpose is it serving for that organization? What does it do for a user? And when you start evaluating those questions, you can find patterns &#8212; how content is similar in certain ways. You can&#8217;t isolate your content into merely pages, and then neglect to build any rules or systems for what happens to that content in different contexts. You need to have specifics built in so you can say, &#8220;OK &#8230; this type of content needs this type of treatment&#8221;. That&#8217;s how you respect what the content is communicating.</p><p><strong>Finally, if SitePoint readers were interested in moving into a career in content strategy, what skills would they need, and where would they start?</strong></p><p>There are many flavors of content strategists. Some of them come from editorial backgrounds, some from publishing. Some come from more technical fields, like technical communications, information architecture, or studying taxonomy and metadata.</p><p>The key is that if you want to get involved in content strategy, you have to be willing and able to ask tough questions, and get your organization or client talking. Facilitation is an important skill in addition to having expertise in some facet of content work. You have to be that bridge, capable of identifying areas where disconnects are happening and finding ways of overcoming them. So you have to be a therapist sometimes, too!</p><p><strong>Sara, thanks for your insights. We&#8217;ll leave it there.</strong></p><p>Thank you.</p><p>For anyone interested in finding out more about the future of content strategy, check out the details of Sara&#8217;s upcoming book, <em><a
title="Strategy and Structure for Future Ready Content" href="http://rosenfeldmedia.com/books/content-everywhere/" target="_blank">Strategy and Structure For Future-Ready Content</a></em>.</p><p>&nbsp;</p><p>&nbsp;</p><div
class='after-content-widget-1'><div
id="sitepointcontextualcontentmanagerwidget-5" class="widget widget_sitepointcontextualcontentmanagerwidget"><div
class="dfp-ad show-desktop"><div
id="div-gpt-ad-1340873946991-4" style="width: 728px; height: 90px;"> <script type="text/javascript">googletag.cmd.push(function() { googletag.display("div-gpt-ad-1340873946991-4"); });</script> </div></div></div></div>]]></content:encoded> <wfw:commentRss>http://www.sitepoint.com/sara-wachter-boettcher-the-emerging-field-of-content-strategy/feed/</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>User Experience and Uncovering Habits to Change Behavior</title><link>http://www.sitepoint.com/user-experience-uncovering-habits-to-change-behavior/</link> <comments>http://www.sitepoint.com/user-experience-uncovering-habits-to-change-behavior/#comments</comments> <pubDate>Fri, 21 Sep 2012 01:00:58 +0000</pubDate> <dc:creator>Kelly Steele</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[UX]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=59097</guid> <description><![CDATA[Understanding your customers and their habits is critical to creating compelling positive user experiences. Here, author Jodie Moule shares an excerpt from her new SitePoint book Killer UX Design, which explores: What makes a habit How do you measure a habit What does a habitual user (of your product/website/service) look like?  Enjoy. Now over to [...]]]></description> <content:encoded><![CDATA[<p></p><p>Understanding your customers and their habits is critical to creating compelling positive user experiences.</p><p>Here, author Jodie Moule shares an excerpt from her new SitePoint book <em><a
href="http://www.sitepoint.com/launch/687061">Killer UX Design</a></em>, which explores:</p><ul><li><em>What makes a habit</em></li><li><em>How do you measure a habit</em></li><li><em>What does a habitual user (of your product/website/service) look like?</em></li></ul><div> Enjoy. Now over to you, Jodie &#8230;</div><p>&#8212;</p><h2>What makes a habit?</h2><p>When you think about some of the great technology solutions of the last 20 years, many share a common ground: they create a habit. When technology has created a habit in people, a person’s use of a product is automatic, without thought.</p><p>Technologies with a social aspect are clear winners in the habit-formation stakes. Facebook, Pinterest, and Twitter all have users coming back to their sites several times a day to check what has been said, posted, or liked about content—sometimes even several times within an hour.</p><p>The additional game-changer in habit formation has been the explosion of mobile devices. Even traditionally non-habit forming sites that are more transactional in nature have the ability to become habit-forming when made available on a mobile phone (for example, mobile banking). Consider how smartphones have changed how we interact with business.<div
id='div-gpt-ad-1328644474660-10' style='width:728px; height:90px;'> <script type='text/javascript'>googletag.cmd.push(function() { googletag.display('div-gpt-ad-1328644474660-10'); });</script> </div></p><p><a
href="http://www.sitepoint.com/?attachment_id=59113" rel="attachment wp-att-59113"><img
class="alignnone size-full wp-image-59113" title="fig08-mobileqr" src="http://www.sitepoint.com/wp-content/uploads/1/files/2012/09/fig08-mobileqr.png" alt="" width="600" height="400" /></a></p><p>Products used daily create a barrier to entry for competitors in their market. If your users are unable to imagine life without your product, you can safely say you’ve met your goal. So what makes a habit?</p><p>The more you do something without making a conscious decision, the stronger the habit. Frequency of use leads to the creation of a habit in your users; so if your users are coming back regularly, it’s likely that habits are forming.</p><h2>How do you measure a habit?</h2><p>Measuring the effectiveness of your design in creating habits can be broken down into those tasks you perform before you launch, and those that you do after.</p><h3>Before You Launch Your Product</h3><p><strong>Define a habitual user</strong></p><p>How often do they use the site? What do they do? How long do they stay? How often do they visit? These questions will help you to outline what you are expecting up front before you launch. This is easier to do if your product already exists, but try to estimate what you’d expect or hope for, at a minimum.</p><p><strong>Define the frequency of use</strong></p><p>How many times a day, week, or month do you see as realistic usage? Set a clear expectation for overall frequency of use of your product, but try to be realistic. Everyone wants users to engage daily, or even hourly—but few products manage this. The context of your product will help guide what you can sensibly expect.</p><p><strong>Use the product yourself</strong></p><p>Keep note of how often you use your own product. Average out your ideal-use scenario with the number of times you have used it; adjust expectations from there.</p><p><strong>Focus on behavior</strong></p><p>Remember, we are focused on users’ behavior, and what creates a habit varies for the type of service you deliver. Focus on individual users and what they are doing, and assess if they’re making your product a habit or not. The overall active user rate is not predictive; it is what they are actually doing that should be the focal point.</p><h3>After You Launch Your Product</h3><p><strong>Set the baseline</strong></p><p>Once launched, you are in a position to collect and analyze data around habits. Measure at intervals how many of your users actually fit the definitions you set at baseline, and then at different time periods post-launch (monthly, quarterly, six-monthly).</p><p><strong>Who is dropping off and why</strong></p><p>Understand who engages with your product and who dumps it. Try to uncover why that might be the case using UX methods.</p><p><strong>Crunch your numbers</strong></p><p>Watch as user data and patterns emerge and then see how many of your users actually meet the expectations you originally set. If no one is using the product in the way you expected, then decide from your audience pool what they are doing and monitor as behavior changes or adjusts over time (a few examples of monitoring tools to consider include Flurry, Localytics, Google Analytics, ClickTales, and so on).</p><p><strong>Be patient!</strong></p><p>Measuring behavior is a job done longitudinally and there is no way of hastening time. The best results are taken over a long period, and during this time anything could change—so hang in there. There are also slow starts.</p><p>There is no magic percentage you can assign to assess whether your product is creating a habit. Actual user behavior patterns are most predictive of an eventual habit.</p><p>Monitor your users’ movements through the product, engage with them (for example, through interviews and evaluations), and continue to watch and learn.</p><h2>Evolution, Not Revolution</h2><p>Iteration as an approach to learning continues even after you’ve launched, and is backed (or refuted) by larger volumes of customer data that reflect actual use of your product.</p><p>You need to take these learnings and continue to evolve your design, but keep in mind that it is about evolution rather than revolution at this stage of the game. You are not looking to fundamentally change your design approach, but rather to tweak and refine based on a new level of understanding of your customers’ needs and habits.</p><p><a
href="http://www.sitepoint.com/?attachment_id=59114" rel="attachment wp-att-59114"><img
class="alignnone size-full wp-image-59114" title="fig08-iterativecyclesmeasure" src="http://www.sitepoint.com/wp-content/uploads/1/files/2012/09/fig08-iterativecyclesmeasure.png" alt="" width="600" height="209" /></a></p><h2>Observe the Early Adopters of Your Product</h2><p>Watching the early adoption of your product will allow you to ascertain where the real value of your product lies for your users, helping you to then shape the product in new or unexpected ways.</p><p><a
href="http://www.ted.com/talks/view/lang/en//id/473" target="_blank">A great TED talk with Evan Williams,</a> the co-founder of Twitter, reveals how watching early adopters of the product helped to uncover hidden value that was not imagined in its creation.</p><p>In this talk, Evan discusses how Twitter was originally created as a broadcast medium. Users shaped its evolution by inventing ways of doing things; for example, using the @ handle evolved from users shouting out to other users they knew whom they wanted to draw into their discussions; it was not part of the original design.</p><p>Similarly, the use of the hashtag [#] to search for like items was not originally designed, but created by a third-party provider as a way to locate content as the service grew and evolved. Twitter then purchased this service, and the hashtag became an invaluable way of locating content across all posts.</p><h2>What does a habitual user look like?</h2><p>Once you’ve launched, identify the behaviors that differentiate your habitual users from the rest, and try to identify the tipping point that took them from normal user status to habitual user status. It will take more than stats to uncover the answer, and this is where follow-up contact with your users will be useful to uncovering the “why.”</p><p>Before you go see users in the wild, check your data and formulate a hypothesis about their usage and why they might have taken a certain pathway that other users have not.</p><h2>Model Your Top Users’ Habits</h2><p>Target your devoted users and try to understand their usage and behavior in detail so that you can apply learnings from this group to the rest of your user group. Understand what it was that hooked them more strongly than standard users so that you can then use this information to attract a new group or convert others.</p><p>You could focus on data and drill down to see what they did and where they went within your product, uncovering the patterns and areas that drove their usage. Alternatively, pull out your UX methods again and talk to your most passionate users about how they use the product; monitor them in their own context and ask them to keep a diary through the trial so that you can uncover greater detail than stats alone can give you. Your devotees will love it!</p><p>Identify from your data commonalities among the habitual users to see if there is a pattern that led to a habit that can be translated across a wider group.</p><h2>UX Is Critical to Habit Measurement</h2><p>Usage statistics are invaluable as a first step as they give you a high-level idea of how people are using your product; however, users can be interrupted in different ways, and what you see in the data might not be the result of the design. Instead, it may reflect a certain situation or circumstance. Like everything, data needs intelligent interpretation.</p><p>In many ways, we come full circle in our UX process. To uncover habitual behavior, use benchmark testing, contextual interviews, and diary studies. In your diary studies, you can leave a select group of users with your product and monitor usage over an extended period of time—say, two weeks to two months—and ask them to record instances of use and general notes about the product.</p><p>UX helps you to see what is most valuable and habit-forming about your product, so that you can create something that really resonates and makes a difference to your users and the wider product landscape.</p><h2>Modify Based on What You Learn</h2><p>What you learn post-launch will allow you to focus on aspects to further develop and refine your product. You’ll also be able to market your product to new users in a way that directs them towards the end you seek.</p><p>To reach a deeper level of understanding, head out of the office and start talking to the real users of your product once again. This should help you to add context to the analytical data you’ve collected. Key areas for expanding your learning at this stage are:</p><ul><li>What are hurdles to engagement with the product or features, if any?</li><li>What gaps do competitor’s products fill that yours don’t?</li><li>Is the problem your product solves one that customers want solved?</li><li>Are your strategies influencing users’ behavior towards the desired result?</li><li>Which aspects of the product resonate with users, and which do not? (In this sense, you understand the aspects of the original vision that have been validated, and those areas that are not resonating.)</li></ul><p>Remember: with product design, it’s about evolution, not revolution.</p><p>&#8212;</p><p>And that&#8217;s a wrap on the excerpt.</p><p>Learn more about adopting the latest user experience skills by checking out Jodie&#8217;s full book: <em><a
href="http://www.sitepoint.com/launch/687061">Killer UX Design</a>. </em>If you&#8217;re quick, there are some <a
href="http://www.sitepoint.com/launch/687061">great launch discounts</a> on offer!</p><p>&nbsp;</p><div
class='after-content-widget-1'><div
id="sitepointcontextualcontentmanagerwidget-5" class="widget widget_sitepointcontextualcontentmanagerwidget"><div
class="dfp-ad show-desktop"><div
id="div-gpt-ad-1340873946991-4" style="width: 728px; height: 90px;"> <script type="text/javascript">googletag.cmd.push(function() { googletag.display("div-gpt-ad-1340873946991-4"); });</script> </div></div></div></div>]]></content:encoded> <wfw:commentRss>http://www.sitepoint.com/user-experience-uncovering-habits-to-change-behavior/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Killer UX Design Begins &#8230; Here</title><link>http://www.sitepoint.com/killer-ux-design-begins-here/</link> <comments>http://www.sitepoint.com/killer-ux-design-begins-here/#comments</comments> <pubDate>Tue, 18 Sep 2012 06:02:49 +0000</pubDate> <dc:creator>Mick Gibson</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[UX]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=58970</guid> <description><![CDATA[Great user experience (UX) design is at the heart of compelling and memorable sites. And it&#8217;s a skill Jodie Moule can help you to master in her new book Killer UX Design (just released here on SitePoint). In the book you&#8217;ll learn how to harness the power of user experience to build interfaces that influence and inspire, and keep your [...]]]></description> <content:encoded><![CDATA[<p></p><p><em><strong><a
href="http://www.sitepoint.com/uxdesigninfographic"><img
class="alignright  wp-image-58971" title="Download Your Killer UX Design Infographic" src="http://www.sitepoint.com/wp-content/uploads/1/files/2012/09/killerUXdesign.jpg" alt="Download Your Killer UX Design Infographic" width="160" height="226" /></a></strong></em></p><p>Great user experience (UX) design is at the heart of compelling and memorable sites. And it&#8217;s a skill Jodie Moule can help you to master in her new book <a
href="http://www.sitepoint.com/launch/687061 " target="_blank"><em>Killer UX Design</em></a> (just released here on SitePoint).</p><p>In the book you&#8217;ll learn how to harness the power of user experience to build interfaces that influence and inspire, and keep your users coming back—time and time again!</p><p>Watch Jodie as she introduces the book (below) and make sure you download our <a
href="http://www.sitepoint.com/uxdesigninfographic" target="_blank">fun UX Design Infographic</a> (PDF)</p><p><iframe
src="http://www.youtube.com/embed/8NY4Ad7xLi0?rel=0" frameborder="0" width="560" height="315"></iframe></p><p>&nbsp;</p><div
class='after-content-widget-1'><div
id="sitepointcontextualcontentmanagerwidget-5" class="widget widget_sitepointcontextualcontentmanagerwidget"><div
class="dfp-ad show-desktop"><div
id="div-gpt-ad-1340873946991-4" style="width: 728px; height: 90px;"> <script type="text/javascript">googletag.cmd.push(function() { googletag.display("div-gpt-ad-1340873946991-4"); });</script> </div></div></div></div>]]></content:encoded> <wfw:commentRss>http://www.sitepoint.com/killer-ux-design-begins-here/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Profiling Page Loads with the Navigation Timing API</title><link>http://www.sitepoint.com/profiling-page-loads-with-the-navigation-timing-api/</link> <comments>http://www.sitepoint.com/profiling-page-loads-with-the-navigation-timing-api/#comments</comments> <pubDate>Sat, 01 Sep 2012 13:00:58 +0000</pubDate> <dc:creator>Colin Ihrig</dc:creator> <category><![CDATA[UX]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=57439</guid> <description><![CDATA[Page load time is one of the most important aspects of user experience on the web. When pages load too slowly, users quickly become frustrated and take their business elsewhere. Unfortunately, troubleshooting a slow page load is not typically a straightforward process because many factors contribute to the overall time. For example, a page&#8217;s load [...]]]></description> <content:encoded><![CDATA[<p></p><p
style="text-align: justify;" dir="ltr">Page load time is one of the most important aspects of user experience on the web. When pages load too slowly, users quickly become frustrated and take their business elsewhere. Unfortunately, troubleshooting a slow page load is not typically a straightforward process because many factors contribute to the overall time. For example, a page&#8217;s load time can be influenced by the user&#8217;s browser, network conditions, server load, and application code, among other things.</p><p
style="text-align: justify;" dir="ltr">As a developer, methods for gathering data on these various factors has been limited in the past. For many developers, the JavaScript Date object has long been the standard for gathering performance data. For example, the following code measures load time by comparing timestamps once the page&#8217;s load event handler is invoked.</p><pre>var start = new Date();
window.addEventListener("load", function() {
  var elapsed = (new Date()).getTime() - start.getTime();
}, false);</pre><p
style="text-align: justify;" dir="ltr">There are several problems with this approach. First, <a
title="Accuracy of JavaScript Time" href="http://ejohn.org/blog/accuracy-of-javascript-time/" target="_blank">JavaScript time is notoriously inaccurate</a>. Second, using the Date object introduces overhead and clutters the application code. Third, the Date object can only measure the execution time once the code is running in the browser. The Date object cannot provide any data regarding the page load process involving the server, network, etc.</p><p
style="text-align: justify;" dir="ltr">In order to provide more accurate and comprehensive page load data, the W3C has proposed the <a
title="Navigation Timing" href="http://www.w3.org/TR/navigation-timing/" target="_blank">Navigation Timing API</a>. The proposed API provides more detailed timing information throughout the page load process.  Unlike the Date object, the navigation timing API can provide measurements related to DNS lookup, TCP connection establishment, page redirects, time spent building the DOM, and various other metrics. Navigation timing is also built directly into the browser, meaning that no additional overhead is created.</p><h2 style="text-align: justify;">Detecting Support</h2><p
style="text-align: justify;" dir="ltr">The Navigation Timing API is currently only <a
title="When can I use Navigation Timing API" href="http://caniuse.com/nav-timing" target="_blank">supported</a> in Internet Explorer 9+, Firefox, and Chrome. Therefore, support for the API should be detected before attempting to use it. The API is defined in the window object as &#8220;window.performance.timing&#8221;. The following function detects whether or not the API is supported.</p><pre style="text-align: justify;">function supportsNavigationTiming() {
  return !!(window.performance &amp;&amp; window.performance.timing);
}</pre><h2 style="text-align: justify;">Recorded Events</h2><p
style="text-align: justify;" dir="ltr">The API records the time when numerous milestones in the page load process occur. Each of these events is stored as a property of the &#8220;window.performance.timing&#8221; object. The following list describes each event. If a given event does not occur (for example a page redirect), then its value is zero.  Note: Mozilla claims that the events occur in <a
title="Navigation Timing | Mozilla Developer Network" href="https://developer.mozilla.org/en-US/docs/Navigation_timing" target="_blank">this order</a>.</p><ul><li>navigationStart ― This represents the time immediately after the browser finishes prompting to unload the previous document. If there is no previous document, then &#8220;navigationStart&#8221; is equal to &#8220;fetchStart&#8221; (see next item). This is the beginning of the page load time as perceived by the user.</li><li>fetchStart ― &#8220;fetchStart&#8221; represents the time immediately before the browser begins searching for the URL. The search process involves checking application caches, or requesting the file from the server if it is not cached.</li><li>domainLookupStart ― The &#8220;domainLookupStart&#8221; value corresponds to the time immediately before the DNS lookup for the URL occurs. If no DNS lookup is required, then the value is the same as &#8220;fetchStart&#8221;.</li><li>domainLookupEnd ― This value represents the time immediately after the DNS lookup occurs. If a DNS lookup is not required, then the value is the same as &#8220;fetchStart&#8221;.</li><li>connectStart ― This denotes the time immediately before the browser connects to the server. This value is equal to &#8220;domainLookupEnd&#8221; if the URL is a cached or local resource.</li><li>connectEnd ― Once the connection to the server is established, the &#8220;connectEnd&#8221; time is set. If the URL is a cached or local resource, then this value is the same as &#8220;domainLookupEnd&#8221;.</li><li>secureConnectionStart ― If the HTTPS protocol is used, &#8220;secureConnectionStart&#8221; is set to the time immediately before the secure handshake begins. If the browser does not support HTTPS, this value should be undefined.</li><li>requestStart ― &#8220;requestStart&#8221; represents the time just before the browser sends the request for the URL. The API does not define a &#8220;requestEnd&#8221; value.</li><li>redirectStart ― &#8220;redirectStart&#8221; represents the start time of a URL fetch that initiates a redirect.</li><li>redirectEnd ― If any redirects exist, &#8220;redirectEnd&#8221; represents the time after the last byte of the last redirect response is received.</li><li>responseStart ― This corresponds to the time immediately after the browser receives the first byte of the response.</li><li>responseEnd ― This represents the time immediately after the browser receives the last byte of the response.</li><li>unloadEventStart ― This represents the time immediately before the previous document&#8217;s &#8220;unload&#8221; event is fired. If there is no previous document, or if the previous document is from a different origin, then this value is zero.</li><li>unloadEventEnd ― This represents the time immediately after the previous document&#8217;s &#8220;unload&#8221; event is fired. If there is no previous document, or if the previous document is from a different origin, then this value is zero. If there are any redirects that point to a different origin, then &#8220;unloadEventStart&#8221; and &#8220;unloadEventEnd&#8221; are both zero.</li><li>domLoading ― &#8220;domLoading&#8221; represents the time immediately before the &#8220;document.readyState&#8221; value is set to &#8220;loading&#8221;.</li><li>domInteractive ― &#8220;domInteractive&#8221; corresponds to the time immediately before the &#8220;document.readyState&#8221; value is set to &#8220;interactive&#8221;.</li><li>domContentLoadedEventStart ― This represents the time immediately before the DOMContentLoaded event is fired.</li><li>domContentLoadedEventEnd ― This represents the time immediately after the DOMContentLoaded event is fired.</li><li>domComplete ― The &#8220;domComplete&#8221; value represents the time immediately before the &#8220;document.readyState&#8221; value is set to &#8220;complete&#8221;.</li><li>loadEventStart ― This value represents the time immediately before the window&#8217;s load event is fired. If the event hasn&#8217;t been fired yet, the value is zero.</li><li>loadEventEnd ― This represents the time immediately after the window&#8217;s load event is fired.  If the event hasn&#8217;t been fired, or is still running, then the value is zero.</li></ul><h2 style="text-align: justify;">Navigation Types</h2><p
style="text-align: justify;" dir="ltr">The Navigation Timing API also defines an interface for determining how a user landed on a particular page. The &#8220;window.performance&#8221; object also contains a &#8220;navigation&#8221; object, which contains two properties ― &#8220;type&#8221; and &#8220;redirectCount&#8221;. The &#8220;type&#8221; property provides the method by which the user navigated to the current page. The following list describes the values that &#8220;type&#8221; can hold.</p><ul
style="text-align: justify;"><li>If the user navigates to a page by typing a URL, clicking a link, submitting a form, or through a script operation, then the value of &#8220;type&#8221; is zero.</li><li>If the user reloads/refreshes the page, then &#8220;type&#8221; is equal to one.</li><li>If the user navigates to a page via history (back or forward buttons), then &#8220;type&#8221; is equal to two.</li><li>For any other circumstances, &#8220;type&#8221; is equal to 255.</li></ul><p
style="text-align: justify;" dir="ltr">The &#8220;redirectCount&#8221; property contains the number of redirects taken to the current page. If no redirects occurred, or if any of the redirects were from a different origin, then &#8220;redirectCount&#8221; is zero. The following example shows how the navigation data is accessed.</p><pre style="text-align: justify;">var navigation = window.performance.navigation;
var navType = navigation.type;
var redirectCount = navigation.redirectCount;</pre><h2 style="text-align: justify;">Making Sense of the Data</h2><p
style="text-align: justify;" dir="ltr">The Navigation Timing API is useful for calculating certain components of page load time. For example, the time taken to perform a DNS lookup can be calculated by subtracting &#8220;timing.domainLookupStart&#8221; from &#8220;timing.domainLookupEnd&#8221;. The following example calculates several useful metrics. &#8220;userTime&#8221; corresponds to the total page load delay experienced by the user. The &#8220;dns&#8221; and &#8220;connection&#8221; variables represent the times taken to perform DNS lookup and connect to the server, respectively. The total time taken to send a request to the server and receive the response is stored in &#8220;requestTime&#8221;. Finally, the total time to complete the document fetch (including accessing any caches, etc.) is stored in &#8220;fetchTime&#8221;. Notice that the setTimeout() function is called from within the window load event handler. This ensures that the navigation timing data is not used until immediately after the load event finishes. If the timing data were to be accessed from the load event handler, the value of &#8220;timing.loadEventEnd&#8221; would be zero.</p><pre>window.addEventListener("load", function() {
  setTimeout(function() {
    var timing = window.performance.timing;
    var userTime = timing.loadEventEnd - timing.navigationStart;
    var dns = timing.domainLookupEnd - timing.domainLookupStart;
    var connection = timing.connectEnd - timing.connectStart;
    var requestTime = timing.responseEnd - timing.requestStart;
    var fetchTime = timing.responseEnd - timing.fetchStart;
    // use timing data
  }, 0);
}, false);</pre><p
style="text-align: justify;" dir="ltr">The Navigation Timing API can be used in conjunction with Ajax calls to report actual user data back to a server. This is useful because it allows developers to see how the page behaves for users in the real world. The data can also be used to create a <a
title="Navigation Timing Data" href="http://www.cjihrig.com/development/html5/navigation-timing.htm" target="_blank">visualization of the page load process</a>. In fact, Google Analytics already <a
title="A Practical Guide to the Navigation Timing API" href="http://calendar.perfplanet.com/2011/a-practical-guide-to-the-navigation-timing-api/" target="_blank">incorporates navigation timing</a> into its reports.</p><h2 style="text-align: justify;">Things to Remember</h2><ul><li>The JavaScript Date object cannot accurately measure page load data because it has no knowledge of the request prior to running in the browser.</li><li>The Navigation Timing API is built directly into the browser, and provides more detailed timing measurements.</li><li>The API also tracks how users navigate to a page.</li><li>Navigation timing data can be sent to servers for analysis.</li></ul><div
class='after-content-widget-1'><div
id="sitepointcontextualcontentmanagerwidget-5" class="widget widget_sitepointcontextualcontentmanagerwidget"><div
class="dfp-ad show-desktop"><div
id="div-gpt-ad-1340873946991-4" style="width: 728px; height: 90px;"> <script type="text/javascript">googletag.cmd.push(function() { googletag.display("div-gpt-ad-1340873946991-4"); });</script> </div></div></div></div>]]></content:encoded> <wfw:commentRss>http://www.sitepoint.com/profiling-page-loads-with-the-navigation-timing-api/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>What separates the world&#039;s best web designers from the rest?</title><link>http://www.sitepoint.com/what-separates-the-worlds-best-web-designers-from-the-rest/</link> <comments>http://www.sitepoint.com/what-separates-the-worlds-best-web-designers-from-the-rest/#comments</comments> <pubDate>Thu, 16 Aug 2012 00:10:40 +0000</pubDate> <dc:creator>Mick Gibson</dc:creator> <category><![CDATA[Business]]></category> <category><![CDATA[CSS]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[UX]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=58078</guid> <description><![CDATA[Q: What separates the world&#8217;s best web designers from the rest? A: The pros appreciate that true design excellence can only be achieved with a great design process.  Our new book &#8220;The Web Designer&#8217;s Roadmap&#8221; will help you consistently produce world-class web designs, time and time again. Before you jump into your next design, learn how the best [...]]]></description> <content:encoded><![CDATA[<p></p><p><em><strong>Q: What separates the world&#8217;s best web designers from the rest?</strong></em></p><p><strong><em>A: The pros appreciate that true design excellence can only be achieved with a great design process.</em> </strong></p><p>Our new book &#8220;<a
href="http://www.sitepoint.com/launch/d4f383">The Web Designer&#8217;s Roadmap</a>&#8221; will help you consistently produce world-class web designs, time and time again. Before you jump into your next design, learn how the best of the best go about it &#8211; with insights and interviews from the likes of: Donald Norman, Daniel Burka, Shaun Inman, and a host of others design pros.</p><p>Join author Giovanni DiFeterici, as he <a
href="http://www.sitepoint.com/launch/d4f383 ">walks you through the concept for the book</a>, and what you&#8217;ll likely glean from it.</p><p><a
href="http://www.sitepoint.com/launch/d4f383"><img
class="aligncenter size-full wp-image-58079" title="Watch Giovanni DiFeterici introduce The Web Designers Roadmap" src="http://www.sitepoint.com/wp-content/uploads/1/files/2012/08/The-Web-Designers-Roadmap-video.jpg" alt="Watch Giovanni DiFeterici introduce The Web Designers Roadmap" width="600" height="374" /></a><br
/> As usual, we have a great launch special:</p><ul><li><strong><a
href="https://sitepoint.com/bookstore/sale/330.331/f9f6f4/ka1agjnz51">Save 50%</a> when you order the PRINT and DIGITAL EPACK Bundle</strong></li><li><strong><a
href="http://www.sitepoint.com/bookstore/go/331/00917e/c9a6898dea">Save 42%</a> when you order the DIGITAL EPACK (epub + mobi + pdf versions)</strong></li></ul><div
class='after-content-widget-1'><div
id="sitepointcontextualcontentmanagerwidget-5" class="widget widget_sitepointcontextualcontentmanagerwidget"><div
class="dfp-ad show-desktop"><div
id="div-gpt-ad-1340873946991-4" style="width: 728px; height: 90px;"> <script type="text/javascript">googletag.cmd.push(function() { googletag.display("div-gpt-ad-1340873946991-4"); });</script> </div></div></div></div>]]></content:encoded> <wfw:commentRss>http://www.sitepoint.com/what-separates-the-worlds-best-web-designers-from-the-rest/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>SEO Alert! Google Downgrades Pages With Too Many Ads</title><link>http://www.sitepoint.com/seo-google-adverts-above-fold/</link> <comments>http://www.sitepoint.com/seo-google-adverts-above-fold/#comments</comments> <pubDate>Mon, 23 Jan 2012 13:17:49 +0000</pubDate> <dc:creator>Craig Buckler</dc:creator> <category><![CDATA[Community]]></category> <category><![CDATA[CSS]]></category> <category><![CDATA[Revenue]]></category> <category><![CDATA[SEO and SEM]]></category> <category><![CDATA[UX]]></category> <category><![CDATA[Web standards]]></category> <category><![CDATA[advertising]]></category> <category><![CDATA[adverts]]></category> <category><![CDATA[Google Tutorials & Articles]]></category> <category><![CDATA[PageRank]]></category> <category><![CDATA[search]]></category> <category><![CDATA[SEO]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=50605</guid> <description><![CDATA[Google has announced an algorithm change which downgrades any site with too many adverts above the fold. Craig discusses the policy and whether Google is starting to dictate how you design web pages.]]></description> <content:encoded><![CDATA[<p></p><p>Adverts pay for many of the resources we take for granted on the web. No one begrudges a few ads &#8212; you wouldn&#8217;t be reading this if you did &#8212; but some sites take adverts beyond a reasonable level. Google&#8217;s latest search algorithm change attempts to improve user experience by downgrading sites with too many adverts.</p><p>According to Google&#8217;s <a
href="http://insidesearch.blogspot.com/2012/01/page-layout-algorithm-improvement.html">Inside Search blog</a>:</p><blockquote><p> We understand that placing ads above-the-fold is quite common for many websites; these ads often perform well and help publishers monetize online content. This algorithmic change does not affect sites who place ads above-the-fold to a normal degree, but affects sites that go much further to load the top of the page with ads to an excessive degree or that make it hard to find the actual original content on the page. This new algorithmic improvement tends to impact sites where there is only a small amount of visible content above-the-fold or relevant content is persistently pushed down by large blocks of ads.</p></blockquote><p>The algorithm analyzes adverts in fixed positions; the Pagerank for sites using pop-ups, pop-unders or overlays will not be affected.<div
id='div-gpt-ad-1328644474660-10' style='width:728px; height:90px;'> <script type='text/javascript'>googletag.cmd.push(function() { googletag.display('div-gpt-ad-1328644474660-10'); });</script> </div></p><p>Google estimates the change will impact 1% of searches, i.e. you could encounter result reordering for one in every 100 searches. If your site&#8217;s affected, they recommend testing it with the <a
href="http://browsersize.googlelabs.com/">Browser Size tool</a>.</p><h2>Perplexing Prerequisites</h2><p>As with most search algorithm changes, Google is holding all the cards and gives us little to go on&hellip;</p><ol><li>What do Google consider to be an advert? They&#8217;re not always banners or third-party scripts?</li><li>What do Google consider <em>&#8220;above-the-fold&#8221;</em>? It&#8217;s a dubious design term which changes from device to device and has no authoritative specification.</li><li>How do Google know whether an advert is above the fold? It&#8217;s easy to reposition advert blocks with CSS or JavaScript which wouldn&#8217;t necessarily be noticed by the algorithm.</li><li>How do they rank pages which use responsive design and reposition or remove adverts according to the screen size?</li><li>Google AdWords recommends advert positions above the fold. You may have received messages stating that you&#8217;re losing revenue because you&#8217;re under-utilizing the maximum number of slots. Could you be penalized for using Google&#8217;s own advice?</li></ol><p>It&#8217;s great Google want to improve the web and search is their core business &#8212; they can do what they like and we&#8217;re free to use them or not. That said, should a company as powerful as Google be able to dictate something as subjective as design or user experience?</p><p>The Apple and Microsoft websites are essentially huge multi-page adverts. Could those sites be downgraded because Google (a major competitor) considers them to offer a bad user experience?</p><p>And where could it end? Could Google consider downgrading predominantly red designs because it&#8217;s considered a danger color in some cultures? Are they impeding your creative freedom? Is it censorship?</p><h2>Don&#8217;t Panic</h2><p>The vast majority of site owners need not be alarmed. Google&#8217;s announcement sounds more like marketing spin than an advanced new technology which will change the way designers approach pages.</p><p>I suspect the algorithm loads each page in a browser engine which emulates a 1024px width screen. CSS and JavaScript effects parsed during the initial page load may be applied but event or timer-driven code wouldn&#8217;t run. It then works out the vertical position of the first major content block and if it&#8217;s more than, say, 600px down, the Pagerank would be reduced accordingly. The overall impact is likely to be tiny, though. Factors such as keyword relevancy and even page weight will have a bigger effect.</p><p>There&#8217;s an easy way for site owners to avoid downgrades: simply place all your adverts at the bottom of the page then rearrange the content using CSS3 animations or JavaScript events. I&#8217;m no fan of intrusive advertising but that&#8217;s a horrible user experience &#8212; far worse than a little scrolling. Unfortunately, Google won&#8217;t know unless they manually check the site.</p><p>Will Google&#8217;s new algorithm affect your site? Is the policy at odds with Google&#8217;s advertising business? Is Google using it&#8217;s power to dictate website design and code quality?</p><div
class='after-content-widget-1'><div
id="sitepointcontextualcontentmanagerwidget-5" class="widget widget_sitepointcontextualcontentmanagerwidget"><div
class="dfp-ad show-desktop"><div
id="div-gpt-ad-1340873946991-4" style="width: 728px; height: 90px;"> <script type="text/javascript">googletag.cmd.push(function() { googletag.display("div-gpt-ad-1340873946991-4"); });</script> </div></div></div></div>]]></content:encoded> <wfw:commentRss>http://www.sitepoint.com/seo-google-adverts-above-fold/feed/</wfw:commentRss> <slash:comments>19</slash:comments> </item> <item><title>How To Increase Conversions by 50% Overnight</title><link>http://www.sitepoint.com/how-to-increase-conversions-by-50-overnight/</link> <comments>http://www.sitepoint.com/how-to-increase-conversions-by-50-overnight/#comments</comments> <pubDate>Thu, 12 Jan 2012 05:06:48 +0000</pubDate> <dc:creator>Brandon Eley</dc:creator> <category><![CDATA[Business]]></category> <category><![CDATA[ecommerce]]></category> <category><![CDATA[Marketing]]></category> <category><![CDATA[Revenue]]></category> <category><![CDATA[UX]]></category> <category><![CDATA[user testing]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=50127</guid> <description><![CDATA[Brandon Eley finds user testing can be a very effective way to reach out to the unconverted.]]></description> <content:encoded><![CDATA[<p></p><p>A few years ago free shipping was taking the e-commerce world by storm &#8230; we saw several of our competitors implement free or flat-rate shipping and decided it was time to give it a try. In our e-commerce business we decided to offer free shipping on orders above $100, and flat rate shipping on all other orders (to the contiguous US). We created a coupon code that customers had to enter into the shopping cart at checkout to claim the promotional shipping offer, and added banners to every page of our website advertising the promotion and code.</p><p>The free shipping offer was very successful, and we saw a noticeable spike in conversion rate and orders. There were also a number of people who didn&#8217;t select the free shipping offer, and we just assumed they wanted their order shipped via a specific carrier. After a while, we started to get a few complaints from customers that overlooked the coupon code or couldn&#8217;t remember it once they were on the checkout screen. They would email us asking why they paid for shipping, when our site advertises it as being free.</p><p>During the holiday shopping season that year we did some user testing through <a
href="http://usertesting.com">UserTesting.com</a> and quickly realized the free shipping offer was a major source of confusion with potential customers. Many didn&#8217;t see the banners advertising the offer, and of the ones that did, quite a few overlooked the coupon code.<div
id='div-gpt-ad-1328644474660-10' style='width:728px; height:90px;'> <script type='text/javascript'>googletag.cmd.push(function() { googletag.display('div-gpt-ad-1328644474660-10'); });</script> </div></p><p>I decided to make the flat rate shipping the default, and automatically select free shipping for all qualifying orders (in US over $100). Our e-commerce software wasn&#8217;t really set up to handle that kind of scenario, so I actually wrote a custom shipping module for our e-commerce platform.</p><p>When we implemented the new shipping options on our website, <strong>our conversion rate increased by 50% overnight</strong>.</p><h3>Find Areas of Frustration</h3><p>Adding the free shipping offer increased conversions, sure. But the <em>way</em> we implemented it also caused a lot of confusion and frustration. For months, we didn&#8217;t even know we had a problem. Looking back, I shudder to think how much revenue we lost in that period of time.</p><p>We get so used to our own websites, it&#8217;s hard to see it from a visitor&#8217;s perspective. Usability testing is the answer. Use a service such as UserTesting.com to let real users evaluate your website or landing page. UserTesting.com is a very affordable remote usability testing service that employs real users to test your website according to criteria you determine. You choose your target demographic including age, income, gender and even web experience. The user follows your instructions, recording their screen and audio as they tell you what they are thinking through each step of the process.</p><p>The real feedback you get from these users will likely give you several areas in need of improvement.</p><p>You can also use tools like <a
href="http://crazyegg.com">CrazyEgg.com</a> to see where people click, even areas that aren&#8217;t hotlinked, and your web analytics package can often shed some light on potential problem areas as well.</p><h3>Survey Your Visitors</h3><p>Another great way to find out about potential problem areas is to conduct an exit survey on your visitors. Invite visitors who started filling out your contact form, or have added an item to their shopping cart but didn&#8217;t complete the transaction to tell you about their experience.</p><p>You might be surprised to hear the reasons they left. Some may have just been doing research or comparison shopping, but some will have experienced problems along the way that prevented them from completing.</p><h3>Test Changes</h3><p>Using a tool such as Google Website Optimizer, test changes to problem areas (one at a time). I have made changes I was <em>sure</em> would increase conversions and to my surprise they actually made things worse. Even with all our experience, some things just aren&#8217;t &#8220;logical.&#8221; Test, test, test.</p><p>Using simple A/B split testing in GWO, test a couple of different variations and see which one performs best. Then move on to another problem area, make a change and test. Continue making changes, and testing, to continuously improve your conversion rate over time. You&#8217;ll likely find that some changes will have drastic improvements, like ours above, and others may only increase conversion rates by 5% or 10%.</p><h3>Always Work to Improve Conversions</h3><p>You should always be working to improve your conversion rates. If you run out of areas to test, <a
href="http://www.conversion-rate-experts.com/cro-tips/">check out this great article by Conversion Rate Experts. That will give you a few things to try: 108 to be exact!<br
/> </a></p><div
class='after-content-widget-1'><div
id="sitepointcontextualcontentmanagerwidget-5" class="widget widget_sitepointcontextualcontentmanagerwidget"><div
class="dfp-ad show-desktop"><div
id="div-gpt-ad-1340873946991-4" style="width: 728px; height: 90px;"> <script type="text/javascript">googletag.cmd.push(function() { googletag.display("div-gpt-ad-1340873946991-4"); });</script> </div></div></div></div>]]></content:encoded> <wfw:commentRss>http://www.sitepoint.com/how-to-increase-conversions-by-50-overnight/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>How to Enable WebGL for Blocked Graphics Cards in Firefox</title><link>http://www.sitepoint.com/firefox-enable-webgl-blacklisted-graphics-card/</link> <comments>http://www.sitepoint.com/firefox-enable-webgl-blacklisted-graphics-card/#comments</comments> <pubDate>Tue, 20 Dec 2011 15:56:53 +0000</pubDate> <dc:creator>Craig Buckler</dc:creator> <category><![CDATA[HTML5]]></category> <category><![CDATA[Open source]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[UX]]></category> <category><![CDATA[Web security]]></category> <category><![CDATA[firefox]]></category> <category><![CDATA[GPU]]></category> <category><![CDATA[graphics cards]]></category> <category><![CDATA[HTML5 Dev Center]]></category> <category><![CDATA[WebGL]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=48222</guid> <description><![CDATA[Craig reveals how you can run WebGL applications in Firefox even if your graphics card has been blacklisted. It's dangerous, but worth the risk to play X-Wing!]]></description> <content:encoded><![CDATA[<p></p><p>WebGL is amazing. Take a look at <a
href="http://oos.moxiecode.com/js_webgl/xwing/">X-Wing</a> or <a
href="http://www.firstpersontetris.com/">First-Person Tetris</a> in Firefox. What do you mean it&#8217;s not working?</p><p>My laptop&#8217;s two years old but, despite having a reasonable dedicated graphics card, WebGL is disabled in Firefox. Mozilla blacklist specific GPUs based on the driver version number, i.e.</p><ul><li>NVIDIA cards require a driver numbered 8.17.12.5721 or greater</li><li>AMD/ATI cards are 8.741.0.0 or greater</li><li>Intel cards normally require 6.14.11 on XP, 7.15.10 on Vista or 8.15.10 on 7 (although some products are completely blocked)</li><li>Macs require OS version 10.6 or newer</li></ul><p>In general, blacklisting is a good thing. You don&#8217;t want WebGL crashing the browser because your card doesn&#8217;t support the right number of Z/Stencil ROP Units, 128-bit floating point HDR, anisotropic texture filtering or some other bizarre feature no one understands.</p><p>Unfortunately, hardware vendors stop producing drivers for legacy products <em>(anything released before last Tuesday)</em>. In some cases, your PC vendor will insist on releasing their own modified driver updates and there&#8217;s no guarantee they&#8217;ll do that. Your graphics card may be WebGL-compatible, but it&#8217;ll be blocked in Firefox if the driver version is 0.0.0.1 behind the approved list. Type &#8220;about:support&#8221; in the address bar and scroll down to the &#8220;Graphics&#8221; section at the bottom to discover whether your card is suitable.</p><p>And all you Chrome users can stop giggling &#8212; Google is adopting GPU blacklists in their browser shortly.</p><h2 style="color:#c00">Big Red Warning</h2><p>We&#8217;re about to bypass Firefox&#8217;s GPU blacklist. It&#8217;s a dumb thing to do and involves tinkering with dangerous configuration settings. Do this at your own risk: I can&#8217;t accept responsibility for any catastrophic PC failures, migraines, plagues, explosions or spontaneous human combustion caused by these changes &hellip; <em>But it&#8217;s worth the risk to play <a
href="http://oos.moxiecode.com/js_webgl/xwing/">X-Wing</a></em>!</p><h2>Here Be Dragons</h2><p>Type <strong>about:config</strong> in Firefox&#8217;s address bar and make the following changes:</p><ul><li>To enable WebGL, set <strong>webgl.force-enabled</strong> to <strong>true</strong>.</li><li>To enable Layers Acceleration, set <strong>layers.acceleration.force-enabled</strong> to <strong>true</strong></li><li>To enable Direct2D in Windows Vista/7, set <strong>gfx.direct2d.force-enabled</strong> to <strong>true</strong></li></ul><p>Now, cross your fingers, restart Firefox and try running a WebGL application. It&#8217;s probably best to undo those changes if smoke starts pouring from your PC.</p><div
class='after-content-widget-1'><div
id="sitepointcontextualcontentmanagerwidget-5" class="widget widget_sitepointcontextualcontentmanagerwidget"><div
class="dfp-ad show-desktop"><div
id="div-gpt-ad-1340873946991-4" style="width: 728px; height: 90px;"> <script type="text/javascript">googletag.cmd.push(function() { googletag.display("div-gpt-ad-1340873946991-4"); });</script> </div></div></div></div>]]></content:encoded> <wfw:commentRss>http://www.sitepoint.com/firefox-enable-webgl-blacklisted-graphics-card/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Ban the Bloat: 5 Reasons to Watch Your Page Weight</title><link>http://www.sitepoint.com/5-reasons-to-watch-page-weight/</link> <comments>http://www.sitepoint.com/5-reasons-to-watch-page-weight/#comments</comments> <pubDate>Mon, 05 Dec 2011 17:12:02 +0000</pubDate> <dc:creator>Craig Buckler</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[HTML5]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[UX]]></category> <category><![CDATA[Web hosting and domains]]></category> <category><![CDATA[Web standards]]></category> <category><![CDATA[bloat]]></category> <category><![CDATA[filesize]]></category> <category><![CDATA[HTML5 Dev Center]]></category> <category><![CDATA[weight]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=48707</guid> <description><![CDATA[Average web page weight has increased 25% in one year. Craig discusses why file sizes should be falling.]]></description> <content:encoded><![CDATA[<p></p><p>I&#8217;m stunned. I&#8217;ve written <a
href="http://www.sitepoint.com/minimizing-page-weight-matters/">several</a> <a
href="http://www.sitepoint.com/9-causes-of-web-page-obesity/">web page</a> <a
href="http://www.sitepoint.com/page-weight-google-seo/">bloat</a> articles over the years but it&#8217;s all been in vain. According to <a
href="http://www.pingdom.com/">Pingdom</a>, a performance monitoring service, <a
href="http://royal.pingdom.com/2011/11/21/web-pages-getting-bloated-here-is-why/">total web page file sizes have increased by 25% during the past 12 months</a>.</p><p>The average web page now weighs 784KB compared to 626KB in November 2010. Remember that&#8217;s an average: 50% of sites will exceed that size. To put it into context, a single page can be 10% of the browser application which was downloaded to render it.</p><p>The Pingdom article concludes that the main culprits are:</p><ul><li>JavaScript: an increase of 44.7% (103KB to 149KB)</li><li>images: an increase of 21.2% (372KB to 451KB)</li></ul><p>But why? HTML5 technologies are far more common. I would have expected a minor increase in HTML and CSS code &#8212; especially to cater for CSS3 vendor-prefixes &#8212; but shouldn&#8217;t JavaScript and image sizes should be dropping? There&#8217;s less need for image-generated gradients, coded animations, rounded corners, shadows, etc.<div
id='div-gpt-ad-1328644474660-10' style='width:728px; height:90px;'> <script type='text/javascript'>googletag.cmd.push(function() { googletag.display('div-gpt-ad-1328644474660-10'); });</script> </div></p><p>I also expected Flash usage to drop but it&#8217;s increased from 77KB to 87KB (13%). I suspect it&#8217;s primarily used in advertising, but HTML5 alternatives and <a
href="http://www.sitepoint.com/adobe-abandons-mobile-flash/">Adobe abandoning mobile platforms</a> are yet to have an effect.</p><p>So, is the problem that designers and developers rarely worry about page bloat? Anyone moving into the industry within the past five years has enjoyed the luxury of reliable broadband. Those who experienced the pain of dial-up connections often needed to optimize every byte &#8212; I can remember omitting closing tags and attribute quotes just to squeeze pages further.</p><p>Obviously the situation has progressed and few people would limit themselves to the 50KB <em>maximum</em> developers adhered to during the late 1990s. But there are many good reasons why you should habitually minimize your file sizes&hellip;</p><p><strong>1. Search Engine Optimization</strong><br
/> If two sites have similar content and page-ranks, the one which loads faster will gain a higher position in Google.</p><p><strong>2. Reduced Cost</strong><br
/> Smaller file sizes result in reduced hosting costs, bandwidth charges and user time. These factors are never free and, the more popular your site becomes, the more you&#8217;ll be charged.</p><p><strong>3. Slow Connectivity</strong><br
/> Just because you have fast unlimited access, don&#8217;t assume everyone else is sitting on a fat pipe. The situation is especially dire in the western countries which are dependent on aging copper telephone networks. A proportion your market will have a slow connection &#8212; or even dial-up &#8212; because that&#8217;s the best they can get.</p><p><strong>4. Mobile Access is Increasing</strong><br
/> Web access from smartphones tablets are popular. Eventually, they&#8217;re expected to overtake desktop browsing. Even those with reasonable 3G access will be waiting 30 seconds for your 1MB monolithic page to appear. Is that progress?</p><p><strong>5. Developing Markets</strong><br
/> Unlike the West, Asia and Africa will experience explosive internet growth during the next decade. The relative area sizes and population distributions mean that slow or mobile connectivity are the only option for the foreseeable future.</p><p>Perhaps those markets aren&#8217;t important to you now, but they will be. Besides, unlike the west, many of those economies aren&#8217;t bankrupt &hellip; they may become your only market!</p><p>Finally, let&#8217;s not forget that smaller file sizes normally results in more responsive applications. That&#8217;s good for everyone.</p><p>Let&#8217;s hope Pingdom&#8217;s 2012 report shows a big reduction in file sizes.</p><div
class='after-content-widget-1'><div
id="sitepointcontextualcontentmanagerwidget-5" class="widget widget_sitepointcontextualcontentmanagerwidget"><div
class="dfp-ad show-desktop"><div
id="div-gpt-ad-1340873946991-4" style="width: 728px; height: 90px;"> <script type="text/javascript">googletag.cmd.push(function() { googletag.display("div-gpt-ad-1340873946991-4"); });</script> </div></div></div></div>]]></content:encoded> <wfw:commentRss>http://www.sitepoint.com/5-reasons-to-watch-page-weight/feed/</wfw:commentRss> <slash:comments>14</slash:comments> </item> <item><title>DesignFestival: Designing for the Dark Side</title><link>http://feedproxy.google.com/~r/DesignFestival/~3/-JSyV7wcsSc/</link> <comments>http://feedproxy.google.com/~r/DesignFestival/~3/-JSyV7wcsSc/#comments</comments> <pubDate>Thu, 01 Dec 2011 23:18:09 +0000</pubDate> <dc:creator>Tara Hornor</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[UX]]></category> <category><![CDATA[user experience]]></category> <guid
isPermaLink="false">http://www.sitepoint.com/?p=48730</guid> <description><![CDATA[ Whatever your motivation — the client told you to do it, you’re tired of white or light backgrounds, or your deep-seated anger over your own father cutting your hand off (just don’t be a hater!) — designing dark websites can be a serious challenge. Careful use of the Creative Force is in order as dark designs have special considerations. A few design tips will keep you from fully giving in to the Dark Side, although this might just be your destiny… For those of you looking for some inspiration, check out this collection of 20 dark websites with some excellent examples. If you need some design advice, keep reading]]></description> <content:encoded><![CDATA[<p></p><p>Whatever your motivation — the client told you to do it, you’re tired of white or light backgrounds, or your deep-seated anger over your own father cutting your hand off (just don’t be a hater!) — designing dark websites can be a serious challenge. Careful use of the Creative Force is in order as dark designs have special considerations. A few design tips will keep you from fully giving in to the Dark Side, although this might just be your destiny… For those of you looking for some inspiration, check out this collection of 20 dark websites with some excellent examples. If you need some design advice, keep reading</p><p>Read more here:<br
/> <a
title="DesignFestival: Designing for the Dark Side" href="http://feedproxy.google.com/~r/DesignFestival/~3/-JSyV7wcsSc/" target="_blank">DesignFestival: Designing for the Dark Side</a></p><div
class='after-content-widget-1'><div
id="sitepointcontextualcontentmanagerwidget-5" class="widget widget_sitepointcontextualcontentmanagerwidget"><div
class="dfp-ad show-desktop"><div
id="div-gpt-ad-1340873946991-4" style="width: 728px; height: 90px;"> <script type="text/javascript">googletag.cmd.push(function() { googletag.display("div-gpt-ad-1340873946991-4"); });</script> </div></div></div></div>]]></content:encoded> <wfw:commentRss>http://feedproxy.google.com/~r/DesignFestival/~3/-JSyV7wcsSc/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using memcached
Database Caching 43/75 queries in 0.232 seconds using memcached
Object Caching 1992/2148 objects using memcached

Served from: www.sitepoint.com @ 2013-05-13 14:18:47 --