Docs: Add figure captions to images

Bug: 18334770
Change-Id: I4ed95bb638b6502129d59c099de9a0cd8b16ccb4
diff --git a/src/compatibility/cts-intro.jd b/src/compatibility/cts-intro.jd
index f489fc6..d9dcc99 100644
--- a/src/compatibility/cts-intro.jd
+++ b/src/compatibility/cts-intro.jd
@@ -18,8 +18,12 @@
 -->
 
 <h2 id="how-does-the-cts-work">How does the CTS work?</h2>
-<div style="float: right">
-    <img src="{@docRoot}images/cts-0.png">
+
+<div class="figure" style="width:383px">
+  <img src="{@docRoot}images/cts-0.png" alt="CTS flow" height="340px" id="figure1" />
+  <p class="img-caption">
+    <strong>Figure 1.</strong> How to use CTS
+  </p>
 </div>
 
 <p>The CTS is an automated testing harness that includes two major software components:</p>
diff --git a/src/devices/audio/debugging.jd b/src/devices/audio/debugging.jd
index 8cee394..4dacb5c 100644
--- a/src/devices/audio/debugging.jd
+++ b/src/devices/audio/debugging.jd
@@ -260,7 +260,11 @@
 The diagram below shows the relationship of the <code>mediaserver</code> process
 and the <code>init</code> process, before <code>media.log</code> is introduced:
 </p>
-<img src="images/medialog_before.png" alt="Architecture before media.log" />
+<img src="images/medialog_before.png" alt="Architecture before media.log" id="figure1" />
+<p class="img-caption">
+  <strong>Figure 1.</strong> Architecture before media.log
+</p>
+
 <p>
 Notable points:
 </p>
@@ -274,7 +278,11 @@
 The diagram below shows the new relationship of the components,
 after <code>media.log</code> is added to the architecture:
 </p>
-<img src="images/medialog_after.png" alt="Architecture after media.log" />
+<img src="images/medialog_after.png" alt="Architecture after media.log" id="figure2" />
+<p class="img-caption">
+  <strong>Figure 2.</strong> Architecture after media.log
+</p>
+
 <p>
 Important changes:
 </p>
diff --git a/src/devices/audio/funplug.jd b/src/devices/audio/funplug.jd
index 9200556..fb4b527 100644
--- a/src/devices/audio/funplug.jd
+++ b/src/devices/audio/funplug.jd
@@ -38,7 +38,10 @@
 
 <h2 id="funplugCircuit">FunPlug circuit</h2>
 
-<img src="images/funplug_circuit.png" alt="FunPlug circuit" />
+<img src="images/funplug_circuit.png" alt="FunPlug circuit" id="figure1" />
+<p class="img-caption">
+  <strong>Figure 1.</strong> FunPlug circuit diagram
+</p>
 
 <p>
 To ensure that the output signal will not overload the microphone input,
@@ -49,5 +52,7 @@
 
 <h2 id="funplugAssembled">FunPlug assembled</h2>
 
-<img src="images/funplug_assembled.jpg" alt="FunPlug fully assembled" />
-
+<img src="images/funplug_assembled.jpg" alt="FunPlug fully assembled" id="figure2" />
+<p class="img-caption">
+  <strong>Figure 2.</strong> Assembled FunPlug
+</p>
diff --git a/src/devices/audio/index.jd b/src/devices/audio/index.jd
index dd3109b..c42bca7 100644
--- a/src/devices/audio/index.jd
+++ b/src/devices/audio/index.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2014 The Android Open Source Project
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -26,8 +26,9 @@
   The following figure and list describe how audio functionality is implemented and the relevant
   source code that is involved in the implementation:
 </p>
-<p>
-  <img src="images/audio_hal.png" alt="Audio architecture" />
+  <img src="images/audio_hal.png" alt="Audio architecture" id="figure1" />
+<p class="img-caption">
+  <strong>Figure 1.</strong> Android audio architecture
 </p>
 <dl>
   <dt>
diff --git a/src/devices/audio/latency_measure.jd b/src/devices/audio/latency_measure.jd
index cd9df27..ae644df 100644
--- a/src/devices/audio/latency_measure.jd
+++ b/src/devices/audio/latency_measure.jd
@@ -132,7 +132,10 @@
   should not be extrapolated.
 </p>
 
