Design Guidelines for Actions

As with other parts of the human interface in OS X, actions should have a consistent look and feel so that users can easily use them. The following guidelines will help you achieve that consistent look and feel.

For concrete examples of well designed actions, look at the action project examples installed in /Developer/Examples/Automator .

What Makes a Good Action?

Perhaps the most important guideline is to keep your action as simple and focused as possible. An action should not attempt to do too much; by doing so it runs the risk of being too specialized to be useful in different contexts. An action should perform a narrowly defined task well. If an action you’re working on seems like it’s unwieldy, as if it’s trying to do too much, consider breaking it into two or more actions. Small, discrete actions are better than large and complex actions that combine several different elements.

An action should inform the user what is going on, and if it encounters errors, it should tell users about any corrective steps that they might take. If an action takes a particularly long period to complete, consider displaying a determinate progress indicator. (Automator displays a circular indeterminate progress indicator when an action runs.)

You should provide an action in as many localizations as possible. See “Developing an Action” for further information on internationalizing actions.

Action Input and Output

Interoperability is critical in the implementations of actions. An action’s usefulness is limited by the types of data it can accept from other actions and give to other actions in a workflow. You specify these data types in the AMAccepts and AMProvides properties of actions using Uniform Type Identifiers (UTIs). The following guidelines apply to action input and output.

For more on the AMAccepts and AMProvides properties and the supported UTIs, see “Automator Action Property Reference.”

Naming an Action

The following guidelines apply to the names of actions:

The User Interface of an Action

The user interface of an action should adhere to the following guidelines: