.. _steps:

Step-by-step Procedures
#######################

* Provide a sequence of numbered steps, starting with 1. Do not
  provide a paragraph of sentences.

* Describe one action per step.

* If the user needs to do the same thing for several procedures, refer
  to earlier steps rather than repeating them.

* When steps and diagrams flow down a page side-by-side, put text on
  the left and diagrams on the right.

* When steps include commands or code blocks, put the commands or code
  blocks after the step that includes them.

* If directions can appear in only one place, either text or figure,
  put them in the text; don't hide directions in diagrams.

* When a series of steps is supported by one figure, refer to the
  figure in the introductory text: "See Figure 15 and do the following:"

* When a series of steps is supported by two or more figures, avoid
  referring to a range of figures. Rather, refer to a specific figure
  in the relevant step and show the figure immediately after the
  reference. Do not say: "See figures 15 through 22 and do the
  following:"