-<img src="images/round_trip.png" alt="round-trip measurement" />
+<img src="images/round_trip.png" alt="round-trip measurement" id="figure1" />
+<p class="img-caption">
+  <strong>Figure 1.</strong> Round-trip measurement
+</p>
 
 <h2 id="measuringInput">Measuring Input Latency</h2>
 
diff --git a/src/devices/audio/testing_circuit.jd b/src/devices/audio/testing_circuit.jd
index 040755d..995062d 100644
--- a/src/devices/audio/testing_circuit.jd
+++ b/src/devices/audio/testing_circuit.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2014 The Android Open Source Project
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -64,17 +64,21 @@
 These photos show the circuit in action.
 </p>
 
-<img style="margin:1.5em auto" src="images/breadboard.jpg" alt="breadboard prototype" />
-<br />
-<center>Breadboard prototype</center>
+<img style="margin:1.5em auto" src="images/breadboard.jpg" alt="breadboard prototype" id="figure1" />
+<p class="img-caption">
+  <strong>Figure 1.</strong> Breadboard prototype
+</p>
 
-<img style="margin:1.5em auto" src="images/pcb.jpg" alt="an early run of the PCB" />
-<br />
-<center>An early run of the PCB</center>
+<img style="margin:1.5em auto" src="images/pcb.jpg" alt="an early run of the PCB" id="figure2" />
+<p class="img-caption">
+  <strong>Figure 2.</strong> An early run of the PCB
+</p>
 
-<img style="margin:1.5em auto" src="images/display.jpg" alt="example display">
-<br />
-<center>Example display</center>
+<img style="margin:1.5em auto" src="images/display.jpg" alt="example display" id="figure3" />
+<p class="img-caption">
+  <strong>Figure 3.</strong> Example display
+</p>
+
 <p>
 This image
 shows the scope display for an unspecified device, software release, and test conditions;
diff --git a/src/devices/audio/usb.jd b/src/devices/audio/usb.jd
index c01105f..a033d1b 100644
--- a/src/devices/audio/usb.jd
+++ b/src/devices/audio/usb.jd
@@ -151,7 +151,11 @@
 such as this is usually required:
 </p>
 
-<img src="images/otg.jpg" style="image-orientation: 90deg;" height="50%" width="50%" alt="OTG">
+<img src="images/otg.jpg" style="image-orientation: 90deg;" height="50%" width="50%" alt="OTG" id="figure1" />
+<p class="img-caption">
+  <strong>Figure 1.</strong> On-the-go (OTG) adapter
+</p>
+
 
 <p>
 An Android device might not provide sufficient power to operate a
@@ -162,7 +166,10 @@
 <a href="http://en.wikipedia.org/wiki/USB_hub">hub</a> such as this:
 </p>
 
-<img src="images/hub.jpg" alt="Powered hub">
+<img src="images/hub.jpg" alt="Powered hub" id="figure2" />
+<p class="img-caption">
+  <strong>Figure 2.</strong> Powered hub
+</p>
 
 <h3 id="accessoryMode">Accessory mode</h3>
 
@@ -434,7 +441,10 @@
 also with headphones.
 </p>
 
-<img src="images/dac.png" alt="DAC comparison">
+<img src="images/dac.png" alt="DAC comparison" id="figure3" />
+<p class="img-caption">
+  <strong>Figure 3.</strong> Comparison of two DACs
+</p>
 
 <p>
 Which design is better?  The answer depends on your needs.
diff --git a/src/devices/bluetooth.jd b/src/devices/bluetooth.jd
index 62cf79d..f5e7363 100644
--- a/src/devices/bluetooth.jd
+++ b/src/devices/bluetooth.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2014 The Android Open Source Project
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -32,7 +32,10 @@
 diagram shows the general structure of the Bluetooth stack:
 </p>
 
-<p><img src="images/bt.png"></p>
+<img src="images/bt.png" alt="Android Bluetooth architecture" id="figure1" />
+<p class="img-caption">
+  <strong>Figure 1.</strong> Bluetooth architecture
+</p>
 
 <dl>
   <dt>Application framework</dt>
diff --git a/src/devices/camera/camera3.jd b/src/devices/camera/camera3.jd
index 4d4d3a1..fd72ba3 100644
--- a/src/devices/camera/camera3.jd
+++ b/src/devices/camera/camera3.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2014 The Android Open Source Project
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -68,8 +68,10 @@
 <p>Each mode has slightly different and overlapping capabilities. This made it hard 
 to implement new types of features, such as burst mode, since it would fall 
 between two of these modes.<br/>
