| Project: | Drupal core |
| Version: | 8.x-dev |
| Component: | base system |
| Category: | task |
| Priority: | major |
| Assigned: | Unassigned |
| Status: | needs work |
| Issue tags: | Needs usability review, Usability |
Issue Summary
Spin-off from #576916: Default menu "Parent item" should be Navigation, not Primary links after discussion with Bojhan in IRC:
The current list of menus is overwhelming and provides absolutely no clue about the purpose and location of any menu:
- Administration shortcuts
The Admininstration shortcuts menu contains commonly used links for administrative tasks. - Main menu
The Main menu is the default source for the Main links which are often used by themes to show the major sections of a site. - Management
The Management menu contains links for content creation, structure, user management, and similar site activities. - Navigation
The Navigation menu contains links such as Recent posts (if the Tracker module is enabled). Non-administrative links are added to this menu by default by modules. - Secondary menu
The Secondary menu is the default source for the Secondary links which are often used for legal notices, contact details, and other navigation items that play a lesser role than the Main links. - User menu
The User menu contains links related to the user's account, as well as the 'Log out' link.
Today, most web sites use a very common pattern for navigational menus on a page: top, main, user, footer.
Additionally, in my entire Drupal career, no one ever used the term menu when talking about a navigation.
Drupal developers are always confused then, because Drupal only has one menu that has the name "Navigation". Total nonsense.
We want to provide basic locative context and use a terminology that most people use. Hence:
- Administration shortcuts
The Admininstration shortcuts menu contains commonly used links for administrative tasks. - Top navigation [top]
The Top navigation contains links in the upper area of your site. - Management
The Management menu contains links for content creation, structure, user management, and similar site activities. - Main navigation [navigation]
The Main navigation contains the primary navigation links for your site. Modules may add non-administrative links to this menu by default. - Footer navigation [footer]
The Footer navigation contains links for legal notices, contact details, and other navigation items. - User menu
The User menu contains links related to the user's account, as well as the 'Log out' link.
Neither "User menu" nor "User navigation" really make sense. That thingy isn't really a navigation, so "User links" or something else would suit better.
Comments
#1
After having watched many users, I understand the confusion that the lack of context these labels bring is a critical issue. We changed the menu's around - the testing have shown that the administrative / site divide of navigation worked well, but people are still confused where a menu its link would be shown.
I believe although this solution might have its complexities, from a user perspective it solves a lot of issues regarding orientation. We have been able to do it for blocks, and I believe it should be just as possible for menu's since the same arguments stand.
The menu vs. navigation argument is fine, I don't favor either - nor do I think research will choose a side here. But looking at those labels amongst the other menu's I believe that "navigation" creates more direction and perspective - then the menu's would.
#2
Why not completely remove "Administration shortcuts", "Management" and "User" menus? Those duplicate the functionality already provided by admin toolbar.
#3
#2: The admin toolbar is not necessarily enabled on every site. The menus are fallbacks.
Also, I think that the name of a region should not be used as a menu name (like "footer navigation"), because it's not always in that particular region. It differs from theme to theme.
We'd best try to stick with names that describe the type of content it links to. For example, "main menu" links to, well, the most important content. "Secondary menu" links to less important content like disclaimers.
I personally don't think the currently used names are that bad, with exception of the one called "navigation". That one seems to have become sort of a trash can for uncategorized links.
#4
The goal is to provide some reasonable default menus in the default installation profile for the 90-95-99% use-case. I've yet to see a web site that has no links in the footer... that's almost 100%, and I've heard from many users that they first try to find certain links in the footer nowadays. (such as "contact", "legal notice", "privacy policy", etc.)
The problem with that is: No one knows the concept you are trying to describe here. Not even I understand it. Each time I look at those menu names, they just don't make any sense at all.
If I'd start building a site off D7 today, one of the first things I'd do is to rename those menus to something that makes sense for the users that have to manage the links in those menus.
As can be seen from this issue's title: this is about the default installation profile.
If your site or site's theme doesn't belong into the very large majority of sites that have a "top", "footer", and "main navigation" menu, then you just delete it, or rename it, or you didn't use the default installation profile in the first place. :P
#5
For example, Garland has it's secondary menu in the header if I'm not mistaken. If it would be called "footer navigation" that would be confusing to users as well.
I do agree that the location of a menu as it's name is easier to understand for users, but only if they're always at that exact location. At least in all core themes.
But in that approach, "user menu" would be an inconsistency. That should then be called something like "Top right navigation", but yet again it's not always at the top right.
#6
The problem as I see it is that the names are usage dependent. Some sites may put the top navigation in the footer and a main navigation somewhere else equally un-foreseen.
The flip side of the coin, is that these menus need names - and all sites will not use all these names in the same way all the time.
I would suggest names that are consistent with the default themes/layouts in D7 - that by default they make sense. Sites that choose to move top navigation to elsewhere on the web page should also rename the menu to reflect that change.
So, good and logical defaults and the possibility to change if and when necessary.
#7
In the existing text, I don't know what the difference is between "Main Menu" and "Navigation" and I'm left asking myself "Why is one item called a "menu" and the other is not? Is that significant? Are they both menus?"
The proposed example is a little better in some ways because at least the naming is more consistent (everything's called "navigation") but I'm confused by "Top navigation" versus "Main navigation". It's not obvious to me what the difference would be between "top" and "main". The description for Top Navigation simply says "Links in the upper area of the site" and I'm not sure what that means (I often see ALL the links in the top area or ALL the links on the side) and it's not clear why two menus are named by location (top and footer) and one by function (main).
How about a completely neutral and consistent scheme: "Menu 1", "Menu 2", and "Menu 3." Then in the description we can say, for example,
"In default themes, Menu 1 is generally used to provide links for major sections of a site and is often displayed at the top of the page."
"In default themes, Menu 2 is generally used to provide primary navigation links and is often displayed at the side of the page. Modules may add non-administrative links to this menu by default."
"In default themes, Menu 3 is generally used to display minor links such as legal notices and is often displayed at the bottom of the page."
#8
It seems the approach described although admirable, needs quite some thinking and possibly refactoring - so moving this to Drupal 8.
#9
Downgrading all D8 criticals to major per http://drupal.org/node/45111
#10
I'd also like to point out that the "Navigation" menu is as of D7, in no way, navigation. So it needs a new name :)
#11
It looks like if #1050616: Figure out backport workflow from Drupal 8 to Drupal 7 goes through, critical and major bugs will actually prevent new development on Drupal core. Considering this isn't actually functional bug at all, I'm moving this to a task. I also want to see where this issue heads, the menu names (and the quantity of menus) is just ridiculous.
#12
So looking at a fresh d8, all modules enabled, I only see these menus:
* Main menu
The Main menu is used on many sites to show the major sections of the site, often in a top navigation bar.
* Management
The Management menu contains links for administrative tasks.
* Navigation
The Navigation menu contains links intended for site visitors. Links are added to the Navigation menu automatically by some modules.
* User menu
The User menu contains links related to the user's account, as well as the 'Log out' link. I'm assuming the 'Administrative shortcuts'
Particularly missing 'Secondary menu' compared to the original post.
1. I assume 'Administration shortcuts' is a special case menu used by the Shortcuts module?
'Secondary menu' simply not existing anymore is already a win :) (Possibly we should then consider removing the relatively obscure 'use foo for main, use bar for secondary functionality found in /admin/structure/menu/settings, but that's another issue)
---
So the Management menu is the fallback menu for when not using toolbar/shortcut. The Navigation menu is the default container for new links that may be used by site visitors.
2. I suspect merging these two has been discussed before but runs into access checking issues?
3. It seems that the 'Management' menu never gets more than that one 'Administration' link added to it, can we verify that?
---
As for a naming scheme, we should provide sensible defaults and thus name things as specifically as possible. Everything can be overridden, so if in some specific use case the default label doesn't make sense, that only helps trigger people to find a way to change it. (favorite example for this is the default Wordpress site slogan 'Just another Wordpress blog'. You bet people will try and find the place where they can change that!)
All that said, I had a go at a rewrite of the existing labels and descriptions.
Before:

