Development:Form
Moodle User Interface Guidelines > Form
Note: This page is a work-in-progress. Feedback and suggested improvements are welcome. Please join the discussion on moodle.org or use the page comments.
Status: INCOMPLETE
This is a guideline template for a Moodle Interface Guideline. Comments: developer forum thread
Problem
You want to allow users to enter information into the application.
Forces: factors that affect selection
- There may not be much space. Forms elements are typically verbose and forms require at least a submit button.
Solution
Moodle uses progressive disclosure to hide form items that are suspected to be needed a minority of users.
On simple forms, (less than one page / four elements or less) autofocus the first field of the form on body onload
- IF none of the fields have any changed content in them (i.e. if the user is not returning to the page from browser history, see: [https://tracker.moodle.org/browse/MDL-825 MDL-825])
Date selection: use javascript selector (how about time?)
- 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
Common mistakes
Autofocusing a field by default is an accessibility issue, see MDL-20410
Examples and implementation
Site configuration forms
Module configuration forms ("Update this Forum")
Related guidelines
- Radio button
- Checkbox
- Dropdown lists (incomplete)
Related issues in the tracker
- TODO: Configuration defaults http://moodle.org/mod/forum/discuss.php?d=124533
- TODO: Inconsistency with buttons in each module configuration: save and return to course / save and display / cancel. Are there really use cases to support having this choice each time?