-<img src="images/camera_block.png" alt="Camera block diagram"/><br/>
-<strong>Figure 1.</strong> Camera components</p>
+<img src="images/camera_block.png" alt="Camera block diagram" id="figure1" />
+<p class="img-caption">
+  <strong>Figure 1.</strong> Camera components
+</p>
 
 <h2 id="v3-enhance">Version 3 enhancements</h2>
 
@@ -122,8 +124,10 @@
 request can be one-shot ( with capture() ), or it may be repeated indefinitely 
 (with setRepeatingRequest() ). Captures have priority over repeating
 requests.</p>
-<img src="images/camera_simple_model.png" alt="Camera data model"/>
-<p><strong>Figure 2.</strong> Camera core operation model</p>
+<img src="images/camera_simple_model.png" alt="Camera data model" id="figure2" />
+<p class="img-caption">
+  <strong>Figure 2.</strong> Camera core operation model
+</p>
 
 <h2 id="supported-version">Supported version</h2>
 
diff --git a/src/devices/camera/camera3_crop_reprocess.jd b/src/devices/camera/camera3_crop_reprocess.jd
index e617e1e..dd9f9c1 100644
--- a/src/devices/camera/camera3_crop_reprocess.jd
+++ b/src/devices/camera/camera3_crop_reprocess.jd
@@ -96,27 +96,38 @@
 </p>
   Crop region: (500, 375, 1000, 750) (4:3 aspect ratio)<br/>
   640x480 stream crop: (500, 375, 1000, 750) (equal to crop region)<br/>
-  1280x720 stream crop: (500, 469, 1000, 562)<br/>
-  <img src="images/crop-region-43-ratio.png" alt="crop-region-43-ratio"/>
+  1280x720 stream crop: (500, 469, 1000, 562)
+</p>
+  <img src="images/crop-region-43-ratio.png" alt="crop-region-43-ratio" id="figure1" />
+<p class="img-caption">
+  <strong>Figure 1.</strong> 4:3 aspect ratio
 </p>
 <p>Crop region: (500, 375, 1333, 750) (16:9 aspect ratio)<br/>
   640x480 stream crop: (666, 375, 1000, 750)<br/>
-  1280x720 stream crop: (500, 375, 1333, 750) (equal to crop region)<br/>
-  <img src="images/crop-region-169-ratio.png" alt="crop-region-169-ratio"/>
-  <!-- TODO: Fix alt text and URL -->
+  1280x720 stream crop: (500, 375, 1333, 750) (equal to crop region)
+</p>
+  <img src="images/crop-region-169-ratio.png" alt="crop-region-169-ratio" id="figure2" />
+<p class="img-caption">
+  <strong>Figure 2.</strong> 16:9 aspect ratio
 </p>
 <p>Crop region: (500, 375, 750, 750) (1:1 aspect ratio)<br/>
   640x480 stream crop: (500, 469, 750, 562)<br/>
-  1280x720 stream crop: (500, 543, 750, 414)<br/>
-  <img src="images/crop-region-11-ratio.png" alt="crop-region-11-ratio"/>
-  <br/>
+  1280x720 stream crop: (500, 543, 750, 414)
+</p>
+  <img src="images/crop-region-11-ratio.png" alt="crop-region-11-ratio" id="figure3" />
+<p class="img-caption">
+  <strong>Figure 3.</strong> 1:1 aspect ratio
+</p>
+<p>
   And a final example, a 1024x1024 square aspect ratio stream instead of the 480p 
   stream:<br/>
   Crop region: (500, 375, 1000, 750) (4:3 aspect ratio)<br/>
   1024x1024 stream crop: (625, 375, 750, 750)<br/>
-  1280x720 stream crop: (500, 469, 1000, 562)<br/>
-  <img src="images/crop-region-43-square-ratio.png"
-alt="crop-region-43-square-ratio"/>
+  1280x720 stream crop: (500, 469, 1000, 562)
+</p>
+  <img src="images/crop-region-43-square-ratio.png" alt="crop-region-43-square-ratio" id="figure4" />
+<p class="img-caption">
+  <strong>Figure 4.</strong> 4:3 aspect ratio, square
 </p>
 <h2 id="reprocessing">Reprocessing</h2>
 <p> Additional support for raw image files is provided by reprocessing support for RAW Bayer 
