||All designs for LibreOffice should be checked against these principles. They are, however, subject to change. If you're unclear on their meanings, this presentation might help.
These principles are currently mostly copies of those set out by Mozilla. To see their relevant bugs, use this page to navigate their bug tracker.
Controls that are more important or more commonly used should leverage visual variables such as size and contrast so that they have more dominance and weight relative to other controls.
Interfaces should be as simple as possible, both visually and interactively. Interfaces should avoid redundancy. [Source: Nielsen]
Interfaces should be as efficient as possible, minimizing the complexity of actions and the overall time to complete a task. [Source: Nielsen]
Interfaces should not interrupt the user. Interfaces should never ask the user a question that they are not prepared to answer simply for a false sense of control. In general, software should only speak when spoken to.
Software should be internally consistent with itself and externally consistent with similar interfaces to leverage the user's existing knowledge, unless this would be detrimental to usability. [Source: Nielsen]
Controls should visually express how the user should interact with them. [Source: Norman]
Controls should be placed in the correct location relative to the effect that they will have. [Source: Norman]
Interfaces should provide feedback about their current status. Users should never wonder what state the system is in. [Source: Nielsen]
Users should be able to discover functionality and information by visually exploring the interface, they should not be forced to recall information from memory. [Source: Nielsen]
Users should not be required to understand any form of implementation-level terminology. (This principle is a special case of ux-implementation-level). [Source: Nielsen]
Actions should support undo so that users remain in control.
Interfaces should proactively help users recover from both user errors and technology errors. (A preferable case is to address through ux-error-prevention so that the error does not occur). [Source: Nielsen]
Interfaces should proactively try to prevent errors from happening. [Source: Nielsen]
Users should not encounter errors because the interface is in a different state than they expected it to be. (This principle is a special case of ux-error-prevention).
Interfaces should not be organized around the underlying implementation and technology in ways that are illogical, or require the user to have access to additional information that is not found in the interface itself. [Source: Nielsen, Cooper]
Users should always feel like they are in control of their software. [Source: Nielsen]
Interfaces should not blame the user, or communicate in a way that is overly negative or dramatic.