After:

The new labels and descriptions in this patch are:
Account links – Links related to the user account.
Administration – Contains links to administrative tasks.
Main navigation – Use this for linking to the main site sections.
My menu – Contains links for site visitors. Some modules add their links here.
'My menu' is totally not very nice, but I wanted to get some git practise going on. Feedback especially on question 2 and 3 would be helpful.
#13
The last submitted patch, 594660-12-rename-menus.patch, failed testing.
#14
:( Seems my notes for how to create a patch are not correct.
#15
It says:
...Output: [error: cannot apply binary patch to 'core/modules/simpletest/tests/upgrade/drupal-7.bare.database.php.gz' without full index line
error: core/modules/simpletest/tests/upgrade/drupal-7.bare.database.php.gz: patch does not apply
error: cannot apply binary patch to 'core/modules/simpletest/tests/upgrade/drupal-7.filled.database.php.gz' without full index line
error: core/modules/simpletest/tests/upgrade/drupal-7.filled.database.php.gz: patch does not apply].
...
Try git diff --binary --full-index, if you have changed those files.
#16
Thanks, that certainly makes for an interesting looking patch. Following your suggestion, lets see what happens.
#17
The last submitted patch, 594660-15-menu-names.patch, failed testing.
#18
The patch changes too many instances of "navigation" into "my-menu".
I wouldn't necessarily call that a win -- as outlined in the issue summary, the 90%+ purpose of this menu was to use it as a footer menu, which on its own is most probably required for more than 80% of all sites built with Drupal. I'd like to introduce a "Footer navigation" or "Footer links".
Those menu settings will only be obsolete after #474004: Move menu_block module functionality into core
Management and Navigation was one menu before; we deliberately separated them on purpose for D7, since "Functional navigation for site users/visitors" and "Administrative tools" are completely different tasks having entirely different audiences.
In light of that, "My menu" doesn't really make sense to me. The menu may not necessarily contain "stuff related to you" (as in "my"), that would be the purpose of the User menu.
In reality, the Navigation menu is just simply the default dumping ground for any kind of links to (unique) pages that modules may provide. This ranges from Filter module's filter tips (manual page), onto Aggregator module's aggregated feed items page, onto Node module's "Create content" page(s), to Flag module's default view of "My bookmarks". In that sense, a generic name like "Tools" would make more sense.
There is no technical limitation or enforcement for that, but by default, the Management menu only contains the "Administration" link on the top-level. There's another issue in the queue that wants to remove the additional "Administration" level/layer on the top-level, but can't find it right now.
Renaming the "Management" menu to "Administration" should be left to that issue.
The only parts that I like in this patch are the renames to "Account links" and "Main navigation", although both could still be a little more concise - e.g., "User account links" might make it more intuitive that this menu only appears when you're logged in [although we should actually move a "Login" link in there IMO].
#19
Thanks! And yes, 'Account links' and 'Main navigation' are the best bits in here, the rest is mostly thinking out loud :)
Re: no secondary links – I agree that it is useful for many sites. But maybe we can leave that as an exercise for the user? Fewer initial menus gives clarity of choice, we can use the footermenu use case as a trigger for discovery of the 'create your own' functionality.
For account links: adding a login would be sweet. Don't think 'User' substantially adds meaning.
2. 'My menu' was totally a cop out indeed. I like the 'tools' word. I think I remember some of that discussion around seperating them now :) I don't remember what I argued for then, but I suspect 'Administration' is just another word for 'Tools' in many a mental model. I do understand the challenge lies in having to provide this default link dump container for modules. A visual treatment that groups these two menus into a single toolbox is worth exploring here I think.
3. Great, removing that layer would help a lot already, happy to discuss further when we find the link :)
Seems to me especially number 2 needs more discussion in here. Happy to continue account link changes in a seperate issue.
#20
The boxes on the left are about naming the menus from the admin ui perspective
The sketch on the right is a possible front-end perspective. If these would still be two blocks combined, than neither of them shows a block title, but each emphasises the first actionable link. For the site tools that would be 'Create content' (ideally as a funky dropdown that lets you shortcut to the form for a specific content type). For admin, we could choose to make /admin, /content or a dashboard the one most prominent link. Here I went for a prominent /admin link with three additional regular links to content, structure and configuration.
#21
mmm, #20 might be interesting, but also very debatable in terms of Drupal use-cases, and essentially boils down to allowing a (menu) block's title to be a link on its own (which comes with many questions/problems/consequences, such as, what if I want to rename the block title?). That's definitely a discussion for a separate issue.
btw, #273137: Split Navigation to User and Administration menu was the issue in which we split Navigation into Management. And closely related: #408160: Normal users should not see the create content link appear by default in a menu called "Management"
Still unable to find the issue about turning Management into Administration; i.e., removing the top-level link.
#22
Oh, I was imagining the block title was and there was a li.first a {} bit of styling applied to make the first actual menu item pop out.
Thanks for the back links, useful.