Improving navigation in a complex web application like Moodle touches on a lot of areas, but in particular we must aim to hit these goals:
It should be clearer what settings affect only yourself, and what settings affect what others see.
It should be clear what is global navigation (whole site), and what is local navigation (within a course or module).
All parts of the interface should be consistent. We need to have a set of guidelines and core frameworks to better restrict what developers are allowed to do, while also reworking the core code to implement things like blocks and tabs in consistent ways.
Users should be able to easily learn what is there for them.
Users should be able to move around "their world" within Moodle with a minimum of effort.
Processing blocks and building up a page with navigation must be very efficient.
If possible, plugins should not have to change.
Users should also not find the new interface too different (just better!)
What parts of Moodle might be affected by this work?
How HTML is generated
Overview of the proposed solution
As I write this, we don't have a clear overview of the whole solution, but following some discussions, I have some ideas about how some components of the solution should work, and I want to write them down. Therefore, I present a possible (partial) design. (Real development never happens as they teach in Software Engineering classes anyway. ;-) )--Tim Hunt 23:28, 29 January 2009 (CST)