Development:Interface guidelines
This document is not authoritative, it is a collection of ideas and under construction.
Keeping it simple
Use the minimum interface required to get the job done. Order the elements by contexts. Give the user a strong orientation where the places are to do several things.
Standard pages
Activity modules
- index.php - lists all instances for that module in a course
- view.php - displays a particular instance
- config.html - configure an instance of the module
Blocks
- config.html - configure an instance of the block
One script per major function/page
...
Page layout
- Print headings with print_heading, use the CSS hooks for IDs and Classes
- Print boxes around text using print_simple_box, use the CSS hooks for IDs and Classes
Form layout
- Show the more important settings at the top
- Each entry should have a label, and if necessary, a help file
- If there are more than 10 options, split them into required and optional/extra/advanced parameters
Dealing with tables
Use the print_table function whenever possible.
- All pages should call print_header, and supply a standard navigation path to be displayed in it. Where possible, it should look like: COURSE >> INDEX >> INSTANCE >> SUBPAGES...
- Pages within activity modules should call navmenu() to generate the appropriate navigation menu.
URLs
- URLs should be as short as possible.
- No underscores in parameter names or files names
- Never use two words when one would do.
Buttons vs links
This is a hard one to define ...
The Google Web Accelerator issue definitely provides some pointers here:
- Actions which can modify the state of Moodle (data files, database, session information) should be performed through buttons
- At the very least, such actions which are implemented as links should forward to a confirmation page which *does* use buttons
CSS naming
- See theme standards
Linking to help
- Help buttons should be on the right of the thing (as an exception it can be left, if the thing is right-aligned)
Related topics
Robin Good's Latest News. "Interaction Design Meets Online Real Estate" 1 Mar. 2005 http://www.masternewmedia.org/news/2005/03/01/interaction_design_meets_online_real.htm
The article presents a view of virtual spaces with the focus on human actions. It reminded me of communicative approaches like Moodle. The interface serves as the handle of all the communication tools.