One of the common problems in interaction design involves the handling of constraints. One user selection might prevent another selection from functioning or produce unintended results. For example: Selecting stapling as a finishing option, while collate is turned off will produce results that are most likely NOT what the user wanted.
Constraint Handling Strategy
There are many acceptable methods to handle constraints. The approach I used in the CentreWare Print Drivers was three fold.
First I tried to "design-out" constraints. Some features were combined. For example: "Collated", "Collated, Stapled" and "Uncollated" all appear in the same control. Combining some features when practical is a way to make the constraints implicit to the user.
Second, I let the application make some decisions based on hierarchy and the user's selection order. For example: When a user selects transparencies, 2-sided printing and stapling is automatically turned off.
Third, we developed a new form of context sensitive help (patented) described below. This was designed to be unobtrusive, rather than popping a dialog up whenever the user changed an affected selection.
Innovation and Imitation
Typical user interfaces offer no way to discover why a feature or option may be disabled, nor what to do to restore the feature.
One of the innovations I evaluated for the Xerox driver was a special method of constraint handling. If a feature or option is grayed out, a small button will appear next to the control. Clicking the button displays a message explaining the reason for the constraint and how to enable the feature.