diff --git a/src/test/java/com/google/devtools/build/skydoc/BUILD b/src/test/java/com/google/devtools/build/skydoc/BUILD
index c12329f..31b365d 100644
--- a/src/test/java/com/google/devtools/build/skydoc/BUILD
+++ b/src/test/java/com/google/devtools/build/skydoc/BUILD
@@ -22,6 +22,7 @@
         "//src/main/java/com/google/devtools/build/lib:syntax",
         "//src/main/java/com/google/devtools/build/lib/vfs",
         "//src/main/java/com/google/devtools/build/skydoc:skydoc_lib",
+        "//src/main/java/com/google/devtools/build/skydoc/fakebuildapi",
         "//src/main/java/com/google/devtools/build/skydoc/rendering",
         "//src/test/java/com/google/devtools/build/lib:testutil",
         "//src/test/java/com/google/devtools/build/lib/skylark:testutil",
@@ -97,3 +98,10 @@
     input_file = "testdata/misc_apis_test/input.bzl",
     skydoc = "//src/main/java/com/google/devtools/build/skydoc",
 )
+
+skydoc_test(
+    name = "attribute_types_test",
+    golden_file = "testdata/attribute_types_test/golden.txt",
+    input_file = "testdata/attribute_types_test/input.bzl",
+    skydoc = "//src/main/java/com/google/devtools/build/skydoc",
+)
diff --git a/src/test/java/com/google/devtools/build/skydoc/SkydocTest.java b/src/test/java/com/google/devtools/build/skydoc/SkydocTest.java
index 89327e3..5bf7a95 100644
--- a/src/test/java/com/google/devtools/build/skydoc/SkydocTest.java
+++ b/src/test/java/com/google/devtools/build/skydoc/SkydocTest.java
@@ -24,6 +24,7 @@
 import com.google.devtools.build.lib.syntax.ParserInputSource;
 import com.google.devtools.build.lib.vfs.FileSystemUtils;
 import com.google.devtools.build.lib.vfs.Path;
+import com.google.devtools.build.skydoc.fakebuildapi.FakeDescriptor.Type;
 import com.google.devtools.build.skydoc.rendering.RuleInfo;
 import java.io.IOException;
 import java.nio.file.Paths;
@@ -67,10 +68,10 @@
         "    doc = 'This is my rule. It does stuff.',",
         "    implementation = rule_impl,",
         "    attrs = {",
-        "        'first': attr.label(mandatory=True, allow_files=True, single_file=True),",
-        "        'second': attr.string_dict(mandatory=True),",
-        "        'third': attr.output(mandatory=True),",
-        "        'fourth': attr.bool(default=False, mandatory=False),",
+        "        'a': attr.label(mandatory=True, allow_files=True, single_file=True),",
+        "        'b': attr.string_dict(mandatory=True),",
+        "        'c': attr.output(mandatory=True),",
+        "        'd': attr.bool(default=False, mandatory=False),",
         "    },",
         ")");
 
@@ -88,7 +89,13 @@
     assertThat(ruleInfo.getKey()).isEqualTo("my_rule");
     assertThat(ruleInfo.getValue().getDocString()).isEqualTo("This is my rule. It does stuff.");
     assertThat(getAttrNames(ruleInfo.getValue())).containsExactly(
-        "first", "fourth", "second", "third").inOrder();
+        "name", "a", "b", "c", "d").inOrder();
+    assertThat(getAttrTypes(ruleInfo.getValue())).containsExactly(
+        Type.STRING.getDescription(),
+        Type.LABEL.getDescription(),
+        Type.STRING_DICT.getDescription(),
+        Type.LABEL.getDescription(),
+        Type.BOOLEAN.getDescription()).inOrder();
     assertThat(unexportedRuleInfos.build()).isEmpty();
   }
 
@@ -97,6 +104,11 @@
         .collect(Collectors.toList());
   }
 
