Tips for better Drupal usability
update july 2009: be sure to look at the addendum in the comments for some updates in this list!
Usability is a hot issue in the Drupal community. It's one of the areas where big improvements can be made and serious efforts are being taken to make this happen. Just before Drupalcon DC starts, the University of Baltimore will perform formal usability testing of Drupal 7.
Like the previous testing Baltimore did (If you haven't already seen that video, you really should watch it), these tests and the fact that Mark Boulton will help with the UX will definitely result in Drupal 7 being the best release ever, probably released in Q4 of 2009.
Okay, but in the meanwhile we still want to make Drupal 6 sites as usable as possible. Fortunately there are a lot of quite simple things you can do to make your life (or your clients) a lot easier.
Here is a small collections of random tips and modules which - in my opinion - improve the usability. Most are backend solutions - the frontend usability is mostly improved by theming and design.
1. Users don't understand muliple select boxes
I'm sure you know you can use ctrl+click to select multiple options in a select box, but most normal users don't. They do understand checkboxes so why don't use those instead?
2. Disable stuff visitors don't need
Basically, you should disable all distractions which the user doesn't need. Drupal delivers a lot of functionality out-of-the-box but you should not overwhelm your visitor with it if it isn't useful. For example, you often want to hide the node metadata like author information in your search results because they'll just be confusing.
3. How many results?
If you use Views you will at one point probably have a page with some (search) results. The thing is - Drupal won't automatically display the number of results (node count). It's a small addition but can be a big help for your website visitor. There is a code snippet for Drupal 5 and 6 to add this functionality to your views results. You simply place it the header area of the view. Alternatively, you can embed the count in the views title (drupal 5).
4. Organize your node-edit screen
Luckely, there is one great Drupal 6 module which does this for you. Vertical tabs will make your node edit screen much less cluttered and usable and they are going into core for Drupal 7. I really would not know any reason not to use this.
5. Send users to the right place
Most of the time you will have one or more seperate admin role for administrators. Each role might have it's own tasks and you can easily redirect users based on role to a specific page using Rules. For example, when an admin logs in you can redirect him to /admin instead of the default 'my account' page.
You can also use the core trigger module instead but you will have much more features with Rules like creating different workflows (the Rules module is actually the drupal 6 succesor to the workflow-ng module) based on different users, roles and actions. A very extensive module with a lot of possibilities.
6. What you see is what you don't get
While markdown or textile syntax might be your input filter of choice, it's not usable for most clients. Our favorite WYSIWYG editor is FCKeditor, but you should take some time to tune it to your needs. In my experience, the default toolbars offer either too much or too little buttons/functionality.
Most of the time we want an admin just to be able to create links, headers, and basic styles like italic and bold. Most of the time we even avoid embedding images and try to use CCK imagefields for embedding images in a node - that way you'll have more control on the layout. Also, checkout Link to Content integration for FCK. If your site doesn't have too much nodes, this is an excellent and easy way to create links to other nodes on your site.
[caption id="attachment_732" align="alignleft" width="574" caption="Configure fckeditor.config.js and fckstyles.xml"][/caption]
7. What has changed?
The revision option for nodes is pretty useless without the Diff module because you won't be able to see what differences are made. So, if you use revisions, use Diff. This one is also going into core for Drupal 7.
8. Taxonomy like it was meant to be
Taxonomy is great, but sometimes the selection methos is just too confusing. For example, your in trouble if you are using a hierarchical taxonomy and need the parent item to be also checked when a certain deeper item is checked. This is when hierarchical select steps in and automatically takes care of it (as an option). In addition it also enables selection methods through jQuery which allows for very scalable solutions. You should see it to believe it.
9. I don't know what the question is but the answer is views
The default admin/content/node screen is not very useful. For example you can't sort nodes by date. If you want happy editors and admins, you will want to make separate admin views, probably for specific content-types or with exposed filters tailored to the admin's needs.
10. Build your own admin dashboard
Actually, this is something I haven't done yet, but in some cases it might be useful to have a Wordpress like dashboard screen for your admin. Because the default administer welcome screen really doesn't present you with any information. There are some experimental module solutions for this, but I'm thinking about Panels. Wouldn't it be possible and useful to make an admin dashboard with just views and panels?
11. Use an admin theme
The most popular admin theme is Rootcandy. This drupal 6 admin theme offers nice icons and menu's based on role.
Our own alternative for Garland is called Fruity (drupal 5, drupal 6 in dev).
Do you have any other tips and tricks to improve Drupal's usability?