diff --git a/src/devices/camera/camera3_requests_hal.jd b/src/devices/camera/camera3_requests_hal.jd
index 9bd4f28..35c7478 100644
--- a/src/devices/camera/camera3_requests_hal.jd
+++ b/src/devices/camera/camera3_requests_hal.jd
@@ -34,9 +34,10 @@
   output and processing. Multiple requests can be in flight at once, and 
   submitting requests is non-blocking. And the requests are always processed in 
   the order they are received.<br/>
-  <img src="images/camera_model.png" alt="Camera request model"/>
-  <br/>
-  <strong>Figure 3.</strong> Camera model</p>
+  <img src="images/camera_model.png" alt="Camera request model" id="figure1" />
+  <p class="img-caption">
+  <strong>Figure 1.</strong> Camera model
+</p>
 <h2 id="hal-subsystem">The HAL and camera subsystem</h2>
 <p> The camera subsystem includes the implementations for components in the camera 
   pipeline such as the 3A algorithm and processing controls. The camera HAL 
@@ -51,9 +52,10 @@
   The camera pipeline also supports triggers that the app framework can initiate 
   to turn on things such as auto-focus. It also sends notifications back to the 
   app framework, notifying apps of events such as an auto-focus lock or errors.<br/>
-  <img src="images/camera_hal.png" alt="Camera hardware abstraction layer"/>
-  <br/>
-  <strong>Figure 4.</strong> Camera pipeline<br/>
+  <img src="images/camera_hal.png" alt="Camera hardware abstraction layer" id="figure2" />
+  <p class="img-caption">
+  <strong>Figure 2.</strong> Camera pipeline
+  </p>
   Please note, some image processing blocks shown in the diagram above are not 
   well-defined in the initial release.<br/>
   The camera pipeline makes the following assumptions:</p>
@@ -92,9 +94,10 @@
   <li>All capture configuration and state (except for the 3A routines) is 
     encapsulated in the requests and results.</li>
 </ul>
-<p><img src="images/camera-hal-overview.png" alt="Camera HAL overview"/>
-  <br/>
-  <strong>Figure 5.</strong> Camera HAL overview</p>
+<p><img src="images/camera-hal-overview.png" alt="Camera HAL overview" id="figure3" />
+<p class="img-caption">
+  <strong>Figure 3.</strong> Camera HAL overview
+</p>
 <h2 id="startup">Startup and expected operation sequence</h2>
 <p>This section contains a detailed explanation of the steps expected when using 
   the camera API. Please see <a href="https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h">platform/hardware/libhardware/include/hardware/camera3.h</a> for definitions of these structures and methods.</p>
@@ -162,9 +165,10 @@
     -ENODEV or NULL after the notify() method returns from a fatal error 
     message.</li>
 </ol>
-<p><img src="images/camera-ops-flow.png" width="600" height="434" alt="Camera operations flow" />
+<img src="images/camera-ops-flow.png" width="600" height="434" alt="Camera operations flow" id="figure4" />
+<p class="img-caption">
+  <strong>Figure 4.</strong> Camera operational flow
 </p>
-<p><strong>Figure 6.</strong> Camera operational flow</p>
 <h2 id="ops-modes">Operational modes</h2>
 <p>The camera 3 HAL device can implement one of two possible operational modes: 
   limited and full. Full support is expected from new higher-end devices. Limited 
diff --git a/src/devices/camera/index.jd b/src/devices/camera/index.jd
index a1e837f..012f989 100644
--- a/src/devices/camera/index.jd
+++ b/src/devices/camera/index.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2014 The Android Open Source Project
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -29,7 +29,10 @@
 The following figure and list describe the components involved and where to find the source for each:
 </p>
 
-<p><img src="images/camera_hal.png"></p>
+<img src="images/camera_hal.png" alt="Android camera architecture" id="figure1" />
+<p class="img-caption">
+  <strong>Figure 1.</strong> Camera architecture
+</p>
 
 <dl>
   
diff --git a/src/devices/media.jd b/src/devices/media.jd
index 69ba702..de6901a 100644
--- a/src/devices/media.jd
+++ b/src/devices/media.jd
@@ -2,7 +2,7 @@
 @jd:body
 
 <!--