+  private static Iterable<String> getAttrTypes(RuleInfo ruleInfo) {
+    return ruleInfo.getAttributes().stream().map(attr -> attr.getTypeString())
+        .collect(Collectors.toList());
+  }
+
   @Test
   public void testMultipleRuleNames() throws Exception {
     scratch.file(
diff --git a/src/test/java/com/google/devtools/build/skydoc/testdata/android_basic_test/golden.txt b/src/test/java/com/google/devtools/build/skydoc/testdata/android_basic_test/golden.txt
index e7c4c5f..a69252b 100644
--- a/src/test/java/com/google/devtools/build/skydoc/testdata/android_basic_test/golden.txt
+++ b/src/test/java/com/google/devtools/build/skydoc/testdata/android_basic_test/golden.txt
@@ -2,7 +2,7 @@
 ## android_related_rule
 
 <pre>
-android_related_rule(first, fourth, second, third)
+android_related_rule(name, first, fourth, second, third)
 </pre>
 
 This rule does android-related things.
@@ -15,21 +15,38 @@
     <col class="col-description" />
   </colgroup>
   <tbody>
+    <tr id="#android_related_rule_name">
+      <td><code>name</code></td>
+      <td>
+        String; required
+        <p>
+          A unique name for this rule.
+        </p>
+      </td>
+    </tr>
     <tr id="#android_related_rule_first">
       <td><code>first</code></td>
-      <td></td>
+      <td>
+        Label; required
+      </td>
     </tr>
     <tr id="#android_related_rule_fourth">
       <td><code>fourth</code></td>
-      <td></td>
+      <td>
+        Boolean; optional
+      </td>
     </tr>
     <tr id="#android_related_rule_second">
       <td><code>second</code></td>
-      <td></td>
+      <td>
+        Dictionary: String -> String; required
+      </td>
     </tr>
     <tr id="#android_related_rule_third">
       <td><code>third</code></td>
-      <td></td>
+      <td>
+        Label; required
+      </td>
     </tr>
   </tbody>
 </table>
diff --git a/src/test/java/com/google/devtools/build/skydoc/testdata/apple_basic_test/golden.txt b/src/test/java/com/google/devtools/build/skydoc/testdata/apple_basic_test/golden.txt
index 882f540..4cbc0be 100644
--- a/src/test/java/com/google/devtools/build/skydoc/testdata/apple_basic_test/golden.txt
+++ b/src/test/java/com/google/devtools/build/skydoc/testdata/apple_basic_test/golden.txt
@@ -2,7 +2,7 @@
 ## apple_related_rule
 
 <pre>
-apple_related_rule(first, fourth, second, third)
+apple_related_rule(name, first, fourth, second, third)
 </pre>
 
 This rule does apple-related things.
@@ -15,21 +15,38 @@
     <col class="col-description" />
   </colgroup>
   <tbody>
+    <tr id="#apple_related_rule_name">
+      <td><code>name</code></td>
+      <td>
+        String; required
+        <p>
+          A unique name for this rule.
+        </p>
+      </td>
+    </tr>
     <tr id="#apple_related_rule_first">
       <td><code>first</code></td>
-      <td></td>
+      <td>
+        Label; required
+      </td>
     </tr>
     <tr id="#apple_related_rule_fourth">
       <td><code>fourth</code></td>
-      <td></td>
+      <td>
+        Boolean; optional
+      </td>
     </tr>
     <tr id="#apple_related_rule_second">
       <td><code>second</code></td>
-      <td></td>
+      <td>
+        Dictionary: String -> String; required
+      </td>
     </tr>
     <tr id="#apple_related_rule_third">
       <td><code>third</code></td>
-      <td></td>
+      <td>
+        Label; required
+      </td>
     </tr>
   </tbody>
 </table>
diff --git a/src/test/java/com/google/devtools/build/skydoc/testdata/attribute_types_test/golden.txt b/src/test/java/com/google/devtools/build/skydoc/testdata/attribute_types_test/golden.txt
new file mode 100644
index 0000000..746e3fe
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/skydoc/testdata/attribute_types_test/golden.txt
@@ -0,0 +1,147 @@
+<a name="#my_rule"></a>
+## my_rule
+
+<pre>
+my_rule(name, a, b, c, d, e, f, g, h, i, j, k, l, m)
+</pre>
+
+This is my rule. It does stuff.
+
+### Attributes
+
+<table class="params-table">
+  <colgroup>
+    <col class="col-param" />
+    <col class="col-description" />
+  </colgroup>
+  <tbody>
+    <tr id="#my_rule_name">
+      <td><code>name</code></td>
+      <td>
+        String; required
+        <p>
+          A unique name for this rule.
+        </p>
+      </td>
+    </tr>
+    <tr id="#my_rule_a">
+      <td><code>a</code></td>
+      <td>
+        Boolean; required
+        <p>
+          Some bool
+        </p>
+      </td>
+    </tr>
+    <tr id="#my_rule_b">
+      <td><code>b</code></td>
+      <td>
+        Integer; required
+        <p>
+          Some int
+        </p>
+      </td>
+    </tr>
+    <tr id="#my_rule_c">
+      <td><code>c</code></td>
+      <td>
+        List of integers; required
+        <p>
+          Some int_list
+        </p>
+      </td>
+    </tr>
+    <tr id="#my_rule_d">
+      <td><code>d</code></td>
+      <td>
+        Label; required
+        <p>
+          Some label
+        </p>
+      </td>
+    </tr>
+    <tr id="#my_rule_e">
+      <td><code>e</code></td>
+      <td>
+        Dictionary: Label -> String; required
+        <p>
+          Some label_keyed_string_dict
+        </p>
+      </td>
+    </tr>
+    <tr id="#my_rule_f">
+      <td><code>f</code></td>
+      <td>
+        List of labels; required
+        <p>
+          Some label_list
+        </p>
+      </td>
+    </tr>
+    <tr id="#my_rule_g">
+      <td><code>g</code></td>
+      <td>
+        List of strings; optional
+        <p>
+          Some license
+        </p>
+      </td>
+    </tr>
+    <tr id="#my_rule_h">
+      <td><code>h</code></td>
+      <td>
+        Label; optional
+        <p>
+          Some output
+        </p>
+      </td>
+    </tr>
+    <tr id="#my_rule_i">
+      <td><code>i</code></td>
+      <td>
+        List of labels; optional
+        <p>
+          Some output_list
+        </p>
+      </td>
+    </tr>
+    <tr id="#my_rule_j">
+      <td><code>j</code></td>
+      <td>
+        String; required
+        <p>
+          Some string
+        </p>
+      </td>
+    </tr>
+    <tr id="#my_rule_k">
+      <td><code>k</code></td>
+      <td>
+        Dictionary: String -> String; required
+        <p>
+          Some string_dict
+        </p>
+      </td>
+    </tr>
+    <tr id="#my_rule_l">
+      <td><code>l</code></td>
+      <td>
+        List of strings; required
+        <p>
+          Some string_list
+        </p>
+      </td>
+    </tr>
+    <tr id="#my_rule_m">
+      <td><code>m</code></td>
+      <td>
+        Dictionary: String -> List of strings; optional
+        <p>
+          Some string_list_dict
+        </p>
+      </td>
+    </tr>
+  </tbody>
+</table>
+
+
diff --git a/src/test/java/com/google/devtools/build/skydoc/testdata/attribute_types_test/input.bzl b/src/test/java/com/google/devtools/build/skydoc/testdata/attribute_types_test/input.bzl
new file mode 100644
index 0000000..edcef5f
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/skydoc/testdata/attribute_types_test/input.bzl
@@ -0,0 +1,22 @@
+def my_rule_impl(ctx):
+    return struct()
+
+my_rule = rule(
+    implementation = my_rule_impl,
+    doc = "This is my rule. It does stuff.",
+    attrs = {
+        "a": attr.bool(mandatory = True, doc = "Some bool"),
+        "b": attr.int(mandatory = True, doc = "Some int"),
+        "c": attr.int_list(mandatory = True, doc = "Some int_list"),
+        "d": attr.label(mandatory = True, doc = "Some label"),
+        "e": attr.label_keyed_string_dict(mandatory = True, doc = "Some label_keyed_string_dict"),
+        "f": attr.label_list(mandatory = True, doc = "Some label_list"),
+        "g": attr.license(mandatory = False, doc = "Some license"),
+        "h": attr.output(mandatory = False, doc = "Some output"),
+        "i": attr.output_list(mandatory = False, doc = "Some output_list"),
+        "j": attr.string(mandatory = True, doc = "Some string"),
+        "k": attr.string_dict(mandatory = True, doc = "Some string_dict"),
+        "l": attr.string_list(mandatory = True, doc = "Some string_list"),
+        "m": attr.string_list_dict(mandatory = False, doc = "Some string_list_dict"),
+    },
+)
diff --git a/src/test/java/com/google/devtools/build/skydoc/testdata/cpp_basic_test/golden.txt b/src/test/java/com/google/devtools/build/skydoc/testdata/cpp_basic_test/golden.txt
index 9674b82..ee379d9 100644
--- a/src/test/java/com/google/devtools/build/skydoc/testdata/cpp_basic_test/golden.txt
+++ b/src/test/java/com/google/devtools/build/skydoc/testdata/cpp_basic_test/golden.txt
@@ -2,7 +2,7 @@
 ## cpp_related_rule
 
 <pre>
-cpp_related_rule(first, fourth, second, third)
+cpp_related_rule(name, first, fourth, second, third)
 </pre>
 
 This rule does cpp-related things.
@@ -15,21 +15,38 @@
     <col class="col-description" />
   </colgroup>
   <tbody>
+    <tr id="#cpp_related_rule_name">
+      <td><code>name</code></td>
+      <td>
+        String; required
+        <p>
+          A unique name for this rule.
+        </p>
+      </td>
+    </tr>
     <tr id="#cpp_related_rule_first">
       <td><code>first</code></td>
-      <td></td>
+      <td>
+        Label; required
+      </td>
     </tr>
     <tr id="#cpp_related_rule_fourth">
       <td><code>fourth</code></td>
-      <td></td>
+      <td>
+        Boolean; optional
+      </td>
     </tr>
     <tr id="#cpp_related_rule_second">
       <td><code>second</code></td>
-      <td></td>
+      <td>
+        Dictionary: String -> String; required
+      </td>
     </tr>
     <tr id="#cpp_related_rule_third">
       <td><code>third</code></td>
-      <td></td>
+      <td>
+        Label; required
+      </td>
     </tr>
   </tbody>
 </table>
diff --git a/src/test/java/com/google/devtools/build/skydoc/testdata/java_basic_test/golden.txt b/src/test/java/com/google/devtools/build/skydoc/testdata/java_basic_test/golden.txt
index 7ab9fc0..83f6ea4 100644
--- a/src/test/java/com/google/devtools/build/skydoc/testdata/java_basic_test/golden.txt
+++ b/src/test/java/com/google/devtools/build/skydoc/testdata/java_basic_test/golden.txt
@@ -2,7 +2,7 @@
 ## java_related_rule
 
 <pre>
-java_related_rule(first, fourth, second, third)
+java_related_rule(name, first, fourth, second, third)
 </pre>
 
 This rule does java-related things.
@@ -15,21 +15,38 @@
     <col class="col-description" />
   </colgroup>
   <tbody>
+    <tr id="#java_related_rule_name">
+      <td><code>name</code></td>
+      <td>
+        String; required
+        <p>
+          A unique name for this rule.
+        </p>
+      </td>
+    </tr>
     <tr id="#java_related_rule_first">
       <td><code>first</code></td>
-      <td></td>
+      <td>
+        Label; required
+      </td>
     </tr>
     <tr id="#java_related_rule_fourth">
       <td><code>fourth</code></td>
-      <td></td>
+      <td>
+        Boolean; optional
+      </td>
     </tr>
     <tr id="#java_related_rule_second">
       <td><code>second</code></td>
-      <td></td>
+      <td>
+        Dictionary: String -> String; required
+      </td>
     </tr>
     <tr id="#java_related_rule_third">
       <td><code>third</code></td>
-      <td></td>
+      <td>
+        Label; required
+      </td>
     </tr>
   </tbody>
 </table>
diff --git a/src/test/java/com/google/devtools/build/skydoc/testdata/misc_apis_test/golden.txt b/src/test/java/com/google/devtools/build/skydoc/testdata/misc_apis_test/golden.txt
index 0619f29..810c90b 100644
--- a/src/test/java/com/google/devtools/build/skydoc/testdata/misc_apis_test/golden.txt
+++ b/src/test/java/com/google/devtools/build/skydoc/testdata/misc_apis_test/golden.txt
@@ -2,7 +2,7 @@
 ## my_rule
 
 <pre>
-my_rule(first, fourth, second, third)
+my_rule(name, first, fourth, second, third)
 </pre>
 
 This rule exercises some of the build API.
@@ -15,21 +15,38 @@
     <col class="col-description" />
   </colgroup>
   <tbody>
+    <tr id="#my_rule_name">
+      <td><code>name</code></td>
+      <td>
+        String; required
+        <p>
+          A unique name for this rule.
+        </p>
+      </td>
+    </tr>
     <tr id="#my_rule_first">
       <td><code>first</code></td>
-      <td></td>
+      <td>
+        Label; required
+      </td>
     </tr>
     <tr id="#my_rule_fourth">
       <td><code>fourth</code></td>
-      <td></td>
+      <td>
+        Boolean; optional
+      </td>
     </tr>
     <tr id="#my_rule_second">
       <td><code>second</code></td>
-      <td></td>
+      <td>
+        Dictionary: String -> String; required
+      </td>
     </tr>
     <tr id="#my_rule_third">
       <td><code>third</code></td>
-      <td></td>
+      <td>
+        Label; required
+      </td>
     </tr>
   </tbody>
 </table>
diff --git a/src/test/java/com/google/devtools/build/skydoc/testdata/multiple_files_test/golden.txt b/src/test/java/com/google/devtools/build/skydoc/testdata/multiple_files_test/golden.txt
index 1b2d0a0..771e502 100644
--- a/src/test/java/com/google/devtools/build/skydoc/testdata/multiple_files_test/golden.txt
+++ b/src/test/java/com/google/devtools/build/skydoc/testdata/multiple_files_test/golden.txt
@@ -2,7 +2,7 @@
 ## my_rule
 
 <pre>
-my_rule(first, second)
+my_rule(name, first, second)
 </pre>
 
 This is my rule. It does stuff.
@@ -15,13 +15,29 @@
     <col class="col-description" />
   </colgroup>
   <tbody>
+    <tr id="#my_rule_name">
+      <td><code>name</code></td>
+      <td>
+        String; required
+        <p>
+          A unique name for this rule.
+        </p>
+      </td>
+    </tr>
     <tr id="#my_rule_first">
       <td><code>first</code></td>
-      <td>first my_rule doc string</td>
+      <td>
+        Label; required
+        <p>
+          first my_rule doc string
+        </p>
+      </td>
     </tr>
     <tr id="#my_rule_second">
       <td><code>second</code></td>
-      <td></td>
+      <td>
+        Dictionary: String -> String; required
+      </td>
     </tr>
   </tbody>
 </table>
@@ -31,7 +47,7 @@
 ## other_rule
 
 <pre>
-other_rule(fourth, third)
+other_rule(name, fourth, third)
 </pre>
 
 This is another rule.
@@ -44,13 +60,29 @@
     <col class="col-description" />
   </colgroup>
   <tbody>
+    <tr id="#other_rule_name">
+      <td><code>name</code></td>
+      <td>
+        String; required
+        <p>
+          A unique name for this rule.
+        </p>
+      </td>
+    </tr>
     <tr id="#other_rule_fourth">
       <td><code>fourth</code></td>
-      <td></td>
+      <td>
+        Dictionary: String -> String; required
+      </td>
     </tr>
     <tr id="#other_rule_third">
       <td><code>third</code></td>
-      <td>third other_rule doc string</td>
+      <td>
+        Label; required
+        <p>
+          third other_rule doc string
+        </p>
+      </td>
     </tr>
   </tbody>
 </table>
@@ -60,7 +92,7 @@
 ## yet_another_rule
 
 <pre>
-yet_another_rule(fifth)
+yet_another_rule(name, fifth)
 </pre>
 
 This is yet another rule
@@ -73,9 +105,20 @@
     <col class="col-description" />
   </colgroup>
   <tbody>
+    <tr id="#yet_another_rule_name">
+      <td><code>name</code></td>
+      <td>
+        String; required
+        <p>
+          A unique name for this rule.
+        </p>
+      </td>
+    </tr>
     <tr id="#yet_another_rule_fifth">
       <td><code>fifth</code></td>
-      <td></td>
+      <td>
+        Label; required
+      </td>
     </tr>
   </tbody>
 </table>
diff --git a/src/test/java/com/google/devtools/build/skydoc/testdata/multiple_rules_test/golden.txt b/src/test/java/com/google/devtools/build/skydoc/testdata/multiple_rules_test/golden.txt
index 7d37f79..3bf31da 100644
--- a/src/test/java/com/google/devtools/build/skydoc/testdata/multiple_rules_test/golden.txt
+++ b/src/test/java/com/google/devtools/build/skydoc/testdata/multiple_rules_test/golden.txt
@@ -2,7 +2,7 @@
 ## my_rule
 
 <pre>
-my_rule(first, second)
+my_rule(name, first, second)
 </pre>
 
 This is my rule. It does stuff.
@@ -15,13 +15,26 @@
     <col class="col-description" />
   </colgroup>
   <tbody>
+    <tr id="#my_rule_name">
+      <td><code>name</code></td>
+      <td>
+        String; required
+        <p>
+          A unique name for this rule.
+        </p>
+      </td>
+    </tr>
     <tr id="#my_rule_first">
       <td><code>first</code></td>
-      <td></td>
+      <td>
+        Label; required
+      </td>
     </tr>
     <tr id="#my_rule_second">
       <td><code>second</code></td>
-      <td></td>
+      <td>
+        Dictionary: String -> String; required
+      </td>
     </tr>
   </tbody>
 </table>
@@ -31,7 +44,7 @@
 ## other_rule
 
 <pre>
-other_rule(fourth, third)
+other_rule(name, fourth, third)
 </pre>
 
 This is another rule.
@@ -44,13 +57,26 @@
     <col class="col-description" />
   </colgroup>
   <tbody>
+    <tr id="#other_rule_name">
+      <td><code>name</code></td>
+      <td>
+        String; required
+        <p>
+          A unique name for this rule.
+        </p>
+      </td>
+    </tr>
     <tr id="#other_rule_fourth">
       <td><code>fourth</code></td>
-      <td></td>
+      <td>
+        Dictionary: String -> String; required
+      </td>
     </tr>
     <tr id="#other_rule_third">
       <td><code>third</code></td>
-      <td></td>
+      <td>
+        Label; required
+      </td>
     </tr>
   </tbody>
 </table>
@@ -60,7 +86,7 @@
 ## yet_another_rule
 
 <pre>
-yet_another_rule(fifth)
+yet_another_rule(name, fifth)
 </pre>
 
 This is yet another rule
@@ -73,9 +99,20 @@
     <col class="col-description" />
   </colgroup>
   <tbody>
+    <tr id="#yet_another_rule_name">
+      <td><code>name</code></td>
+      <td>
+        String; required
+        <p>
+          A unique name for this rule.
+        </p>
+      </td>
+    </tr>
     <tr id="#yet_another_rule_fifth">
       <td><code>fifth</code></td>
-      <td></td>
+      <td>
+        Label; required
+      </td>
     </tr>
   </tbody>
 </table>
diff --git a/src/test/java/com/google/devtools/build/skydoc/testdata/simple_test/golden.txt b/src/test/java/com/google/devtools/build/skydoc/testdata/simple_test/golden.txt
index d86c0c7..b9f8cec 100644
--- a/src/test/java/com/google/devtools/build/skydoc/testdata/simple_test/golden.txt
+++ b/src/test/java/com/google/devtools/build/skydoc/testdata/simple_test/golden.txt
@@ -2,7 +2,7 @@
 ## my_rule
 
 <pre>
-my_rule(first, fourth, second, third)
+my_rule(name, first, fourth, second, third)
 </pre>
 
 This is my rule. It does stuff.
@@ -15,21 +15,44 @@
     <col class="col-description" />
   </colgroup>
   <tbody>
+    <tr id="#my_rule_name">
+      <td><code>name</code></td>
+      <td>
+        String; required
+        <p>
+          A unique name for this rule.
+        </p>
+      </td>
+    </tr>
     <tr id="#my_rule_first">
       <td><code>first</code></td>
-      <td>first doc string</td>
+      <td>
+        Label; required
+        <p>
+          first doc string
+        </p>
+      </td>
     </tr>
     <tr id="#my_rule_fourth">
       <td><code>fourth</code></td>
-      <td>fourth doc string</td>
+      <td>
+        Boolean; optional
+        <p>
+          fourth doc string
+        </p>
+      </td>
     </tr>
     <tr id="#my_rule_second">
       <td><code>second</code></td>
-      <td></td>
+      <td>
+        Dictionary: String -> String; required
+      </td>
     </tr>
     <tr id="#my_rule_third">
       <td><code>third</code></td>
-      <td></td>
+      <td>
+        Label; required
+      </td>
     </tr>
   </tbody>
 </table>
diff --git a/src/test/java/com/google/devtools/build/skydoc/testdata/unknown_name_test/golden.txt b/src/test/java/com/google/devtools/build/skydoc/testdata/unknown_name_test/golden.txt
index 44040ee..4f78cdf 100644
--- a/src/test/java/com/google/devtools/build/skydoc/testdata/unknown_name_test/golden.txt
+++ b/src/test/java/com/google/devtools/build/skydoc/testdata/unknown_name_test/golden.txt
@@ -2,7 +2,7 @@
 ## <unknown name>
 
 <pre>
-<unknown name>(first, fourth, second, third)
+<unknown name>(name, first, fourth, second, third)
 </pre>
 
 
@@ -15,21 +15,38 @@
     <col class="col-description" />
   </colgroup>
   <tbody>
+    <tr id="#<unknown name>_name">
+      <td><code>name</code></td>
+      <td>
+        String; required
+        <p>
+          A unique name for this rule.
+        </p>
+      </td>
+    </tr>
     <tr id="#<unknown name>_first">
       <td><code>first</code></td>
-      <td></td>
+      <td>
+        Label; required
+      </td>
     </tr>
     <tr id="#<unknown name>_fourth">
       <td><code>fourth</code></td>
-      <td></td>
+      <td>
+        Boolean; optional
+      </td>
     </tr>
     <tr id="#<unknown name>_second">
       <td><code>second</code></td>
-      <td></td>
+      <td>
+        Dictionary: String -> String; required
+      </td>
     </tr>
     <tr id="#<unknown name>_third">
       <td><code>third</code></td>
-      <td></td>
+      <td>
+        Label; required
+      </td>
     </tr>
   </tbody>
 </table>
