diff --git a/user/src/com/google/gwt/user/client/ui/CheckBox.java b/user/src/com/google/gwt/user/client/ui/CheckBox.java
index e2826fb..82a603c 100644
--- a/user/src/com/google/gwt/user/client/ui/CheckBox.java
+++ b/user/src/com/google/gwt/user/client/ui/CheckBox.java
@@ -179,11 +179,12 @@
   }
 
   /**
-   * @see UIObject#onEnsureDebugId(String)
-   * 
+   * <b>Affected Elements:</b>
    * <ul>
-   * <li>-label => label next to checkbox</li>
+   * <li>-label = label next to checkbox.</li>
    * </ul>
+   * 
+   * @see UIObject#onEnsureDebugId(String)
    */
   @Override
   protected void onEnsureDebugId(String baseID) {
diff --git a/user/src/com/google/gwt/user/client/ui/DialogBox.java b/user/src/com/google/gwt/user/client/ui/DialogBox.java
index c8e847e..25df828 100644
--- a/user/src/com/google/gwt/user/client/ui/DialogBox.java
+++ b/user/src/com/google/gwt/user/client/ui/DialogBox.java
@@ -214,12 +214,13 @@
   }
 
   /**
-   * @see UIObject#onEnsureDebugId(String)
-   * 
+   * <b>Affected Elements:</b>
    * <ul>
-   * <li>-caption => text at the top of the {@link DialogBox}</li>
-   * <li>-content => the table cell around the content</li>
+   * <li>-caption = text at the top of the {@link DialogBox}.</li>
+   * <li>-content = the table cell around the content.</li>
    * </ul>
+   * 
+   * @see UIObject#onEnsureDebugId(String)
    */
   @Override
   protected void onEnsureDebugId(String baseID) {
diff --git a/user/src/com/google/gwt/user/client/ui/DisclosurePanel.java b/user/src/com/google/gwt/user/client/ui/DisclosurePanel.java
index 62beed0..d775288 100644
--- a/user/src/com/google/gwt/user/client/ui/DisclosurePanel.java
+++ b/user/src/com/google/gwt/user/client/ui/DisclosurePanel.java
@@ -394,11 +394,12 @@
   }
 
   /**
-   * @see UIObject#onEnsureDebugId(String)
-   * 
+   * <b>Affected Elements:</b>
    * <ul>
-   * <li>-header => the clickable header</li>
+   * <li>-header = the clickable header.</li>
    * </ul>
+   * 
+   * @see UIObject#onEnsureDebugId(String)
    */
   @Override
   protected void onEnsureDebugId(String baseID) {
diff --git a/user/src/com/google/gwt/user/client/ui/DockPanel.java b/user/src/com/google/gwt/user/client/ui/DockPanel.java
index c1c7ae4..f2096a6 100644
--- a/user/src/com/google/gwt/user/client/ui/DockPanel.java
+++ b/user/src/com/google/gwt/user/client/ui/DockPanel.java
@@ -257,24 +257,27 @@
   }
 
   /**
-   * @see UIObject#onEnsureDebugId(String)
-   * 
-   * {@link DockPanel}s support adding more than one cell in a direction, so an
+   * {@link DockPanel} supports adding more than one cell in a direction, so an
    * integer will be appended to the end of the debug id. For example, the first
    * north cell is labeled "north1", the second is "north2", and the third is
    * "north3".
    * 
    * This widget recreates its structure every time a {@link Widget} is added,
-   * so you must call this method after adding new {@link Widget}s or all debug
+   * so you must call this method after adding a new {@link Widget} or all debug
    * IDs will be lost.
    * 
+   * <p>
+   * <b>Affected Elements:</b>
    * <ul>
-   * <li>-center => the center cell</li>
-   * <li>-north# => the northern cell</li>
-   * <li>-south# => the southern cell</li>
-   * <li>-east# => the eastern cell</li>
-   * <li>-west# => the western cell</li>
+   * <li>-center = the center cell.</li>
+   * <li>-north# = the northern cell.</li>
+   * <li>-south# = the southern cell.</li>
+   * <li>-east# = the eastern cell.</li>
+   * <li>-west# = the western cell.</li>
    * </ul>
+   * </p>
+   * 
+   * @see UIObject#onEnsureDebugId(String)
    */
   @Override
   protected void onEnsureDebugId(String baseID) {
diff --git a/user/src/com/google/gwt/user/client/ui/HTMLTable.java b/user/src/com/google/gwt/user/client/ui/HTMLTable.java
index f622ed5..bbaac5d 100644
--- a/user/src/com/google/gwt/user/client/ui/HTMLTable.java
+++ b/user/src/com/google/gwt/user/client/ui/HTMLTable.java
@@ -1294,11 +1294,12 @@
   }
 
   /**
-   * @see UIObject#onEnsureDebugId(String)
-   * 
+   * <b>Affected Elements:</b>
    * <ul>
-   * <li>-(row)#-(cell)# => the cell at the given row and cell index</li>
+   * <li>-(row)#-(cell)# = the cell at the given row and cell index.</li>
    * </ul>
+   * 
+   * @see UIObject#onEnsureDebugId(String)
    */
   @Override
   protected void onEnsureDebugId(String baseID) {
diff --git a/user/src/com/google/gwt/user/client/ui/HorizontalPanel.java b/user/src/com/google/gwt/user/client/ui/HorizontalPanel.java
index 6d1fe8e..f01112f 100644
--- a/user/src/com/google/gwt/user/client/ui/HorizontalPanel.java
+++ b/user/src/com/google/gwt/user/client/ui/HorizontalPanel.java
@@ -121,11 +121,12 @@
   }
 
   /**
-   * @see UIObject#onEnsureDebugId(String)
-   * 
+   * <b>Affected Elements:</b>
    * <ul>
-   * <li>-# => the cell at the given index</li>
+   * <li>-# = the cell at the given index.</li>
    * </ul>
+   * 
+   * @see UIObject#onEnsureDebugId(String)
    */
   @Override
   protected void onEnsureDebugId(String baseID) {
diff --git a/user/src/com/google/gwt/user/client/ui/HorizontalSplitPanel.java b/user/src/com/google/gwt/user/client/ui/HorizontalSplitPanel.java
index 2603c2c..6cc2488 100644
--- a/user/src/com/google/gwt/user/client/ui/HorizontalSplitPanel.java
+++ b/user/src/com/google/gwt/user/client/ui/HorizontalSplitPanel.java
@@ -321,13 +321,14 @@
   }
 
   /**
-   * @see UIObject#onEnsureDebugId(String)
-   * 
+   * <b>Affected Elements:</b>
    * <ul>
-   * <li>-splitter => the container containing the splitter element</li>
-   * <li>-right => the container on the right side of the splitter</li>
-   * <li>-left => the container on the left side of the splitter</li>
+   * <li>-splitter = the container containing the splitter element.</li>
+   * <li>-right = the container on the right side of the splitter.</li>
+   * <li>-left = the container on the left side of the splitter.</li>
    * </ul>
+   * 
+   * @see UIObject#onEnsureDebugId(String)
    */
   @Override
   protected void onEnsureDebugId(String baseID) {
diff --git a/user/src/com/google/gwt/user/client/ui/Hyperlink.java b/user/src/com/google/gwt/user/client/ui/Hyperlink.java
index 5643ebf..297e2de 100644
--- a/user/src/com/google/gwt/user/client/ui/Hyperlink.java
+++ b/user/src/com/google/gwt/user/client/ui/Hyperlink.java
@@ -154,11 +154,12 @@
   }
 
   /**
-   * @see UIObject#onEnsureDebugId(String)
-   * 
+   * <b>Affected Elements:</b>
    * <ul>
-   * <li>-wrapper => the div around the link</li>
+   * <li>-wrapper = the div around the link.</li>
    * </ul>
+   * 
+   * @see UIObject#onEnsureDebugId(String)
    */
   @Override
   protected void onEnsureDebugId(String baseID) {
diff --git a/user/src/com/google/gwt/user/client/ui/ListBox.java b/user/src/com/google/gwt/user/client/ui/ListBox.java
index fd43eee..41c27ef 100644
--- a/user/src/com/google/gwt/user/client/ui/ListBox.java
+++ b/user/src/com/google/gwt/user/client/ui/ListBox.java
@@ -435,11 +435,12 @@
   }
 
   /**
-   * @see UIObject#onEnsureDebugId(String)
-   * 
+   * <b>Affected Elements:</b>
    * <ul>
-   * <li>-item# => the option at the specified index</li>
+   * <li>-item# = the option at the specified index.</li>
    * </ul>
+   * 
+   * @see UIObject#onEnsureDebugId(String)
    */
   @Override
   protected void onEnsureDebugId(String baseID) {
diff --git a/user/src/com/google/gwt/user/client/ui/MenuBar.java b/user/src/com/google/gwt/user/client/ui/MenuBar.java
index a717cf8..cf1df6e 100644
--- a/user/src/com/google/gwt/user/client/ui/MenuBar.java
+++ b/user/src/com/google/gwt/user/client/ui/MenuBar.java
@@ -343,11 +343,12 @@
   }
 
   /**
-   * @see UIObject#onEnsureDebugId(String)
-   * 
+   * <b>Affected Elements:</b>
    * <ul>
-   * <li>-item# => the {@link MenuItem} at the specified index</li>
+   * <li>-item# = the {@link MenuItem} at the specified index.</li>
    * </ul>
+   * 
+   * @see UIObject#onEnsureDebugId(String)
    */
   @Override
   protected void onEnsureDebugId(String baseID) {
diff --git a/user/src/com/google/gwt/user/client/ui/MenuItem.java b/user/src/com/google/gwt/user/client/ui/MenuItem.java
index c23c2dd..e03ae76 100644
--- a/user/src/com/google/gwt/user/client/ui/MenuItem.java
+++ b/user/src/com/google/gwt/user/client/ui/MenuItem.java
@@ -151,10 +151,10 @@
   }
 
   /**
-   * @see UIObject#onEnsureDebugId(String)
+   * Also sets the Debug IDs of MenuItems in the submenu of this
+   * {@link MenuItem} if a submenu exists.
    * 
-   * Also sets the Debug IDs of {@link MenuItem}s in the submenu of this
-   * {@link MenuItem}, if one exists.
+   * @see UIObject#onEnsureDebugId(String)
    */
   @Override
   protected void onEnsureDebugId(String baseID) {
diff --git a/user/src/com/google/gwt/user/client/ui/SplitPanel.java b/user/src/com/google/gwt/user/client/ui/SplitPanel.java
index c881e6e..eaf4013 100644
--- a/user/src/com/google/gwt/user/client/ui/SplitPanel.java
+++ b/user/src/com/google/gwt/user/client/ui/SplitPanel.java
@@ -332,11 +332,12 @@
   }
 
   /**
-   * @see UIObject#onEnsureDebugId(String)
-   * 
+   * <b>Affected Elements:</b>
    * <ul>
-   * <li>-splitter => the container containing the splitter element</li>
+   * <li>-splitter = the container containing the splitter element.</li>
    * </ul>
+   * 
+   * @see UIObject#onEnsureDebugId(String)
    */
   @Override
   protected void onEnsureDebugId(String baseID) {
diff --git a/user/src/com/google/gwt/user/client/ui/StackPanel.java b/user/src/com/google/gwt/user/client/ui/StackPanel.java
index 6d874ba..f6ae64d 100644
--- a/user/src/com/google/gwt/user/client/ui/StackPanel.java
+++ b/user/src/com/google/gwt/user/client/ui/StackPanel.java
@@ -226,12 +226,13 @@
   }
 
   /**
-   * @see UIObject#onEnsureDebugId(String)
-   * 
+   * <b>Affected Elements:</b>
    * <ul>
-   * <li>-text# => The element around the header at the specified index</li>
-   * <li>-content# => The element around the body at the specified index</li>
+   * <li>-text# = The element around the header at the specified index.</li>
+   * <li>-content# = The element around the body at the specified index.</li>
    * </ul>
+   * 
+   * @see UIObject#onEnsureDebugId(String)
    */
   @Override
   protected void onEnsureDebugId(String baseID) {
diff --git a/user/src/com/google/gwt/user/client/ui/SuggestBox.java b/user/src/com/google/gwt/user/client/ui/SuggestBox.java
index 4b125e2..a7ea661 100644
--- a/user/src/com/google/gwt/user/client/ui/SuggestBox.java
+++ b/user/src/com/google/gwt/user/client/ui/SuggestBox.java
@@ -501,12 +501,13 @@
   }
 
   /**
-   * @see UIObject#onEnsureDebugId(String)
-   * 
+   * <b>Affected Elements:</b>
    * <ul>
-   * <li>-popup => The popup that appears with suggestions</li>
-   * <li>-items-item# => The suggested item at the specified index</li>
-   * </ul> 
+   * <li>-popup = The popup that appears with suggestions.</li>
+   * <li>-items-item# = The suggested item at the specified index.</li>
+   * </ul>
+   * 
+   * @see UIObject#onEnsureDebugId(String)
    */
   @Override
   protected void onEnsureDebugId(String baseID) {
diff --git a/user/src/com/google/gwt/user/client/ui/TabBar.java b/user/src/com/google/gwt/user/client/ui/TabBar.java
index bcebb91..4d1a90d 100644
--- a/user/src/com/google/gwt/user/client/ui/TabBar.java
+++ b/user/src/com/google/gwt/user/client/ui/TabBar.java
@@ -291,12 +291,13 @@
   }
 
   /**
-   * @see UIObject#onEnsureDebugId(String)
-   * 
+   * <b>Affected Elements:</b>
    * <ul>
-   * <li>-tab# => The element containing the contents of the tab</li>
-   * <li>-tab-wrapper# => The cell containing the tab at the index</li>
+   * <li>-tab# = The element containing the contents of the tab.</li>
+   * <li>-tab-wrapper# = The cell containing the tab at the index.</li>
    * </ul>
+   * 
+   * @see UIObject#onEnsureDebugId(String)
    */
   @Override
   protected void onEnsureDebugId(String baseID) {
diff --git a/user/src/com/google/gwt/user/client/ui/TabPanel.java b/user/src/com/google/gwt/user/client/ui/TabPanel.java
index 1c6a9b0..4fa2c43 100644
--- a/user/src/com/google/gwt/user/client/ui/TabPanel.java
+++ b/user/src/com/google/gwt/user/client/ui/TabPanel.java
@@ -371,14 +371,15 @@
   }
 
   /**
-   * @see UIObject#onEnsureDebugId(String)
-   * 
+   * <b>Affected Elements:</b>
    * <ul>
-   * <li>-bar => The tab bar</li>
-   * <li>-bar-tab# => The element containing the contents of the tab itself</li>
-   * <li>-bar-tab#-wrapper => The cell containing the tab at the index</li>
-   * <li>-bottom => The panel beneath the tab bar</li>
+   * <li>-bar = The tab bar.</li>
+   * <li>-bar-tab# = The element containing the content of the tab itself.</li>
+   * <li>-bar-tab#-wrapper = The cell containing the tab at the index.</li>
+   * <li>-bottom = The panel beneath the tab bar.</li>
    * </ul>
+   * 
+   * @see UIObject#onEnsureDebugId(String)
    */
   @Override
   protected void onEnsureDebugId(String baseID) {
diff --git a/user/src/com/google/gwt/user/client/ui/Tree.java b/user/src/com/google/gwt/user/client/ui/Tree.java
index 37f596e..6fdc56a 100644
--- a/user/src/com/google/gwt/user/client/ui/Tree.java
+++ b/user/src/com/google/gwt/user/client/ui/Tree.java
@@ -649,11 +649,12 @@
   }
 
   /**
-   * @see UIObject#onEnsureDebugId(String)
-   *
+   * <b>Affected Elements:</b>
    * <ul>
-   * <li>-root => The root {@link TreeItem}</li>
+   * <li>-root = The root {@link TreeItem}.</li>
    * </ul>
+   * 
+   * @see UIObject#onEnsureDebugId(String)
    */
   @Override
   protected void onEnsureDebugId(String baseID) {
diff --git a/user/src/com/google/gwt/user/client/ui/TreeItem.java b/user/src/com/google/gwt/user/client/ui/TreeItem.java
index 28481e8..cbe236d 100644
--- a/user/src/com/google/gwt/user/client/ui/TreeItem.java
+++ b/user/src/com/google/gwt/user/client/ui/TreeItem.java
@@ -413,13 +413,14 @@
   }
 
   /**
-   * @see UIObject#onEnsureDebugId(String)
-   *
+   * <b>Affected Elements:</b>
    * <ul>
-   * <li>-image => The status image</li>
-   * <li>-content => The text or {@link Widget} next to the image</li>
-   * <li>-child# => The child at the specified index</li>
+   * <li>-image = The status image.</li>
+   * <li>-content = The text or {@link Widget} next to the image.</li>
+   * <li>-child# = The child at the specified index.</li>
    * </ul>
+   * 
+   * @see UIObject#onEnsureDebugId(String)
    */
   @Override
   protected void onEnsureDebugId(String baseID) {
diff --git a/user/src/com/google/gwt/user/client/ui/UIObject.java b/user/src/com/google/gwt/user/client/ui/UIObject.java
index a778f3d..530c4dd 100644
--- a/user/src/com/google/gwt/user/client/ui/UIObject.java
+++ b/user/src/com/google/gwt/user/client/ui/UIObject.java
@@ -412,7 +412,8 @@
    * This method will be compiled out and will have no effect unless you inherit
    * the DebugID module in your gwt.xml file by adding the following line:
    * 
-   * <inherits name="com.google.gwt.user.DebugID"/>
+   * <pre class="code">
+   * &lt;inherits name="com.google.gwt.user.DebugID"/&gt;</pre>
    * 
    * @param id the ID to set on the main element
    */
@@ -696,7 +697,7 @@
    * list the IDs (relative to the base ID), that will be applied to each sub
    * {@link Element} with a short description.  For example:
    * <ul>
-   * <li>-mysubelement => Applies to my sub element</li>
+   * <li>-mysubelement = Applies to my sub element.</li>
    * </ul> 
    * 
    * Subclasses should make a super call to this method to ensure that the ID of
@@ -705,7 +706,8 @@
    * This method will not be called unless you inherit the DebugID module in
    * your gwt.xml file by adding the following line:
    * 
-   * <inherits name="com.google.gwt.user.DebugID"/>
+   * <pre class="code">
+   * &lt;inherits name="com.google.gwt.user.DebugID"/&gt;</pre>
    * 
    * @param baseID the base ID used by the main element
    */
diff --git a/user/src/com/google/gwt/user/client/ui/VerticalPanel.java b/user/src/com/google/gwt/user/client/ui/VerticalPanel.java
index 0145086..2c640b3 100644
--- a/user/src/com/google/gwt/user/client/ui/VerticalPanel.java
+++ b/user/src/com/google/gwt/user/client/ui/VerticalPanel.java
@@ -123,11 +123,12 @@
   }
 
   /**
-   * @see UIObject#onEnsureDebugId(String)
-   *
+   * <b>Affected Elements:</b>
    * <ul>
-   * <li>-# => the cell at the given index</li>
+   * <li>-# = the cell at the given index.</li>
    * </ul>
+   * 
+   * @see UIObject#onEnsureDebugId(String)
    */
   @Override
   protected void onEnsureDebugId(String baseID) {
diff --git a/user/src/com/google/gwt/user/client/ui/VerticalSplitPanel.java b/user/src/com/google/gwt/user/client/ui/VerticalSplitPanel.java
index 144d85a..3f1ec79 100644
--- a/user/src/com/google/gwt/user/client/ui/VerticalSplitPanel.java
+++ b/user/src/com/google/gwt/user/client/ui/VerticalSplitPanel.java
@@ -327,13 +327,14 @@
   }
 
   /**
-   * @see UIObject#onEnsureDebugId(String)
-   * 
+   * <b>Affected Elements:</b>
    * <ul>
-   * <li>-splitter => the container containing the splitter element</li>
-   * <li>-top => the container above the splitter</li>
-   * <li>-bottom => the container below the splitter</li>
+   * <li>-splitter = the container containing the splitter element.</li>
+   * <li>-top = the container above the splitter.</li>
+   * <li>-bottom = the container below the splitter.</li>
    * </ul>
+   * 
+   * @see UIObject#onEnsureDebugId(String)
    */
   @Override
   protected void onEnsureDebugId(String baseID) {
