TreeViews and Usability

Saturday, January 20, 2007

One of the commercial applications I've worked on over the last few years has received consistent feedback from uses who dislike tree view controls. Many of these users are working with terminal emulators on a daily basis, so I first suspected that switching to a GUI came as a shock.

I did some research on tree controls and usability, but didn't uncover much information. Actually, many articles I found herald the tree view as the ideal solution for categorizing and drilling into large amounts of hierarchical information. Only Alan Cooper's book "About Face" turned up a caveat:

"Programmers tend to like this presentation [speaking of Tree controls]. It is often used as a file system navigator, and some find the format of the display to be effective – certainly more effective than scattering icons around in multiple windows on the desktop. Unfortunately, it is problematic for users because of the difficulty many nonprogrammer users with understanding hierarchical data structures. In general, it makes sense to use a treeview, no matter how tempting it may be, only in the case where what is being represented is "naturally" thought of as a hierarchy (such as a family tree). Using a treeview to represent arbitrary objects organized in an arbitrary fashion at the whim of a programmer is asking for big trouble when it comes to usability."

I've changed my initial suspicion. Now I suspect users don't have a problem with the mechanics of the tree view, but rather with the content of the tree view. It's not a case of how to work with the control, but where to start to get to the right node in the tree.

The more I think about the problem, the more I realize I face the same difficulty on an almost daily basis. When I call my cell phone company, I have to fit my specific problem into one of the three broad categories provided by the soothing sounds of an automated voice response system. If I initially choose the wrong category, I'm pretty well screwed and need to start over. This is frustrating.

A software alternative to the tree view is a search feature. Allow the user to get to the lowest level of detail without navigating a hierarchy of unfamiliar categories. This often works in the real world, too. If I can't find something in the categorized aisles of a hardware store, I ask someone who works there.

Interesting and somewhat related post: Luke Wroblewski has a look at the history of Amazon's Tab Navigation. I don't remember the last time I went to Amazon to browse categories, I always search for a specific item. It's well that they do away with tabs. 

Searching capability is vital these days. I wonder, will System.SearchEngine will ever appear as a namespace in the .NET library?

Marcelo Calbucci Saturday, January 20, 2007

This is a very interesting topic in which I did a lot of investigation as well before I used a tree-view on Sampa (

You are right about the problem being the content. Have you ever managed an Exchange 2003 Server through their System Administrator UI? That is the best example of very poorly designed UI, where everything is in a tree. Even after using this product for 4 years now (and having worked on Exchange Server from 1998-2000) I still find myself clicking, expanding and looking for the right option every time.

On a final note, "System.SearchEngine" is way to big to every exist. Having worked on MSN Search for 4 years, I guarantee you that we are far from a simple solution. Although, I'd love (and pay) for a Search Engine library in .NET.

scott Saturday, January 20, 2007

I've never had the pleasure of working with Exchange, but I can imagine the UI being complex.

I agree it would be very difficult to build a generic search engine, but with so many applications needing a good search feature, there must be something that will someday evolve into a component! At least, I hope so :)
yipyip Saturday, January 20, 2007
Yup, hierarchical organization of most data is a pretty lousy idea. David Weinberger gave a brilliant lecture to the Library of Congress on this topic (including the history of taxonomies, where they went wrong and why they're obsolete) which you can see at his site:

I had the privilege of seeing Ted Nelson speak once. He also demolished the notion of hierarchy and taxonomy and demoed his "ZigZag" interaction model. What a fantastic speaker -- he grabs your attention and then demonstrates the painful truth of just how wrong the entire computing industry is. Kind of like Doug Englebart on speed, with charisma. ;)
scott Saturday, January 20, 2007
Thnaks for that link, yipyip. The lecture in on my MP3 player now.
Steve Monday, January 22, 2007
A programmer's perfect interface is a tree view and a grid control. Really, what could be better :)

Teaching interface usability to most programmers is an uphill battle - I think it has something to do with that ego we all seem to have....

Marc Brooks Wednesday, January 24, 2007
I think the use of a TreeView for rendering tag clouds works well, where once you drill a tag the "next-highest frequent" set of tags is shown... then you click on of those and get the set of NHF tags associated with both tags and so on as you drill down.

What makes this different is the concept that an item lives on _ONE_ specific place for a hierarchical tree, but a tag-cloud-tree is more like a network-model database (ahhh DB-Raima memories).
scott Wednesday, January 24, 2007
Jon Galloway Friday, January 26, 2007
Shh! Don't tell the DotLucene folks that it's impossible to build a nice, generic search engine for the .NET platform. They'd feel soooo stupid!
Comments are closed.

My Pluralsight Courses

K.Scott Allen OdeToCode by K. Scott Allen
What JavaScript Developers Should Know About ECMAScript 2015
The Podcast!