The user needs to be provided the choice to issue a command. This command may be to submit form data.
Forces: factors that affect selection
- Links take up less screen real estate than buttons
- Buttons should be preferred for (at least primary) commands
- A button is like a promise to the user that something will happen: the state of the application will change when the button is clicked. Buttons should not be used for navigation since that fails user expectations. When there is a link users can expect it to make sense to open it in a new tab, for instance.
The label of a button should be a command verb: "Save Settings".
Actions which can modify the state of Moodle (data files, database, session information) should be performed through buttons.
Buttons should never be used for navigation. Instead, use links.
With buttons, the command is usually mediated to the server in form of a POST parameter. Pressing the back button results the browser asking if the user wants to resubmit the form. To avoid this and keep the back button functional, redirect (using HTTP headers) the resulting page, to a new page after processing the data the browser sent.
Related issues in the tracker
- TODO: The course groups management UI uses buttons for navigation within the UI
Further information / Sources
- Visualizing Links: 7 Design Guidelines (Jakob Nielsen's Alertbox)
- Command Links (Jakob Nielsen's Alertbox)
- Avoid Within-Page Links (Jakob Nielsen's Alertbox)
- First 2 Words: A Signal for the Scanning Eye (Jakob Nielsen's Alertbox)