-    Copyright 2013 The Android Open Source Project
+    Copyright 2014 The Android Open Source Project
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -36,8 +36,9 @@
 Overview
 </h2>
 <p>The following diagram shows how media applications interact with the Android native multimedia framework.</p>
-<p>
-  <img src="images/media.png">
+  <img src="images/media.png" alt="Android media architecture" id="figure1" />
+<p class="img-caption">
+  <strong>Figure 1.</strong> Media architecture
 </p>
 <dl>
 <dt>Application Framework</dt>
diff --git a/src/devices/tech/security/overview/app-security.jd b/src/devices/tech/security/overview/app-security.jd
index 4c468cc..3f2811c 100644
--- a/src/devices/tech/security/overview/app-security.jd
+++ b/src/devices/tech/security/overview/app-security.jd
@@ -159,16 +159,18 @@
 <table>
   <tr>
     <td><strong>Permissions at Application Install -- Google Maps</strong></td>
-    <td><strong>Permissions of an Installed Application -- gMail</strong></td>
+    <td><strong>Permissions of an Installed Application -- Gmail</strong></td>
   </tr>
   <tr>
     <td><img alt="Permissions at Application Install -- Google Maps" width=250
-src="../images/image_install.png"/></td>
-    <td><img alt="Permissions of an Installed Application -- gMail" width=250
-src="../images/image_gmail_installed.png"/></td>
+src="../images/image_install.png" /></td>
+    <td><img alt="Permissions of an Installed Application -- Gmail" width=250
+src="../images/image_gmail_installed.png" id="figure1" /></td>
   </tr>
 </table>
-<p><em>Figure 2: Display of permissions for applications</em></p>
+<p class="img-caption">
+  <strong>Figure 1.</strong> Display of permissions for applications
+</p>
 <h2 id="interprocess-communication">Interprocess Communication</h2>
 <p>Processes can communicate using any of the traditional UNIX-type mechanisms.
   Examples include the filesystem, local sockets, or signals. However, the Linux
@@ -236,10 +238,11 @@
   data within third-party applications installed by users.   Applications that
   choose to share this information can use Android OS permission checks to
   protect the data from third-party applications.</p>
-<p><img alt="Figure 3: Access to sensitive user data is only available through protected
-APIs" src="../images/image03.png" /></p>
-<p><em>Figure 3: Access to sensitive user data is only available through protected
-  APIs</em></p>
+<img alt="Access to sensitive user data available only through protected
+APIs" src="../images/image03.png" id="figure2" />
+<p class="img-caption">
+  <strong>Figure 2.</strong> Access to sensitive user data is available only through protected APIs
+</p>
 <p>System content providers that are likely to contain personal or personally
   identifiable information such as contacts and calendar have been created with
   clearly identified permissions. This granularity provides the user with clear
@@ -335,6 +338,8 @@
       for various DRM schemes</p>
   </li>
 </ul>
-<p><img alt="Figure 4: Architecture of Digital Rights Management on Android
-platform" src="../images/image02.png" /></p>
-<p><em>Figure 4: Architecture of Digital Rights Management on Android platform</em></p>
+<p><img alt="Architecture of Digital Rights Management on Android
+platform" src="../images/image02.png" id="figure3" /></p>
+<p class="img-caption">
+  <strong>Figure 3.</strong> Architecture of Digital Rights Management on Android platform
+</p>
diff --git a/src/devices/tech/security/secureboot/index.jd b/src/devices/tech/security/secureboot/index.jd
index aca3408..1857bbd 100644
--- a/src/devices/tech/security/secureboot/index.jd
+++ b/src/devices/tech/security/secureboot/index.jd
@@ -48,7 +48,12 @@
 modify any of the blocks would be equivalent to breaking the cryptographic hash. 
 See the following diagram for a depiction of this structure.</p>
 
-<p><img src="../images/dm-verity-hash-table.png" alt="dm-verity-hash-table"/><br/>
+<img src="../images/dm-verity-hash-table.png" alt="dm-verity-hash-table" id="figure1"/>
+<p class="img-caption">
+  <strong>Figure 1.</strong> dm-verity hash table
+</p>
+
+<p>
 A public key is included on the boot partition, which must be verified 
 externally by the OEM. That key is used to verify the signature for that hash 
 and confirm the device's system partition is protected and unchanged.</p>
