Wednesday, June 27, 2007
Having just got back from Las Vegas I've spent the last couple of days getting back up to speed on the SharePoint project I'm working on. (Actually, I've been back a little more than a week now, but never mind.) I haven't yet posted anything about the work we're doing (although I hope to change that in the not too distant future) but in essence two developers, a designer and I are working on migrating an Intranet to SharePoint. Although I certainly consider myself a developer rather than a designer the work we are doing has piqued my interest in web usability enough that I packed a copy of Don't Make Me Think for the trip and killed the majority of time I was awake on the flight out reading it cover to cover. If you're new to user experience or you’re looking for some help taking a fresh look at an existing site (which you may well have stopped looking at objectively a long time ago), I think you'd likely find it worth your time spending a couple of hours exploring the principals of simplicity and convention extolled in Steve Krug's excellent book. Ok, so this book is short, but not so short as to make me distilling it down to two principles fair; read this recent review for a more detailed appraisal. (It's worth pointing out that this book is specifically about web sites, including e-commerce sites, rather than web applications.)
About halfway through the book Krug presents his "Trunk Test", the idea being that there are six questions you should be able to answer "without hesitation" (emphasis mine) if you were "dumped on a page somewhere deep in the bowels of a Web site". This got me thinking about how we're tackling each of these on our project and more generally about the tools that SharePoint, and in particular the MOSS web content management features give you to help make sure you pass the test.
- What site is this? (Site ID)
An easy starter for 10 then, master pages are your friend. (Although you might not be on speaking terms once you've finished...) Use them to give all you pages a consistent look and feel.
- What page am I on? (Page Title)
Again, simple on the surface, as long as you don't lose your mind and leave the page name out altogether. The trick is in the placement, and the Title field control within each of your page layouts correctly encourages you to have the title frame the content, rather than the content and the navigation for example.
- What are the major sections of this site?
You'll probably handle this using the Global Navigation. Although it can be used as a drop down menu we prefer to configure it to display simple tabs by setting MaximumDynamicDisplayLevels to 0 on the AspMenu control within the master page. To have your root site ('Home' in our case) show up as a tab, set StaticDisplayLevels to 2 and set StartFromCurrentNode to true on PortalSiteMapDataSource. You have considerable control over the look and feel via CSS, with the ability to specify a class to be used on each tab plus two further classes to be used for the hover and selected states.
- What are my options at this level?
Things start getting interesting when you look at SharePoint's Current Navigation. There are a lot of options available both in the GUI and as properties of the menu control that are worth experimenting with for a while. While the GUI options are set per site, the properties of the menu control are set per master page, so our approach has been to create a master page and an accompanying site definition for each level of our navigation. Each site definition sets the correct master page and navigation options for a given level, and ensures that sub-sites can only be created using an appropriate site definition. Be sure to use the PortalSiteMapDataSource site map data source here as it contains enhancements that make it more suitable than the default site map data source for use on a MOSS publishing site. If you've not already done so, read Part 1 and Part 2 of the MOSS Navigation Deep-dive to get an overview of how all of this hangs together, then read the comments to get an idea of some of the challenges.
- Where am I in the scheme of things?
As well as the breadcrumb (implemented using ASP.NET's SiteMapPath control within PlaceHolderTitleBreadcrumb) consider the more subtle cues from the currently selected elements of the Global (tabs) and Current Navigation.
- How can I search?
Every master page includes a search box by default and unless you have a good reason to do otherwise you should leave it there. On a publishing site use the SearchBoxEx control which is more configurable than the default SearchBox although not well documented. Have a look at the out of the box publishing master pages (BlueBand.master etc.) and the class documentation on MSDN as a starting point. (Tip: If you want your search box to respect Site Collection Administration > Search Settings, be sure to set the UseSiteDefaults property to true.)
This isn't meant to be a comprehensive list of the usability related publishing features in MOSS by any means, and don't get me wrong, this stuff can be difficult and it isn't made any easier by the sporadic documentation. However, once up the learning curve there is much at your disposal to tackle the questions Krug poses, and I'm happy with the answers we've come up with so far.
How are you using SharePoint to pass the Trunk Test?