Using Navigation
Site navigation includes all the links that a user can click to move from page to page in your Web site. Navigation should be easy to understand and apparent to the visitor without being overwhelming. Nothing can be more confusing to a site visitor than having to search for the navigation links of a site, having links whose purposes are not clearly identifiable, or having an overwhelming number of menu navigation links. Useful and effective sites have consistent and helpful navigation as a central element of their design. Navigation should make it easy and pleasant for your users to find the information they came to your site to find. Site navigation should be central to the structure and design of your site from the beginning. As your site develops, the demands on its navigation will grow, so it is important that this be designed in a thoughtful way.
The default home page for your site may contain many navigation elements. These could include the following:
- Top menu
- Side menus
- Pagination
- Linked article titles in the Latest News and Most Popular modules
- "Read more" links
- Links inside of articles
- Links in the footer
- Links connected to the buttons in the Login and Polls modules
All these links manage how your users move around your site. As you develop your site, you should always be considering how the addition of new content or features should relate to your navigation. By looking at the front page of a Joomla! site that has the sample data installed, you can see all the different areas that contain navigation from the list noted earlier. Figure 7.2 shows the front page of a Joomla! site with sample data and the Milkyway template.
Figure 7.2 Home page of a Joomla! Web site with sample data installed demonstrating navigation
The most important thing you can do in designing your navigation is to imagine yourself in the role of your users. If you have several different groups of users, you need carry out this process for each of them. What do they want to find when they come to your site? What words do they use to describe those things? Ideally you will talk to users, but at a minimum try to imagine yourself as a member of each group. Web designers will often talk about how many clicks on links it takes to get to a specific piece of information. The more clicks it takes to find something, the more likely it is that the user will abandon the task of looking for something without completing it. You want the number of clicks to be as small as possible. Visitors should stay on your site because they are finding useful and interesting content, not because they have to spend a lot of time finding what they are looking for.
You should follow a number of principles.
- Make sure that it is easy for people to get to the home page. The first link on your main navigation should be to the home page. If there is a logo on the top of the page, clicking it should send users to the home page.
- Provide "you are here" information for every page to help users know where they are. This doesn't necessarily have to be "breadcrumbs," which are a series of text links like the default Joomla! breadcrumb module. Your visitor should have some sort of cue as to the section or area of the site they are currently visiting.
- Remember that people entering your site via a search engine will often not be entering from the home page, especially if you have a large number of your site pages indexed.
- Never use only an image as a link with no text to indicate what it links to. No matter how obvious you think the image's meaning is, it will not be obvious to some of your visitors.
- Don't require users to use their mouse or keyboard to discover key information. Users will be frustrated if forced to hover over an item in order to obtain important information. An example of this would be forcing the user to hover over an image to trigger navigational links.
- Use standard terms for items, not cute short forms, acronyms, or organizationally specific terms that are understood only by yourself or your team.
- Use meaningful terms in your text to convey your message.
In Joomla! the main navigation is usually controlled through menus and menu modules. The menu system is perhaps the most important part of your Joomla! site besides the actual content because it controls four elements:
- What template is used when a linked page is displayed
- What modules are displayed on the linked page
- How content is laid out
- The URL of the page, which relates to search engine results as described earlier in this section
In Chapter 3, we covered how to assign a template to a menu item and how to create menu items for content. In Chapter 5, we reviewed the other types of menu items available in the core. The menu items themselves along with the parameter options you select control how the article is laid out. The menu item alias controls the search-engine-friendly URL for the page linked.
The Menu module, working in conjunction with the CSS in your template, controls the appearance of the menus on your site. Each time you create a new menu, a corresponding module is automatically created. You may want multiple copies of some menu modules, and you may want several separate menus, as illustrated in the sample data.
The Menu module works like all other modules. It has some important options that can help you manage your site navigation effectively. For example, in the sample data in your Joomla! installation, you will notice that the main menu has a link called Joomla! Overview. As you can see in Figure 7.3, the default main menu in the sample data shows a simple list of links. Figure 7.4 demonstrates what happens when you click Joomla! Overview; a submenu with a new link appears.
Figure 7.3 Default main menu that is set up in the sample data showing the menu item Joomla! Overview
Figure 7.4 Default main menu showing a child menu item that is revealed after clicking a parent menu item
This is one of many ways the flexibility of the Menu module can be used to make the navigation of your site more usable. In this way, you can have a longer menu that is not overwhelming to site visitors.
You set up a menu that utilizes showing child menu items (such as What's New in Joomla! 1.5 in this example) after you click. Follow these steps:
- Create a menu item and then make that new menu item a child of an existing menu item, which is called the parent item, as demonstrated in Figure 7.5, which shows the What's New in 1.5? menu item editing screen.
Figure 7.5 What's New in 1.5? menu item editing screen showing the selection of Joomla! Overview as the parent item of the menu item
- In the Menu Manager, identify a child menu of a parent because of the display. Figure 7.6 demonstrates how What's New in 1.5? as a child of Joomla! Overview, which is the parent item.
Figure 7.6 Main menu's Menu Manager screen demonstrating the What's New in 1.5? menu item as a child of Joomla! Overview, which is a parent item
To set up the module to show child menu items only upon the click of a parent menu item, follow these steps:
- In your Menu module, set the first and last levels to 0, as shown in Figure 7.7.
Figure 7.7 Main menu module editing screen showing how to set the values for Start, End, and Sub-Menu settings
- Set Always show submenu Items to No, as shown in Figure 7.7.
One way to get visitors to browse your site in depth is to have clear and simple navigation that then expands to show more options as they navigate pages. This can be done by showing new navigation menu items that are pertinent only to the page a visitor is currently browsing. Joomla! has a great way to do that using Menu modules via the split menu technique of showing second-level and beyond menu items only on pages to which they are assigned.
To set up a split menu, follow these steps:
- Make a copy of the Main Menu module as in Figure 7.8.
Figure 7.8 Module Manager screen showing how to copy the Main Menu module
- You will now have a module named Copy of Main Menu. Click the name to open the copy. As in Figure 7.9, enable the module, set the title to show, set the Start Level option to 1, and set the End Level option to 1.
- Because you only want this menu module to show when the Joomla! Overview menu item is clicked, assign it just to the Joomla! Overview menu link, as shown in Figure 7.9.
Figure 7.9 Module-editing screen showing how to set a menu module to show a split menu
- Open the original Main Menu module, and change End Level to 1, as in Figure 7.10.
Figure 7.10 Module-editing screen showing how to set the Main Menu module to not show child items
Now when you click Joomla! Overview in the front end of the site, a second menu will appear with just the relevant submenu showing as a separate menu module, as shown in Figure 7.11.
Figure 7.11 Front-end view of how a split menu displays
If you have submenus for all your main menu items and want to use the split menu technique, you should assign the module used for the split menu to all the relevant parent menu items.
There are many options for enhanced menus available in the Joomla! Extensions Directory. Usability research has shown that many complex menus with excessive reliance on drop-downs and special effects can make your site more difficult for visitors, so use any special effects in moderation and for good reasons.