diff --git a/src/devices/tech/security/secureboot/verified-boot.jd b/src/devices/tech/security/secureboot/verified-boot.jd
index 3873009..4f61a0d 100644
--- a/src/devices/tech/security/secureboot/verified-boot.jd
+++ b/src/devices/tech/security/secureboot/verified-boot.jd
@@ -101,7 +101,7 @@
 <p>The recovery partition must also be verified, and should be verified in the
 exact same way.</p>
 
-<img src="../images/verified_boot.png" alt="Verified boot flow">
+<img src="../images/verified_boot.png" alt="Verified boot flow" id="figure1" />
 <p class="img-caption"><strong>Figure 1.</strong> Verified boot flow</p>
 
 <h3 id=selecting_a_keystore>Selecting a keystore</h3>
@@ -164,7 +164,7 @@
 <p><strong>Important</strong>: Note <strong>all</strong> state transitions
 require a data wipe.</p>
 
-<img src="../images/device_states.png" alt="Changing device states">
+<img src="../images/device_states.png" alt="Changing device states" id="figure2" />
 <p class="img-caption"><strong>Figure 2.</strong> Changing device states</p>
 
 <ul>
@@ -317,7 +317,7 @@
 besides that required by their current verification state and normal device
 boot. Samples of UX for the other states follow:</p>
 
-<img src="../images/verified-boot-ui.png" alt="Interfaces of verified boot">
+<img src="../images/verified-boot-ui.png" alt="Interfaces of verified boot" id="figure3" />
 <p class="img-caption"><strong>Figure 3.</strong> Interfaces of verified boot</p>
 
 <h2 id=implementation_details>Implementation details</h2>
diff --git a/src/source/code-lines.jd b/src/source/code-lines.jd
index f277019..2e82e7b 100644
--- a/src/source/code-lines.jd
+++ b/src/source/code-lines.jd
@@ -71,10 +71,10 @@
 	</p>
   </li>
 </ol>
-<p>
-  <img src="{@docRoot}images/code-lines.png" alt="code-line diagram">
+  <img src="{@docRoot}images/code-lines.png" alt="code-line diagram" id="figure1" >
+<p class="img-caption">
+  <strong>Figure 1.</strong> AOSP code and releases
 </p>
-
 <h2 id="terms-and-caveats">
   Terms and Caveats
 </h2>
diff --git a/src/source/developing.jd b/src/source/developing.jd
index e6a97b5..0bbafe2 100644
--- a/src/source/developing.jd
+++ b/src/source/developing.jd
@@ -41,6 +41,12 @@
 <div style="float:right">
   <img src="{@docRoot}images/submit-patches-0.png" alt="basic workflow diagram">
 </div>
+<div class="figure" style="width:200px">
+  <img src="{@docRoot}images/submit-patches-0.png" alt="basic workflow diagram" height="153px" />
+  <p class="img-caption">
+    <strong>Figure 1.</strong> Basic Android workflow
+  </p>
+</div>
 
 <p>The basic pattern of interacting with the repositories is as follows:</p>
 <ol>
@@ -157,4 +163,7 @@
 </code></pre>
 <p>Deleting a client will <em>permanently delete</em> any changes you have not yet uploaded for review.</p>
 <h2 id="git-and-repo-cheatsheet">Git and Repo cheatsheet</h2>
-<p><img src="{@docRoot}images/git-repo-1.png" alt="list of basic git and repo commands"></p>
+<img src="{@docRoot}images/git-repo-1.png" alt="list of basic git and repo commands" id="figure2" />
+<p class="img-caption">
+  <strong>Figure 2.</strong> Basic git and repo commands
+</p>
diff --git a/src/source/life-of-a-patch.jd b/src/source/life-of-a-patch.jd
index b0c821c..c16e63f 100644
--- a/src/source/life-of-a-patch.jd
+++ b/src/source/life-of-a-patch.jd
@@ -23,4 +23,7 @@
 the steps below are performed in the web application.</p>
 <p>For full instructions on how to get set up to use gerrit and git, please
 see the <a href="submit-patches.html">Submitting Patches</a> page.</p>
-<p><img src="{@docRoot}images/workflow-0.png" alt="workflow diagram"/></p>
+<img src="{@docRoot}images/workflow-0.png" alt="workflow diagram" id="figure1" />
+<p class="img-caption">
+  <strong>Figure 1.</strong> Patch workflow
+</p>