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

<channel>
	<title>The Accidental Developer &#187; User Interface</title>
	<atom:link href="http://osric.com/chris/accidental-developer/category/user-interface/feed/" rel="self" type="application/rss+xml" />
	<link>http://osric.com/chris/accidental-developer</link>
	<description>What if Gregor Samsa awoke a computer programmer?</description>
	<lastBuildDate>Sat, 28 Jan 2012 23:13:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>University of Michigan jobs site has major browser compatibility issues</title>
		<link>http://osric.com/chris/accidental-developer/2009/07/university-of-michigan-jobs-site-has-major-browser-compatibility-issues/</link>
		<comments>http://osric.com/chris/accidental-developer/2009/07/university-of-michigan-jobs-site-has-major-browser-compatibility-issues/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 16:05:29 +0000</pubDate>
		<dc:creator>Chris Herdt</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[cross-browser compatibilty]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[um]]></category>
		<category><![CDATA[university of michigan]]></category>

		<guid isPermaLink="false">http://osric.com/chris/accidental-developer/?p=197</guid>
		<description><![CDATA[The University of Michigan's job postings web site is not only unusable in modern browsers like Safari, Chrome, and Opera, but it also serves up an unfriendly error message that may dissuade users of those browsers from returning. The cost? Missing out on some of the most tech-savvy and qualified job candidates.]]></description>
			<content:encoded><![CDATA[<p>At the risk of sounding like a one-note, I would like to again talk about browser compatibility issues. These compatibility issues affect an organization&#8217;s bottom line, and should not be ignored. In this particular case, <a href="http://www.umich.edu/~jobs">The University of Michigan&#8217;s (U-M) job web site</a> is unusable to about 10-15% of visitors, by my estimates (they are using <a href="http://www.google.com/analytics/">Google Analytics</a> on the page, so they should have that data). To me, this says that U-M may be missing out on some of the most qualified candidates for their position openings, undeniably at great cost to the organization. [I am particularly concerned in this case because U-M is my alma mater.]</p>
<p>In particular, the browsers that are not compatible with the U-M jobs site are Safari, Chrome, and Opera &#8212; browsers typically used by more tech-savvy users &#8212; so U-M may be missing out on the very candidates best-suited for work in today&#8217;s web-based world.<br />
<span id="more-197"></span><br />
The first thing to note is the warning on the interstitial page, the page between the user and the content:<br />
&#8220;Supported browsers are: Windows 2000 and XP &#8211; Internet Explorer version 7.0. MAC OSX &#8211; Safari versions 1 and 2. (Safari 3.0 for Mac is not supported).&#8221;</p>
<p>It&#8217;s in small type and can easily be overlooked by a focus-driven person who is here to look for jobs postings, not browser recommendations. Not that I think there is any excuse for not supporting all major, modern browsers, but this page could at least include a browser-detection script that would alert users of unsupported browsers in a prominent manner. It might as well also mention that Javascript needs to be enabled. No matter, though, because the next click will let Safari, Chrome, and Opera users know in bold black text on a plain white background:</p>
<blockquote><p><strong>// Start Req. No 3294 Bug No 21869,21870 This site is designed to work with Microsoft Internet Explorer (versions 5.5, 6.0, 7.0), Netscape (versions 7.0, 7.1) and Mozilla (version 1.7) Web browsers installed with the Microsoft Windows operating system, and Safari (version 1.2) Web browser installed with the Mac operating system. The browser and/or operating system that you are using to access this site is not currently supported. Please access this site from a device with a supported browser and operating system combination. // End Req. No 3294 Bug No 21869,21870</strong></p></blockquote>
<p>Friendly, isn&#8217;t it? It looks more like a browser error than a message from the U-M jobs site. A lot of people might see &#8220;Bug No 21869,21870&#8243; and assume the site is temporarily down.</p>
<p>Job searchers are a persistent bunch, though, and presumably many of them will read through the error message and decide to revisit the site in Internet Explorer. Mac users may have a harder time following the recommendation, as Apple likes to push out Safari updates. You can download <a href="http://mac.oldapps.com/safari.php">old versions of Safari</a>, but that&#8217;s not something we can expect every job searcher to do, much less be aware of.</p>
<p>Once you do get to the jobs search page in (in Internet Explorer or Firefox), you get a frameset consisting of 5 frames, none of which have titles (from <a href="http://www.webaim.org/techniques/frames/">Creating Accessible Frames</a>: &#8220;One of the most important things you can do to increase the accessibility of frames is to give each frame a title.&#8221;). The links on the footer frame, such as the link to the <a href="http://www.umich.edu/~jobs/nondisc.html">non-descrimination statement</a>, do not have a target attribute set to &#8220;_top&#8221; and therefore open in the same frame, one line of text high.</p>
<p>There is a logo on the page: &#8220;Powered by Deploy Solutions TM, Copyright 2004 Deploy Solutions, Inc. All rights reserved.&#8221; <strong>2004?</strong> Maybe it&#8217;s time to upgrade.</p>
<p>In my recent post about T-Mobile, the cost of browser incompatibility was expensive and avoidable phone calls to customer services. Here, the cost is arguably even higher: missing out on the best job candidates. That might be more difficult to pin a dollar amount to, but if I were U-M I would be worried&#8211;and I would fix it.</p>
<p><strong>Edit:</strong><br />
I e-mailed U-M about these issues and received the following in their response: &#8220;There are no plans to upgrade this until the system is replaced in June of 2010.&#8221; Although that&#8217;s nearly a year away, I&#8217;m glad to know that they are planning to replace it.</p>
]]></content:encoded>
			<wfw:commentRss>http://osric.com/chris/accidental-developer/2009/07/university-of-michigan-jobs-site-has-major-browser-compatibility-issues/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript textarea counter</title>
		<link>http://osric.com/chris/accidental-developer/2008/11/javascript-textarea-counter/</link>
		<comments>http://osric.com/chris/accidental-developer/2008/11/javascript-textarea-counter/#comments</comments>
		<pubDate>Sat, 15 Nov 2008 19:33:26 +0000</pubDate>
		<dc:creator>Chris Herdt</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[delicious]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[textarea]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://osric.com/chris/accidental-developer/?p=109</guid>
		<description><![CDATA[I&#8217;ve been thinking more about the textarea counter issue that I mentioned in my previous post (&#8220;Users Paste Differently&#8220;). First of all, I noticed that some of the textarea counter scripts date back to at least 2000, so this has been a problem that developers have been looking to solve for 8 years. I checked [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been thinking more about the textarea counter issue that I mentioned in my previous post (&#8220;<a href="http://osric.com/chris/accidental-developer/?p=103">Users Paste Differently</a>&#8220;).</p>
<p>First of all, I noticed that some of the textarea counter scripts date back to at least 2000, so this has been a problem that developers have been looking to solve for 8 years. I checked the <a href="http://www.w3.org/html/wg/html5/">HTML 5 specification</a> and found that in HTML 5, the <a href="http://www.w3.org/html/wg/html5/#the-textarea-element">textarea element has a maxlength attribute</a>. Presumably user agents will build in the most elegant solution.</p>
<p>But what is the current most elegant solution?<span id="more-109"></span><br />
I checked a couple sites that I know use textarea counters well: <a href="http://delicious.com/">Delicious</a> and <a href="http://twitter.com/">Twitter</a>.</p>
<p><strong>Delicious</strong><br />
<div id="attachment_118" class="wp-caption alignnone" style="width: 420px"><a href="http://osric.com/chris/accidental-developer/wp-content/uploads/2008/11/delicious-textarea-counters.png"><img src="http://osric.com/chris/accidental-developer/wp-content/uploads/2008/11/delicious-textarea-counters.png" alt="Textarea counters on Delicious.com" title="delicious-textarea-counters" width="410" height="66" class="size-full wp-image-118" /></a><p class="wp-caption-text">Textarea counters on Delicious.com</p></div></p>
<p><strong>Twitter</strong><br />
<div id="attachment_120" class="wp-caption alignnone" style="width: 394px"><a href="http://osric.com/chris/accidental-developer/wp-content/uploads/2008/11/twitter-textarea-counters.png"><img src="http://osric.com/chris/accidental-developer/wp-content/uploads/2008/11/twitter-textarea-counters.png" alt="Textarea counters on Twitter.com" title="twitter-textarea-counters" width="384" height="80" class="size-full wp-image-120" /></a><p class="wp-caption-text">Textarea counters on Twitter.com</p></div></p>
<p>I like how prominent the character count is in Twitter, although perhaps too terse, but if Javascript is disabled it displays nothing at all. On the other hand, in Delicious displays &#8220;1000 characters max&#8221; if Javascript is off (instead of &#8220;1000 characters left&#8221;), which is still useful information. (I would avoid using the abbreviation <em>max</em>, though, and use <em>maximum</em> or <em>limit</em> instead, which might be better understood by those for whom English is a second language.)</p>
<p>I like Twitter&#8217;s &#8220;warning track&#8221; that lets the user know they need to keep it concise and wrap it up, although I find it confusing that they used bright red to denote both the &#8220;dangerously close to&#8221; as well as &#8220;over&#8221; the limit. The positive bright red numbers could easily be misconstrued as over the limit, since red is a color we frequently use to denote errors.</p>
<p>Twitter&#8217;s counter responds to onBlur and onChange, whereas the counter in Delicious is triggered by neither.</p>
<p>Both get one thing right that I think most other textarea counters get wrong: they don&#8217;t truncate the user&#8217;s text. Deleting something that the user has typed (or pasted) is definitely a bad idea for at least two reasons: the user may not realize the input was truncated and may submit incomplete info, and that the user, upon discovering that the input requires editing, may choose to cut text from someplace other than the end. Instead, both versions alert the user that they are over the limit and provide information on how many characters need to be cut to stay within the limit.</p>
<p>(As an aside, one thing I find curious is that both count an <em>Enter</em> keystroke as one character. I&#8217;ve run into issues with this before because a line break on a Windows-based system should insert 2 ASCII characters: a Carriage Return (CR) and a Line Feed (LF). *nix systems, including OS X, will insert a Line Feed (LF). However, I haven&#8217;t been able to reproduce this issue with recent testing. If it is still an issue, I imagine they handle this on the back-end by converting the CRLF to LF before inserting it into the database?)</p>
<p>In short, my recommendations are:</p>
<ul>
<li>Don&#8217;t truncate the user&#8217;s input; let the user correct it</li>
<li>Let the user know how far over the limit he or she is</li>
<li>Provide guidelines even if Javascript is disabled</li>
<li>onBlur and onChange should also trigger the counter, in case the user is pasting text</li>
<li>Keep the counter message simple and clear</li>
</ul>
<p>Another idea I had for a visual counter:<br />
<div id="attachment_116" class="wp-caption alignnone" style="width: 260px"><a href="http://osric.com/chris/accidental-developer/wp-content/uploads/2008/11/counter-bar.png"><img src="http://osric.com/chris/accidental-developer/wp-content/uploads/2008/11/counter-bar.png" alt="Counter - characters remaining" title="counter-bar" width="250" height="20" class="size-full wp-image-116" /></a><p class="wp-caption-text">Counter - characters remaining</p></div><br />
Aside from turning red once past the limit, though I&#8217;m not sure how it would visually convey to the user by how much the text exceeds the limits.</p>
<p><strong>How can a counter be implemented programatically?</strong><br />
I would like to set something up so that the appropriate event handlers are attached to textarea elements automatically. I found a <a href="http://jquery.com/">jQuery</a> plugin, <a href="http://plugins.jquery.com/project/CharLimit">Char Limit</a>, but in addition to not meeting the recommendations I made above, I don&#8217;t like how the developer has to specify the character limit in the Javascript (and apply the same limit for all textarea elements).</p>
<p>I think a clever, although imperfect, solution would be to have jQuery (or any Javascript of your choice) turn any static character limit messages (like the one that Delicious provides if Javascript is disabled) into dynamic character counters. For example, with the following code, the Javascript could find any elements with id attributes matching *_counter, take the numeric part as the limit, and build a character counter:<br />
<code>&lt;textarea name="example" id="example"&gt;&lt;/textarea&gt;<br />
&lt;div id="example_counter"&gt;300 characters maximum&lt;/div&gt;</code></p>
<p>It&#8217;s problematic for several reasons: another element on the page could have an id that matches *_counter, the non-Javascript message could  contain more than one numeric part, and the developers would have be consistent in naming the textareas and accompanying divs. But I think it is in many ways an improvement over the inline Javascript I&#8217;ve seen in some oft-used solutions.</p>
]]></content:encoded>
			<wfw:commentRss>http://osric.com/chris/accidental-developer/2008/11/javascript-textarea-counter/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>UI Complaint: submit buttons above the form content</title>
		<link>http://osric.com/chris/accidental-developer/2008/04/ui-complaint-submit-buttons-above-the-form-content/</link>
		<comments>http://osric.com/chris/accidental-developer/2008/04/ui-complaint-submit-buttons-above-the-form-content/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 17:39:36 +0000</pubDate>
		<dc:creator>Chris Herdt</dc:creator>
				<category><![CDATA[User Interface]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://osric.com/chris/accidental-developer/?p=26</guid>
		<description><![CDATA[I have seen numerous instances lately where a web application requires the user to look above the form or content to instigate the next step. Examples: On bordersstores.com, a 6-page list of books has the navigation at the top (and only at the top). After you scroll through the 25 items on the page, you [...]]]></description>
			<content:encoded><![CDATA[<p>I have seen numerous instances lately where a web application requires the user to look above the form or content to instigate the next step.</p>
<p>Examples:</p>
<ol>
<li>On <a href="http://www.bordersstores.com/features/list.jsp?list=b2g3books">bordersstores.com</a>, a 6-page list of books has the navigation at the top (and only at the top). After you scroll through the 25 items on the page, you have to scroll back up to the top to access the links to the other pages:<br />
<img src='http://osric.com/chris/accidental-developer/wp-content/uploads/2008/04/borders-ui-example.png' alt='Borders bad UI example' /><br />
<strong>Hint:</strong> the links should be both above and below the content.
</li>
<li>On Wharton&#8217;s <a href="https://webcafe.wharton.upenn.edu/eRoom">webCaf&eacute;</a>, the &#8220;OK&#8221; button is located <em>above</em> the login form on a toolbar with a different background color: <img src='http://osric.com/chris/accidental-developer/wp-content/uploads/2008/04/web-cafe-ui-example.png' alt='WebCafe Bad UI Example' /><br />
<strong>Hint:</strong> it should be underneath the login form, and it should be labeled &#8220;Sign In&#8221; instead of &#8220;OK&#8221;.</li>
<li>In Microsoft&#8217;s <a href="http://home.live.com/">Windows Live</a>, the &#8220;save&#8221; button is placed above the form in a toolbar with a different background color: <img src='http://osric.com/chris/accidental-developer/wp-content/uploads/2008/04/windows-live-ui.png' alt='Windows Live Bad UI' /><br />
<strong>Hint:</strong> put the button below the form. (At least the button is labeled appropriately.)
</li>
</ul>
<p>In the latter 2 cases, one could argue that the button placement is similar to what a user would expect to find in a desktop application, such as Microsoft Word. But it isn&#8217;t a desktop application: it&#8217;s a web app, and users expect to find form/page actions at the bottom of the form.</p>
<p>You could also argue, in the last case, that the user may want to make a quick edit to the name information without editing all the details. Therefore, it is more convenient to put the &#8220;Save&#8221; button at the top. That&#8217;s fine, but why not offer 2 &#8220;Save&#8221; buttons, and put one in the spot where user&#8217;s most expect it?</p>
]]></content:encoded>
			<wfw:commentRss>http://osric.com/chris/accidental-developer/2008/04/ui-complaint-submit-buttons-above-the-form-content/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>User Interface Issues</title>
		<link>http://osric.com/chris/accidental-developer/2008/04/user-interface-issues/</link>
		<comments>http://osric.com/chris/accidental-developer/2008/04/user-interface-issues/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 17:50:55 +0000</pubDate>
		<dc:creator>giblfiz</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://osric.com/chris/accidental-developer/?p=21</guid>
		<description><![CDATA[I just recently finished up some pretty cool feature adds to a lightweight CMS that I have built for a client. (they are happy and impressed with it, and It looks like I&#8217;m going to pick up another two jobs, where all I need to do is install the code I have written. Yey! I [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://osric.com/chris/accidental-developer/wp-content/uploads/2008/04/badui2.jpg" align="left" height="205" hspace="8" vspace="8" width="275" />I just recently finished up some pretty cool feature adds to a lightweight CMS that I have built for a client. (they are happy and impressed with it, and It looks like I&#8217;m going to pick up another two jobs, where all I need to do is install the code I have written. Yey! I have been trying to get to that point for quite some time now)</p>
<p>One of the major reasons behind the feature upgrade was to fix some huge User Interface problems with &#8220;list management&#8221;, and they are fixed, but of course now that I&#8217;m playing with it, I have discovered that the new UI has some big issues as well. In particular, administrators now see the list exactly as it normally would be, but there are a few links next to each item that allow you to edit it, delete it, or move it up or down. It&#8217;s neat but the extra text very much breaks up the visual flow of the list in a lot of cases, and in one case is actually pretty darned hard to access.</p>
<p><span id="more-21"></span>One of the core concepts behind the CMS is that when you are logged in as an admin, you can always navigate the site as normal, and edit things from the place where you see them, so getting this right is actually something that I think of as core functionality. It&#8217;s also worth mentioning that a good UI is generally much more valuable than good code. (though you get a good UI through testing, and iterative changes, and if you have bad code that becomes <em>much</em> harder)</p>
<p>At the moment, I&#8217;m thinking that I will try putting a tiny [chng] div where I have the options listed, and then have that create a pop-up box with the actual link options in it. I&#8217;m sure that will have its own drawbacks though.</p>
]]></content:encoded>
			<wfw:commentRss>http://osric.com/chris/accidental-developer/2008/04/user-interface-issues/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

