8182765: HTML5 must be the default javadoc codegen mode in the near future
authorbpatel
Tue, 06 Mar 2018 10:45:47 -0800
changeset 49139 771616d26ca1
parent 49138 67912cbf784a
child 49140 9ffbe8258541
8182765: HTML5 must be the default javadoc codegen mode in the near future Reviewed-by: jjg
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties
test/langtools/jdk/javadoc/doclet/AccessSkipNav/AccessSkipNav.java
test/langtools/jdk/javadoc/doclet/AccessSummary/AccessSummary.java
test/langtools/jdk/javadoc/doclet/MetaTag/MetaTag.java
test/langtools/jdk/javadoc/doclet/ValidHtml/ValidHtml.java
test/langtools/jdk/javadoc/doclet/testAnchorNames/TestAnchorNames.java
test/langtools/jdk/javadoc/doclet/testAnnotationOptional/TestAnnotationOptional.java
test/langtools/jdk/javadoc/doclet/testAnnotationTypes/TestAnnotationTypes.java
test/langtools/jdk/javadoc/doclet/testClassCrossReferences/TestClassCrossReferences.java
test/langtools/jdk/javadoc/doclet/testClassLinks/TestClassLinks.java
test/langtools/jdk/javadoc/doclet/testConstructors/TestConstructors.java
test/langtools/jdk/javadoc/doclet/testDeprecatedDocs/TestDeprecatedDocs.java
test/langtools/jdk/javadoc/doclet/testExternalOverridenMethod/TestExternalOverridenMethod.java
test/langtools/jdk/javadoc/doclet/testHiddenTag/TestHiddenTag.java
test/langtools/jdk/javadoc/doclet/testHref/TestHref.java
test/langtools/jdk/javadoc/doclet/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java
test/langtools/jdk/javadoc/doclet/testHtmlTableStyles/TestHtmlTableStyles.java
test/langtools/jdk/javadoc/doclet/testHtmlTableTags/TestHtmlTableTags.java
test/langtools/jdk/javadoc/doclet/testHtmlTag/TestHtmlTag.java
test/langtools/jdk/javadoc/doclet/testHtmlVersion/TestHtmlVersion.java
test/langtools/jdk/javadoc/doclet/testHtmlWarning/TestHtmlWarning.java
test/langtools/jdk/javadoc/doclet/testInterface/TestInterface.java
test/langtools/jdk/javadoc/doclet/testJavaFX/TestJavaFX.java
test/langtools/jdk/javadoc/doclet/testLinkOption/TestLinkOption.java
test/langtools/jdk/javadoc/doclet/testLinkTaglet/TestLinkTaglet.java
test/langtools/jdk/javadoc/doclet/testLinkToSerialForm/TestLinkToSerialForm.java
test/langtools/jdk/javadoc/doclet/testMemberInheritance/TestMemberInheritance.java
test/langtools/jdk/javadoc/doclet/testMemberSummary/TestMemberSummary.java
test/langtools/jdk/javadoc/doclet/testModules/TestIndirectExportsOpens.java
test/langtools/jdk/javadoc/doclet/testModules/TestModuleServices.java
test/langtools/jdk/javadoc/doclet/testModules/TestModules.java
test/langtools/jdk/javadoc/doclet/testNavigation/TestNavigation.java
test/langtools/jdk/javadoc/doclet/testNestedGenerics/TestNestedGenerics.java
test/langtools/jdk/javadoc/doclet/testNewLanguageFeatures/TestNewLanguageFeatures.java
test/langtools/jdk/javadoc/doclet/testNonInlineHtmlTagRemoval/TestNonInlineHtmlTagRemoval.java
test/langtools/jdk/javadoc/doclet/testOptions/TestOptions.java
test/langtools/jdk/javadoc/doclet/testOrdering/TestOrdering.java
test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverriddenMethodDocCopy.java
test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverriddenPrivateMethodsWithPackageFlag.java
test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverrideMethods.java
test/langtools/jdk/javadoc/doclet/testOverview/TestOverview.java
test/langtools/jdk/javadoc/doclet/testPackageDescription/TestPackageDescription.java
test/langtools/jdk/javadoc/doclet/testPrivateClasses/TestPrivateClasses.java
test/langtools/jdk/javadoc/doclet/testProperty/TestProperty.java
test/langtools/jdk/javadoc/doclet/testRelativeLinks/TestRelativeLinks.java
test/langtools/jdk/javadoc/doclet/testRepeatedAnnotations/TestRepeatedAnnotations.java
test/langtools/jdk/javadoc/doclet/testSearch/TestSearch.java
test/langtools/jdk/javadoc/doclet/testSeeTag/TestSeeTag.java
test/langtools/jdk/javadoc/doclet/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java
test/langtools/jdk/javadoc/doclet/testStylesheet/TestStylesheet.java
test/langtools/jdk/javadoc/doclet/testSummaryTag/TestSummaryTag.java
test/langtools/jdk/javadoc/doclet/testTypeAnnotations/TestTypeAnnotations.java
test/langtools/jdk/javadoc/doclet/testTypeParams/TestTypeParameters.java
test/langtools/jdk/javadoc/doclet/testTypeVariableLinks/TestTypeVariableLinks.java
test/langtools/jdk/javadoc/doclet/testUseOption/TestUseOption.java
test/langtools/jdk/javadoc/doclet/testWarnings/TestWarnings.java
test/langtools/jdk/javadoc/tool/6958836/Test.java
test/langtools/jdk/javadoc/tool/6964914/Test.java
test/langtools/jdk/javadoc/tool/6964914/TestStdDoclet.java
test/langtools/jdk/javadoc/tool/MaxWarns.java
test/langtools/jdk/javadoc/tool/QuietOption.java
test/langtools/jdk/javadoc/tool/doclint/DocLintTest.java
test/langtools/tools/javadoc/6964914/TestStdDoclet.java
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java	Tue Mar 06 10:45:47 2018 -0800
@@ -307,8 +307,7 @@
         }
 
         if (htmlVersion == null) {
-            reporter.print(WARNING, getText("doclet.HTML_version_not_specified", helpfile));
-            htmlVersion = HtmlVersion.HTML4;
+            htmlVersion = HtmlVersion.HTML5;
         }
 
         // check if helpfile exists
@@ -658,6 +657,7 @@
             new Option(resources, "-html4") {
                 @Override
                 public boolean process(String opt,  List<String> args) {
+                    reporter.print(WARNING, getText("doclet.HTML_4_specified", helpfile));
                     htmlVersion = HtmlVersion.HTML4;
                     return true;
                 }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties	Tue Mar 06 17:43:21 2018 +0100
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties	Tue Mar 06 10:45:47 2018 -0800
@@ -445,9 +445,8 @@
     disable checks for the specified packages.
 
 # L10N: do not localize the option names -html4 and -html5
-doclet.HTML_version_not_specified=\
-    You have not specified the version of HTML to use.\n\
-    The default is currently HTML 4.01, but this will change to HTML5\n\
-    in a future release. To suppress this warning, please specify the\n\
-    version of HTML used in your documentation comments and to be\n\
-    generated by this doclet, using the -html4 or -html5 options.
+doclet.HTML_4_specified=\
+    You have specified the HTML version as HTML 4.01 by using the -html4 option.\n\
+    The default is currently HTML5 and the support for HTML 4.01 will be removed\n\
+    in a future release. To suppress this warning, please ensure that any HTML constructs\n\
+    in your comments are valid in HTML5, and remove the -html4 option.
--- a/test/langtools/jdk/javadoc/doclet/AccessSkipNav/AccessSkipNav.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/AccessSkipNav/AccessSkipNav.java	Tue Mar 06 10:45:47 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 4638136 7198273 8025633 8081854
+ * @bug 4638136 7198273 8025633 8081854 8182765
  * @summary  Add ability to skip over nav bar for accessibility
  * @author dkramer
  * @library ../lib
@@ -46,21 +46,37 @@
                 "p1", "p2");
         checkExit(Exit.OK);
 
-        // Testing only for the presence of the <a href> and <a name>
+        // Testing only for the presence of the <a href> and <a id>
         checkOutput("p1/C1.html", true,
                 // Top navbar <a href>
                 "<a href=\"#skip.navbar.top\" title=\"Skip navigation links\">Skip navigation links</a>",
                 // Top navbar <a name>
-                "<a name=\"skip.navbar.top\">\n"
+                "<a id=\"skip.navbar.top\">\n"
                 + "<!--   -->\n"
                 + "</a>",
                 // Bottom navbar <a href>
                 "<a href=\"#skip.navbar.bottom\" title=\"Skip navigation links\">Skip navigation links</a>",
                 // Bottom navbar <a name>
+                "<a id=\"skip.navbar.bottom\">\n"
+                + "<!--   -->\n"
+                + "</a>");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "p1", "p2");
+        checkExit(Exit.OK);
+
+        // Testing only for the presence of <a name>
+        checkOutput("p1/C1.html", true,
+                "<a name=\"skip.navbar.top\">\n"
+                + "<!--   -->\n"
+                + "</a>",
                 "<a name=\"skip.navbar.bottom\">\n"
                 + "<!--   -->\n"
                 + "</a>");
-
-
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/AccessSummary/AccessSummary.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/AccessSummary/AccessSummary.java	Tue Mar 06 10:45:47 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4637604 4775148 8183037
+ * @bug      4637604 4775148 8183037 8182765
  * @summary  Test the tables for summary attribute
  * @author   dkramer
  * @library ../lib
@@ -47,15 +47,29 @@
     void testAccessSummary() {
         javadoc("-d", "out", "-sourcepath", testSrc, "p1", "p2");
         checkExit(Exit.OK);
-        checkOutput("overview-summary.html", true,
+        checkSummary(false);
+    }
+
+    @Test
+    void testAccessSummary_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "p1", "p2");
+        checkExit(Exit.OK);
+        checkSummary(true);
+    }
+
+    void checkSummary(boolean found) {
+        checkOutput("overview-summary.html", found,
                  "summary=\"Package Summary table, listing packages, and an explanation\"");
 
-        // Test that the summary attribute appears
-        checkOutput("p1/C1.html", true,
+        // Test that the summary attribute appears or not
+        checkOutput("p1/C1.html", found,
                  "summary=\"Constructor Summary table, listing constructors, and an explanation\"");
 
-        // Test that the summary attribute appears
-        checkOutput("constant-values.html", true,
+        // Test that the summary attribute appears or not
+        checkOutput("constant-values.html", found,
                  "summary=\"Constant Field Values table, listing constant fields, and values\"");
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/MetaTag/MetaTag.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/MetaTag/MetaTag.java	Tue Mar 06 10:45:47 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4034096 4764726 6235799
+ * @bug      4034096 4764726 6235799 8182765
  * @summary  Add support for HTML keywords via META tag for
  *           class and member names to improve API search
  * @author   dkramer
@@ -58,23 +58,7 @@
 
         checkExit(Exit.OK);
 
-        checkOutput("p1/C1.html", true,
-                "<meta name=\"keywords\" content=\"p1.C1 class\">",
-                "<meta name=\"keywords\" content=\"field1\">",
-                "<meta name=\"keywords\" content=\"field2\">",
-                "<meta name=\"keywords\" content=\"method1()\">",
-                "<meta name=\"keywords\" content=\"method2()\">");
-
-        checkOutput("p1/package-summary.html", true,
-                "<meta name=\"keywords\" content=\"p1 package\">");
-
-        checkOutput("overview-summary.html", true,
-                "<meta name=\"keywords\" content=\"Overview, Sample Packages\">");
-
-        // NOTE: Hopefully, this regression test is not run at midnight.  If the output
-        // was generated yesterday and this test is run today, the test will fail.
-        checkOutput("overview-summary.html", true,
-                "<meta name=\"date\" content=\"" + date() + "\">");
+        checkMeta("dc.created", true);
     }
 
     @Test
@@ -87,24 +71,55 @@
         checkExit(Exit.OK);
 
         // No keywords when -keywords is not used.
-        checkOutput("p1/C1.html", false,
-                "<META NAME=\"keywords\" CONTENT=\"p1.C1 class\">",
-                "<META NAME=\"keywords\" CONTENT=\"field1\">",
-                "<META NAME=\"keywords\" CONTENT=\"field2\">",
-                "<META NAME=\"keywords\" CONTENT=\"method1()\">",
-                "<META NAME=\"keywords\" CONTENT=\"method2()\">");
+        checkMeta("dc.created", false);
+    }
+
+    @Test
+    void testStandard_html4() {
+        javadoc("-d", "out-1-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-keywords",
+                "-doctitle", "Sample Packages",
+                "p1", "p2");
+
+        checkExit(Exit.OK);
+
+        checkMeta("date", true);
+    }
 
-        checkOutput("p1/package-summary.html", false,
-                "<META NAME=\"keywords\" CONTENT=\"p1 package\">");
+    @Test
+    void testNoTimestamp_html4() {
+        javadoc("-d", "out-2-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-notimestamp",
+                "-doctitle", "Sample Packages",
+                "p1", "p2");
+        checkExit(Exit.OK);
+
+        // No keywords when -keywords is not used.
+        checkMeta("date", false);
+    }
 
-        checkOutput("overview-summary.html", false,
-                "<META NAME=\"keywords\" CONTENT=\"Overview Summary, Sample Packages\">");
+    void checkMeta(String metaNameDate, boolean found) {
+        checkOutput("p1/C1.html", found,
+                "<meta name=\"keywords\" content=\"p1.C1 class\">",
+                "<meta name=\"keywords\" content=\"field1\">",
+                "<meta name=\"keywords\" content=\"field2\">",
+                "<meta name=\"keywords\" content=\"method1()\">",
+                "<meta name=\"keywords\" content=\"method2()\">");
 
-        // The date metatag should not show up when -notimestamp is used.
+        checkOutput("p1/package-summary.html", found,
+                "<meta name=\"keywords\" content=\"p1 package\">");
+
+        checkOutput("overview-summary.html", found,
+                "<meta name=\"keywords\" content=\"Overview, Sample Packages\">");
+
         // NOTE: Hopefully, this regression test is not run at midnight.  If the output
         // was generated yesterday and this test is run today, the test will fail.
-        checkOutput("overview-summary.html", false,
-                "<META NAME=\"date\" CONTENT=\"" + date() + "\">");
+        checkOutput("overview-summary.html", found,
+                "<meta name=\"" + metaNameDate + "\" content=\"" + date() + "\">");
     }
 
     private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
--- a/test/langtools/jdk/javadoc/doclet/ValidHtml/ValidHtml.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/ValidHtml/ValidHtml.java	Tue Mar 06 10:45:47 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 4275630 4749453 4625400 4753048 4415270 8074521
+ * @bug 4275630 4749453 4625400 4753048 4415270 8074521 8182765
  * @summary  Generated HTML is invalid with frames.
  *           Displays unnecessary horizontal scroll bars.
  *           Missing whitespace in DOCTYPE declaration
@@ -53,26 +53,42 @@
                     "-sourcepath", testSrc,
                     "p1", "p2");
         checkExit(Exit.OK);
-
-        // Test the proper DOCTYPE element are present:
-        checkOutput("index.html",              true, LOOSE);
-        checkOutput("overview-summary.html",   true, LOOSE);
-        checkOutput("p1/package-summary.html", true, LOOSE);
-        checkOutput("p1/C.html",               true, LOOSE);
-        checkOutput("overview-frame.html",     true, LOOSE);
-        checkOutput("allclasses-frame.html",   true, LOOSE);
-        checkOutput("p1/package-frame.html",   true, LOOSE);
-
         // Test for IFRAME element:
         checkOutput("index.html", true,
                 "<iframe");
-
         // Test the table elements are in the correct order:
         checkOutput("p1/package-use.html", true,
                 "</td>\n"
                 + "</tr>");
+        String HTML5 = "<!DOCTYPE HTML>";
+        checkValidHTML(HTML5);
     }
 
-    private static final String LOOSE =
-            "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">";
+    @Test
+    void test_html4() {
+        // Test for all cases except the split index page
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-doctitle", "Document Title",
+                "-windowtitle", "Window Title",
+                "-use",
+                "-overview", testSrc("overview.html"),
+                "-sourcepath", testSrc,
+                "p1", "p2");
+        checkExit(Exit.OK);
+        String HTML4 = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">";
+
+        checkValidHTML(HTML4);
 }
+
+    void checkValidHTML(String doctype) {
+        // Test the proper DOCTYPE element are present:
+        checkOutput("index.html", true, doctype);
+        checkOutput("overview-summary.html", true, doctype);
+        checkOutput("p1/package-summary.html", true, doctype);
+        checkOutput("p1/C.html", true, doctype);
+        checkOutput("overview-frame.html", true, doctype);
+        checkOutput("allclasses-frame.html", true, doctype);
+        checkOutput("p1/package-frame.html", true, doctype);
+    }
+}
--- a/test/langtools/jdk/javadoc/doclet/testAnchorNames/TestAnchorNames.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testAnchorNames/TestAnchorNames.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8025633 8025524 8081854 8187521
+ * @bug 8025633 8025524 8081854 8187521 8182765
  * @summary Test for valid name attribute in HTML anchors.
  * @author Bhavesh Patel
  * @library /tools/lib ../lib
@@ -33,7 +33,6 @@
  */
 
 import java.io.IOException;
-import java.nio.charset.Charset;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 
@@ -54,6 +53,7 @@
     @Test
     void testHtml4(Path ignore) {
         javadoc("-d", "out-html4",
+                "-html4",
                 "-sourcepath", testSrc,
                 "-source", "8", //so that '_' can be used as an identifier
                 "-use",
@@ -175,7 +175,6 @@
                 "-sourcepath", testSrc,
                 "-source", "8", //so that '_' can be used as an identifier
                 "-use",
-                "-html5",
                 "pkg1");
         checkExit(Exit.OK);
 
--- a/test/langtools/jdk/javadoc/doclet/testAnnotationOptional/TestAnnotationOptional.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testAnnotationOptional/TestAnnotationOptional.java	Tue Mar 06 10:45:47 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8025633 8081854
+ * @bug 8025633 8081854 8182765
  * @summary  Make sure that annotations types with optional elements have
  *           element headers
  * @author   Mahmood Ali
@@ -48,6 +48,18 @@
         checkExit(Exit.OK);
 
         checkOutput("pkg/AnnotationOptional.html", true,
+            "<a id=\"annotation.type.element.detail\">");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/AnnotationOptional.html", true,
             "<a name=\"annotation.type.element.detail\">");
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/testAnnotationTypes/TestAnnotationTypes.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testAnnotationTypes/TestAnnotationTypes.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4973609 8015249 8025633 8026567 6469561 8071982 8162363
+ * @bug      4973609 8015249 8025633 8026567 6469561 8071982 8162363 8182765
  * @summary  Make sure that annotation types with 0 members does not have
  *           extra HR tags.
  * @author   jamieh
@@ -72,11 +72,11 @@
         checkOutput("pkg/AnnotationType.html", true,
                     "<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->",
                     "<ul class=\"blockList\">",
-                    "<li class=\"blockList\"><a name=\"annotation.type.element.detail\">",
+                    "<li class=\"blockList\"><a id=\"annotation.type.element.detail\">",
                     "<!--   -->",
                     "</a>",
                     "<h3>Element Detail</h3>",
-                    "<a name=\"value--\">",
+                    "<a id=\"value()\">",
                     "<!--   -->",
                     "</a>",
                     "<ul class=\"blockListLast\">",
@@ -89,7 +89,10 @@
                 + "<P>\n\n"
                 + "<P>"
                 + "<!-- ========= END OF CLASS DATA ========= -->" + "<HR>");
+    }
 
+    @Test
+    void testLinkSource() {
         javadoc("-d", "out-2",
                 "-linksource",
                 "-sourcepath", testSrc,
@@ -112,4 +115,16 @@
                 "public @interface <a href=\"../src-html/pkg/AnnotationTypeField.html#line.31"
                 + "\">AnnotationTypeField</a></pre>");
     }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+        checkOutput("pkg/AnnotationType.html", true,
+                "<li class=\"blockList\"><a name=\"annotation.type.element.detail\">",
+                "<a name=\"value--\">");
 }
+}
--- a/test/langtools/jdk/javadoc/doclet/testClassCrossReferences/TestClassCrossReferences.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testClassCrossReferences/TestClassCrossReferences.java	Tue Mar 06 10:45:47 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 4652655 4857717 8025633 8026567 8071982 8164407
+ * @bug 4652655 4857717 8025633 8026567 8071982 8164407 8182765
  * @summary This test verifies that class cross references work properly.
  * @author jamieh
  * @library ../lib
@@ -35,6 +35,8 @@
 
 public class TestClassCrossReferences extends JavadocTester {
 
+    static final String uri = "http://docs.oracle.com/javase/8/docs/api/";
+
     public static void main(String... args) throws Exception {
         TestClassCrossReferences tester = new TestClassCrossReferences();
         tester.runTests();
@@ -42,8 +44,6 @@
 
     @Test
     void test() {
-        final String uri = "http://docs.oracle.com/javase/8/docs/api/";
-
         javadoc("-d", "out",
                 "-Xdoclint:none",
                 "-sourcepath", testSrc,
@@ -58,7 +58,7 @@
                 + "title=\"class or interface in javax.swing.text\" class=\"externalLink\"><code>Link to AttributeContext innerclass</code></a>",
                 "<a href=\"" + uri + "java/math/BigDecimal.html?is-external=true\" "
                 + "title=\"class or interface in java.math\" class=\"externalLink\"><code>Link to external class BigDecimal</code></a>",
-                "<a href=\"" + uri + "java/math/BigInteger.html?is-external=true#gcd-java.math.BigInteger-\" "
+                "<a href=\"" + uri + "java/math/BigInteger.html?is-external=true#gcd(java.math.BigInteger)\" "
                 + "title=\"class or interface in java.math\" class=\"externalLink\"><code>Link to external member gcd</code></a>",
                 "<a href=\"" + uri + "javax/tools/SimpleJavaFileObject.html?is-external=true#URI\" "
                 + "title=\"class or interface in javax.tools\" class=\"externalLink\"><code>Link to external member URI</code></a>",
@@ -68,4 +68,18 @@
                 + "</dl>");
     }
 
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-Xdoclint:none",
+                "-sourcepath", testSrc,
+                "-linkoffline", uri, testSrc,
+                testSrc("C.java"));
+        checkExit(Exit.OK);
+
+        checkOutput("C.html", true,
+                "<a href=\"" + uri + "java/math/BigInteger.html?is-external=true#gcd-java.math.BigInteger-\" "
+                + "title=\"class or interface in java.math\" class=\"externalLink\"><code>Link to external member gcd</code></a>");
 }
+}
--- a/test/langtools/jdk/javadoc/doclet/testClassLinks/TestClassLinks.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testClassLinks/TestClassLinks.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8163800 8175200 8186332
+ * @bug 8163800 8175200 8186332 8182765
  * @summary The fix for JDK-8072052 shows up other minor incorrect use of styles
  * @library ../lib
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -51,11 +51,11 @@
 
         checkOutput("p/C1.html", true,
                 "<code><a href=\"C2.html\" title=\"class in p\">C2</a></code>",
-                "<code><span class=\"memberNameLink\"><a href=\"#C1--\">C1</a></span>()</code>");
+                "<code><span class=\"memberNameLink\"><a href=\"#%3Cinit%3E()\">C1</a></span>()</code>");
 
         checkOutput("p/C2.html", true,
                 "<code><a href=\"C3.html\" title=\"class in p\">C3</a></code>",
-                "<code><span class=\"memberNameLink\"><a href=\"#C2--\">C2</a></span>()</code>");
+                "<code><span class=\"memberNameLink\"><a href=\"#%3Cinit%3E()\">C2</a></span>()</code>");
 
         checkOutput("p/C3.html", true,
                 "<code><a href=\"I1.html\" title=\"interface in p\">I1</a></code>, "
@@ -63,7 +63,7 @@
                 + "<code><a href=\"I2.html\" title=\"interface in p\">I2</a></code>, "
                 + "<code><a href=\"IT1.html\" title=\"interface in p\">IT1</a>&lt;T&gt;</code>, "
                 + "<code><a href=\"IT2.html\" title=\"interface in p\">IT2</a>&lt;java.lang.String&gt;</code>",
-                "<code><span class=\"memberNameLink\"><a href=\"#C3--\">C3</a></span>()</code>");
+                "<code><span class=\"memberNameLink\"><a href=\"#%3Cinit%3E()\">C3</a></span>()</code>");
 
         checkOutput("p/I1.html", true,
                 "<code><a href=\"C3.html\" title=\"class in p\">C3</a></code>",
@@ -82,7 +82,26 @@
 
         checkOutput("p/IT2.html", true,
                 "code><a href=\"C3.html\" title=\"class in p\">C3</a></code>");
-
     }
 
+    @Test
+    void test_html4() {
+
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-Xdoclint:none",
+                "-sourcepath", testSrc,
+                "-package",
+                "p");
+        checkExit(Exit.OK);
+
+        checkOutput("p/C1.html", true,
+                "<code><span class=\"memberNameLink\"><a href=\"#C1--\">C1</a></span>()</code>");
+
+        checkOutput("p/C2.html", true,
+                "<code><span class=\"memberNameLink\"><a href=\"#C2--\">C2</a></span>()</code>");
+
+        checkOutput("p/C3.html", true,
+                "<code><span class=\"memberNameLink\"><a href=\"#C3--\">C3</a></span>()</code>");
 }
+}
--- a/test/langtools/jdk/javadoc/doclet/testConstructors/TestConstructors.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testConstructors/TestConstructors.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8025524 8031625 8081854 8175200 8186332
+ * @bug 8025524 8031625 8081854 8175200 8186332 8182765
  * @summary Test for constructor name which should be a non-qualified name.
  * @author Bhavesh Patel
  * @library ../lib
@@ -48,6 +48,57 @@
 
         checkOutput("pkg1/Outer.html", true,
                 "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
+                + "<dd><a href=\"Outer.Inner.html#%3Cinit%3E()\"><code>Inner()</code></a>, \n"
+                + "<a href=\"Outer.Inner.html#%3Cinit%3E(int)\"><code>Inner(int)</code></a>, \n"
+                + "<a href=\"Outer.Inner.NestedInner.html#%3Cinit%3E()\"><code>NestedInner()</code></a>, \n"
+                + "<a href=\"Outer.Inner.NestedInner.html#%3Cinit%3E(int)\"><code>NestedInner(int)</code></a>, \n"
+                + "<a href=\"#%3Cinit%3E()\"><code>Outer()</code></a>, \n"
+                + "<a href=\"#%3Cinit%3E(int)\"><code>Outer(int)</code></a></dd>",
+                "Link: <a href=\"Outer.Inner.html#%3Cinit%3E()\"><code>Inner()</code></a>, "
+                + "<a href=\"#%3Cinit%3E(int)\"><code>Outer(int)</code></a>, "
+                + "<a href=\"Outer.Inner.NestedInner.html#%3Cinit%3E(int)\"><code>NestedInner(int)</code></a>",
+                "<a href=\"#%3Cinit%3E()\">Outer</a></span>()",
+                "<a id=\"&lt;init&gt;(int)\">",
+                "<a href=\"#%3Cinit%3E(int)\">Outer</a></span>&#8203;(int&nbsp;i)",
+                "<a id=\"&lt;init&gt;(int)\">");
+
+        checkOutput("pkg1/Outer.Inner.html", true,
+                "<a href=\"#%3Cinit%3E()\">Inner</a></span>()",
+                "<a id=\"&lt;init&gt;()\">",
+                "<a href=\"#%3Cinit%3E(int)\">Inner</a></span>&#8203;(int&nbsp;i)",
+                "<a id=\"&lt;init&gt;(int)\">");
+
+        checkOutput("pkg1/Outer.Inner.NestedInner.html", true,
+                "<a href=\"#%3Cinit%3E()\">NestedInner</a></span>()",
+                "<a id=\"&lt;init&gt;()\">",
+                "<a href=\"#%3Cinit%3E(int)\">NestedInner</a></span>&#8203;(int&nbsp;i)",
+                "<a id=\"&lt;init&gt;(int)\">");
+
+        checkOutput("pkg1/Outer.Inner.html", false,
+                "Outer.Inner()",
+                "Outer.Inner(int)");
+
+        checkOutput("pkg1/Outer.Inner.NestedInner.html", false,
+                "Outer.Inner.NestedInner()",
+                "Outer.Inner.NestedInner(int)");
+
+        checkOutput("pkg1/Outer.html", false,
+                "<a href=\"Outer.Inner.html#Outer.Inner()\"><code>Outer.Inner()</code></a>",
+                "<a href=\"Outer.Inner.html#Outer.Inner(int)\"><code>Outer.Inner(int)</code></a>",
+                "<a href=\"Outer.Inner.NestedInner.html#Outer.Inner.NestedInner()\"><code>Outer.Inner.NestedInner()</code></a>",
+                "<a href=\"Outer.Inner.NestedInner.html#Outer.Inner.NestedInner(int)\"><code>Outer.Inner.NestedInner(int)</code></a>");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg1");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg1/Outer.html", true,
+                "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
                 + "<dd><a href=\"Outer.Inner.html#Inner--\"><code>Inner()</code></a>, \n"
                 + "<a href=\"Outer.Inner.html#Inner-int-\"><code>Inner(int)</code></a>, \n"
                 + "<a href=\"Outer.Inner.NestedInner.html#NestedInner--\"><code>NestedInner()</code></a>, \n"
--- a/test/langtools/jdk/javadoc/doclet/testDeprecatedDocs/TestDeprecatedDocs.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testDeprecatedDocs/TestDeprecatedDocs.java	Tue Mar 06 10:45:47 2018 -0800
@@ -24,7 +24,7 @@
 /*
  * @test
  * @bug      4927552 8026567 8071982 8162674 8175200 8175218 8183511 8186332
- *           8169819 8074407 8191030
+ *           8169819 8074407 8191030 8182765
  * @summary  test generated docs for deprecated items
  * @author   jamieh
  * @library  ../lib
@@ -209,6 +209,97 @@
                 + "<li><a href=\"#enum.constant\">Enum Constants</a></li>\n"
                 + "<li><a href=\"#annotation.type.member\">Annotation Type Elements</a></li>\n"
                 + "</ul>",
+                "<a id=\"forRemoval\">",
+                "<table class=\"deprecatedSummary\">\n"
+                + "<caption><span>For Removal</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">Element</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Description</th>\n"
+                + "</tr>",
+                "<table class=\"deprecatedSummary\">\n"
+                + "<caption><span>Enums</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">Enum</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Description</th>\n"
+                + "</tr>\n"
+                + "<tbody>\n"
+                + "<tr class=\"altColor\">\n"
+                + "<th class=\"colDeprecatedItemName\" scope=\"row\"><a href=\"pkg/TestEnum.html\" title=\"enum in pkg\">pkg.TestEnum</a></th>\n"
+                + "<td class=\"colLast\">\n"
+                + "<div class=\"deprecationComment\">enum_test1 passes.</div>\n"
+                + "</td>\n"
+                + "</tr>\n"
+                + "</tbody>\n"
+                + "</table>",
+                "<table class=\"deprecatedSummary\">\n"
+                + "<caption><span>Exceptions</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">Exceptions</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Description</th>\n"
+                + "</tr>\n"
+                + "<tbody>\n"
+                + "<tr class=\"altColor\">\n"
+                + "<th class=\"colDeprecatedItemName\" scope=\"row\"><a href=\"pkg/TestException.html\" title=\"class in pkg\">pkg.TestException</a></th>\n"
+                + "<td class=\"colLast\">\n"
+                + "<div class=\"deprecationComment\">exception_test1 passes.</div>\n"
+                + "</td>\n"
+                + "</tr>\n"
+                + "</tbody>\n"
+                + "</table>",
+                "<table class=\"deprecatedSummary\">\n"
+                + "<caption><span>Fields</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">Field</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Description</th>\n"
+                + "</tr>\n"
+                + "<tbody>\n"
+                + "<tr class=\"altColor\">\n"
+                + "<th class=\"colDeprecatedItemName\" scope=\"row\"><a href=\"pkg/DeprecatedClassByAnnotation.html#field\">pkg.DeprecatedClassByAnnotation.field</a></th>\n"
+                + "<td class=\"colLast\"></td>\n"
+                + "</tr>\n"
+                + "<tr class=\"rowColor\">\n"
+                + "<th class=\"colDeprecatedItemName\" scope=\"row\"><a href=\"pkg/TestAnnotationType.html#field\">pkg.TestAnnotationType.field</a></th>\n"
+                + "<td class=\"colLast\">\n"
+                + "<div class=\"deprecationComment\">annotation_test4 passes.</div>\n"
+                + "</td>\n"
+                + "</tr>\n"
+                + "<tr class=\"altColor\">\n"
+                + "<th class=\"colDeprecatedItemName\" scope=\"row\"><a href=\"pkg/TestClass.html#field\">pkg.TestClass.field</a></th>\n"
+                + "<td class=\"colLast\">\n"
+                + "<div class=\"deprecationComment\">class_test2 passes. This is the second sentence of deprecated description for a field.</div>\n"
+                + "</td>\n"
+                + "</tr>\n"
+                + "<tr class=\"rowColor\">\n"
+                + "<th class=\"colDeprecatedItemName\" scope=\"row\"><a href=\"pkg/TestError.html#field\">pkg.TestError.field</a></th>\n"
+                + "<td class=\"colLast\">\n"
+                + "<div class=\"deprecationComment\">error_test2 passes.</div>\n"
+                + "</td>\n"
+                + "</tr>\n"
+                + "<tr class=\"altColor\">\n"
+                + "<th class=\"colDeprecatedItemName\" scope=\"row\"><a href=\"pkg/TestException.html#field\">pkg.TestException.field</a></th>\n"
+                + "<td class=\"colLast\">\n"
+                + "<div class=\"deprecationComment\">exception_test2 passes.</div>\n"
+                + "</td>\n"
+                + "</tr>\n"
+                + "<tr class=\"rowColor\">\n"
+                + "<th class=\"colDeprecatedItemName\" scope=\"row\"><a href=\"pkg/TestInterface.html#field\">pkg.TestInterface.field</a></th>\n"
+                + "<td class=\"colLast\">\n"
+                + "<div class=\"deprecationComment\">interface_test2 passes.</div>\n"
+                + "</td>\n"
+                + "</tr>\n"
+                + "</tbody>\n"
+                + "</table>");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("deprecated-list.html", true,
                 "<a name=\"forRemoval\">",
                 "<table class=\"deprecatedSummary\" summary=\"For Removal table, listing for removal, and an explanation\">\n"
                 + "<caption><span>For Removal</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
--- a/test/langtools/jdk/javadoc/doclet/testExternalOverridenMethod/TestExternalOverridenMethod.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testExternalOverridenMethod/TestExternalOverridenMethod.java	Tue Mar 06 10:45:47 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 4857717 8025633 8026567 8164407
+ * @bug 4857717 8025633 8026567 8164407 8182765
  * @summary Test to make sure that externally overriden and implemented methods
  * are documented properly.  The method should still include "implements" or
  * "overrides" documentation even though the method is external.
@@ -33,8 +33,9 @@
  * @build JavadocTester TestExternalOverridenMethod
  * @run main TestExternalOverridenMethod
  */
+public class TestExternalOverridenMethod extends JavadocTester {
 
-public class TestExternalOverridenMethod extends JavadocTester {
+    static final String uri = "http://java.sun.com/j2se/1.4.1/docs/api";
 
     public static void main(String... args) throws Exception {
         TestExternalOverridenMethod tester = new TestExternalOverridenMethod();
@@ -43,7 +44,6 @@
 
     @Test
     void test() {
-        String uri = "http://java.sun.com/j2se/1.4.1/docs/api";
         javadoc("-d", "out",
                 "-sourcepath", testSrc,
                 "-linkoffline", uri, testSrc,
@@ -52,6 +52,29 @@
 
         checkOutput("pkg/XReader.html", true,
                 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"" + uri + "/java/io/FilterReader.html?is-external=true#read()\" "
+                + "title=\"class or interface in java.io\" class=\"externalLink\">read</a></code>&nbsp;in class&nbsp;<code>"
+                + "<a href=\"" + uri + "/java/io/FilterReader.html?is-external=true\" "
+                + "title=\"class or interface in java.io\" class=\"externalLink\">FilterReader</a></code></dd>",
+                "<dt><span class=\"overrideSpecifyLabel\">Specified by:</span></dt>\n"
+                + "<dd><code><a href=\"" + uri + "/java/io/DataInput.html?is-external=true#readInt()\" "
+                + "title=\"class or interface in java.io\" class=\"externalLink\">readInt</a></code>&nbsp;in interface&nbsp;<code>"
+                + "<a href=\"" + uri + "/java/io/DataInput.html?is-external=true\" "
+                + "title=\"class or interface in java.io\" class=\"externalLink\">DataInput</a></code></dd>"
+        );
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-linkoffline", uri, testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/XReader.html", true,
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
                 + "<dd><code><a href=\"" + uri + "/java/io/FilterReader.html?is-external=true#read--\" "
                 + "title=\"class or interface in java.io\" class=\"externalLink\">read</a></code>&nbsp;in class&nbsp;<code>"
                 + "<a href=\"" + uri + "/java/io/FilterReader.html?is-external=true\" "
--- a/test/langtools/jdk/javadoc/doclet/testHiddenTag/TestHiddenTag.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testHiddenTag/TestHiddenTag.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8073100
+ * @bug 8073100 8182765
  * @summary ensure the hidden tag works as intended
  * @library ../lib
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -38,7 +38,6 @@
         tester.runTests();
     }
 
-
     /**
      * Perform tests on &#64;hidden tags
      */
@@ -51,20 +50,20 @@
         checkExit(Exit.OK);
 
         checkOutput("pkg1/A.html", true,
-                "<a name=\"visibleField\">",
-                "<a name=\"visibleMethod--\">",
+                "<a id=\"visibleField\">",
+                "<a id=\"visibleMethod()\">",
                 "<dt>Direct Known Subclasses:</dt>\n" +
                 "<dd><code><a href=\"A.VisibleInner.html\" title=\"class in pkg1\">" +
                 "A.VisibleInner</a></code>, <code><a href=\"A.VisibleInnerExtendsInvisibleInner.html\" " +
                 "title=\"class in pkg1\">A.VisibleInnerExtendsInvisibleInner</a></code></dd>");
 
         checkOutput("pkg1/A.html", false,
-                "<a name=\"inVisibleField\">",
-                "<a name=\"inVisibleMethod--\">");
+                "<a id=\"inVisibleField\">",
+                "<a id=\"inVisibleMethod()\">");
 
         checkOutput("pkg1/A.VisibleInner.html", true,
                 "<code><a href=\"A.html#visibleField\">visibleField</a></code>",
-                "<code><a href=\"A.html#visibleMethod--\">visibleMethod</a></code>",
+                "<code><a href=\"A.html#visibleMethod()\">visibleMethod</a></code>",
                 "<h3>Nested classes/interfaces inherited from class&nbsp;pkg1." +
                 "<a href=\"A.html\" title=\"class in pkg1\">A</a></h3>\n" +
                 "<code><a href=\"A.VisibleInner.html\" title=\"class in pkg1\">" +
@@ -73,16 +72,16 @@
                 "</ul>");
 
         checkOutput("pkg1/A.VisibleInner.html", false,
-                "../pkg1/A.VisibleInner.html#VisibleInner--",
-                "<a name=\"inVisibleField\">",
-                "<a name=\"inVisibleMethod--\">");
+                "../pkg1/A.VisibleInner.html#VisibleInner()",
+                "<a id=\"inVisibleField\">",
+                "<a id=\"inVisibleMethod()\">");
 
         checkOutput("pkg1/A.VisibleInnerExtendsInvisibleInner.html", true,
                 "<pre>public static class <span class=\"typeNameLabel\">" +
                 "A.VisibleInnerExtendsInvisibleInner</span>\n" +
                 "extends <a href=\"A.html\" title=\"class in pkg1\">A</a></pre>",
                 "<code><a href=\"A.html#visibleField\">visibleField</a></code></li>",
-                "<code><a href=\"A.html#visibleMethod--\">visibleMethod</a></code>");
+                "<code><a href=\"A.html#visibleMethod()\">visibleMethod</a></code>");
 
         checkOutput("pkg1/A.VisibleInnerExtendsInvisibleInner.html", false,
                 "invisibleField",
@@ -98,6 +97,33 @@
         checkFiles(false,
                 "pkg1/A.InvisibleInner.html",
                 "pkg1/A.InvisibleInnerExtendsVisibleInner.html");
+    }
 
+    @Test
+    public void test1_html4() {
+        javadoc("-d", "out1-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-package",
+                "pkg1");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg1/A.html", true,
+                "<a name=\"visibleField\">",
+                "<a name=\"visibleMethod--\">");
+
+        checkOutput("pkg1/A.VisibleInner.html", true,
+                "<code><a href=\"A.html#visibleMethod--\">visibleMethod</a></code>");
+
+        checkOutput("pkg1/A.VisibleInnerExtendsInvisibleInner.html", true,
+                "<code><a href=\"A.html#visibleMethod--\">visibleMethod</a></code>");
+
+        checkOutput("pkg1/A.html", false,
+                "<a name=\"inVisibleMethod--\">");
+
+        checkOutput("pkg1/A.VisibleInner.html", false,
+                "../pkg1/A.VisibleInner.html#VisibleInner--",
+                "<a name=\"inVisibleField\">",
+                "<a name=\"inVisibleMethod--\">");
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/testHref/TestHref.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testHref/TestHref.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4663254 8016328 8025633 8026567 8081854
+ * @bug      4663254 8016328 8025633 8026567 8081854 8182765
  * @summary  Verify that spaces do not appear in hrefs and anchors.
  * @author   jamieh
  * @library  ../lib
@@ -50,6 +50,49 @@
 
         checkOutput("pkg/C1.html", true,
                 //External link.
+                "href=\"http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html?is-external=true#wait(long,int)\"",
+                //Member summary table link.
+                "href=\"#method(int,int,java.util.ArrayList)\"",
+                //Anchor test.
+                "<a id=\"method(int,int,java.util.ArrayList)\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                //Backward compatibility anchor test."pkg/C1.html",
+                "<a id=\"method(int,int,java.util.ArrayList)\">\n"
+                + "<!--   -->\n"
+                + "</a>");
+
+        checkOutput("pkg/C2.html", true,
+                //{@link} test.
+                "Link: <a href=\"C1.html#method(int,int,java.util.ArrayList)\">",
+                //@see test.
+                "See Also:</span></dt>\n"
+                + "<dd><a href=\"C1.html#method(int,int,java.util.ArrayList)\">"
+        );
+
+        checkOutput("pkg/C4.html", true,
+                //Header does not link to the page itself.
+                "Class C4&lt;E extends C4&lt;E&gt;&gt;</h2>",
+                //Signature does not link to the page itself.
+                "public abstract class <span class=\"typeNameLabel\">C4&lt;E extends C4&lt;E&gt;&gt;</span>"
+        );
+
+        checkOutput(Output.OUT, false,
+                "<a> tag is malformed");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-Xdoclint:none",
+                "-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-linkoffline", "http://java.sun.com/j2se/1.4/docs/api/", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/C1.html", true,
+                //External link.
                 "href=\"http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html?is-external=true#wait-long-int-\"",
                 //Member summary table link.
                 "href=\"#method-int-int-java.util.ArrayList-\"",
@@ -69,15 +112,5 @@
                 "See Also:</span></dt>\n"
                 + "<dd><a href=\"C1.html#method-int-int-java.util.ArrayList-\">"
         );
-
-        checkOutput("pkg/C4.html", true,
-                //Header does not link to the page itself.
-                "Class C4&lt;E extends C4&lt;E&gt;&gt;</h2>",
-                //Signature does not link to the page itself.
-                "public abstract class <span class=\"typeNameLabel\">C4&lt;E extends C4&lt;E&gt;&gt;</span>"
-        );
-
-        checkOutput(Output.OUT, false,
-                "<a> tag is malformed");
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 6786690 6820360 8025633 8026567 8175200 8183511 8186332 8074407
+ * @bug 6786690 6820360 8025633 8026567 8175200 8183511 8186332 8074407 8182765
  * @summary This test verifies the nesting of definition list tags.
  * @author Bhavesh Patel
  * @library ../lib
@@ -58,6 +58,17 @@
     }
 
     @Test
+    void test_Comment_Deprecated_html4() {
+        javadoc("-Xdoclint:none",
+                "-d", "out-1-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg1");
+        checkExit(Exit.OK);
+        checkCommentDeprecated_html4(true);
+    }
+
+    @Test
     void test_NoComment_Deprecated() {
 //        tester.run(ARGS2, TEST_ALL, NEGATED_TEST_NO_C5);
 //        tester.runTestsOnHTML(NO_TEST,  NEGATED_TEST_C5);
@@ -73,6 +84,18 @@
     }
 
     @Test
+    void test_NoComment_Deprecated_html4() {
+        javadoc("-Xdoclint:none",
+                "-d", "out-2-html4",
+                "-html4",
+                "-nocomment",
+                "-sourcepath", testSrc,
+                "pkg1");
+        checkExit(Exit.OK);
+        checkCommentDeprecated_html4(false);
+    }
+
+    @Test
     void test_Comment_NoDeprecated() {
 //        tester.run(ARGS3, TEST_ALL, NEGATED_TEST_NO_C5);
 //        tester.runTestsOnHTML(TEST_NODEPR, TEST_NOCMNT_NODEPR);
@@ -88,6 +111,19 @@
     }
 
     @Test
+    void test_Comment_NoDeprecated_html4() {
+        javadoc("-Xdoclint:none",
+                "-d", "out-3-html4",
+                "-html4",
+                "-nodeprecated",
+                "-sourcepath", testSrc,
+                "pkg1");
+        checkExit(Exit.OK);
+        checkNoDeprecated_html4();
+        checkNoCommentNoDeprecated_html4(false);
+    }
+
+    @Test
     void testNoCommentNoDeprecated() {
 //        tester.run(ARGS4, TEST_ALL, NEGATED_TEST_NO_C5);
 //        tester.runTestsOnHTML(TEST_NOCMNT_NODEPR, TEST_CMNT_DEPR);
@@ -103,6 +139,19 @@
         checkCommentDeprecated(false);
     }
 
+    @Test
+    void testNoCommentNoDeprecated_html4() {
+        javadoc("-Xdoclint:none",
+                "-d", "out-4-html4",
+                "-html4",
+                "-nocomment",
+                "-nodeprecated",
+                "-sourcepath", testSrc,
+                "pkg1");
+        checkNoCommentNoDeprecated_html4(true);
+        checkCommentDeprecated_html4(false);
+    }
+
     void checkCommon(boolean checkC5) {
         // Test common to all runs of javadoc. The class signature should print
         // properly enclosed definition list tags and the Annotation Type
@@ -166,7 +215,7 @@
                 + "<dt><span class=\"simpleTagLabel\">Since:</span></dt>\n"
                 + "<dd>1.4</dd>\n"
                 + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
-                + "<dd><a href=\"#setUndecorated-boolean-\">"
+                + "<dd><a href=\"#setUndecorated(boolean)\">"
                 + "<code>setUndecorated(boolean)</code></a></dd>\n"
                 + "</dl>",
                 "<dl>\n"
@@ -193,7 +242,7 @@
                 + "<dd>1.4</dd>\n"
                 + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
                 + "<dd>"
-                + "<a href=\"#readObject--\"><code>readObject()"
+                + "<a href=\"#readObject()\"><code>readObject()"
                 + "</code></a></dd>\n"
                 + "</dl>",
                 "<dl>\n"
@@ -201,7 +250,7 @@
                 + "<dd><code>java.io.IOException</code></dd>\n"
                 + "<dt><span class=\"seeLabel\">See Also:"
                 + "</span></dt>\n"
-                + "<dd><a href=\"#setUndecorated-boolean-\">"
+                + "<dd><a href=\"#setUndecorated(boolean)\">"
                 + "<code>setUndecorated(boolean)</code></a></dd>\n"
                 + "</dl>");
 
@@ -223,6 +272,85 @@
                 + "java.io.IOException</code></dd>\n"
                 + "<dt><span class=\"seeLabel\">See Also:</span>"
                 + "</dt>\n"
+                + "<dd><a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
+                + "<code>C1.setUndecorated(boolean)</code></a></dd>\n"
+                + "</dl>",
+                "<span class=\"deprecatedLabel\">Deprecated.</span>\n"
+                + "<div class=\"deprecationComment\">As of JDK version 1.5, replaced by\n"
+                + " <a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
+                + "<code>setUndecorated(boolean)</code></a>.</div>\n"
+                + "</div>\n"
+                + "<div class=\"block\">This field indicates whether the C1 is "
+                + "undecorated.</div>\n"
+                + "&nbsp;\n"
+                + "<dl>\n"
+                + "<dt><span class=\"simpleTagLabel\">Since:</span></dt>\n"
+                + "<dd>1.4</dd>\n"
+                + "<dt><span class=\"seeLabel\">See Also:</span>"
+                + "</dt>\n"
+                + "<dd><a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
+                + "<code>C1.setUndecorated(boolean)</code></a></dd>\n"
+                + "</dl>",
+                "<span class=\"deprecatedLabel\">Deprecated.</span>\n"
+                + "<div class=\"deprecationComment\">As of JDK version 1.5, replaced by\n"
+                + " <a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
+                + "<code>setUndecorated(boolean)</code></a>.</div>\n"
+                + "</div>\n"
+                + "<div class=\"block\">Reads the object stream.</div>\n"
+                + "<dl>\n"
+                + "<dt><span class=\"throwsLabel\">Throws:"
+                + "</span></dt>\n"
+                + "<dd><code>java.io.IOException</code></dd>\n"
+                + "</dl>",
+                "<span class=\"deprecatedLabel\">Deprecated.</span>"
+                + "</div>\n"
+                + "<div class=\"block\">The name for this class.</div>");
+    }
+
+    void checkCommentDeprecated_html4(boolean expectFound) {
+        // Test for normal run of javadoc in which various ClassDocs and
+        // serialized form should have properly nested definition list tags
+        // enclosing comments, tags and deprecated information.
+        checkOutput("pkg1/C1.html", expectFound,
+                "<dl>\n"
+                + "<dt><span class=\"simpleTagLabel\">Since:</span></dt>\n"
+                + "<dd>1.4</dd>\n"
+                + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
+                + "<dd><a href=\"#setUndecorated-boolean-\">"
+                + "<code>setUndecorated(boolean)</code></a></dd>\n"
+                + "</dl>",
+                "<dl>\n"
+                + "<dt><span class=\"paramLabel\">Parameters:</span></dt>\n"
+                + "<dd><code>undecorated"
+                + "</code> - <code>true</code> if no decorations are\n"
+                + "         to be enabled;\n"
+                + "         <code>false</code> "
+                + "if decorations are to be enabled.</dd>\n"
+                + "<dt><span class=\"simpleTagLabel\">Since:"
+                + "</span></dt>\n"
+                + "<dd>1.4</dd>\n"
+                + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
+                + "<dd>"
+                + "<a href=\"#readObject--\"><code>readObject()"
+                + "</code></a></dd>\n"
+                + "</dl>",
+                "<dl>\n"
+                + "<dt><span class=\"throwsLabel\">Throws:</span></dt>\n"
+                + "<dd><code>java.io.IOException</code></dd>\n"
+                + "<dt><span class=\"seeLabel\">See Also:"
+                + "</span></dt>\n"
+                + "<dd><a href=\"#setUndecorated-boolean-\">"
+                + "<code>setUndecorated(boolean)</code></a></dd>\n"
+                + "</dl>");
+
+        checkOutput("serialized-form.html", expectFound,
+                "<dl>\n"
+                + "<dt><span class=\"throwsLabel\">Throws:</span>"
+                + "</dt>\n"
+                + "<dd><code>"
+                + "java.io.IOException</code></dd>\n"
+                + "<dt><span class=\"seeLabel\">See Also:</span>"
+                + "</dt>\n"
                 + "<dd><a href=\"pkg1/C1.html#setUndecorated-boolean-\">"
                 + "<code>C1.setUndecorated(boolean)</code></a></dd>\n"
                 + "</dl>",
@@ -252,10 +380,7 @@
                 + "<dt><span class=\"throwsLabel\">Throws:"
                 + "</span></dt>\n"
                 + "<dd><code>java.io.IOException</code></dd>\n"
-                + "</dl>",
-                "<span class=\"deprecatedLabel\">Deprecated.</span>"
-                + "</div>\n"
-                + "<div class=\"block\">The name for this class.</div>");
+                + "</dl>");
     }
 
     void checkNoDeprecated() {
@@ -310,6 +435,81 @@
                 + "<dt><span class=\"simpleTagLabel\">Since:</span></dt>\n"
                 + "<dd>1.4</dd>\n"
                 + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
+                + "<dd><a href=\"#readObject()\">"
+                + "<code>readObject()</code></a></dd>\n"
+                + "</dl>",
+                "<dl>\n"
+                + "<dt><span class=\"throwsLabel\">Throws:</span>"
+                + "</dt>\n"
+                + "<dd><code>java.io.IOException</code></dd>\n"
+                + "<dt>"
+                + "<span class=\"seeLabel\">See Also:</span></dt>\n"
+                + "<dd><a href=\"#setUndecorated(boolean)\">"
+                + "<code>setUndecorated(boolean)</code></a></dd>\n"
+                + "</dl>");
+
+        checkOutput("serialized-form.html", true,
+                "<dl>\n"
+                + "<dt><span class=\"throwsLabel\">Throws:</span>"
+                + "</dt>\n"
+                + "<dd><code>"
+                + "java.io.IOException</code></dd>\n"
+                + "<dt><span class=\"seeLabel\">See Also:</span>"
+                + "</dt>\n"
+                + "<dd><a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
+                + "<code>C1.setUndecorated(boolean)</code></a></dd>\n"
+                + "</dl>",
+                "<span class=\"deprecatedLabel\">Deprecated.</span>\n"
+                + "<div class=\"deprecationComment\">As of JDK version 1.5, replaced by\n"
+                + " <a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
+                + "<code>setUndecorated(boolean)</code></a>.</div>\n"
+                + "</div>\n"
+                + "<div class=\"block\">This field indicates whether the C1 is "
+                + "undecorated.</div>\n"
+                + "&nbsp;\n"
+                + "<dl>\n"
+                + "<dt><span class=\"simpleTagLabel\">Since:</span></dt>\n"
+                + "<dd>1.4</dd>\n"
+                + "<dt><span class=\"seeLabel\">See Also:</span>"
+                + "</dt>\n"
+                + "<dd><a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
+                + "<code>C1.setUndecorated(boolean)</code></a></dd>\n"
+                + "</dl>",
+                "<span class=\"deprecatedLabel\">Deprecated.</span>\n"
+                + "<div class=\"deprecationComment\">As of JDK version 1.5, replaced by\n"
+                + " <a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
+                + "<code>setUndecorated(boolean)</code></a>.</div>\n"
+                + "</div>\n"
+                + "<div class=\"block\">Reads the object stream.</div>\n"
+                + "<dl>\n"
+                + "<dt><span class=\"throwsLabel\">Throws:"
+                + "</span></dt>\n"
+                + "<dd><code>java.io.IOException</code></dd>\n"
+                + "</dl>",
+                "<span class=\"deprecatedLabel\">Deprecated.</span>"
+                + "</div>\n"
+                + "<div class=\"block\">"
+                + "The name for this class.</div>");
+    }
+
+    void checkNoDeprecated_html4() {
+        // Test with -nodeprecated option. The ClassDocs should have properly nested
+        // definition list tags enclosing comments and tags. The ClassDocs should not
+        // display definition list for deprecated information. The serialized form
+        // should display properly nested definition list tags for comments, tags
+        // and deprecated information.
+        checkOutput("pkg1/C1.html", true,
+                "<dl>\n"
+                + "<dt><span class=\"paramLabel\">Parameters:"
+                + "</span></dt>\n"
+                + "<dd><code>undecorated</code> - <code>true</code>"
+                + " if no decorations are\n"
+                + "         to be enabled;\n"
+                + "         <code>false</code> if decorations are to be enabled."
+                + "</dd>\n"
+                + "<dt><span class=\"simpleTagLabel\">Since:</span></dt>\n"
+                + "<dd>1.4</dd>\n"
+                + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
                 + "<dd><a href=\"#readObject--\">"
                 + "<code>readObject()</code></a></dd>\n"
                 + "</dl>",
@@ -360,11 +560,7 @@
                 + "<dt><span class=\"throwsLabel\">Throws:"
                 + "</span></dt>\n"
                 + "<dd><code>java.io.IOException</code></dd>\n"
-                + "</dl>",
-                "<span class=\"deprecatedLabel\">Deprecated.</span>"
-                + "</div>\n"
-                + "<div class=\"block\">"
-                + "The name for this class.</div>");
+                + "</dl>");
     }
 
     void checkNoCommentNoDeprecated(boolean expectFound) {
@@ -392,6 +588,30 @@
                 "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">" +
                 "Deprecated.</span>\n"
                 + "<div class=\"deprecationComment\">As of JDK version 1.5, replaced by\n"
+                + " <a href=\"pkg1/C1.html#setUndecorated(boolean)\"><code>"
+                + "setUndecorated(boolean)</code></a>.</div>\n"
+                + "</div>\n"
+                +
+                "</li>",
+                "<span class=\"deprecatedLabel\">"
+                + "Deprecated.</span>\n"
+                + "<div class=\"deprecationComment\">As of JDK version"
+                + " 1.5, replaced by\n"
+                + " <a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
+                + "<code>setUndecorated(boolean)</code></a>.</div>\n"
+                + "</div>\n"
+                + "</li>");
+    }
+
+    void checkNoCommentNoDeprecated_html4(boolean expectFound) {
+        // Test with -nocomment and -nodeprecated options. The ClassDocs whould
+        // not display definition lists for any member details.
+        checkOutput("serialized-form.html", expectFound,
+                "<pre>boolean " +
+                "undecorated</pre>\n" +
+                "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">" +
+                "Deprecated.</span>\n"
+                + "<div class=\"deprecationComment\">As of JDK version 1.5, replaced by\n"
                 + " <a href=\"pkg1/C1.html#setUndecorated-boolean-\"><code>"
                 + "setUndecorated(boolean)</code></a>.</div>\n"
                 + "</div>\n"
--- a/test/langtools/jdk/javadoc/doclet/testHtmlTableStyles/TestHtmlTableStyles.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testHtmlTableStyles/TestHtmlTableStyles.java	Tue Mar 06 10:45:47 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8008164 8169819 8183037
+ * @bug 8008164 8169819 8183037 8182765
  * @summary Test styles on HTML tables generated by javadoc.
  * @author Bhavesh Patel
  * @library ../lib
@@ -45,6 +45,43 @@
                 "-sourcepath", testSrc,
                 "-use",
                 "pkg1", "pkg2");
+        checkExit(Exit.ERROR);
+        checkOutput(Output.OUT, true,
+                "attribute not supported in HTML5: summary",
+                "attribute border for table only accepts \"\" or \"1\", use CSS instead: BORDER",
+                "attribute not supported in HTML5: cellpadding",
+                "attribute not supported in HTML5: cellspacing",
+                "attribute not supported in HTML5: align");
+
+        checkOutput("pkg1/TestTable.html", true,
+                "<table summary=\"Summary\" border cellpadding=3 cellspacing=1>",
+                "<table class=\"memberSummary\">",
+                "<table class=\"memberSummary\">",
+                "<table class=\"memberSummary\">");
+
+        checkOutput("pkg1/package-summary.html", true,
+                "<table class=\"typeSummary\">");
+
+        checkOutput("pkg1/class-use/TestTable.html", true,
+                "<table class=\"useSummary\">");
+
+        checkOutput("overview-summary.html", true,
+                "<table class=\"overviewSummary\">");
+
+        checkOutput("deprecated-list.html", true,
+            "<table class=\"deprecatedSummary\">");
+
+        checkOutput("constant-values.html", true,
+            "<table class=\"constantsSummary\">");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-use",
+                "pkg1", "pkg2");
         checkExit(Exit.OK);
 
         checkOutput("pkg1/TestTable.html", true,
--- a/test/langtools/jdk/javadoc/doclet/testHtmlTableTags/TestHtmlTableTags.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testHtmlTableTags/TestHtmlTableTags.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      6786688 8008164 8162363 8169819 8183037
+ * @bug      6786688 8008164 8162363 8169819 8183037 8182765
  * @summary  HTML tables should have table summary, caption and table headers.
  * @author   Bhavesh Patel
  * @library  ../lib
@@ -53,11 +53,95 @@
                 "pkg1", "pkg2");
         checkExit(Exit.OK);
 
-        checkHtmlTableSummaries();
+        checkHtmlTableTag();
         checkHtmlTableCaptions();
         checkHtmlTableHeaders();
     }
 
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-use",
+                "pkg1", "pkg2");
+        checkExit(Exit.OK);
+
+        checkHtmlTableSummaries();
+    }
+
+    /*
+     * Tests for validating table tag for HTML tables
+     */
+    void checkHtmlTableTag() {
+        //Package summary
+        checkOutput("pkg1/package-summary.html", true,
+                "<table class=\"typeSummary\">",
+                "<table class=\"typeSummary\">");
+
+        checkOutput("pkg2/package-summary.html", true,
+                "<table class=\"typeSummary\">",
+                "<table class=\"typeSummary\">");
+
+        // Class documentation
+        checkOutput("pkg1/C1.html", true,
+                "<table class=\"memberSummary\">",
+                "<table class=\"memberSummary\">");
+
+        checkOutput("pkg2/C2.html", true,
+                "<table class=\"memberSummary\">",
+                "<table class=\"memberSummary\">");
+
+        checkOutput("pkg2/C2.ModalExclusionType.html", true,
+                "<table class=\"memberSummary\">");
+
+        checkOutput("pkg2/C3.html", true,
+                "<table class=\"memberSummary\">");
+
+        checkOutput("pkg2/C4.html", true,
+                "<table class=\"memberSummary\">");
+
+        // Class use documentation
+        checkOutput("pkg1/class-use/I1.html", true,
+                "<table class=\"useSummary\">");
+
+        checkOutput("pkg1/class-use/C1.html", true,
+                "<table class=\"useSummary\">",
+                "<table class=\"useSummary\">");
+
+        checkOutput("pkg2/class-use/C2.html", true,
+                "<table class=\"useSummary\">",
+                "<table class=\"useSummary\">");
+
+        checkOutput("pkg2/class-use/C2.ModalExclusionType.html", true,
+                "<table class=\"useSummary\">");
+
+        checkOutput("pkg2/class-use/C2.ModalExclusionType.html", true,
+                "<table class=\"useSummary\">");
+
+        // Package use documentation
+        checkOutput("pkg1/package-use.html", true,
+                "<table class=\"useSummary\">",
+                "<table class=\"useSummary\">");
+
+        checkOutput("pkg2/package-use.html", true,
+                "<table class=\"useSummary\">",
+                "<table class=\"useSummary\">");
+
+        // Deprecated
+        checkOutput("deprecated-list.html", true,
+                "<table class=\"deprecatedSummary\">",
+                "<table class=\"deprecatedSummary\">");
+
+        // Constant values
+        checkOutput("constant-values.html", true,
+                "<table class=\"constantsSummary\">");
+
+        // Overview Summary
+        checkOutput("overview-summary.html", true,
+                "<table class=\"overviewSummary\">");
+    }
+
     /*
      * Tests for validating summary for HTML tables
      */
--- a/test/langtools/jdk/javadoc/doclet/testHtmlTag/TestHtmlTag.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testHtmlTag/TestHtmlTag.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 6786682 4649116
+ * @bug 6786682 4649116 8182765
  * @summary This test verifies the use of lang attribute by <HTML>.
  * @author Bhavesh Patel
  * @library ../lib
@@ -106,6 +106,104 @@
         checkExit(Exit.OK);
 
         checkOutput("pkg3/package-summary.html", true,
+                "<div class=\"contentContainer\">\n"
+                + "<section role=\"region\"><a id=\"package.description\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<div class=\"block\"><p>This is the first line. Note the newlines before the &lt;p&gt; is relevant.</div>\n"
+                + "</section>");
+
+        checkOutput("pkg3/A.DatatypeFactory.html", true,
+                "<div class=\"block\"><p>\n"
+                + " Factory that creates new <code>javax.xml.datatype</code>\n"
+                + " <code>Object</code>s that map XML to/from Java <code>Object</code>s.</p>\n"
+                + "\n"
+                + " <p>\n"
+                + " A new instance of the <code>DatatypeFactory</code> is created through the\n"
+                + " <a href=\"#newInstance()\"><code>newInstance()</code></a> method that uses the following implementation\n"
+                + " resolution mechanisms to determine an implementation:</p>\n"
+                + " <ol>\n"
+                + " <li>\n"
+                + " If the system property specified by <a href=\"#DATATYPEFACTORY_PROPERTY\"><code>DATATYPEFACTORY_PROPERTY</code></a>,\n"
+                + " \"<code>javax.xml.datatype.DatatypeFactory</code>\", exists, a class with\n"
+                + " the name of the property value is instantiated. Any Exception thrown\n"
+                + " during the instantiation process is wrapped as a\n"
+                + " <code>IllegalStateException</code>.\n"
+                + " </li>\n"
+                + " <li>\n"
+                + " If the file ${JAVA_HOME}/lib/jaxp.properties exists, it is loaded in a\n"
+                + " <code>Properties</code> <code>Object</code>. The\n"
+                + " <code>Properties</code> <code>Object </code> is then queried for the\n"
+                + " property as documented in the prior step and processed as documented in\n"
+                + " the prior step.\n"
+                + " </li>\n"
+                + " <li>\n"
+                + " Uses the service-provider loading facilities, defined by the\n"
+                + " <code>ServiceLoader</code> class, to attempt to locate and load an\n"
+                + " implementation of the service using the default loading mechanism:\n"
+                + " the service-provider loading facility will use the current thread's context class loader\n"
+                + " to attempt to load the service. If the context class loader is null, the system class loader will be used.\n"
+                + " <br>\n"
+                + " In case of <code>service configuration error</code> a\n"
+                + " <code>DatatypeConfigurationException</code> will be thrown.\n"
+                + " </li>\n"
+                + " <li>\n"
+                + " The final mechanism is to attempt to instantiate the <code>Class</code>\n"
+                + " specified by <a href=\"#DATATYPEFACTORY_IMPLEMENTATION_CLASS\"><code>DATATYPEFACTORY_IMPLEMENTATION_CLASS</code></a>. Any Exception\n"
+                + " thrown during the instantiation process is wrapped as a\n"
+                + " <code>IllegalStateException</code>.\n"
+                + " </li>\n"
+                + " </ol></div>");
+
+        checkOutput("pkg3/A.ActivationDesc.html", true,
+                "<pre>public class <span class=\"typeNameLabel\">A.ActivationDesc</span>\n"
+                + "extends java.lang.Object\n"
+                + "implements java.io.Serializable</pre>\n"
+                + "<div class=\"block\">An activation descriptor contains the information necessary to activate\n"
+                + " an object: <ul>\n"
+                + " <li> the object's group identifier,\n"
+                + " <li> the object's fully-qualified class name,\n"
+                + " <li> the object's code location (the location of the class), a codebase\n"
+                + " URL path,\n"
+                + " <li> the object's restart \"mode\", and,\n"
+                + " <li> a \"marshalled\" object that can contain object specific\n"
+                + " initialization data. </ul>\n"
+                + "\n"
+                + " <p>\n"
+                + " A descriptor registered with the activation system can be used to\n"
+                + " recreate/activate the object specified by the descriptor. The\n"
+                + " <code>MarshalledObject</code> in the object's descriptor is passed as the\n"
+                + " second argument to the remote object's constructor for object to use\n"
+                + " during reinitialization/activation.</div>");
+
+        checkOutput("pkg3/A.ActivationGroupID.html", true,
+                "<pre>public class <span class=\"typeNameLabel\">A.ActivationGroupID</span>\n"
+                + "extends java.lang.Object\n"
+                + "implements java.io.Serializable</pre>\n"
+                + "<div class=\"block\">The identifier for a registered activation group serves several purposes:\n"
+                + " <ul>\n"
+                + " <li>identifies the group uniquely within the activation system, and\n"
+                + " <li>contains a reference to the group's activation system so that the\n"
+                + " group can contact its activation system when necessary.</ul><p>\n"
+                + "\n"
+                + " The <code>ActivationGroupID</code> is returned from the call to\n"
+                + " <code>ActivationSystem.registerGroup</code> and is used to identify the\n"
+                + " group within the activation system. This group id is passed as one of the\n"
+                + " arguments to the activation group's special constructor when an\n"
+                + " activation group is created/recreated.</div>\n"
+                + "<dl>");
+    }
+
+    @Test
+    void test_other_html4() {
+        javadoc("-locale", "en_US",
+                "-d", "out-other-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg3");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg3/package-summary.html", true,
                 "<div class=\"contentContainer\"><a name=\"package.description\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
@@ -154,43 +252,5 @@
                 + " <code>IllegalStateException</code>.\n"
                 + " </li>\n"
                 + " </ol></div>");
-
-        checkOutput("pkg3/A.ActivationDesc.html", true,
-                "<pre>public class <span class=\"typeNameLabel\">A.ActivationDesc</span>\n"
-                + "extends java.lang.Object\n"
-                + "implements java.io.Serializable</pre>\n"
-                + "<div class=\"block\">An activation descriptor contains the information necessary to activate\n"
-                + " an object: <ul>\n"
-                + " <li> the object's group identifier,\n"
-                + " <li> the object's fully-qualified class name,\n"
-                + " <li> the object's code location (the location of the class), a codebase\n"
-                + " URL path,\n"
-                + " <li> the object's restart \"mode\", and,\n"
-                + " <li> a \"marshalled\" object that can contain object specific\n"
-                + " initialization data. </ul>\n"
-                + "\n"
-                + " <p>\n"
-                + " A descriptor registered with the activation system can be used to\n"
-                + " recreate/activate the object specified by the descriptor. The\n"
-                + " <code>MarshalledObject</code> in the object's descriptor is passed as the\n"
-                + " second argument to the remote object's constructor for object to use\n"
-                + " during reinitialization/activation.</div>");
-
-         checkOutput("pkg3/A.ActivationGroupID.html", true,
-                 "<pre>public class <span class=\"typeNameLabel\">A.ActivationGroupID</span>\n"
-                 + "extends java.lang.Object\n"
-                 + "implements java.io.Serializable</pre>\n"
-                 + "<div class=\"block\">The identifier for a registered activation group serves several purposes:\n"
-                 + " <ul>\n"
-                 + " <li>identifies the group uniquely within the activation system, and\n"
-                 + " <li>contains a reference to the group's activation system so that the\n"
-                 + " group can contact its activation system when necessary.</ul><p>\n"
-                 + "\n"
-                 + " The <code>ActivationGroupID</code> is returned from the call to\n"
-                 + " <code>ActivationSystem.registerGroup</code> and is used to identify the\n"
-                 + " group within the activation system. This group id is passed as one of the\n"
-                 + " arguments to the activation group's special constructor when an\n"
-                 + " activation group is created/recreated.</div>\n"
-                 + "<dl>");
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/testHtmlVersion/TestHtmlVersion.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testHtmlVersion/TestHtmlVersion.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8072945 8081854 8141492 8148985 8150188 4649116 8173707 8151743 8169819 8183037
+ * @bug 8072945 8081854 8141492 8148985 8150188 4649116 8173707 8151743 8169819 8183037 8182765
  * @summary Test the version of HTML generated by the javadoc tool.
  * @author bpatel
  * @library ../lib
@@ -41,7 +41,9 @@
 
     @Test
     void test1() {
-        javadoc("-d", "out-1", "-private", "-linksource", "-html5",
+        javadoc("-d", "out-1",
+                "-private",
+                "-linksource",
                 "-sourcepath", testSrc,
                 "-use",
                 "pkg", "pkg1", "pkg2", "pkg3");
@@ -53,7 +55,10 @@
 
     @Test
     void test2() {
-        javadoc("-d", "out-2", "-private", "-linksource", "-html4",
+        javadoc("-d", "out-2",
+                "-html4",
+                "-private",
+                "-linksource",
                 "-sourcepath", testSrc,
                 "-use",
                 "pkg", "pkg1", "pkg2", "pkg3");
@@ -65,7 +70,10 @@
 
     @Test
     void test3() {
-        javadoc("-d", "out-3", "-private", "-linksource",
+        javadoc("-d", "out-3",
+                "-html4",
+                "-private",
+                "-linksource",
                 "-sourcepath", testSrc,
                 "-use",
                 "pkg", "pkg1", "pkg2", "pkg3");
@@ -77,7 +85,9 @@
 
     @Test
     void test4() {
-        javadoc("-d", "out-4", "-private", "-linksource", "-html5",
+        javadoc("-d", "out-4",
+                "-private",
+                "-linksource",
                 "-sourcepath", testSrc,
                 "-use",
                 "pkg3");
--- a/test/langtools/jdk/javadoc/doclet/testHtmlWarning/TestHtmlWarning.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testHtmlWarning/TestHtmlWarning.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8194955
+ * @bug 8194955 8182765
  * @summary Warn when default HTML version is used.
  * @library ../lib
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -47,8 +47,11 @@
     }
 
     private static final Path testFile = Paths.get("C.java");
-    private static final String warning =
-        "javadoc: warning - You have not specified the version of HTML to use.";
+    private static final String warning
+            = "javadoc: warning - You have specified the HTML version as HTML 4.01 by using the -html4 option.\n"
+            + "The default is currently HTML5 and the support for HTML 4.01 will be removed\n"
+            + "in a future release. To suppress this warning, please ensure that any HTML constructs\n"
+            + "in your comments are valid in HTML5, and remove the -html4 option.";
 
     @Test
     void testHtml4() {
@@ -57,7 +60,7 @@
                 testFile.toString());
         checkExit(Exit.OK);
 
-        checkOutput(Output.OUT, false, warning);
+        checkOutput(Output.OUT, true, warning);
     }
 
     @Test
@@ -76,6 +79,6 @@
                 testFile.toString());
         checkExit(Exit.OK);
 
-        checkOutput(Output.OUT, true, warning);
+        checkOutput(Output.OUT, false, warning);
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/testInterface/TestInterface.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testInterface/TestInterface.java	Tue Mar 06 10:45:47 2018 -0800
@@ -24,7 +24,7 @@
 /*
  * @test
  * @bug      4682448 4947464 5029946 8025633 8026567 8035473 8139101 8175200
-             8186332 8186703
+             8186332 8186703 8182765
  * @summary  Verify that the public modifier does not show up in the
  *           documentation for public methods, as recommended by the JLS.
  *           If A implements I and B extends A, B should be in the list of
@@ -99,14 +99,14 @@
                 + "</ul>",
                 //Make sure "Specified By" has substituted type parameters.
                 "<dt><span class=\"overrideSpecifyLabel\">Specified by:</span></dt>\n"
-                + "<dd><code><a href=\"Interface.html#method--\">method</a>"
+                + "<dd><code><a href=\"Interface.html#method()\">method</a>"
                 + "</code>&nbsp;in interface&nbsp;<code>"
                 + "<a href=\"Interface.html\" title=\"interface in pkg\">"
                 + "Interface</a>&lt;<a href=\"Child.html\" title=\"type parameter in Child\">"
                 + "CE</a>&gt;</code></dd>",
                 //Make sure "Overrides" has substituted type parameters.
                 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
-                + "<dd><code><a href=\"Parent.html#method--\">method</a>"
+                + "<dd><code><a href=\"Parent.html#method()\">method</a>"
                 + "</code>&nbsp;in class&nbsp;<code><a href=\"Parent.html\" "
                 + "title=\"class in pkg\">Parent</a>&lt;<a href=\"Child.html\" "
                 + "title=\"type parameter in Child\">CE</a>&gt;</code></dd>");
@@ -120,7 +120,7 @@
                 + "</dl>");
 
         checkOutput("pkg/Interface.html", false,
-                "public int&nbsp;method()",
+                "public int&nbsp;method--",
                 "public static final&nbsp;int field");
 
         checkOutput("pkg/ClassWithStaticMembers.html", false,
@@ -135,6 +135,52 @@
 
                 "<td class=\"colFirst\"><code>static void</code></td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#m()\">m</a></span>()</code></th>\n"
+                + "<td class=\"colLast\">\n"
+                + "<div class=\"block\">A hider method</div>\n"
+                + "</td>\n",
+
+                "<h4>staticMethod</h4>\n"
+                + "<pre>public static&nbsp;void&nbsp;staticMethod()</pre>\n"
+                + "<div class=\"block\"><span class=\"descfrmTypeLabel\">"
+                + "Description copied from interface:&nbsp;<code>"
+                + "<a href=\"InterfaceWithStaticMembers.html#staticMethod()\">"
+                + "InterfaceWithStaticMembers</a></code></span></div>\n"
+                + "<div class=\"block\">A static method</div>\n");
+
+        checkOutput("pkg/ClassWithStaticMembers.InnerClass.html", true,
+                "<pre>public static class <span class=\"typeNameLabel\">"
+                + "ClassWithStaticMembers.InnerClass</span>\n"
+                + "extends java.lang.Object</pre>\n"
+                + "<div class=\"block\">A hider inner class</div>");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/Child.html", true,
+                //Make sure "Specified By" has substituted type parameters.
+                "<dt><span class=\"overrideSpecifyLabel\">Specified by:</span></dt>\n"
+                + "<dd><code><a href=\"Interface.html#method--\">method</a>"
+                + "</code>&nbsp;in interface&nbsp;<code>"
+                + "<a href=\"Interface.html\" title=\"interface in pkg\">"
+                + "Interface</a>&lt;<a href=\"Child.html\" title=\"type parameter in Child\">"
+                + "CE</a>&gt;</code></dd>",
+                //Make sure "Overrides" has substituted type parameters.
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"Parent.html#method--\">method</a>"
+                + "</code>&nbsp;in class&nbsp;<code><a href=\"Parent.html\" "
+                + "title=\"class in pkg\">Parent</a>&lt;<a href=\"Child.html\" "
+                + "title=\"type parameter in Child\">CE</a>&gt;</code></dd>");
+
+        checkOutput("pkg/ClassWithStaticMembers.html", true,
+                "<td class=\"colFirst\"><code>static void</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
                 + "<a href=\"#m--\">m</a></span>()</code></th>\n"
                 + "<td class=\"colLast\">\n"
                 + "<div class=\"block\">A hider method</div>\n"
@@ -148,11 +194,8 @@
                 + "InterfaceWithStaticMembers</a></code></span></div>\n"
                 + "<div class=\"block\">A static method</div>\n");
 
-        checkOutput("pkg/ClassWithStaticMembers.InnerClass.html", true,
-                "<pre>public static class <span class=\"typeNameLabel\">"
-                + "ClassWithStaticMembers.InnerClass</span>\n"
-                + "extends java.lang.Object</pre>\n"
-                + "<div class=\"block\">A hider inner class</div>");
+        checkOutput("pkg/Interface.html", false,
+                "public int&nbsp;method()");
     }
 
     @Test
@@ -165,6 +208,23 @@
         checkOutput("pkg1/Child.html", true,
             // Ensure the correct Overrides in the inheritance hierarchy is reported
             "<span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" +
+            "<dd><code><a href=\"GrandParent.html#method1()\">method1</a></code>" +
+            "&nbsp;in class&nbsp;" +
+            "<code><a href=\"GrandParent.html\" title=\"class in pkg1\">GrandParent</a>" +
+            "&lt;<a href=\"Child.html\" title=\"type parameter in Child\">CE</a>&gt;</code>");
+    }
+
+    @Test
+    void test1_html4() {
+        javadoc("-d", "out-1-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg1");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg1/Child.html", true,
+            // Ensure the correct Overrides in the inheritance hierarchy is reported
+            "<span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n" +
             "<dd><code><a href=\"GrandParent.html#method1--\">method1</a></code>" +
             "&nbsp;in class&nbsp;" +
             "<code><a href=\"GrandParent.html\" title=\"class in pkg1\">GrandParent</a>" +
--- a/test/langtools/jdk/javadoc/doclet/testJavaFX/TestJavaFX.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testJavaFX/TestJavaFX.java	Tue Mar 06 10:45:47 2018 -0800
@@ -24,7 +24,7 @@
 /*
  * @test
  * @bug 7112427 8012295 8025633 8026567 8061305 8081854 8150130 8162363
- *      8167967 8172528 8175200 8178830 8182257 8186332
+ *      8167967 8172528 8175200 8178830 8182257 8186332 8182765
  * @summary Test of the JavaFX doclet features.
  * @author jvalenta
  * @library ../lib
@@ -51,9 +51,8 @@
 
         checkOutput("pkg1/C.html", true,
                 "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
-                + "<dd><a href=\"#getRate--\"><code>getRate()</code></a>, \n"
-                + "<a href=\"#setRate-double-\">"
-                + "<code>setRate(double)</code></a></dd>",
+                + "<dd><a href=\"#getRate()\"><code>getRate()</code></a>, \n"
+                + "<a href=\"#setRate(double)\"><code>setRate(double)</code></a></dd>",
                 "<pre>public final&nbsp;void&nbsp;setRate&#8203;(double&nbsp;value)</pre>\n"
                 + "<div class=\"block\">Sets the value of the property rate.</div>\n"
                 + "<dl>\n"
@@ -77,7 +76,7 @@
                 "<p>Gets the value of the property <code>Property</code>",
                 "<span class=\"simpleTagLabel\">Property description:</span>",
                 "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
-                + "<a href=\"#setTestMethodProperty--\">"
+                + "<a href=\"#setTestMethodProperty()\">"
                 + "setTestMethodProperty</a></span>()</code></th>",
                 "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
                 + "<a href=\"#pausedProperty\">paused</a></span></code></th>\n"
@@ -135,7 +134,7 @@
                 + "<dt><span class=\"simpleTagLabel\">Since:</span></dt>\n"
                 + "<dd>JavaFX 8.0</dd>",
                 "<h3>Property Summary</h3>\n"
-                + "<table class=\"memberSummary\" summary=\"Property Summary table, listing properties, and an explanation\">\n"
+                + "<table class=\"memberSummary\">\n"
                 + "<caption><span>Properties</span><span class=\"tabEnd\">&nbsp;</span></caption>",
                 "<tr class=\"altColor\">\n"
                 + "<td class=\"colFirst\"><code><a href=\"C.BooleanProperty.html\" title=\"class in pkg1\">C.BooleanProperty</a></code></td>\n",
@@ -168,6 +167,30 @@
 
         checkOutput("pkg1/D.html", false, "shouldNotAppear");
     }
+
+    @Test
+    void test1_html4() {
+        javadoc("-d", "out1-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-javafx",
+                "-package",
+                "pkg1");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg1/C.html", true,
+                "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
+                + "<dd><a href=\"#getRate--\"><code>getRate()</code></a>, \n"
+                + "<a href=\"#setRate-double-\">"
+                + "<code>setRate(double)</code></a></dd>",
+                "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#setTestMethodProperty--\">"
+                + "setTestMethodProperty</a></span>()</code></th>",
+                "<h3>Property Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Property Summary table, listing properties, and an explanation\">\n"
+                + "<caption><span>Properties</span><span class=\"tabEnd\">&nbsp;</span></caption>");
+    }
+
     /*
      * Test with -javafx option enabled, to ensure property getters and setters
      * are treated correctly.
@@ -182,6 +205,61 @@
         checkExit(Exit.OK);
         checkOutput("pkg2/Test.html", true,
                 "<h3>Property Detail</h3>\n"
+                + "<a id=\"betaProperty\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\">\n"
+                + "<h4>beta</h4>\n"
+                + "<pre>public&nbsp;java.lang.Object betaProperty</pre>\n"
+                + "</li>\n"
+                + "</ul>\n"
+                + "<a id=\"gammaProperty\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<ul class=\"blockList\">\n"
+                + "<li class=\"blockList\">\n"
+                + "<h4>gamma</h4>\n"
+                + "<pre>public final&nbsp;java.util.List&lt;java.lang.String&gt; gammaProperty</pre>\n"
+                + "</li>\n"
+                + "</ul>\n"
+                + "<a id=\"deltaProperty\">\n"
+                + "<!--   -->\n"
+                + "</a>\n"
+                + "<ul class=\"blockListLast\">\n"
+                + "<li class=\"blockList\">\n"
+                + "<h4>delta</h4>\n"
+                + "<pre>public final&nbsp;java.util.List&lt;"
+                + "java.util.Set&lt;? super java.lang.Object&gt;&gt; deltaProperty</pre>\n"
+                + "</li>\n"
+                + "</ul>\n"
+                + "</li>\n"
+                + "</ul>",
+                "<h3>Property Summary</h3>\n"
+                + "<table class=\"memberSummary\">\n"
+                + "<caption><span>Properties</span><span class=\"tabEnd\">&nbsp;</span></caption>");
+
+        checkOutput("pkg2/Test.html", false,
+                "<h3>Property Summary</h3>\n"
+                + "<table class=\"memberSummary\" summary=\"Property Summary table, listing properties, and an explanation\">\n"
+                + "<caption><span id=\"t0\" class=\"activeTableTab\"><span>All Methods</span><span class=\"tabEnd\">&nbsp;</span>"
+                + "</span><span id=\"t2\" class=\"tableTab\"><span><a href=\"javascript:show(2);\">Instance Methods</a>"
+                + "</span><span class=\"tabEnd\">&nbsp;</span></span><span id=\"t4\" class=\"tableTab\"><span>"
+                + "<a href=\"javascript:show(8);\">Concrete Methods</a></span><span class=\"tabEnd\">&nbsp;</span></span>"
+                + "</caption>");
+    }
+
+    @Test
+    void test2_html4() {
+        javadoc("-d", "out2a-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-javafx",
+                "-package",
+                "pkg2");
+        checkExit(Exit.OK);
+        checkOutput("pkg2/Test.html", true,
+                "<h3>Property Detail</h3>\n"
                 + "<a name=\"betaProperty\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
@@ -215,15 +293,6 @@
                 "<h3>Property Summary</h3>\n"
                 + "<table class=\"memberSummary\" summary=\"Property Summary table, listing properties, and an explanation\">\n"
                 + "<caption><span>Properties</span><span class=\"tabEnd\">&nbsp;</span></caption>");
-
-        checkOutput("pkg2/Test.html", false,
-                "<h3>Property Summary</h3>\n"
-                + "<table class=\"memberSummary\" summary=\"Property Summary table, listing properties, and an explanation\">\n"
-                + "<caption><span id=\"t0\" class=\"activeTableTab\"><span>All Methods</span><span class=\"tabEnd\">&nbsp;</span>"
-                + "</span><span id=\"t2\" class=\"tableTab\"><span><a href=\"javascript:show(2);\">Instance Methods</a>"
-                + "</span><span class=\"tabEnd\">&nbsp;</span></span><span id=\"t4\" class=\"tableTab\"><span>"
-                + "<a href=\"javascript:show(8);\">Concrete Methods</a></span><span class=\"tabEnd\">&nbsp;</span></span>"
-                + "</caption>");
     }
 
     /*
@@ -246,6 +315,47 @@
                 + "<tr id=\"i0\" class=\"altColor\">\n"
                 + "<td class=\"colFirst\"><code>&lt;T&gt;&nbsp;java.lang.Object</code></td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#alphaProperty(java.util.List)\">alphaProperty</a>"
+                + "</span>&#8203;(java.util.List&lt;T&gt;&nbsp;foo)</code></th>\n"
+                + "<td class=\"colLast\">&nbsp;</td>\n"
+                + "</tr>\n"
+                + "<tr id=\"i1\" class=\"rowColor\">\n"
+                + "<td class=\"colFirst\"><code>java.lang.Object</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#betaProperty()\">betaProperty</a></span>()</code></th>\n"
+                + "<td class=\"colLast\">&nbsp;</td>\n"
+                + "</tr>\n"
+                + "<tr id=\"i2\" class=\"altColor\">\n"
+                + "<td class=\"colFirst\"><code>java.util.List&lt;java.util.Set&lt;? super java.lang.Object&gt;&gt;"
+                + "</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#deltaProperty()\">deltaProperty</a></span>()</code></th>\n"
+                + "<td class=\"colLast\">&nbsp;</td>\n"
+                + "</tr>\n"
+                + "<tr id=\"i3\" class=\"rowColor\">\n"
+                + "<td class=\"colFirst\"><code>java.util.List&lt;java.lang.String&gt;</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#gammaProperty()\">gammaProperty</a></span>()</code></th>\n"
+                + "<td class=\"colLast\">&nbsp;</td>"
+        );
+    }
+
+    @Test
+    void test3_html4() {
+        javadoc("-d", "out2b-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-package",
+                "pkg2");
+        checkExit(Exit.OK);
+        checkOutput("pkg2/Test.html", true,
+                "<th class=\"colFirst\" scope=\"col\">Modifier and Type</th>\n"
+                + "<th class=\"colSecond\" scope=\"col\">Method</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Description</th>\n"
+                + "</tr>\n"
+                + "<tr id=\"i0\" class=\"altColor\">\n"
+                + "<td class=\"colFirst\"><code>&lt;T&gt;&nbsp;java.lang.Object</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
                 + "<a href=\"#alphaProperty-java.util.List-\">alphaProperty</a>"
                 + "</span>&#8203;(java.util.List&lt;T&gt;&nbsp;foo)</code></th>\n"
                 + "<td class=\"colLast\">&nbsp;</td>\n"
--- a/test/langtools/jdk/javadoc/doclet/testLinkOption/TestLinkOption.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testLinkOption/TestLinkOption.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 4720957 5020118 8026567 8038976 8184969 8164407
+ * @bug 4720957 5020118 8026567 8038976 8184969 8164407 8182765
  * @summary Test to make sure that -link and -linkoffline link to
  * right files, and URLs with and without trailing slash are accepted.
  * @author jamieh
@@ -66,7 +66,9 @@
                 "-linkoffline", url, testSrc + "/jdk",
                 "-package",
                 "pkg", "mylib.lang");
-        checkExit(Exit.OK);
+        checkExit(Exit.ERROR);
+        checkOutput(Output.OUT, true,
+                "tag not supported in the generated HTML version: tt");
 
         checkOutput("pkg/C.html", true,
                 "<a href=\"" + url + "java/lang/String.html?is-external=true\" "
@@ -82,11 +84,11 @@
 
         checkOutput("pkg/B.html", true,
                 "<div class=\"block\">A method with html tag the method "
-                + "<a href=\"" + url + "java/lang/ClassLoader.html?is-external=true#getSystemClassLoader--\""
+                + "<a href=\"" + url + "java/lang/ClassLoader.html?is-external=true#getSystemClassLoader()\""
                 + " title=\"class or interface in java.lang\" class=\"externalLink\"><code><tt>getSystemClassLoader()</tt>"
                 + "</code></a> as the parent class loader.</div>",
                 "<div class=\"block\">is equivalent to invoking <code>"
-                + "<a href=\"#createTempFile-java.lang.String-java.lang.String-java.io.File-\">"
+                + "<a href=\"#createTempFile(java.lang.String,java.lang.String,java.io.File)\">"
                 + "<code>createTempFile(prefix,&nbsp;suffix,&nbsp;null)</code></a></code>.</div>",
                 "<a href=\"" + url + "java/lang/String.html?is-external=true\" "
                 + "title=\"class or interface in java.lang\" class=\"externalLink\">Link-Plain to String Class</a>",
@@ -109,6 +111,25 @@
                 + "title=\"class or interface in java.lang\" class=\"externalLink\">Object</a></pre>"
         );
 
+        String out1_html4 = "out1-html4";
+        javadoc("-d", out1_html4,
+                "-html4",
+                "-classpath", mylib,
+                "-sourcepath", testSrc,
+                "-linkoffline", url, testSrc + "/jdk",
+                "-package",
+                "pkg", "mylib.lang");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/B.html", true,
+                "<div class=\"block\">A method with html tag the method "
+                + "<a href=\"" + url + "java/lang/ClassLoader.html?is-external=true#getSystemClassLoader--\""
+                + " title=\"class or interface in java.lang\" class=\"externalLink\"><code><tt>getSystemClassLoader()</tt>"
+                + "</code></a> as the parent class loader.</div>",
+                "<div class=\"block\">is equivalent to invoking <code>"
+                + "<a href=\"#createTempFile-java.lang.String-java.lang.String-java.io.File-\">"
+                + "<code>createTempFile(prefix,&nbsp;suffix,&nbsp;null)</code></a></code>.</div>");
+
         // Generate the documentation using -linkoffline and a relative path as the first parameter.
         // We will try linking to the docs generated in test 1 with a relative path.
         String out2 = "out2";
--- a/test/langtools/jdk/javadoc/doclet/testLinkTaglet/TestLinkTaglet.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testLinkTaglet/TestLinkTaglet.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4732864 6280605 7064544 8014636 8016328 8025633 8071982
+ * @bug      4732864 6280605 7064544 8014636 8016328 8025633 8071982 8182765
  * @summary  Make sure that you can link from one member to another using
  *           non-qualified name, furthermore, ensure the right one is linked.
  * @author   jamieh
@@ -52,9 +52,9 @@
                 "Qualified Link: <a href=\"C.InnerC.html\" title=\"class in pkg\"><code>C.InnerC</code></a>.<br/>\n"
                 + " Unqualified Link1: <a href=\"C.InnerC.html\" title=\"class in pkg\"><code>C.InnerC</code></a>.<br/>\n"
                 + " Unqualified Link2: <a href=\"C.InnerC.html\" title=\"class in pkg\"><code>C.InnerC</code></a>.<br/>\n"
-                + " Qualified Link: <a href=\"#method-pkg.C.InnerC-pkg.C.InnerC2-\"><code>method(pkg.C.InnerC, pkg.C.InnerC2)</code></a>.<br/>\n"
-                + " Unqualified Link: <a href=\"#method-pkg.C.InnerC-pkg.C.InnerC2-\"><code>method(C.InnerC, C.InnerC2)</code></a>.<br/>\n"
-                + " Unqualified Link: <a href=\"#method-pkg.C.InnerC-pkg.C.InnerC2-\"><code>method(InnerC, InnerC2)</code></a>.<br/>\n"
+                + " Qualified Link: <a href=\"#method(pkg.C.InnerC,pkg.C.InnerC2)\"><code>method(pkg.C.InnerC, pkg.C.InnerC2)</code></a>.<br/>\n"
+                + " Unqualified Link: <a href=\"#method(pkg.C.InnerC,pkg.C.InnerC2)\"><code>method(C.InnerC, C.InnerC2)</code></a>.<br/>\n"
+                + " Unqualified Link: <a href=\"#method(pkg.C.InnerC,pkg.C.InnerC2)\"><code>method(InnerC, InnerC2)</code></a>.<br/>\n"
                 + " Package Link: <a href=\"package-summary.html\"><code>pkg</code></a>.<br/>");
 
         checkOutput("pkg/C.InnerC.html", true,
@@ -73,4 +73,23 @@
 
         checkFiles(false, "checkPkg/A.html");
     }
+
+    @Test
+    void test_html4() {
+        javadoc("-Xdoclint:none",
+                "-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg", testSrc("checkPkg/B.java"));
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/C.html", true,
+                "Qualified Link: <a href=\"C.InnerC.html\" title=\"class in pkg\"><code>C.InnerC</code></a>.<br/>\n"
+                + " Unqualified Link1: <a href=\"C.InnerC.html\" title=\"class in pkg\"><code>C.InnerC</code></a>.<br/>\n"
+                + " Unqualified Link2: <a href=\"C.InnerC.html\" title=\"class in pkg\"><code>C.InnerC</code></a>.<br/>\n"
+                + " Qualified Link: <a href=\"#method-pkg.C.InnerC-pkg.C.InnerC2-\"><code>method(pkg.C.InnerC, pkg.C.InnerC2)</code></a>.<br/>\n"
+                + " Unqualified Link: <a href=\"#method-pkg.C.InnerC-pkg.C.InnerC2-\"><code>method(C.InnerC, C.InnerC2)</code></a>.<br/>\n"
+                + " Unqualified Link: <a href=\"#method-pkg.C.InnerC-pkg.C.InnerC2-\"><code>method(InnerC, InnerC2)</code></a>.<br/>\n"
+                + " Package Link: <a href=\"package-summary.html\"><code>pkg</code></a>.<br/>");
 }
+}
--- a/test/langtools/jdk/javadoc/doclet/testLinkToSerialForm/TestLinkToSerialForm.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testLinkToSerialForm/TestLinkToSerialForm.java	Tue Mar 06 10:45:47 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 4521661 8081854
+ * @bug 4521661 8081854 8182765
  * @summary Test to make sure that there is a link with a proper anchor
  * from a serializable class to serialized-form.html.
  * @author jamieh
@@ -48,8 +48,20 @@
         checkExit(Exit.OK);
 
         checkOutput("serialized-form.html", true,
-                "<a name=\"pkg.C\">");
+                "<a id=\"pkg.C\">");
         checkOutput("pkg/C.html", true,
                 "<a href=\"../serialized-form.html#pkg.C\">");
     }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("serialized-form.html", true,
+                "<a name=\"pkg.C\">");
 }
+}
--- a/test/langtools/jdk/javadoc/doclet/testMemberInheritance/TestMemberInheritance.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testMemberInheritance/TestMemberInheritance.java	Tue Mar 06 10:45:47 2018 -0800
@@ -24,7 +24,7 @@
 /*
  * @test
  * @bug 4638588 4635809 6256068 6270645 8025633 8026567 8162363 8175200
- *      8192850
+ *      8192850 8182765
  * @summary Test to make sure that members are inherited properly in the Javadoc.
  *          Verify that inheritance labels are correct.
  * @author jamieh
@@ -52,13 +52,13 @@
                 // Public field should be inherited
                 "<a href=\"BaseClass.html#pubField\">",
                 // Public method should be inherited
-                "<a href=\"BaseClass.html#pubMethod--\">",
+                "<a href=\"BaseClass.html#pubMethod()\">",
                 // Public inner class should be inherited.
                 "<a href=\"BaseClass.pubInnerClass.html\" title=\"class in pkg\">",
                 // Protected field should be inherited
                 "<a href=\"BaseClass.html#proField\">",
                 // Protected method should be inherited
-                "<a href=\"BaseClass.html#proMethod--\">",
+                "<a href=\"BaseClass.html#proMethod()\">",
                 // Protected inner class should be inherited.
                 "<a href=\"BaseClass.proInnerClass.html\" title=\"class in pkg\">",
                 // New labels as of 1.5.0
@@ -71,6 +71,57 @@
                 // Test overriding/implementing methods with generic parameters.
                 "<dl>\n"
                 + "<dt><span class=\"overrideSpecifyLabel\">Specified by:</span></dt>\n"
+                + "<dd><code><a href=\"BaseInterface.html#getAnnotation(java.lang.Class)\">"
+                + "getAnnotation</a></code>&nbsp;in interface&nbsp;<code>"
+                + "<a href=\"BaseInterface.html\" title=\"interface in pkg\">"
+                + "BaseInterface</a></code></dd>\n"
+                + "</dl>");
+
+        checkOutput("diamond/Z.html", true,
+                // Test diamond inheritance member summary (6256068)
+                "<code><a href=\"A.html#aMethod()\">aMethod</a></code>");
+
+        checkOutput("inheritDist/C.html", true,
+                // Test that doc is inherited from closed parent (6270645)
+                "<div class=\"block\">m1-B</div>");
+
+        checkOutput("pkg/SubClass.html", false,
+                "<a href=\"BaseClass.html#staticMethod()\">staticMethod</a></code>");
+
+        checkOutput("pkg1/Implementer.html", true,
+                // ensure the method makes it
+                "<td class=\"colFirst\"><code>static java.time.Period</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#between(java.time.LocalDate,java.time.LocalDate)\">"
+                + "between</a></span>&#8203;(java.time.LocalDate&nbsp;startDateInclusive,\n"
+                + "       java.time.LocalDate&nbsp;endDateExclusive)</code></th>");
+
+        checkOutput("pkg1/Implementer.html", false,
+                "<h3>Methods inherited from interface&nbsp;pkg1.<a href=\"Interface.html\""
+                + " title=\"interface in pkg1\">Interface</a></h3>\n"
+                + "<code><a href=\"Interface.html#between(java.time.chrono.ChronoLocalDate"
+                + ",java.time.chrono.ChronoLocalDate)\">between</a></code>"
+        );
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg", "diamond", "inheritDist", "pkg1");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/SubClass.html", true,
+                // Public method should be inherited
+                "<a href=\"BaseClass.html#pubMethod--\">",
+                // Protected method should be inherited
+                "<a href=\"BaseClass.html#proMethod--\">");
+
+        checkOutput("pkg/BaseClass.html", true,
+                // Test overriding/implementing methods with generic parameters.
+                "<dl>\n"
+                + "<dt><span class=\"overrideSpecifyLabel\">Specified by:</span></dt>\n"
                 + "<dd><code><a href=\"BaseInterface.html#getAnnotation-java.lang.Class-\">"
                 + "getAnnotation</a></code>&nbsp;in interface&nbsp;<code>"
                 + "<a href=\"BaseInterface.html\" title=\"interface in pkg\">"
@@ -81,10 +132,6 @@
                 // Test diamond inheritance member summary (6256068)
                 "<code><a href=\"A.html#aMethod--\">aMethod</a></code>");
 
-        checkOutput("inheritDist/C.html", true,
-                // Test that doc is inherited from closed parent (6270645)
-                "<div class=\"block\">m1-B</div>");
-
         checkOutput("pkg/SubClass.html", false,
                 "<a href=\"BaseClass.html#staticMethod--\">staticMethod</a></code>");
 
--- a/test/langtools/jdk/javadoc/doclet/testMemberSummary/TestMemberSummary.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testMemberSummary/TestMemberSummary.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4951228 6290760 8025633 8026567 8081854 8162363 8175200 8177417 8186332
+ * @bug      4951228 6290760 8025633 8026567 8081854 8162363 8175200 8177417 8186332 8182765
  * @summary  Test the case where the overriden method returns a different
  *           type than the method in the child class.  Make sure the
  *           documentation is inherited but the return type isn't.
@@ -43,7 +43,43 @@
 
     @Test
     void test() {
-        javadoc("-d", "out", "-private",
+        javadoc("-d", "out",
+                "-private",
+                "-sourcepath", testSrc,
+                "pkg","pkg2");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/PublicChild.html", true,
+                // Check return type in member summary.
+                "<code><a href=\"PublicChild.html\" title=\"class in pkg\">PublicChild</a></code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\"><a href=\"#returnTypeTest()\">"
+                + "returnTypeTest</a></span>()</code>",
+                // Check return type in member detail.
+                "<pre>public&nbsp;<a href=\"PublicChild.html\" title=\"class in pkg\">"
+                + "PublicChild</a>&nbsp;returnTypeTest()</pre>",
+                "<th class=\"colConstructorName\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#%3Cinit%3E()\">PublicChild</a></span>()</code></th>");
+
+        checkOutput("pkg/PrivateParent.html", true,
+                "<td class=\"colFirst\"><code>private </code></td>\n"
+                + "<th class=\"colConstructorName\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#%3Cinit%3E(int)\">PrivateParent</a></span>&#8203;(int&nbsp;i)</code>"
+                + "</th>");
+
+        // Legacy anchor dimensions (6290760)
+        checkOutput("pkg2/A.html", true,
+                "<a id=\"f(java.lang.Object[])\">\n"
+                + "<!--   -->\n"
+                + "</a><a id=\"f(T[])\">\n"
+                + "<!--   -->\n"
+                + "</a>");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-private",
                 "-sourcepath", testSrc,
                 "pkg","pkg2");
         checkExit(Exit.OK);
@@ -53,9 +89,6 @@
                 "<code><a href=\"PublicChild.html\" title=\"class in pkg\">PublicChild</a></code></td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\"><a href=\"#returnTypeTest--\">"
                 + "returnTypeTest</a></span>()</code>",
-                // Check return type in member detail.
-                "<pre>public&nbsp;<a href=\"PublicChild.html\" title=\"class in pkg\">"
-                + "PublicChild</a>&nbsp;returnTypeTest()</pre>",
                 "<th class=\"colConstructorName\" scope=\"row\"><code><span class=\"memberNameLink\">"
                 + "<a href=\"#PublicChild--\">PublicChild</a></span>()</code></th>");
 
--- a/test/langtools/jdk/javadoc/doclet/testModules/TestIndirectExportsOpens.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testModules/TestIndirectExportsOpens.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8178339
+ * @bug 8178339 8182765
  * @summary Tests indirect exports and opens in the module summary page
  * @modules jdk.javadoc/jdk.javadoc.internal.api
  *          jdk.javadoc/jdk.javadoc.internal.tool
@@ -72,6 +72,16 @@
         checkExit(Exit.OK);
         verifyIndirectExports(false);
         verifyIndirectOpens(false);
+
+        javadoc("-d", base.resolve("out-api-html4").toString(),
+                "-html4",
+                "-quiet",
+                "--module-source-path", base.toString(),
+                "--expand-requires", "transitive",
+                "--module", "a");
+        checkExit(Exit.OK);
+        verifyIndirectExports_html4(false);
+        verifyIndirectOpens_html4(false);
     }
 
     @Test
@@ -98,6 +108,16 @@
         checkExit(Exit.OK);
         verifyIndirectExports(true);
         verifyIndirectOpens(true);
+
+        javadoc("-d", base.resolve("out-api-html4").toString(),
+                "-html4",
+                "-quiet",
+                "--module-source-path", base.toString(),
+                "--expand-requires", "transitive",
+                "--module", "a");
+        checkExit(Exit.OK);
+        verifyIndirectExports_html4(true);
+        verifyIndirectOpens_html4(true);
     }
 
     @Test
@@ -125,6 +145,17 @@
         checkExit(Exit.OK);
         verifyIndirectExports(false);
         verifyIndirectOpens(false);
+
+        javadoc("-d", base.resolve("out-api-html4").toString(),
+                "-html4",
+                "-quiet",
+                "--module-source-path", base.toString(),
+                "--expand-requires", "transitive",
+                "--module", "a");
+
+        checkExit(Exit.OK);
+        verifyIndirectExports_html4(false);
+        verifyIndirectOpens_html4(false);
     }
 
     @Test
@@ -157,13 +188,13 @@
         // could be listed in the indirects section, so just
         // check for minimal expected strings.
         checkOutput("a/module-summary.html", true,
-                "Indirect Exports table",
+                "Indirect Exports",
                 "<th class=\"colFirst\" scope=\"row\"><a href=\"../m/module-summary.html\">m</a></th>\n"
                 + "<td class=\"colLast\"><a href=\"../m/exportsto/package-summary.html\">exportsto</a></td>\n"
                 + "</tr>\n");
 
         checkOutput("a/module-summary.html", true,
-                "Indirect Opens table",
+                "Indirect Opens",
                 "<th class=\"colFirst\" scope=\"row\"><a href=\"../m/module-summary.html\">m</a></th>\n"
                 + "<td class=\"colLast\">opensto</td>\n"
                 + "</tr>\n");
@@ -188,6 +219,40 @@
         }
 
         checkOutput("a/module-summary.html", present,
+                "<table class=\"packagesSummary\">\n"
+                + "<caption><span>" + typeString + "</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">From</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Packages</th>\n"
+                + "</tr>\n"
+                + "<tbody>\n"
+                + "<tr class=\"altColor\">\n"
+                + "<th class=\"colFirst\" scope=\"row\"><a href=\"../m/module-summary.html\">m</a></th>\n"
+                + "<td class=\"colLast\"><a href=\"../m/pm/package-summary.html\">pm</a></td>\n"
+                + "</tr>\n"
+                + "</tbody>\n"
+                + "</table>\n");
+    }
+
+    void verifyIndirectExports_html4(boolean present) {
+        verifyIndirects_html4(present, false);
+    }
+
+    void verifyIndirectOpens_html4(boolean present) {
+        verifyIndirects_html4(present, true);
+    }
+
+    void verifyIndirects_html4(boolean present, boolean opens) {
+
+        String typeString = opens ? "Indirect Opens" : "Indirect Exports";
+
+        // Avoid false positives, just check for primary string absence.
+        if (!present) {
+            checkOutput("a/module-summary.html", false, typeString);
+            return;
+        }
+
+        checkOutput("a/module-summary.html", present,
                 "<table class=\"packagesSummary\" summary=\"" + typeString + " table, listing modules, and packages\">\n"
                 + "<caption><span>" + typeString + "</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
                 + "<tr>\n"
@@ -202,6 +267,4 @@
                 + "</tbody>\n"
                 + "</table>\n");
     }
-
 }
-
--- a/test/langtools/jdk/javadoc/doclet/testModules/TestModuleServices.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testModules/TestModuleServices.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8178067 8192007
+ * @bug 8178067 8192007 8182765
  * @summary tests the module's services, such as provides and uses
  * @modules jdk.javadoc/jdk.javadoc.internal.api
  *          jdk.javadoc/jdk.javadoc.internal.tool
@@ -117,7 +117,8 @@
         mb.write(src);
 
         javadoc("-d", base.resolve("out").toString(),
-                "-quiet", "-noindex",
+                "-quiet",
+                "-noindex",
                 "--module-source-path", src.toString(),
                 "--module", "moduleService,moduleServiceProvider,moduleServiceUser,moduleServiceUserNoDescription",
                 "pkgService", "moduleServiceProvider/pkgServiceProvider", "moduleServiceUser/pkgServiceUser",
@@ -194,6 +195,33 @@
                 "<h3>Services</h3>");
 
         checkOutput("m/module-summary.html", true,
+                "<table class=\"usesSummary\">\n" +
+                "<caption><span>Uses</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
+                "<tr>\n" +
+                "<th class=\"colFirst\" scope=\"col\">Type</th>\n" +
+                "<th class=\"colLast\" scope=\"col\">Description</th>\n" +
+                "</tr>\n" +
+                "<tbody>\n" +
+                "<tr class=\"altColor\">\n" +
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"p1/A.html\" title=\"class in p1\">A</a></th>\n" +
+                "<td class=\"colLast\">&nbsp;</td>\n" +
+                "</tr>\n" +
+                "<tr class=\"rowColor\">\n" +
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"p1/B.html\" title=\"class in p1\">B</a></th>\n" +
+                "<td class=\"colLast\">&nbsp;</td>\n" +
+                "</tr>\n" +
+                "</tbody>\n" +
+                "</table>\n");
+
+        javadoc("-d", base.toString() + "/out-html4",
+                "-html4",
+                "-quiet",
+                "--show-module-contents", "all",
+                "--module-source-path", base.toString(),
+                "--module", "m");
+        checkExit(Exit.OK);
+
+        checkOutput("m/module-summary.html", true,
                 "<table class=\"usesSummary\" summary=\"Uses table, listing types, and an explanation\">\n" +
                 "<caption><span>Uses</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
                 "<tr>\n" +
@@ -234,6 +262,28 @@
                 "<h3>Services</h3>");
 
         checkOutput("m/module-summary.html", true,
+                "<table class=\"usesSummary\">\n" +
+                "<caption><span>Uses</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
+                "<tr>\n" +
+                "<th class=\"colFirst\" scope=\"col\">Type</th>\n" +
+                "<th class=\"colLast\" scope=\"col\">Description</th>\n" +
+                "</tr>\n" +
+                "<tbody>\n" +
+                "<tr class=\"altColor\">\n" +
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"p1/A.html\" title=\"class in p1\">A</a></th>\n" +
+                "<td class=\"colLast\">&nbsp;</td>\n" +
+                "</tr>\n" +
+                "</tbody>\n" +
+                "</table>\n");
+
+        javadoc("-d", base.toString() + "/out-html4",
+                "-html4",
+                "-quiet",
+                "--module-source-path", base.toString(),
+                "--module", "m");
+        checkExit(Exit.OK);
+
+        checkOutput("m/module-summary.html", true,
                 "<table class=\"usesSummary\" summary=\"Uses table, listing types, and an explanation\">\n" +
                 "<caption><span>Uses</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
                 "<tr>\n" +
@@ -300,6 +350,33 @@
                 "<h3>Services</h3>");
 
         checkOutput("m/module-summary.html", true,
+                "<table class=\"providesSummary\">\n" +
+                "<caption><span>Provides</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
+                "<tr>\n" +
+                "<th class=\"colFirst\" scope=\"col\">Type</th>\n" +
+                "<th class=\"colLast\" scope=\"col\">Description</th>\n" +
+                "</tr>\n" +
+                "<tbody>\n" +
+                "<tr class=\"altColor\">\n" +
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"p1/A.html\" title=\"interface in p1\">A</a></th>\n" +
+                "<td class=\"colLast\">&nbsp;<br>(<span class=\"implementationLabel\">Implementation(s):</span>&nbsp;<a href=\"p1/B.html\" title=\"class in p1\">B</a>)</td>\n" +
+                "</tr>\n" +
+                "<tr class=\"rowColor\">\n" +
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"p2/A.html\" title=\"interface in p2\">A</a></th>\n" +
+                "<td class=\"colLast\">&nbsp;<br>(<span class=\"implementationLabel\">Implementation(s):</span>&nbsp;<a href=\"p2/B.html\" title=\"class in p2\">B</a>)</td>\n" +
+                "</tr>\n" +
+                "</tbody>\n");
+
+        javadoc("-d", base.toString() + "/out-html4",
+                "-html4",
+                "-quiet",
+                "--show-module-contents", "all",
+                "--module-source-path", base.toString(),
+                "--module", "m");
+
+        checkExit(Exit.OK);
+
+        checkOutput("m/module-summary.html", true,
                 "<table class=\"providesSummary\" summary=\"Provides table, listing types, and an explanation\">\n" +
                 "<caption><span>Provides</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
                 "<tr>\n" +
@@ -343,6 +420,30 @@
                 "<h3>Services</h3>");
 
         checkOutput("m/module-summary.html", true,
+                "<table class=\"providesSummary\">\n" +
+                "<caption><span>Provides</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
+                "<tr>\n" +
+                "<th class=\"colFirst\" scope=\"col\">Type</th>\n" +
+                "<th class=\"colLast\" scope=\"col\">Description</th>\n" +
+                "</tr>\n" +
+                "<tbody>\n" +
+                "<tr class=\"altColor\">\n" +
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"p1/A.html\" title=\"interface in p1\">A</a></th>\n" +
+                "<td class=\"colLast\">\n" +
+                "<div class=\"block\">abc</div>\n</td>\n" +
+                "</tr>\n" +
+                "</tbody>\n" +
+                "</table>\n");
+
+        javadoc("-d", base.toString() + "/out-html4",
+                "-html4",
+                "-quiet",
+                "--module-source-path", base.toString(),
+                "--module", "m");
+
+        checkExit(Exit.OK);
+
+        checkOutput("m/module-summary.html", true,
                 "<table class=\"providesSummary\" summary=\"Provides table, listing types, and an explanation\">\n" +
                 "<caption><span>Provides</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
                 "<tr>\n" +
@@ -385,6 +486,44 @@
                 "<h3>Services</h3>");
 
         checkOutput("m/module-summary.html", true,
+                "<table class=\"providesSummary\">\n" +
+                "<caption><span>Provides</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
+                "<tr>\n" +
+                "<th class=\"colFirst\" scope=\"col\">Type</th>\n" +
+                "<th class=\"colLast\" scope=\"col\">Description</th>\n" +
+                "</tr>\n" +
+                "<tbody>\n" +
+                "<tr class=\"altColor\">\n" +
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"p1/A.html\" title=\"interface in p1\">A</a></th>\n" +
+                "<td class=\"colLast\">\n" +
+                "<div class=\"block\">abc</div>\n</td>\n" +
+                "</tr>\n" +
+                "</tbody>\n" +
+                "</table>",
+                "<table class=\"usesSummary\">\n" +
+                "<caption><span>Uses</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
+                "<tr>\n" +
+                "<th class=\"colFirst\" scope=\"col\">Type</th>\n" +
+                "<th class=\"colLast\" scope=\"col\">Description</th>\n" +
+                "</tr>\n" +
+                "<tbody>\n" +
+                "<tr class=\"altColor\">\n" +
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"p2/B.html\" title=\"class in p2\">B</a></th>\n" +
+                "<td class=\"colLast\">\n" +
+                "<div class=\"block\">def</div>\n</td>\n" +
+                "</tr>\n" +
+                "</tbody>\n" +
+                "</table>\n");
+
+        javadoc("-d", base.toString() + "/out-html4",
+                "-html4",
+                "-quiet",
+                "--module-source-path", base.toString(),
+                "--module", "m");
+
+        checkExit(Exit.OK);
+
+        checkOutput("m/module-summary.html", true,
                 "<table class=\"providesSummary\" summary=\"Provides table, listing types, and an explanation\">\n" +
                 "<caption><span>Provides</span><span class=\"tabEnd\">&nbsp;</span></caption>\n" +
                 "<tr>\n" +
--- a/test/langtools/jdk/javadoc/doclet/testModules/TestModules.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testModules/TestModules.java	Tue Mar 06 10:45:47 2018 -0800
@@ -26,7 +26,7 @@
  * @bug 8154119 8154262 8156077 8157987 8154261 8154817 8135291 8155995 8162363
  *      8168766 8168688 8162674 8160196 8175799 8174974 8176778 8177562 8175218
  *      8175823 8166306 8178043 8181622 8183511 8169819 8074407 8183037 8191464
-        8164407 8192007
+        8164407 8192007 8182765
  * @summary Test modules support in javadoc.
  * @author bpatel
  * @library ../lib
@@ -46,7 +46,10 @@
      */
     @Test
     void testHtml4() {
-        javadoc("-d", "out", "-use", "-Xdoclint:none",
+        javadoc("-d", "out",
+                "-html4",
+                "-use",
+                "-Xdoclint:none",
                 "-overview", testSrc("overview.html"),
                 "--module-source-path", testSrc,
                 "--module", "moduleA,moduleB",
@@ -68,7 +71,9 @@
      */
     @Test
     void testHtml5() {
-        javadoc("-d", "out-html5", "-html5", "-use", "-Xdoclint:none",
+        javadoc("-d", "out-html5",
+                "-use",
+                "-Xdoclint:none",
                 "-overview", testSrc("overview.html"),
                 "--module-source-path", testSrc,
                 "--module", "moduleA,moduleB",
@@ -90,7 +95,11 @@
      */
     @Test
     void testHtml4NoComment() {
-        javadoc("-d", "out-nocomment", "-nocomment", "-use", "-Xdoclint:none",
+        javadoc("-d", "out-nocomment",
+                "-html4",
+                "-nocomment",
+                "-use",
+                "-Xdoclint:none",
                 "-overview", testSrc("overview.html"),
                 "--module-source-path", testSrc,
                 "--module", "moduleA,moduleB",
@@ -108,7 +117,10 @@
      */
     @Test
     void testHtml5NoComment() {
-        javadoc("-d", "out-html5-nocomment", "-nocomment", "-html5", "-use", "-Xdoclint:none",
+        javadoc("-d", "out-html5-nocomment",
+                "-nocomment",
+                "-use",
+                "-Xdoclint:none",
                 "-overview", testSrc("overview.html"),
                 "--module-source-path", testSrc,
                 "--module", "moduleA,moduleB",
@@ -126,7 +138,9 @@
      */
     @Test
     void testHtml4UnnamedModule() {
-        javadoc("-d", "out-nomodule", "-use",
+        javadoc("-d", "out-nomodule",
+                "-html4",
+                "-use",
                 "-overview", testSrc("overview.html"),
                 "-sourcepath", testSrc,
                 "testpkgnomodule", "testpkgnomodule1");
@@ -143,7 +157,8 @@
      */
     @Test
     void testHtml5UnnamedModule() {
-        javadoc("-d", "out-html5-nomodule", "-html5", "-use",
+        javadoc("-d", "out-html5-nomodule",
+                "-use",
                 "-overview", testSrc("overview.html"),
                 "-sourcepath", testSrc,
                 "testpkgnomodule", "testpkgnomodule1");
@@ -159,7 +174,10 @@
      */
     @Test
     void testJDTagsInModules() {
-        javadoc("-d", "out-mdltags", "-author", "-version", "-Xdoclint:none",
+        javadoc("-d", "out-mdltags",
+                "-author",
+                "-version",
+                "-Xdoclint:none",
                 "-tag", "regular:a:Regular Tag:",
                 "-tag", "moduletag:s:Module Tag:",
                 "--module-source-path", testSrc,
@@ -170,11 +188,32 @@
     }
 
     /**
+     * Test generated module pages with javadoc tags.
+     */
+    @Test
+    void testJDTagsInModules_html4() {
+        javadoc("-d", "out-mdltags-html4",
+                "-html4",
+                "-author",
+                "-version",
+                "-Xdoclint:none",
+                "-tag", "regular:a:Regular Tag:",
+                "-tag", "moduletag:s:Module Tag:",
+                "--module-source-path", testSrc,
+                "--module", "moduletags,moduleB",
+                "testpkgmdltags", "testpkgmdlB");
+        checkExit(Exit.OK);
+        checkModuleTags_html4();
+    }
+
+    /**
      * Test generated module summary page.
      */
     @Test
     void testModuleSummary() {
-        javadoc("-d", "out-moduleSummary", "-use", "-Xdoclint:none",
+        javadoc("-d", "out-moduleSummary",
+                "-use",
+                "-Xdoclint:none",
                 "--module-source-path", testSrc,
                 "--module", "moduleA,moduleB",
                 "testpkgmdlA", "testpkgmdlB", "moduleB/testpkg2mdlB");
@@ -184,11 +223,29 @@
     }
 
     /**
+     * Test generated module summary page.
+     */
+    @Test
+    void testModuleSummary_html4() {
+        javadoc("-d", "out-moduleSummary-html4",
+                "-html4",
+                "-use",
+                "-Xdoclint:none",
+                "--module-source-path", testSrc,
+                "--module", "moduleA,moduleB",
+                "testpkgmdlA", "testpkgmdlB", "moduleB/testpkg2mdlB");
+        checkExit(Exit.OK);
+        checkModuleSummary_html4();
+        checkNegatedModuleSummary_html4();
+    }
+
+    /**
      * Test generated module summary page of an aggregating module.
      */
     @Test
     void testAggregatorModuleSummary() {
-        javadoc("-d", "out-aggregatorModuleSummary", "-use",
+        javadoc("-d", "out-aggregatorModuleSummary",
+                "-use",
                 "--module-source-path", testSrc,
                 "--expand-requires", "transitive",
                 "--module", "moduleT");
@@ -201,7 +258,8 @@
      */
     @Test
     void testModuleFilesAndLinks() {
-        javadoc("-d", "out-modulelinks", "-Xdoclint:none",
+        javadoc("-d", "out-modulelinks",
+                "-Xdoclint:none",
                 "--module-source-path", testSrc,
                 "--module", "moduleA,moduleB",
                 "testpkgmdlA", "testpkgmdlB");
@@ -215,7 +273,8 @@
      */
     @Test
     void testModuleDeprecation() {
-        javadoc("-d", "out-moduledepr", "-Xdoclint:none",
+        javadoc("-d", "out-moduledepr",
+                "-Xdoclint:none",
                 "-tag", "regular:a:Regular Tag:",
                 "-tag", "moduletag:s:Module Tag:",
                 "--module-source-path", testSrc,
@@ -230,7 +289,8 @@
      */
     @Test
     void testModuleAnnotation() {
-        javadoc("-d", "out-moduleanno", "-Xdoclint:none",
+        javadoc("-d", "out-moduleanno",
+                "-Xdoclint:none",
                 "--module-source-path", testSrc,
                 "--module", "moduleA,moduleB",
                 "testpkgmdlA", "testpkgmdlB");
@@ -239,11 +299,31 @@
     }
 
     /**
+     * Test annotations on modules.
+     */
+    @Test
+    void testModuleAnnotation_html4() {
+        javadoc("-d", "out-moduleanno-html4",
+                "-html4",
+                "-Xdoclint:none",
+                "--module-source-path", testSrc,
+                "--module", "moduleA,moduleB",
+                "testpkgmdlA", "testpkgmdlB");
+        checkExit(Exit.OK);
+        checkModuleAnnotation_html4();
+    }
+
+    /**
      * Test module summary pages in "api" mode.
      */
     @Test
     void testApiMode() {
-        javadoc("-d", "out-api", "-use", "--show-module-contents=api", "-author", "-version", "-Xdoclint:none",
+        javadoc("-d", "out-api",
+                "-use",
+                "--show-module-contents=api",
+                "-author",
+                "-version",
+                "-Xdoclint:none",
                 "-tag", "regular:a:Regular Tag:",
                 "-tag", "moduletag:s:Module Tag:",
                 "--module-source-path", testSrc,
@@ -262,7 +342,12 @@
      */
     @Test
     void testAllMode() {
-        javadoc("-d", "out-all", "-use", "--show-module-contents=all", "-author", "-version", "-Xdoclint:none",
+        javadoc("-d", "out-all",
+                "-use",
+                "--show-module-contents=all",
+                "-author",
+                "-version",
+                "-Xdoclint:none",
                 "-tag", "regular:a:Regular Tag:",
                 "-tag", "moduletag:s:Module Tag:",
                 "--module-source-path", testSrc,
@@ -277,11 +362,35 @@
     }
 
     /**
+     * Test module summary pages in "all" mode.
+     */
+    @Test
+    void testAllModeHtml4() {
+        javadoc("-d", "out-all-html4",
+                "-html4",
+                "-use",
+                "--show-module-contents=all",
+                "-author",
+                "-version",
+                "-Xdoclint:none",
+                "-tag", "regular:a:Regular Tag:",
+                "-tag", "moduletag:s:Module Tag:",
+                "--module-source-path", testSrc,
+                "--module", "moduleA,moduleB,moduleC,moduletags",
+                "testpkgmdlA", "moduleA/concealedpkgmdlA", "testpkgmdlB", "testpkg2mdlB", "testpkgmdlC", "testpkgmdltags");
+        checkExit(Exit.OK);
+        checkModuleModeCommon_html4();
+        checkModuleModeApi_html4(false);
+    }
+
+    /**
      * Test generated module summary page of a module with no exported package.
      */
     @Test
     void testModuleSummaryNoExportedPkgAll() {
-        javadoc("-d", "out-ModuleSummaryNoExportedPkgAll", "-use", "--show-module-contents=all",
+        javadoc("-d", "out-ModuleSummaryNoExportedPkgAll",
+                "-use",
+                "--show-module-contents=all",
                 "-sourcepath", testSrc + "/moduleNoExport",
                 "--module", "moduleNoExport",
                 "testpkgmdlNoExport");
@@ -293,8 +402,25 @@
      * Test generated module summary page of a module with no exported package.
      */
     @Test
+    void testModuleSummaryNoExportedPkgAll_html4() {
+        javadoc("-d", "out-ModuleSummaryNoExportedPkgAll-html4",
+                "-html4",
+                "-use",
+                "--show-module-contents=all",
+                "-sourcepath", testSrc + "/moduleNoExport",
+                "--module", "moduleNoExport",
+                "testpkgmdlNoExport");
+        checkExit(Exit.OK);
+        checkModuleSummaryNoExported_html4(true);
+    }
+
+    /**
+     * Test generated module summary page of a module with no exported package.
+     */
+    @Test
     void testModuleSummaryNoExportedPkgApi() {
-        javadoc("-d", "out-ModuleSummaryNoExportedPkgApi", "-use",
+        javadoc("-d", "out-ModuleSummaryNoExportedPkgApi",
+                "-use",
                 "-sourcepath", testSrc + "/moduleNoExport",
                 "--module", "moduleNoExport",
                 "testpkgmdlNoExport");
@@ -303,6 +429,21 @@
     }
 
     /**
+     * Test generated module summary page of a module with no exported package.
+     */
+    @Test
+    void testModuleSummaryNoExportedPkgApi_html4() {
+        javadoc("-d", "out-ModuleSummaryNoExportedPkgApi-html4",
+                "-html4",
+                "-use",
+                "-sourcepath", testSrc + "/moduleNoExport",
+                "--module", "moduleNoExport",
+                "testpkgmdlNoExport");
+        checkExit(Exit.OK);
+        checkModuleSummaryNoExported_html4(false);
+    }
+
+    /**
      * Test generated module pages for javadoc run for a single module having a single package.
      */
     @Test
@@ -320,7 +461,9 @@
      */
     @Test
     void testSingleModuleMultiplePkg() {
-        javadoc("-d", "out-singlemodmultiplepkg", "--show-module-contents=all", "-Xdoclint:none",
+        javadoc("-d", "out-singlemodmultiplepkg",
+                "--show-module-contents=all",
+                "-Xdoclint:none",
                 "--module-source-path", testSrc,
                 "--module", "moduleB",
                 "testpkg2mdlB", "testpkgmdlB");
@@ -333,7 +476,9 @@
      */
     @Test
     void testGroupOption() {
-        javadoc("-d", "out-group", "--show-module-contents=all", "-Xdoclint:none",
+        javadoc("-d", "out-group",
+                "--show-module-contents=all",
+                "-Xdoclint:none",
                 "-tag", "regular:a:Regular Tag:",
                 "-tag", "moduletag:s:Module Tag:",
                 "--module-source-path", testSrc,
@@ -348,13 +493,37 @@
     }
 
     /**
+     * Test -group option for modules. The overview-summary.html page should group the modules accordingly.
+     */
+    @Test
+    void testGroupOption_html4() {
+        javadoc("-d", "out-group-html4",
+                "-html4",
+                "--show-module-contents=all",
+                "-Xdoclint:none",
+                "-tag", "regular:a:Regular Tag:",
+                "-tag", "moduletag:s:Module Tag:",
+                "--module-source-path", testSrc,
+                "-group", "Module Group A", "moduleA*",
+                "-group", "Module Group B & C", "moduleB*:moduleC*",
+                "-group", "Java SE Modules", "java*",
+                "--module", "moduleA,moduleB,moduleC,moduletags",
+                "moduleA/concealedpkgmdlA", "testpkgmdlA", "testpkg2mdlB", "testpkgmdlB", "testpkgmdlC",
+                "testpkgmdltags");
+        checkExit(Exit.OK);
+        checkGroupOption_html4();
+    }
+
+    /**
      * Test -group option for modules and the ordering of module groups.
      * The overview-summary.html page should group the modules accordingly and display the group tabs in
      * the order it was provided on the command-line.
      */
     @Test
     void testGroupOptionOrdering() {
-        javadoc("-d", "out-groupOrder", "--show-module-contents=all", "-Xdoclint:none",
+        javadoc("-d", "out-groupOrder",
+                "--show-module-contents=all",
+                "-Xdoclint:none",
                 "-tag", "regular:a:Regular Tag:",
                 "-tag", "moduletag:s:Module Tag:",
                 "--module-source-path", testSrc,
@@ -374,7 +543,9 @@
      */
     @Test
     void testUnnamedModuleGroupOption() {
-        javadoc("-d", "out-groupnomodule", "-use", "-Xdoclint:none",
+        javadoc("-d", "out-groupnomodule",
+                "-use",
+                "-Xdoclint:none",
                 "-overview", testSrc("overview.html"),
                 "-sourcepath", testSrc,
                 "-group", "Package Group 0", "testpkgnomodule",
@@ -385,13 +556,33 @@
     }
 
     /**
+     * Test -group option for unnamed modules. The overview-summary.html page should group the packages accordingly.
+     */
+    @Test
+    void testUnnamedModuleGroupOption_html4() {
+        javadoc("-d", "out-groupnomodule-html4",
+                "-html4",
+                "-use",
+                "-Xdoclint:none",
+                "-overview", testSrc("overview.html"),
+                "-sourcepath", testSrc,
+                "-group", "Package Group 0", "testpkgnomodule",
+                "-group", "Package Group 1", "testpkgnomodule1",
+                "testpkgnomodule", "testpkgnomodule1");
+        checkExit(Exit.OK);
+        checkUnnamedModuleGroupOption_html4();
+    }
+
+    /**
      * Test -group option for unnamed modules and the ordering of package groups.
      * The overview-summary.html page should group the packages accordingly and display the group tabs in
      * the order it was provided on the command-line.
      */
     @Test
     void testGroupOptionPackageOrdering() {
-        javadoc("-d", "out-groupPkgOrder", "-use", "-Xdoclint:none",
+        javadoc("-d", "out-groupPkgOrder",
+                "-use",
+                "-Xdoclint:none",
                 "-overview", testSrc("overview.html"),
                 "-sourcepath", testSrc,
                 "-group", "Z Group", "testpkgnomodule",
@@ -406,7 +597,9 @@
      */
     @Test
     void testGroupOptionSingleModule() {
-        javadoc("-d", "out-groupsinglemodule", "-use", "-Xdoclint:none",
+        javadoc("-d", "out-groupsinglemodule",
+                "-use",
+                "-Xdoclint:none",
                 "--module-source-path", testSrc,
                 "-group", "Module Group B", "moduleB*",
                 "--module", "moduleB",
@@ -419,8 +612,27 @@
      * Test -group option for a single module.
      */
     @Test
+    void testGroupOptionSingleModule_html4() {
+        javadoc("-d", "out-groupsinglemodule-html4",
+                "-html4",
+                "-use",
+                "-Xdoclint:none",
+                "--module-source-path", testSrc,
+                "-group", "Module Group B", "moduleB*",
+                "--module", "moduleB",
+                "testpkg2mdlB", "testpkgmdlB");
+        checkExit(Exit.OK);
+        checkGroupOptionSingleModule_html4();
+    }
+
+    /**
+     * Test -group option for a single module.
+     */
+    @Test
     void testModuleName() {
-        javadoc("-d", "out-modulename", "-use", "-Xdoclint:none",
+        javadoc("-d", "out-modulename",
+                "-use",
+                "-Xdoclint:none",
                 "--module-source-path", testSrc,
                 "--module", "moduleB,test.moduleFullName",
                 "testpkg2mdlB", "testpkgmdlB", "testpkgmdlfullname");
@@ -434,7 +646,10 @@
     @Test
     void testLinkOffline() {
         String url = "https://docs.oracle.com/javase/9/docs/api/";
-        javadoc("-d", "out-linkoffline", "-use", "--show-module-contents=all", "-Xdoclint:none",
+        javadoc("-d", "out-linkoffline",
+                "-use",
+                "--show-module-contents=all",
+                "-Xdoclint:none",
                 "--module-source-path", testSrc,
                 "--module", "moduleA,moduleB",
                 "-linkoffline", url, testSrc + "/jdk",
@@ -589,7 +804,7 @@
                 "Type Link: <a href=\"testpkgmdltags/TestClassInModuleTags.html\" title=\"class in "
                 + "testpkgmdltags\"><code>TestClassInModuleTags</code></a>.",
                 "Member Link: <a href=\"testpkgmdltags/TestClassInModuleTags.html#"
-                + "testMethod-java.lang.String-\"><code>testMethod(String)</code></a>.",
+                + "testMethod(java.lang.String)\"><code>testMethod(String)</code></a>.",
                 "Package Link: <a href=\"testpkgmdltags/package-summary.html\"><code>testpkgmdltags</code></a>.",
                 "<dt><span class=\"simpleTagLabel\">Since:</span></dt>\n"
                 + "<dd>JDK 9</dd>",
@@ -610,6 +825,12 @@
                 + "<dd>Just a simple module tag.</dd>");
     }
 
+    void checkModuleTags_html4() {
+        checkOutput("moduletags/module-summary.html", true,
+                "Member Link: <a href=\"testpkgmdltags/TestClassInModuleTags.html#"
+                + "testMethod-java.lang.String-\"><code>testMethod(String)</code></a>.");
+    }
+
     void checkOverviewSummaryModules() {
         checkOutput("overview-summary.html", true,
                 "<table class=\"overviewSummary\" summary=\"Module Summary table, listing modules, and an explanation\">\n"
@@ -724,7 +945,7 @@
                 + "Packages</a>&nbsp;|&nbsp;Services</li>\n"
                 + "</ul>",
                 "<!-- ============ MODULES SUMMARY =========== -->\n"
-                + "<a name=\"modules.summary\">\n"
+                + "<a id=\"modules.summary\">\n"
                 + "<!--   -->\n"
                 + "</a>",
                 "<tr class=\"altColor\" id=\"i0\">\n"
@@ -732,7 +953,7 @@
                 + "<td class=\"colLast\">&nbsp;</td>\n"
                 + "</tr>",
                 "<!-- ============ PACKAGES SUMMARY =========== -->\n"
-                + "<a name=\"packages.summary\">\n"
+                + "<a id=\"packages.summary\">\n"
                 + "<!--   -->\n"
                 + "</a>",
                 "<tr class=\"altColor\">\n"
@@ -747,7 +968,7 @@
                 + "<a href=\"#packages.summary\">Packages</a>&nbsp;|&nbsp;<a href=\"#services.summary\">"
                 + "Services</a></li>",
                 "<!-- ============ PACKAGES SUMMARY =========== -->\n"
-                + "<a name=\"packages.summary\">\n"
+                + "<a id=\"packages.summary\">\n"
                 + "<!--   -->\n"
                 + "</a>",
                 "<tr class=\"altColor\" id=\"i0\">\n"
@@ -755,11 +976,11 @@
                 + "<td class=\"colLast\">&nbsp;</td>\n"
                 + "</tr>",
                 "<!-- ============ PACKAGES SUMMARY =========== -->\n"
-                + "<a name=\"packages.summary\">\n"
+                + "<a id=\"packages.summary\">\n"
                 + "<!--   -->\n"
                 + "</a>",
                 "<!-- ============ SERVICES SUMMARY =========== -->\n"
-                + "<a name=\"services.summary\">\n"
+                + "<a id=\"services.summary\">\n"
                 + "<!--   -->\n"
                 + "</a>",
                 "<tr class=\"altColor\">\n"
@@ -784,6 +1005,31 @@
                 + "</tr>");
     }
 
+    void checkModuleSummary_html4() {
+        checkOutput("moduleA/module-summary.html", true,
+                "<!-- ============ MODULES SUMMARY =========== -->\n"
+                + "<a name=\"modules.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ============ PACKAGES SUMMARY =========== -->\n"
+                + "<a name=\"packages.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>");
+        checkOutput("moduleB/module-summary.html", true,
+                "<!-- ============ PACKAGES SUMMARY =========== -->\n"
+                + "<a name=\"packages.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ============ PACKAGES SUMMARY =========== -->\n"
+                + "<a name=\"packages.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>",
+                "<!-- ============ SERVICES SUMMARY =========== -->\n"
+                + "<a name=\"services.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>");
+    }
+
     void checkAggregatorModuleSummary() {
         checkOutput("moduleT/module-summary.html", true,
                 "<div class=\"header\">\n"
@@ -814,6 +1060,14 @@
     void checkNegatedModuleSummary() {
         checkOutput("moduleA/module-summary.html", false,
                 "<!-- ============ SERVICES SUMMARY =========== -->\n"
+                + "<a id=\"services.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>");
+    }
+
+    void checkNegatedModuleSummary_html4() {
+        checkOutput("moduleA/module-summary.html", false,
+                "<!-- ============ SERVICES SUMMARY =========== -->\n"
                 + "<a name=\"services.summary\">\n"
                 + "<!--   -->\n"
                 + "</a>");
@@ -922,7 +1176,7 @@
                 + "<td class=\"colLast\">\n"
                 + "<div class=\"block\">This is a test description for the moduletags module.<br>\n"
                 + " Type Link: <a href=\"moduletags/testpkgmdltags/TestClassInModuleTags.html\" title=\"class in testpkgmdltags\"><code>TestClassInModuleTags</code></a>.<br>\n"
-                + " Member Link: <a href=\"moduletags/testpkgmdltags/TestClassInModuleTags.html#testMethod-java.lang.String-\"><code>testMethod(String)</code></a>.<br>\n"
+                + " Member Link: <a href=\"moduletags/testpkgmdltags/TestClassInModuleTags.html#testMethod(java.lang.String)\"><code>testMethod(String)</code></a>.<br>\n"
                 + " Package Link: <a href=\"moduletags/testpkgmdltags/package-summary.html\"><code>testpkgmdltags</code></a>.<br></div>\n"
                 + "</td>");
         checkOutput("moduleA/module-summary.html", true,
@@ -937,14 +1191,14 @@
         checkOutput("moduletags/module-summary.html", true,
                 "<li><a href=\"#module.description\">Description</a>&nbsp;|&nbsp;<a href=\"#modules.summary\">Modules"
                 + "</a>&nbsp;|&nbsp;<a href=\"#packages.summary\">Packages</a>&nbsp;|&nbsp;Services</li>",
-                "<table class=\"requiresSummary\" summary=\"Indirect Requires table, listing modules, and an explanation\">\n"
+                "<table class=\"requiresSummary\">\n"
                 + "<caption><span>Indirect Requires</span><span class=\"tabEnd\">&nbsp;</span></caption>",
                 "<td class=\"colFirst\">transitive</td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><a href=\"../moduleB/module-summary.html\">moduleB</a></th>\n"
                 + "<td class=\"colLast\">\n"
                 + "<div class=\"block\">This is a test description for the moduleB module.</div>\n"
                 + "</td>",
-                "<table class=\"packagesSummary\" summary=\"Indirect Exports table, listing modules, and packages\">\n"
+                "<table class=\"packagesSummary\">\n"
                 + "<caption><span>Indirect Exports</span><span class=\"tabEnd\">&nbsp;</span></caption>",
                 "<td class=\"colFirst\">transitive static</td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><a href=\"../moduleA/module-summary.html\">moduleA</a></th>\n"
@@ -952,6 +1206,42 @@
                 + "<div class=\"block\">This is a test description for the moduleA module with a Search "
                 + "phrase <a id=\"searchphrase\" class=\"searchTagResult\">search phrase</a>.</div>\n"
                 + "</td>",
+                "<table class=\"requiresSummary\">\n"
+                + "<caption><span>Requires</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">Modifier</th>\n"
+                + "<th class=\"colSecond\" scope=\"col\">Module</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Description</th>",
+                "<table class=\"requiresSummary\">\n"
+                + "<caption><span>Indirect Requires</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">Modifier</th>\n"
+                + "<th class=\"colSecond\" scope=\"col\">Module</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Description</th>",
+                "<table class=\"packagesSummary\">\n"
+                + "<caption><span>Indirect Opens</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">From</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Packages</th>\n"
+                + "</tr>\n",
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"../moduleB/module-summary.html\">moduleB</a></th>\n"
+                + "<td class=\"colLast\"><a href=\"../moduleB/testpkgmdlB/package-summary.html\">testpkgmdlB</a></td>\n");
+    }
+
+    void checkModuleModeCommon_html4() {
+        checkOutput("overview-summary.html", true,
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"moduletags/module-summary.html\">moduletags</a></th>\n"
+                + "<td class=\"colLast\">\n"
+                + "<div class=\"block\">This is a test description for the moduletags module.<br>\n"
+                + " Type Link: <a href=\"moduletags/testpkgmdltags/TestClassInModuleTags.html\" title=\"class in testpkgmdltags\"><code>TestClassInModuleTags</code></a>.<br>\n"
+                + " Member Link: <a href=\"moduletags/testpkgmdltags/TestClassInModuleTags.html#testMethod-java.lang.String-\"><code>testMethod(String)</code></a>.<br>\n"
+                + " Package Link: <a href=\"moduletags/testpkgmdltags/package-summary.html\"><code>testpkgmdltags</code></a>.<br></div>\n"
+                + "</td>");
+        checkOutput("moduletags/module-summary.html", true,
+                "<table class=\"requiresSummary\" summary=\"Indirect Requires table, listing modules, and an explanation\">\n"
+                + "<caption><span>Indirect Requires</span><span class=\"tabEnd\">&nbsp;</span></caption>",
+                "<table class=\"packagesSummary\" summary=\"Indirect Exports table, listing modules, and packages\">\n"
+                + "<caption><span>Indirect Exports</span><span class=\"tabEnd\">&nbsp;</span></caption>",
                 "<table class=\"requiresSummary\" summary=\"Requires table, listing modules, and an explanation\">\n"
                 + "<caption><span>Requires</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
                 + "<tr>\n"
@@ -969,9 +1259,7 @@
                 + "<tr>\n"
                 + "<th class=\"colFirst\" scope=\"col\">From</th>\n"
                 + "<th class=\"colLast\" scope=\"col\">Packages</th>\n"
-                + "</tr>\n",
-                "<th class=\"colFirst\" scope=\"row\"><a href=\"../moduleB/module-summary.html\">moduleB</a></th>\n"
-                + "<td class=\"colLast\"><a href=\"../moduleB/testpkgmdlB/package-summary.html\">testpkgmdlB</a></td>\n");
+                + "</tr>\n");
     }
 
     void checkModuleModeApi(boolean found) {
@@ -983,7 +1271,7 @@
                 + "<a href=\"#packages.summary\">Packages</a>&nbsp;|&nbsp;<a href=\"#services.summary\">Services</a></li>",
                 "<th class=\"colFirst\" scope=\"row\"><a href=\"testpkgmdlB/package-summary.html\">testpkgmdlB</a></th>\n"
                 + "<td class=\"colLast\">&nbsp;</td>",
-                "<table class=\"packagesSummary\" summary=\"Packages table, listing packages, and an explanation\">\n"
+                "<table class=\"packagesSummary\">\n"
                 + "<caption><span>Opens</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
                 + "<tr>\n"
                 + "<th class=\"colFirst\" scope=\"col\">Package</th>\n"
@@ -1001,6 +1289,23 @@
                 + "<td class=\"colLast\">&nbsp;</td>");
     }
 
+    void checkModuleModeApi_html4(boolean found) {
+        checkOutput("moduleB/module-summary.html", found,
+                "<table class=\"packagesSummary\" summary=\"Packages table, listing packages, and an explanation\">\n"
+                + "<caption><span>Opens</span><span class=\"tabEnd\">&nbsp;</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">Package</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Description</th>\n"
+                + "</tr>\n"
+                + "<tbody>\n"
+                + "<tr class=\"altColor\" id=\"i0\">\n"
+                + "<th class=\"colFirst\" scope=\"row\"><a href=\"testpkgmdlB/package-summary.html\">testpkgmdlB</a></th>\n"
+                + "<td class=\"colLast\">&nbsp;</td>\n"
+                + "</tr>\n"
+                + "</tbody>\n"
+                + "</table>");
+    }
+
     void checkModuleModeAll(boolean found) {
         checkOutput("moduleA/module-summary.html", found,
                 "<td class=\"colFirst\"> </td>\n"
@@ -1084,11 +1389,18 @@
 
     void checkModuleAnnotation() {
         checkOutput("moduleB/module-summary.html", true,
+                "<p><a href=\"testpkgmdlB/AnnotationType.html\" title=\"annotation in testpkgmdlB\">@AnnotationType</a>(<a href=\"testpkgmdlB/AnnotationType.html#optional()\">optional</a>=\"Module Annotation\",\n"
+                + "                <a href=\"testpkgmdlB/AnnotationType.html#required()\">required</a>=2016)\n"
+                + "</p>");
+        checkOutput("moduleB/module-summary.html", false,
+                "@AnnotationTypeUndocumented");
+    }
+
+    void checkModuleAnnotation_html4() {
+        checkOutput("moduleB/module-summary.html", true,
                 "<p><a href=\"testpkgmdlB/AnnotationType.html\" title=\"annotation in testpkgmdlB\">@AnnotationType</a>(<a href=\"testpkgmdlB/AnnotationType.html#optional--\">optional</a>=\"Module Annotation\",\n"
                 + "                <a href=\"testpkgmdlB/AnnotationType.html#required--\">required</a>=2016)\n"
                 + "</p>");
-        checkOutput("moduleB/module-summary.html", false,
-                "@AnnotationTypeUndocumented");
     }
 
     void checkOverviewFrame(boolean found) {
@@ -1101,15 +1413,45 @@
     void checkModuleSummaryNoExported(boolean found) {
         checkOutput("moduleNoExport/module-summary.html", found,
                 "<!-- ============ PACKAGES SUMMARY =========== -->\n"
-                + "<a name=\"packages.summary\">\n"
+                + "<a id=\"packages.summary\">\n"
                 + "<!--   -->\n"
                 + "</a>",
                 "<caption><span>Concealed</span><span class=\"tabEnd\">&nbsp;</span></caption>");
     }
 
+    void checkModuleSummaryNoExported_html4(boolean found) {
+        checkOutput("moduleNoExport/module-summary.html", found,
+                "<!-- ============ PACKAGES SUMMARY =========== -->\n"
+                + "<a name=\"packages.summary\">\n"
+                + "<!--   -->\n"
+                + "</a>");
+    }
+
     void checkGroupOption() {
         checkOutput("overview-summary.html", true,
                 "<div class=\"contentContainer\">\n"
+                + "<table class=\"overviewSummary\">\n"
+                + "<caption><span id=\"t0\" class=\"activeTableTab\"><span>All Modules</span><span class=\"tabEnd\">&nbsp;"
+                + "</span></span><span id=\"t1\" class=\"tableTab\"><span><a href=\"javascript:showGroups(1);\">"
+                + "Module Group A</a></span><span class=\"tabEnd\">&nbsp;</span></span><span id=\"t2\" class=\"tableTab\">"
+                + "<span><a href=\"javascript:showGroups(2);\">Module Group B &amp; C</a></span><span class=\"tabEnd\">"
+                + "&nbsp;</span></span><span id=\"t4\" class=\"tableTab\"><span><a href=\"javascript:showGroups(4);\">"
+                + "Other Modules</a></span><span class=\"tabEnd\">&nbsp;</span></span></caption>",
+                "var groups = {\"i0\":1,\"i1\":2,\"i2\":2,\"i3\":4};\n"
+                + "var tabs = {65535:[\"t0\",\"All Modules\"],1:[\"t1\",\"Module Group A\"],2:[\"t2\",\"Module Group B & C\"],4:[\"t4\",\"Other Modules\"]};\n"
+                + "var altColor = \"altColor\";\n"
+                + "var rowColor = \"rowColor\";\n"
+                + "var tableTab = \"tableTab\";\n"
+                + "var activeTableTab = \"activeTableTab\";");
+        checkOutput("overview-summary.html", false,
+                "<table class=\"overviewSummary\">\n"
+                + "<caption><span>Modules</span><span class=\"tabEnd\">&nbsp;</span></caption>",
+                "Java SE Modules");
+    }
+
+    void checkGroupOption_html4() {
+        checkOutput("overview-summary.html", true,
+                "<div class=\"contentContainer\">\n"
                 + "<table class=\"overviewSummary\" summary=\"Module Summary table, listing modules, and an explanation\">\n"
                 + "<caption><span id=\"t0\" class=\"activeTableTab\"><span>All Modules</span><span class=\"tabEnd\">&nbsp;"
                 + "</span></span><span id=\"t1\" class=\"tableTab\"><span><a href=\"javascript:showGroups(1);\">"
@@ -1159,7 +1501,7 @@
                 + "<div class=\"block\">The overview summary page header.</div>\n"
                 + "</div>\n"
                 + "<div class=\"contentContainer\">\n"
-                + "<table class=\"overviewSummary\" summary=\"Package Summary table, listing packages, and an explanation\">\n"
+                + "<table class=\"overviewSummary\">\n"
                 + "<caption><span id=\"t0\" class=\"activeTableTab\"><span>All Packages</span><span class=\"tabEnd\">&nbsp;"
                 + "</span></span><span id=\"t1\" class=\"tableTab\"><span><a href=\"javascript:showGroups(1);\">"
                 + "Package Group 0</a></span><span class=\"tabEnd\">&nbsp;</span></span><span id=\"t2\" "
@@ -1173,6 +1515,20 @@
                 + "var activeTableTab = \"activeTableTab\";");
     }
 
+    void checkUnnamedModuleGroupOption_html4() {
+        checkOutput("overview-summary.html", true,
+                "<div class=\"contentContainer\">\n"
+                + "<div class=\"block\">The overview summary page header.</div>\n"
+                + "</div>\n"
+                + "<div class=\"contentContainer\">\n"
+                + "<table class=\"overviewSummary\" summary=\"Package Summary table, listing packages, and an explanation\">\n"
+                + "<caption><span id=\"t0\" class=\"activeTableTab\"><span>All Packages</span><span class=\"tabEnd\">&nbsp;"
+                + "</span></span><span id=\"t1\" class=\"tableTab\"><span><a href=\"javascript:showGroups(1);\">"
+                + "Package Group 0</a></span><span class=\"tabEnd\">&nbsp;</span></span><span id=\"t2\" "
+                + "class=\"tableTab\"><span><a href=\"javascript:showGroups(2);\">Package Group 1</a></span>"
+                + "<span class=\"tabEnd\">&nbsp;</span></span></caption>");
+    }
+
     void checkGroupOptionPackageOrdering() {
         checkOutput("overview-summary.html", true,
                 "<caption><span id=\"t0\" class=\"activeTableTab\"><span>All Packages</span><span "
@@ -1186,6 +1542,16 @@
     void checkGroupOptionSingleModule() {
         checkOutput("overview-summary.html", true,
                 "<div class=\"contentContainer\">\n"
+                + "<table class=\"overviewSummary\">\n"
+                + "<caption><span>Module Group B</span><span class=\"tabEnd\">&nbsp;</span></caption>");
+        checkOutput("overview-summary.html", false,
+                "<table class=\"overviewSummary\">\n"
+                + "<caption><span>Modules</span><span class=\"tabEnd\">&nbsp;</span></caption>");
+    }
+
+    void checkGroupOptionSingleModule_html4() {
+        checkOutput("overview-summary.html", true,
+                "<div class=\"contentContainer\">\n"
                 + "<table class=\"overviewSummary\" summary=\"Module Summary table, listing modules, and an explanation\">\n"
                 + "<caption><span>Module Group B</span><span class=\"tabEnd\">&nbsp;</span></caption>");
         checkOutput("overview-summary.html", false,
--- a/test/langtools/jdk/javadoc/doclet/testNavigation/TestNavigation.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testNavigation/TestNavigation.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4131628 4664607 7025314 8023700 7198273 8025633 8026567 8081854 8150188 8151743 8196027
+ * @bug      4131628 4664607 7025314 8023700 7198273 8025633 8026567 8081854 8150188 8151743 8196027 8182765
  * @summary  Make sure the Next/Prev Class links iterate through all types.
  *           Make sure the navagation is 2 columns, not 3.
  * @author   jamieh
@@ -42,7 +42,8 @@
 
     @Test
     void test() {
-        javadoc("-d", "out", "-overview", testSrc("overview.html"),
+        javadoc("-d", "out",
+                "-overview", testSrc("overview.html"),
                 "-sourcepath", testSrc,
                 "pkg");
         checkExit(Exit.OK);
@@ -62,7 +63,7 @@
         checkOutput("pkg/I.html", true,
                 // Test for 4664607
                 "<div class=\"skipNav\"><a href=\"#skip.navbar.top\" title=\"Skip navigation links\">Skip navigation links</a></div>\n"
-                + "<a name=\"navbar.top.firstrow\">\n"
+                + "<a id=\"navbar.top.firstrow\">\n"
                 + "<!--   -->\n"
                 + "</a>",
                 "<li><a href=\"../overview-summary.html\">Overview</a></li>");
@@ -76,6 +77,49 @@
                 + "$('.navPadding').css('padding-top', $('.fixedNav').css(\"height\"));\n"
                 + "//-->\n"
                 + "</script>\n"
+                + "</nav>\n"
+                + "</header>\n"
+                + "<!-- ======== START OF CLASS DATA ======== -->");
+
+        checkOutput("pkg/package-summary.html", true,
+                "<!-- ========= END OF TOP NAVBAR ========= -->\n"
+                + "</div>\n"
+                + "<div class=\"navPadding\">&nbsp;</div>\n"
+                + "<script type=\"text/javascript\"><!--\n"
+                + "$('.navPadding').css('padding-top', $('.fixedNav').css(\"height\"));\n"
+                + "//-->\n"
+                + "</script>\n"
+                + "</nav>\n"
+                + "</header>\n"
+                + "<main role=\"main\">\n"
+                + "<div class=\"header\">");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-overview", testSrc("overview.html"),
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/I.html", true,
+                // Test for 4664607
+                "<div class=\"skipNav\"><a href=\"#skip.navbar.top\" title=\"Skip navigation links\">Skip navigation links</a></div>\n"
+                + "<a name=\"navbar.top.firstrow\">\n"
+                + "<!--   -->\n"
+                + "</a>");
+
+        // Remaining tests check for additional padding to offset the fixed navigation bar.
+        checkOutput("pkg/A.html", true,
+                "<!-- ========= END OF TOP NAVBAR ========= -->\n"
+                + "</div>\n"
+                + "<div class=\"navPadding\">&nbsp;</div>\n"
+                + "<script type=\"text/javascript\"><!--\n"
+                + "$('.navPadding').css('padding-top', $('.fixedNav').css(\"height\"));\n"
+                + "//-->\n"
+                + "</script>\n"
                 + "<!-- ======== START OF CLASS DATA ======== -->");
 
         checkOutput("pkg/package-summary.html", true,
@@ -92,7 +136,8 @@
     // Test for checking additional padding to offset the fixed navigation bar in HTML5.
     @Test
     void test1() {
-        javadoc("-d", "out-1", "-html5",
+        javadoc("-d", "out-1",
+                "-html5",
                 "-sourcepath", testSrc,
                 "pkg");
         checkExit(Exit.OK);
@@ -123,7 +168,8 @@
     // Test to make sure that no extra padding for nav bar gets generated if -nonavbar is specified for HTML4.
     @Test
     void test2() {
-        javadoc("-d", "out-2", "-nonavbar",
+        javadoc("-d", "out-2",
+                "-nonavbar",
                 "-sourcepath", testSrc,
                 "pkg");
         checkExit(Exit.OK);
@@ -152,7 +198,9 @@
     // Test to make sure that no extra padding for nav bar gets generated if -nonavbar is specified for HTML5.
     @Test
     void test3() {
-        javadoc("-d", "out-3", "-html5", "-nonavbar",
+        javadoc("-d", "out-3",
+                "-html5",
+                "-nonavbar",
                 "-sourcepath", testSrc,
                 "pkg");
         checkExit(Exit.OK);
--- a/test/langtools/jdk/javadoc/doclet/testNestedGenerics/TestNestedGenerics.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testNestedGenerics/TestNestedGenerics.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      6758050 8025633
+ * @bug      6758050 8025633 8182765
  * @summary  Test HTML output for nested generic types.
  * @author   bpatel
  * @library  ../lib
@@ -48,6 +48,20 @@
 
         checkOutput("pkg/NestedGenerics.html", true,
             "<div class=\"block\">Contains <a " +
+            "href=\"#foo(java.util.Map)\"><code>foo" +
+            "(java.util.Map&lt;A, java.util.Map&lt;A, A&gt;&gt;)</code></a></div>");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/NestedGenerics.html", true,
+            "<div class=\"block\">Contains <a " +
             "href=\"#foo-java.util.Map-\"><code>foo" +
             "(java.util.Map&lt;A, java.util.Map&lt;A, A&gt;&gt;)</code></a></div>");
     }
--- a/test/langtools/jdk/javadoc/doclet/testNewLanguageFeatures/TestNewLanguageFeatures.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testNewLanguageFeatures/TestNewLanguageFeatures.java	Tue Mar 06 10:45:47 2018 -0800
@@ -24,7 +24,7 @@
 /*
  * @test
  * @bug      4789689 4905985 4927164 4827184 4993906 5004549 7025314 7010344 8025633 8026567 8162363
- *           8175200 8186332
+ *           8175200 8186332 8182765
  * @summary  Run Javadoc on a set of source files that demonstrate new
  *           language features.  Check the output to ensure that the new
  *           language features are properly documented.
@@ -46,8 +46,8 @@
     void test() {
         javadoc("-Xdoclint:none",
                 "-d", "out",
-                "-use", "-sourcepath",
-                testSrc,
+                "-use",
+                "-sourcepath", testSrc,
                 "pkg", "pkg1", "pkg2");
         checkExit(Exit.OK);
 
@@ -57,6 +57,21 @@
         checkAnnotationTypeUsage();
     }
 
+    @Test
+    void test_html4() {
+        javadoc("-Xdoclint:none",
+                "-d", "out-html4",
+                "-html4",
+                "-use",
+                "-sourcepath", testSrc,
+                "pkg", "pkg1", "pkg2");
+        checkExit(Exit.OK);
+
+        checkTypeParameters_html4();
+        checkVarArgs_html4();
+        checkAnnotationTypeUsage_html4();
+    }
+
     //=================================
     // ENUM TESTING
     //=================================
@@ -136,7 +151,7 @@
                 "<td class=\"colFirst\"><code><a href=\"TypeParameters.html\" "
                 + "title=\"type parameter in TypeParameters\">E</a>[]</code></td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
-                + "<a href=\"#methodThatReturnsTypeParameterA-E:A-\">"
+                + "<a href=\"#methodThatReturnsTypeParameterA(E%5B%5D)\">"
                 + "methodThatReturnsTypeParameterA</a></span>&#8203;(<a href=\"TypeParameters.html\" "
                 + "title=\"type parameter in TypeParameters\">E</a>[]&nbsp;e)</code>",
                 "<pre>public&nbsp;<a href=\"TypeParameters.html\" "
@@ -146,7 +161,7 @@
                 "<td class=\"colFirst\"><code>&lt;T extends java.lang.Object &amp; java.lang.Comparable&lt;? super T&gt;&gt;"
                 + "<br>T</code></td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
-                + "<a href=\"#methodtThatReturnsTypeParametersB-java.util.Collection-\">"
+                + "<a href=\"#methodtThatReturnsTypeParametersB(java.util.Collection)\">"
                 + "methodtThatReturnsTypeParametersB</a></span>&#8203;(java.util.Collection&lt;? extends T&gt;&nbsp;coll)</code>",
                 "<div class=\"block\">Returns TypeParameters</div>\n",
                 // Method takes a TypeVariable
@@ -154,7 +169,7 @@
                 + "<a href=\"TypeParameters.html\" title=\"type parameter in TypeParameters\">E</a>"
                 + "</code></td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
-                + "<a href=\"#orElseThrow-java.util.function.Supplier-\">"
+                + "<a href=\"#orElseThrow(java.util.function.Supplier)\">"
                 + "orElseThrow</a></span>&#8203;(java.util.function.Supplier&lt;? extends X&gt;&nbsp;exceptionSupplier)</code>"
                 );
 
@@ -231,7 +246,7 @@
                 + "pkg2\">Foo</a></span><span class=\"tabEnd\">&nbsp;</span></caption>",
                 "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest1."
                 + "</span><code><span class=\"memberNameLink\"><a href=\"../"
-                + "ClassUseTest1.html#method-T-\">method</a></span>"
+                + "ClassUseTest1.html#method(T)\">method</a></span>"
                 + "&#8203;(T&nbsp;t)</code></th>",
                 "<caption><span>Fields in <a href=\"../"
                 + "package-summary.html\">pkg2</a> with type parameters of "
@@ -272,7 +287,7 @@
                 + "</span></caption>",
                 "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">"
                 + "ClassUseTest1.</span><code><span class=\"memberNameLink\"><a href=\"../"
-                + "ClassUseTest1.html#method-T-\">method</a></span>"
+                + "ClassUseTest1.html#method(T)\">method</a></span>"
                 + "&#8203;(T&nbsp;t)</code></th>"
         );
 
@@ -295,7 +310,7 @@
                 + "&nbsp;</span></caption>",
                 "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest2."
                 + "</span><code><span class=\"memberNameLink\"><a href=\"../"
-                + "ClassUseTest2.html#method-T-\">method</a></span>"
+                + "ClassUseTest2.html#method(T)\">method</a></span>"
                 + "&#8203;(T&nbsp;t)</code></th>",
                 "<caption><span>Fields in <a href=\"../"
                 + "package-summary.html\">pkg2</a> declared as <a href=\"../"
@@ -336,7 +351,7 @@
                 + "</span></caption>",
                 "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest2."
                 + "</span><code><span class=\"memberNameLink\"><a href=\"../"
-                + "ClassUseTest2.html#method-T-\">method</a></span>"
+                + "ClassUseTest2.html#method(T)\">method</a></span>"
                 + "&#8203;(T&nbsp;t)</code></th>",
                 "<caption><span>Methods in <a href=\"../"
                 + "package-summary.html\">pkg2</a> that return types with "
@@ -371,7 +386,7 @@
                 + "&nbsp;</span></caption>",
                 "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest3"
                 + ".</span><code><span class=\"memberNameLink\"><a href=\"../ClassUseTest3."
-                + "html#method-T-\">method</a></span>&#8203;(T&nbsp;t)</code></th>",
+                + "html#method(T)\">method</a></span>&#8203;(T&nbsp;t)</code></th>",
                 "<td class=\"colFirst\"><code>&lt;T extends <a href=\"../"
                 + "ParamTest2.html\" title=\"class in pkg2\">"
                 + "ParamTest2</a>&lt;java.util.List&lt;? extends <a href=\".."
@@ -400,7 +415,7 @@
                 + "pkg2\">Foo4</a></span><span class=\"tabEnd\">&nbsp;</span></caption>",
                 "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest3."
                 + "</span><code><span class=\"memberNameLink\"><a href=\"../ClassUseTest3."
-                + "html#method-T-\">method</a></span>&#8203;(T&nbsp;t)</code>"
+                + "html#method(T)\">method</a></span>&#8203;(T&nbsp;t)</code>"
                 + "</th>",
                 "<caption><span>Methods in <a href=\"../"
                 + "package-summary.html\">pkg2</a> that return types with "
@@ -434,7 +449,7 @@
                 + "<td class=\"colFirst\"><code>void</code></td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest3."
                 + "</span><code><span class=\"memberNameLink\"><a href=\"../ClassUseTest3."
-                + "html#method-java.util.Set-\">method</a></span>&#8203;(java."
+                + "html#method(java.util.Set)\">method</a></span>&#8203;(java."
                 + "util.Set&lt;<a href=\"../Foo4.html\" title=\""
                 + "class in pkg2\">Foo4</a>&gt;&nbsp;p)</code></th>",
                 "<caption><span>Constructor parameters in <a href=\"../"
@@ -448,6 +463,129 @@
         // TYPE PARAMETER IN INDEX
         //=================================
         checkOutput("index-all.html", true,
+                "<span class=\"memberNameLink\"><a href=\"pkg2/Foo.html#method(java.util.Vector)\">"
+                + "method(Vector&lt;Object&gt;)</a></span>"
+        );
+
+        // TODO: duplicate of previous case; left in delibarately for now to simplify comparison testing
+        //=================================
+        // TYPE PARAMETER IN INDEX
+        //=================================
+        checkOutput("index-all.html", true,
+                "<span class=\"memberNameLink\"><a href=\"pkg2/Foo.html#method(java.util.Vector)\">"
+                + "method(Vector&lt;Object&gt;)</a></span>"
+        );
+
+        // No type parameters in class frame.
+        checkOutput("allclasses-frame.html", false,
+                "<a href=\"../pkg/TypeParameters.html\" title=\"class in pkg\">"
+                + "TypeParameters</a>&lt;<a href=\"../pkg/TypeParameters.html\" "
+                + "title=\"type parameter in TypeParameters\">E</a>&gt;"
+        );
+
+    }
+
+    //=================================
+    // TYPE PARAMETER TESTING
+    //=================================
+
+    void checkTypeParameters_html4() {
+        checkOutput("pkg/TypeParameters.html", true,
+                // Make sure the header is correct.
+                "<td class=\"colFirst\"><code><a href=\"TypeParameters.html\" "
+                + "title=\"type parameter in TypeParameters\">E</a>[]</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#methodThatReturnsTypeParameterA-E:A-\">"
+                + "methodThatReturnsTypeParameterA</a></span>&#8203;(<a href=\"TypeParameters.html\" "
+                + "title=\"type parameter in TypeParameters\">E</a>[]&nbsp;e)</code>",
+                "<td class=\"colFirst\"><code>&lt;T extends java.lang.Object &amp; java.lang.Comparable&lt;? super T&gt;&gt;"
+                + "<br>T</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#methodtThatReturnsTypeParametersB-java.util.Collection-\">"
+                + "methodtThatReturnsTypeParametersB</a></span>&#8203;(java.util.Collection&lt;? extends T&gt;&nbsp;coll)</code>",
+                "<div class=\"block\">Returns TypeParameters</div>\n",
+                // Method takes a TypeVariable
+                "<td class=\"colFirst\"><code>&lt;X extends java.lang.Throwable&gt;<br>"
+                + "<a href=\"TypeParameters.html\" title=\"type parameter in TypeParameters\">E</a>"
+                + "</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#orElseThrow-java.util.function.Supplier-\">"
+                + "orElseThrow</a></span>&#8203;(java.util.function.Supplier&lt;? extends X&gt;&nbsp;exceptionSupplier)</code>"
+                );
+
+        //==============================================================
+        // Test Class-Use Documentation for Type Parameters.
+        //==============================================================
+        // ClassUseTest1: <T extends Foo & Foo2>
+        checkOutput("pkg2/class-use/Foo.html", true,
+                "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest1."
+                + "</span><code><span class=\"memberNameLink\"><a href=\"../"
+                + "ClassUseTest1.html#method-T-\">method</a></span>"
+                + "&#8203;(T&nbsp;t)</code></th>"
+        );
+
+        checkOutput("pkg2/class-use/Foo2.html", true,
+                "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">"
+                + "ClassUseTest1.</span><code><span class=\"memberNameLink\"><a href=\"../"
+                + "ClassUseTest1.html#method-T-\">method</a></span>"
+                + "&#8203;(T&nbsp;t)</code></th>"
+        );
+
+        // ClassUseTest2: <T extends ParamTest<Foo3>>
+        checkOutput("pkg2/class-use/ParamTest.html", true,
+                "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest2."
+                + "</span><code><span class=\"memberNameLink\"><a href=\"../"
+                + "ClassUseTest2.html#method-T-\">method</a></span>"
+                + "&#8203;(T&nbsp;t)</code></th>"
+        );
+
+        checkOutput("pkg2/class-use/Foo3.html", true,
+                "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest2."
+                + "</span><code><span class=\"memberNameLink\"><a href=\"../"
+                + "ClassUseTest2.html#method-T-\">method</a></span>"
+                + "&#8203;(T&nbsp;t)</code></th>"
+        );
+
+        // ClassUseTest3: <T extends ParamTest2<List<? extends Foo4>>>
+        checkOutput("pkg2/class-use/ParamTest2.html", true,
+                "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest3"
+                + ".</span><code><span class=\"memberNameLink\"><a href=\"../ClassUseTest3."
+                + "html#method-T-\">method</a></span>&#8203;(T&nbsp;t)</code></th>"
+        );
+
+        checkOutput("pkg2/class-use/Foo4.html", true,
+                "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest3."
+                + "</span><code><span class=\"memberNameLink\"><a href=\"../ClassUseTest3."
+                + "html#method-T-\">method</a></span>&#8203;(T&nbsp;t)</code>"
+                + "</th>"
+        );
+
+        // Type parameters in constructor and method args
+        checkOutput("pkg2/class-use/Foo4.html", true,
+                "<caption><span>Method parameters in <a href=\"../"
+                + "package-summary.html\">pkg2</a> with type arguments of "
+                + "type <a href=\"../Foo4.html\" title=\"class in "
+                + "pkg2\">Foo4</a></span><span class=\"tabEnd\">&nbsp;"
+                + "</span></caption>\n"
+                + "<tr>\n"
+                + "<th class=\"colFirst\" scope=\"col\">Modifier and Type</th>\n"
+                + "<th class=\"colSecond\" scope=\"col\">Method</th>\n"
+                + "<th class=\"colLast\" scope=\"col\">Description</th>\n"
+                + "</tr>\n"
+                + "<tbody>\n"
+                + "<tr class=\"altColor\">\n"
+                + "<td class=\"colFirst\"><code>void</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><span class=\"typeNameLabel\">ClassUseTest3."
+                + "</span><code><span class=\"memberNameLink\"><a href=\"../ClassUseTest3."
+                + "html#method-java.util.Set-\">method</a></span>&#8203;(java."
+                + "util.Set&lt;<a href=\"../Foo4.html\" title=\""
+                + "class in pkg2\">Foo4</a>&gt;&nbsp;p)</code></th>"
+        );
+
+        //=================================
+        // TYPE PARAMETER IN INDEX
+        //=================================
+        checkOutput("index-all.html", true,
                 "<span class=\"memberNameLink\"><a href=\"pkg2/Foo.html#method-java.util.Vector-\">"
                 + "method(Vector&lt;Object&gt;)</a></span>"
         );
@@ -461,13 +599,6 @@
                 + "method(Vector&lt;Object&gt;)</a></span>"
         );
 
-        // No type parameters in class frame.
-        checkOutput("allclasses-frame.html", false,
-                "<a href=\"../pkg/TypeParameters.html\" title=\"class in pkg\">"
-                + "TypeParameters</a>&lt;<a href=\"../pkg/TypeParameters.html\" "
-                + "title=\"type parameter in TypeParameters\">E</a>&gt;"
-        );
-
     }
 
     //=================================
@@ -477,6 +608,18 @@
         checkOutput("pkg/VarArgs.html", true,
                 "(int...&nbsp;i)",
                 "(int[][]...&nbsp;i)",
+                "(int[]...)",
+                "<a href=\"TypeParameters.html\" title=\"class in pkg\">"
+                + "TypeParameters</a>...&nbsp;t");
+    }
+
+    //=================================
+    // VAR ARG TESTING
+    //=================================
+    void checkVarArgs_html4() {
+        checkOutput("pkg/VarArgs.html", true,
+                "(int...&nbsp;i)",
+                "(int[][]...&nbsp;i)",
                 "-int:A...-",
                 "<a href=\"TypeParameters.html\" title=\"class in pkg\">"
                 + "TypeParameters</a>...&nbsp;t");
@@ -520,16 +663,16 @@
     void checkAnnotationTypeUsage() {
         checkOutput("pkg/package-summary.html", true,
                 // PACKAGE
-                "<a href=\"AnnotationType.html\" title=\"annotation in pkg\">@AnnotationType</a>(<a href=\"AnnotationType.html#optional--\">optional</a>=\"Package Annotation\",\n"
-                + "                <a href=\"AnnotationType.html#required--\">required</a>=1994)");
+                "<a href=\"AnnotationType.html\" title=\"annotation in pkg\">@AnnotationType</a>(<a href=\"AnnotationType.html#optional()\">optional</a>=\"Package Annotation\",\n"
+                + "                <a href=\"AnnotationType.html#required()\">required</a>=1994)");
 
         checkOutput("pkg/AnnotationTypeUsage.html", true,
                 // CLASS
                 "<pre><a href=\"AnnotationType.html\" "
                 + "title=\"annotation in pkg\">@AnnotationType</a>("
-                + "<a href=\"AnnotationType.html#optional--\">optional</a>"
+                + "<a href=\"AnnotationType.html#optional()\">optional</a>"
                 + "=\"Class Annotation\",\n"
-                + "                <a href=\"AnnotationType.html#required--\">"
+                + "                <a href=\"AnnotationType.html#required()\">"
                 + "required</a>=1994)\n"
                 + "public class <span class=\"typeNameLabel\">"
                 + "AnnotationTypeUsage</span>\n"
@@ -537,41 +680,41 @@
                 // FIELD
                 "<pre><a href=\"AnnotationType.html\" "
                 + "title=\"annotation in pkg\">@AnnotationType</a>("
-                + "<a href=\"AnnotationType.html#optional--\">optional</a>"
+                + "<a href=\"AnnotationType.html#optional()\">optional</a>"
                 + "=\"Field Annotation\",\n"
-                + "                <a href=\"AnnotationType.html#required--\">"
+                + "                <a href=\"AnnotationType.html#required()\">"
                 + "required</a>=1994)\n"
                 + "public&nbsp;int field</pre>",
                 // CONSTRUCTOR
                 "<pre><a href=\"AnnotationType.html\" "
                 + "title=\"annotation in pkg\">@AnnotationType</a>("
-                + "<a href=\"AnnotationType.html#optional--\">optional</a>"
+                + "<a href=\"AnnotationType.html#optional()\">optional</a>"
                 + "=\"Constructor Annotation\",\n"
-                + "                <a href=\"AnnotationType.html#required--\">"
+                + "                <a href=\"AnnotationType.html#required()\">"
                 + "required</a>=1994)\n"
                 + "public&nbsp;AnnotationTypeUsage()</pre>",
                 // METHOD
                 "<pre><a href=\"AnnotationType.html\" "
                 + "title=\"annotation in pkg\">@AnnotationType</a>("
-                + "<a href=\"AnnotationType.html#optional--\">optional</a>"
+                + "<a href=\"AnnotationType.html#optional()\">optional</a>"
                 + "=\"Method Annotation\",\n"
-                + "                <a href=\"AnnotationType.html#required--\">"
+                + "                <a href=\"AnnotationType.html#required()\">"
                 + "required</a>=1994)\n"
                 + "public&nbsp;void&nbsp;method()</pre>",
                 // METHOD PARAMS
                 "<pre>public&nbsp;void&nbsp;methodWithParams&#8203;("
                 + "<a href=\"AnnotationType.html\" title=\"annotation in pkg\">"
-                + "@AnnotationType</a>(<a href=\"AnnotationType.html#optional--\">"
+                + "@AnnotationType</a>(<a href=\"AnnotationType.html#optional()\">"
                 + "optional</a>=\"Parameter Annotation\",<a "
-                + "href=\"AnnotationType.html#required--\">required</a>=1994)\n"
+                + "href=\"AnnotationType.html#required()\">required</a>=1994)\n"
                 + "                             int&nbsp;documented,\n"
                 + "                             int&nbsp;undocmented)</pre>",
                 // CONSTRUCTOR PARAMS
                 "<pre>public&nbsp;AnnotationTypeUsage&#8203;(<a "
                 + "href=\"AnnotationType.html\" title=\"annotation in pkg\">"
-                + "@AnnotationType</a>(<a href=\"AnnotationType.html#optional--\">"
+                + "@AnnotationType</a>(<a href=\"AnnotationType.html#optional()\">"
                 + "optional</a>=\"Constructor Param Annotation\",<a "
-                + "href=\"AnnotationType.html#required--\">required</a>=1994)\n"
+                + "href=\"AnnotationType.html#required()\">required</a>=1994)\n"
                 + "                           int&nbsp;documented,\n"
                 + "                           int&nbsp;undocmented)</pre>");
 
@@ -648,6 +791,101 @@
         //=================================
         checkOutput("pkg1/B.html", true,
                 // Integer
+                "<a href=\"A.html#d()\">d</a>=3.14,",
+                // Double
+                "<a href=\"A.html#d()\">d</a>=3.14,",
+                // Boolean
+                "<a href=\"A.html#b()\">b</a>=true,",
+                // String
+                "<a href=\"A.html#s()\">s</a>=\"sigh\",",
+                // Class
+                "<a href=\"A.html#c()\">c</a>=<a href=\"../pkg2/Foo.html\" title=\"class in pkg2\">Foo.class</a>,",
+                // Bounded Class
+                "<a href=\"A.html#w()\">w</a>=<a href=\"../pkg/TypeParameterSubClass.html\" title=\"class in pkg\">TypeParameterSubClass.class</a>,",
+                // Enum
+                "<a href=\"A.html#e()\">e</a>=<a href=\"../pkg/Coin.html#Penny\">Penny</a>,",
+                // Annotation Type
+                "<a href=\"A.html#a()\">a</a>=<a href=\"../pkg/AnnotationType.html\" title=\"annotation in pkg\">@AnnotationType</a>(<a href=\"../pkg/AnnotationType.html#optional()\">optional</a>=\"foo\",<a href=\"../pkg/AnnotationType.html#required()\">required</a>=1994),",
+                // String Array
+                "<a href=\"A.html#sa()\">sa</a>={\"up\",\"down\"},",
+                // Primitive
+                "<a href=\"A.html#primitiveClassTest()\">primitiveClassTest</a>=boolean.class,");
+
+        // XXX:  Add array test case after this if fixed:
+        //5020899: Incorrect internal representation of class-valued annotation elements
+        // Make sure that annotations are surrounded by <pre> and </pre>
+        checkOutput("pkg1/B.html", true,
+                "<pre><a href=\"A.html\" title=\"annotation in pkg1\">@A</a>",
+                "public interface <span class=\"typeNameLabel\">B</span></pre>");
+
+    }
+
+    //=================================
+    // ANNOTATION TYPE USAGE TESTING
+    //=================================
+    void checkAnnotationTypeUsage_html4() {
+        checkOutput("pkg/package-summary.html", true,
+                // PACKAGE
+                "<a href=\"AnnotationType.html\" title=\"annotation in pkg\">@AnnotationType</a>(<a href=\"AnnotationType.html#optional--\">optional</a>=\"Package Annotation\",\n"
+                + "                <a href=\"AnnotationType.html#required--\">required</a>=1994)");
+
+        checkOutput("pkg/AnnotationTypeUsage.html", true,
+                // CLASS
+                "<pre><a href=\"AnnotationType.html\" "
+                + "title=\"annotation in pkg\">@AnnotationType</a>("
+                + "<a href=\"AnnotationType.html#optional--\">optional</a>"
+                + "=\"Class Annotation\",\n"
+                + "                <a href=\"AnnotationType.html#required--\">"
+                + "required</a>=1994)\n"
+                + "public class <span class=\"typeNameLabel\">"
+                + "AnnotationTypeUsage</span>\n"
+                + "extends java.lang.Object</pre>",
+                // FIELD
+                "<pre><a href=\"AnnotationType.html\" "
+                + "title=\"annotation in pkg\">@AnnotationType</a>("
+                + "<a href=\"AnnotationType.html#optional--\">optional</a>"
+                + "=\"Field Annotation\",\n"
+                + "                <a href=\"AnnotationType.html#required--\">"
+                + "required</a>=1994)\n"
+                + "public&nbsp;int field</pre>",
+                // CONSTRUCTOR
+                "<pre><a href=\"AnnotationType.html\" "
+                + "title=\"annotation in pkg\">@AnnotationType</a>("
+                + "<a href=\"AnnotationType.html#optional--\">optional</a>"
+                + "=\"Constructor Annotation\",\n"
+                + "                <a href=\"AnnotationType.html#required--\">"
+                + "required</a>=1994)\n"
+                + "public&nbsp;AnnotationTypeUsage()</pre>",
+                // METHOD
+                "<pre><a href=\"AnnotationType.html\" "
+                + "title=\"annotation in pkg\">@AnnotationType</a>("
+                + "<a href=\"AnnotationType.html#optional--\">optional</a>"
+                + "=\"Method Annotation\",\n"
+                + "                <a href=\"AnnotationType.html#required--\">"
+                + "required</a>=1994)\n"
+                + "public&nbsp;void&nbsp;method()</pre>",
+                // METHOD PARAMS
+                "<pre>public&nbsp;void&nbsp;methodWithParams&#8203;("
+                + "<a href=\"AnnotationType.html\" title=\"annotation in pkg\">"
+                + "@AnnotationType</a>(<a href=\"AnnotationType.html#optional--\">"
+                + "optional</a>=\"Parameter Annotation\",<a "
+                + "href=\"AnnotationType.html#required--\">required</a>=1994)\n"
+                + "                             int&nbsp;documented,\n"
+                + "                             int&nbsp;undocmented)</pre>",
+                // CONSTRUCTOR PARAMS
+                "<pre>public&nbsp;AnnotationTypeUsage&#8203;(<a "
+                + "href=\"AnnotationType.html\" title=\"annotation in pkg\">"
+                + "@AnnotationType</a>(<a href=\"AnnotationType.html#optional--\">"
+                + "optional</a>=\"Constructor Param Annotation\",<a "
+                + "href=\"AnnotationType.html#required--\">required</a>=1994)\n"
+                + "                           int&nbsp;documented,\n"
+                + "                           int&nbsp;undocmented)</pre>");
+
+        //=================================
+        // ANNOTATION TYPE USAGE TESTING (All Different Types).
+        //=================================
+        checkOutput("pkg1/B.html", true,
+                // Integer
                 "<a href=\"A.html#d--\">d</a>=3.14,",
                 // Double
                 "<a href=\"A.html#d--\">d</a>=3.14,",
@@ -667,14 +905,5 @@
                 "<a href=\"A.html#sa--\">sa</a>={\"up\",\"down\"},",
                 // Primitive
                 "<a href=\"A.html#primitiveClassTest--\">primitiveClassTest</a>=boolean.class,");
-
-        // XXX:  Add array test case after this if fixed:
-        //5020899: Incorrect internal representation of class-valued annotation elements
-        // Make sure that annotations are surrounded by <pre> and </pre>
-        checkOutput("pkg1/B.html", true,
-                "<pre><a href=\"A.html\" title=\"annotation in pkg1\">@A</a>",
-                "public interface <span class=\"typeNameLabel\">B</span></pre>");
-
     }
-
 }
--- a/test/langtools/jdk/javadoc/doclet/testNonInlineHtmlTagRemoval/TestNonInlineHtmlTagRemoval.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testNonInlineHtmlTagRemoval/TestNonInlineHtmlTagRemoval.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      8048628 8174715
+ * @bug      8048628 8174715 8182765
  * @summary  Verify html inline tags are removed correctly in the first sentence.
  * @library  ../lib
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -43,7 +43,11 @@
         javadoc("-d", "out1",
                 "-sourcepath", testSrc,
                 testSrc("C.java"));
-        checkExit(Exit.OK);
+        checkExit(Exit.ERROR);
+
+        checkOutput(Output.OUT, true,
+                "attribute not supported in HTML5: compact",
+                "attribute not supported in HTML5: type");
 
         checkOutput("C.html", true,
                 "<div class=\"block\">case1   end of sentence.</div>",
@@ -60,6 +64,15 @@
     }
 
     @Test
+    void testPositive_html4() {
+        javadoc("-d", "out1-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                testSrc("C.java"));
+        checkExit(Exit.OK);
+    }
+
+    @Test
     void testNegative() {
         javadoc("-d", "out2",
                 "-sourcepath", testSrc,
--- a/test/langtools/jdk/javadoc/doclet/testOptions/TestOptions.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testOptions/TestOptions.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4749567 8071982 8175200 8186332 8185371
+ * @bug      4749567 8071982 8175200 8186332 8185371 8182765
  * @summary  Test the output for -header, -footer, -nooverview, -nodeprecatedlist, -nonavbar, -notree,
  *           -stylesheetfile, --main-stylesheet, --add-stylesheet options.
  * @author   Bhavesh Patel
@@ -198,7 +198,7 @@
 
         checkOutput("src-html/linksource/AnnotationTypeField.html", true,
                 "<title>Source code</title>",
-                "<span class=\"sourceLineNo\">031</span><a name=\"line.31\">"
+                "<span class=\"sourceLineNo\">031</span><a id=\"line.31\">"
                 + "@Documented public @interface AnnotationTypeField {</a>");
 
         checkOutput("linksource/Properties.html", true,
@@ -211,7 +211,7 @@
 
         checkOutput("src-html/linksource/Properties.html", true,
                 "<title>Source code</title>",
-                "<span class=\"sourceLineNo\">031</span><a name=\"line.31\">    "
+                "<span class=\"sourceLineNo\">031</span><a id=\"line.31\">    "
                 + "public Object someProperty() {</a>");
 
         checkOutput("linksource/SomeClass.html", true,
@@ -226,13 +226,13 @@
 
         checkOutput("src-html/linksource/SomeClass.html", true,
                 "<title>Source code</title>",
-                "<span class=\"sourceLineNo\">029</span><a name=\"line.29\">"
+                "<span class=\"sourceLineNo\">029</span><a id=\"line.29\">"
                 + "public class SomeClass {</a>",
-                "<span class=\"sourceLineNo\">031</span><a name=\"line.31\">    "
+                "<span class=\"sourceLineNo\">031</span><a id=\"line.31\">    "
                 + "public int field;</a>",
-                "<span class=\"sourceLineNo\">033</span><a name=\"line.33\">    "
+                "<span class=\"sourceLineNo\">033</span><a id=\"line.33\">    "
                 + "public SomeClass() {</a>",
-                "<span class=\"sourceLineNo\">036</span><a name=\"line.36\">    "
+                "<span class=\"sourceLineNo\">036</span><a id=\"line.36\">    "
                 + "public int method() {</a>");
 
         checkOutput("linksource/SomeEnum.html", true,
@@ -244,6 +244,40 @@
                 + "\"../src-html/linksource/SomeEnum.html#line.30\">VALUE2</a></pre>");
 
         checkOutput("src-html/linksource/SomeEnum.html", true,
+                "<span class=\"sourceLineNo\">029</span><a id=\"line.29\">    VALUE1,</a>",
+                "<span class=\"sourceLineNo\">030</span><a id=\"line.30\">    VALUE2</a>");
+    }
+
+    @Test
+    void testLinkSource_html4() {
+        javadoc("-d", "out-9-html4",
+                "-html4",
+                "-linksource",
+                "-javafx",
+                "-sourcepath", testSrc,
+                "-package",
+                "linksource");
+        checkExit(Exit.OK);
+
+        checkOutput("src-html/linksource/AnnotationTypeField.html", true,
+                "<span class=\"sourceLineNo\">031</span><a name=\"line.31\">"
+                + "@Documented public @interface AnnotationTypeField {</a>");
+
+        checkOutput("src-html/linksource/Properties.html", true,
+                "<span class=\"sourceLineNo\">031</span><a name=\"line.31\">    "
+                + "public Object someProperty() {</a>");
+
+        checkOutput("src-html/linksource/SomeClass.html", true,
+                "<span class=\"sourceLineNo\">029</span><a name=\"line.29\">"
+                + "public class SomeClass {</a>",
+                "<span class=\"sourceLineNo\">031</span><a name=\"line.31\">    "
+                + "public int field;</a>",
+                "<span class=\"sourceLineNo\">033</span><a name=\"line.33\">    "
+                + "public SomeClass() {</a>",
+                "<span class=\"sourceLineNo\">036</span><a name=\"line.36\">    "
+                + "public int method() {</a>");
+
+        checkOutput("src-html/linksource/SomeEnum.html", true,
                 "<span class=\"sourceLineNo\">029</span><a name=\"line.29\">    VALUE1,</a>",
                 "<span class=\"sourceLineNo\">030</span><a name=\"line.30\">    VALUE2</a>");
     }
--- a/test/langtools/jdk/javadoc/doclet/testOrdering/TestOrdering.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testOrdering/TestOrdering.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8039410 8042601 8042829 8049393 8050031 8155061 8155995 8167967 8169813
+ * @bug 8039410 8042601 8042829 8049393 8050031 8155061 8155995 8167967 8169813 8182765
  * @summary test to determine if members are ordered correctly
  * @library ../lib/
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -93,9 +93,9 @@
             String contents = tester.readFile(usePage);
             // check constructors
             tester.checking("constructors");
-            int idx1 = contents.indexOf("C.html#C-UsedInC");
-            int idx2 = contents.indexOf("C.html#C-UsedInC-int");
-            int idx3 = contents.indexOf("C.html#C-UsedInC-java.lang.String");
+            int idx1 = contents.indexOf("C.html#%3Cinit%3E(UsedInC");
+            int idx2 = contents.indexOf("C.html#%3Cinit%3E(UsedInC,int");
+            int idx3 = contents.indexOf("C.html#%3Cinit%3E(UsedInC,java.lang.String");
             if (idx1 == -1 || idx2 == -1 || idx3 == -1) {
                 tester.failed("ctor strings not found");
             } else if (idx1 > idx2 || idx2 > idx3 || idx1 > idx3) {
@@ -106,8 +106,8 @@
 
             // check methods
             tester.checking("methods");
-            idx1 = contents.indexOf("C.html#ymethod-int");
-            idx2 = contents.indexOf("C.html#ymethod-java.lang.String");
+            idx1 = contents.indexOf("C.html#ymethod(int");
+            idx2 = contents.indexOf("C.html#ymethod(java.lang.String");
             if (idx1 == -1 || idx2 == -1) {
                 tester.failed("#ymethod strings not found");
             } else if (idx1 > idx2) {
@@ -135,42 +135,42 @@
             checkClassUseOrdering("pkg1/class-use/UsedClass.html");
 
             tester.checkOrder("pkg1/class-use/UsedClass.html",
-                    "../MethodOrder.html#m--",
-                    "../MethodOrder.html#m-byte:A-",
-                    "../MethodOrder.html#m-double-",
-                    "../MethodOrder.html#m-double-double-",
-                    "../MethodOrder.html#m-double-java.lang.Double-",
-                    "../MethodOrder.html#m-int-",
-                    "../MethodOrder.html#m-int-int-",
-                    "../MethodOrder.html#m-int-java.lang.Integer-",
-                    "../MethodOrder.html#m-long-",
-                    "../MethodOrder.html#m-long-long-",
-                    "../MethodOrder.html#m-long-java.lang.Long-",
-                    "../MethodOrder.html#m-long-java.lang.Long...-",
-                    "../MethodOrder.html#m-java.lang.Double-",
-                    "../MethodOrder.html#m-java.lang.Double-double-",
-                    "../MethodOrder.html#m-java.lang.Double-java.lang.Double-",
-                    "../MethodOrder.html#m-java.lang.Integer-",
-                    "../MethodOrder.html#m-java.lang.Integer-int-",
-                    "../MethodOrder.html#m-java.lang.Integer-java.lang.Integer-",
-                    "../MethodOrder.html#m-java.lang.Object:A-",
-                    "../MethodOrder.html#m-java.util.ArrayList-",
-                    "../MethodOrder.html#m-java.util.Collection-",
-                    "../MethodOrder.html#m-java.util.List-");
+                    "../MethodOrder.html#m()",
+                    "../MethodOrder.html#m(byte%5B%5D)",
+                    "../MethodOrder.html#m(double)",
+                    "../MethodOrder.html#m(double,double)",
+                    "../MethodOrder.html#m(double,java.lang.Double)",
+                    "../MethodOrder.html#m(int)",
+                    "../MethodOrder.html#m(int,int)",
+                    "../MethodOrder.html#m(int,java.lang.Integer)",
+                    "../MethodOrder.html#m(long)",
+                    "../MethodOrder.html#m(long,long)",
+                    "../MethodOrder.html#m(long,java.lang.Long)",
+                    "../MethodOrder.html#m(long,java.lang.Long...)",
+                    "../MethodOrder.html#m(java.lang.Double)",
+                    "../MethodOrder.html#m(java.lang.Double,double)",
+                    "../MethodOrder.html#m(java.lang.Double,java.lang.Double)",
+                    "../MethodOrder.html#m(java.lang.Integer)",
+                    "../MethodOrder.html#m(java.lang.Integer,int)",
+                    "../MethodOrder.html#m(java.lang.Integer,java.lang.Integer)",
+                    "../MethodOrder.html#m(java.lang.Object%5B%5D)",
+                    "../MethodOrder.html#m(java.util.ArrayList)",
+                    "../MethodOrder.html#m(java.util.Collection)",
+                    "../MethodOrder.html#m(java.util.List)");
 
             tester.checkOrder("pkg1/class-use/UsedClass.html",
-                    "../MethodOrder.html#tpm-pkg1.UsedClass-",
-                    "../MethodOrder.html#tpm-pkg1.UsedClass-pkg1.UsedClass-",
-                    "../MethodOrder.html#tpm-pkg1.UsedClass-pkg1.UsedClass:A-",
-                    "../MethodOrder.html#tpm-pkg1.UsedClass-java.lang.String-");
+                    "../MethodOrder.html#tpm(pkg1.UsedClass)",
+                    "../MethodOrder.html#tpm(pkg1.UsedClass,pkg1.UsedClass)",
+                    "../MethodOrder.html#tpm(pkg1.UsedClass,pkg1.UsedClass%5B%5D)",
+                    "../MethodOrder.html#tpm(pkg1.UsedClass,java.lang.String)");
 
             tester.checkOrder("pkg1/class-use/UsedClass.html",
-                    "../A.html#A-pkg1.UsedClass-",
-                    "../B.A.html#A-pkg1.UsedClass-",
-                    "../B.html#B-pkg1.UsedClass-",
-                    "../A.C.html#C-pkg1.UsedClass-java.lang.Object:A-",
-                    "../A.C.html#C-pkg1.UsedClass-java.util.Collection-",
-                    "../A.C.html#C-pkg1.UsedClass-java.util.List-");
+                    "../A.html#%3Cinit%3E(pkg1.UsedClass)",
+                    "../B.A.html#%3Cinit%3E(pkg1.UsedClass)",
+                    "../B.html#%3Cinit%3E(pkg1.UsedClass)",
+                    "../A.C.html#%3Cinit%3E(pkg1.UsedClass,java.lang.Object%5B%5D)",
+                    "../A.C.html#%3Cinit%3E(pkg1.UsedClass,java.util.Collection)",
+                    "../A.C.html#%3Cinit%3E(pkg1.UsedClass,java.util.List)");
 
             tester.checkOrder("pkg1/ImplementsOrdering.html",
                     "<dd><code>close</code>&nbsp;in interface&nbsp;<code>java.lang.AutoCloseable</code></dd>",
@@ -213,7 +213,7 @@
         void checkClassUseOrdering(String usePage) {
             checkClassUseOrdering(usePage, "C#ITERATION#.html#zfield");
             checkClassUseOrdering(usePage, "C#ITERATION#.html#fieldInC#ITERATION#");
-            checkClassUseOrdering(usePage, "C#ITERATION#.html#zmethod-pkg1.UsedClass");
+            checkClassUseOrdering(usePage, "C#ITERATION#.html#zmethod(pkg1.UsedClass");
             checkClassUseOrdering(usePage, "C#ITERATION#.html#methodInC#ITERATION#");
         }
 
@@ -346,17 +346,17 @@
         };
 
         static String expectedMethodOrdering[] = {
-            "Add.html#add--",
-            "Add.html#add-double-",
-            "Add.html#add-double-byte-",
-            "Add.html#add-double-double-",
-            "Add.html#add-double-java.lang.Double-",
-            "Add.html#add-float-",
-            "Add.html#add-float-int-",
-            "Add.html#add-int-",
-            "Add.html#add-int-float-",
-            "Add.html#add-java.lang.Double-",
-            "Add.html#add-java.lang.Integer-"
+            "Add.html#add()",
+            "Add.html#add(double)",
+            "Add.html#add(double,byte)",
+            "Add.html#add(double,double)",
+            "Add.html#add(double,java.lang.Double)",
+            "Add.html#add(float)",
+            "Add.html#add(float,int)",
+            "Add.html#add(int)",
+            "Add.html#add(int,float)",
+            "Add.html#add(java.lang.Double)",
+            "Add.html#add(java.lang.Integer)"
         };
 
         static String expectedPackageOrdering[] = {
@@ -593,10 +593,10 @@
 
             tester.checkOrder("pkg5/AnnoOptionalTest.html",
                     "<h3>Optional Element Summary</h3>",
-                    "<a href=\"#four--\">four</a>",
-                    "<a href=\"#one--\">one</a>",
-                    "<a href=\"#three--\">three</a>",
-                    "<a href=\"#two--\">two</a>",
+                    "<a href=\"#four()\">four</a>",
+                    "<a href=\"#one()\">one</a>",
+                    "<a href=\"#three()\">three</a>",
+                    "<a href=\"#two()\">two</a>",
                     "<h3>Element Detail</h3>",
                     "<h4>one</h4>",
                     "<h4>two</h4>",
@@ -605,10 +605,10 @@
 
             tester.checkOrder("pkg5/AnnoRequiredTest.html",
                     "<h3>Required Element Summary</h3>",
-                    "<a href=\"#four--\">four</a>",
-                    "<a href=\"#one--\">one</a>",
-                    "<a href=\"#three--\">three</a>",
-                    "<a href=\"#two--\">two</a>",
+                    "<a href=\"#four()\">four</a>",
+                    "<a href=\"#one()\">one</a>",
+                    "<a href=\"#three()\">three</a>",
+                    "<a href=\"#two()\">two</a>",
                     "<h3>Element Detail</h3>",
                     "<h4>one</h4>",
                     "<h4>two</h4>",
@@ -617,15 +617,15 @@
 
             tester.checkOrder("pkg5/CtorTest.html",
                     "<h3>Constructor Summary</h3>",
-                    "<a href=\"#CtorTest-int-\"",
-                    "<a href=\"#CtorTest-int-int-\"",
-                    "<a href=\"#CtorTest-int-int-int-\"",
-                    "<a href=\"#CtorTest-int-int-int-int-\"",
+                    "<a href=\"#%3Cinit%3E(int)\"",
+                    "<a href=\"#%3Cinit%3E(int,int)\"",
+                    "<a href=\"#%3Cinit%3E(int,int,int)\"",
+                    "<a href=\"#%3Cinit%3E(int,int,int,int)\"",
                     "<h3>Constructor Detail</h3>",
-                    "<a name=\"CtorTest-int-int-int-int-\">",
-                    "<a name=\"CtorTest-int-int-int-\">",
-                    "<a name=\"CtorTest-int-int-\">",
-                    "<a name=\"CtorTest-int-\">");
+                    "<a id=\"&lt;init&gt;(int,int,int,int)\">",
+                    "<a id=\"&lt;init&gt;(int,int,int)\">",
+                    "<a id=\"&lt;init&gt;(int,int)\">",
+                    "<a id=\"&lt;init&gt;(int)\">");
 
             tester.checkOrder("pkg5/EnumTest.html",
                     "<h3>Enum Constant Summary</h3>",
@@ -653,10 +653,10 @@
 
             tester.checkOrder("pkg5/IntfTest.html",
                     "<h3>Method Summary</h3>",
-                    "<a href=\"#four--\">four</a>",
-                    "<a href=\"#one--\">one</a>",
-                    "<a href=\"#three--\">three</a>",
-                    "<a href=\"#two--\">two</a>",
+                    "<a href=\"#four()\">four</a>",
+                    "<a href=\"#one()\">one</a>",
+                    "<a href=\"#three()\">three</a>",
+                    "<a href=\"#two()\">two</a>",
                     "<h3>Method Detail</h3>",
                     "<h4>one</h4>",
                     "<h4>two</h4>",
@@ -665,10 +665,10 @@
 
             tester.checkOrder("pkg5/MethodTest.html",
                     "<h3>Method Summary</h3>",
-                    "<a href=\"#four--\">four</a>",
-                    "<a href=\"#one--\">one</a>",
-                    "<a href=\"#three--\">three</a>",
-                    "<a href=\"#two--\">two</a>",
+                    "<a href=\"#four()\">four</a>",
+                    "<a href=\"#one()\">one</a>",
+                    "<a href=\"#three()\">three</a>",
+                    "<a href=\"#two()\">two</a>",
                     "<h3>Method Detail</h3>",
                     "<h4>one</h4>",
                     "<h4>two</h4>",
@@ -686,6 +686,25 @@
                     "<h4>twoProperty</h4>",
                     "<h4>threeProperty</h4>",
                     "<h4>fourProperty</h4>");
+
+            tester.javadoc("-d", "out-5-html4",
+                    "-html4",
+                    "-javafx",
+                    "-sourcepath", tester.testSrc(new File(".").getPath()),
+                    "pkg5"
+            );
+
+            tester.checkExit(Exit.OK);
+
+            tester.checkOrder("pkg5/CtorTest.html",
+                    "<a href=\"#CtorTest-int-\"",
+                    "<a href=\"#CtorTest-int-int-\"",
+                    "<a href=\"#CtorTest-int-int-int-\"",
+                    "<a href=\"#CtorTest-int-int-int-int-\"",
+                    "<a name=\"CtorTest-int-int-int-int-\">",
+                    "<a name=\"CtorTest-int-int-int-\">",
+                    "<a name=\"CtorTest-int-int-\">",
+                    "<a name=\"CtorTest-int-\">");
         }
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverriddenMethodDocCopy.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverriddenMethodDocCopy.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4368820 8025633 8026567
+ * @bug      4368820 8025633 8026567 8182765
  * @summary  Inherited comment should link directly to member, not just
  *           class
  * @author   jamieh
@@ -53,6 +53,20 @@
 
         checkOutput("pkg1/SubClass.html", true,
                 "<span class=\"descfrmTypeLabel\">Description copied from class:&nbsp;<code>"
+                + "<a href=\"BaseClass.html#overridenMethodWithDocsToCopy()\">"
+                + "BaseClass</a></code></span>");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg1", "pkg2");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg1/SubClass.html", true,
+                "<span class=\"descfrmTypeLabel\">Description copied from class:&nbsp;<code>"
                 + "<a href=\"BaseClass.html#overridenMethodWithDocsToCopy--\">"
                 + "BaseClass</a></code></span>");
     }
--- a/test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverriddenPrivateMethodsWithPackageFlag.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverriddenPrivateMethodsWithPackageFlag.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 4634891 8025633 8026567
+ * @bug 4634891 8025633 8026567 8182765
  * @summary Determine if overridden methods are properly documented when
  * -protected (default) visibility flag is used.
  * @author jamieh
@@ -51,6 +51,54 @@
         // The public method should be overridden
         checkOutput("pkg1/SubClass.html", true,
                 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"BaseClass.html#publicMethod()\">"
+                + "publicMethod</a></code>&nbsp;in class&nbsp;<code>"
+                + "<a href=\"BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>");
+
+        // The public method in different package should be overridden
+        checkOutput("pkg2/SubClass.html", true,
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"../pkg1/BaseClass.html#publicMethod()\">"
+                + "publicMethod</a></code>&nbsp;in class&nbsp;<code>"
+                + "<a href=\"../pkg1/BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>");
+
+        // The package private method should be overridden since the base and sub class are in the same
+        // package.
+        checkOutput("pkg1/SubClass.html", true,
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"BaseClass.html#packagePrivateMethod()\">"
+                + "packagePrivateMethod</a></code>&nbsp;in class&nbsp;<code>"
+                + "<a href=\"BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>");
+
+        // The private method in should not be overridden
+        checkOutput("pkg1/SubClass.html", false,
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"BaseClass.html#privateMethod--\">");
+
+        // The private method in different package should not be overridden
+        checkOutput("pkg2/SubClass.html", false,
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"../pkg1/BaseClass.html#privateMethod--\">");
+
+        // The package private method should not be overridden since the base and sub class are in
+        // different packages.
+        checkOutput("pkg2/SubClass.html", false,
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"../pkg1/BaseClass.html#packagePrivateMethod--\">");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-package",
+                "pkg1", "pkg2");
+        checkExit(Exit.OK);
+
+        // The public method should be overridden
+        checkOutput("pkg1/SubClass.html", true,
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
                 + "<dd><code><a href=\"BaseClass.html#publicMethod--\">"
                 + "publicMethod</a></code>&nbsp;in class&nbsp;<code>"
                 + "<a href=\"BaseClass.html\" title=\"class in pkg1\">BaseClass</a></code></dd>");
--- a/test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverrideMethods.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverrideMethods.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8157000 8192850
+ * @bug 8157000 8192850 8182765
  * @summary  test the behavior of --override-methods option
  * @library  ../lib
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -94,11 +94,11 @@
                 // Check method summary
                 "Method Summary",
                 "void",
-                "#m1--\">m1",
+                "#m1()\">m1",
                 "A modified method",
 
                 "void",
-                "#m4-java.lang.String-java.lang.String-\">m4",
+                "#m4(java.lang.String,java.lang.String)\">m4",
                 "java.lang.String&nbsp;k,",
                 "java.lang.String",
                 "&nbsp;v)",
@@ -106,12 +106,12 @@
                 // Check footnotes
                 "Methods declared in class&nbsp;pkg5.<a href=\"Classes.GP.html",
                 "Classes.GP",
-                "Classes.GP.html#m0--\">m0",
+                "Classes.GP.html#m0()\">m0",
 
                 // Check method details for override
                 "overrideSpecifyLabel",
                 "Overrides:",
-                "Classes.GP.html#m7--\">m7",
+                "Classes.GP.html#m7()\">m7",
                 "in class",
                 "Classes.GP.html",
                 "Classes.GP"
@@ -120,47 +120,47 @@
         checkOrder("pkg5/Classes.C.html",
                 // Check footnotes 2
                 "Methods declared in class&nbsp;pkg5.",
-                "Classes.P.html#getRate--\">getRate",
-                "Classes.P.html#m2--\">m2",
-                "Classes.P.html#m3--\">m3",
-                "Classes.P.html#m4-K-V-\">m4",
-                "Classes.P.html#rateProperty--\">rateProperty",
-                "Classes.P.html#setRate-double-\">setRate",
+                "Classes.P.html#getRate()\">getRate",
+                "Classes.P.html#m2()\">m2",
+                "Classes.P.html#m3()\">m3",
+                "Classes.P.html#m4(K,V)\">m4",
+                "Classes.P.html#rateProperty()\">rateProperty",
+                "Classes.P.html#setRate(double)\">setRate",
 
                 // Check @link
                 "A test of links to the methods in this class. <p>\n",
-                "Classes.GP.html#m0--",
+                "Classes.GP.html#m0()",
                 "Classes.GP.m0()",
-                "#m1--",
+                "#m1()",
                 "m1()",
-                "Classes.P.html#m2--",
+                "Classes.P.html#m2()",
                 "Classes.P.m2()",
-                "Classes.P.html#m3--",
+                "Classes.P.html#m3()",
                 "Classes.P.m3()",
                 "m4(java.lang.String,java.lang.String)",
-                "Classes.P.html#m5--",
+                "Classes.P.html#m5()",
                 "Classes.P.m5()",
-                "#m6--",
+                "#m6()",
                 "m6()",
-                "#m7--",
+                "#m7()",
                 "m7()",
                 "End of links",
 
                 // Check @see
                 "See Also:",
-                "Classes.GP.html#m0--",
+                "Classes.GP.html#m0()",
                 "Classes.GP.m0()",
-                "#m1--",
+                "#m1()",
                 "m1()",
-                "Classes.P.html#m2--",
+                "Classes.P.html#m2()",
                 "Classes.P.m2()",
-                "Classes.P.html#m3--",
+                "Classes.P.html#m3()",
                 "Classes.P.m3()",
-                "#m4-java.lang.String-java.lang.String-",
+                "#m4(java.lang.String,java.lang.String)",
                 "m4(String k, String v)",
-                "Classes.P.html#m5--\"><code>Classes.P.m5()",
-                "#m6--\"><code>m6()",
-                "#m7--\"><code>m7()"
+                "Classes.P.html#m5()\"><code>Classes.P.m5()",
+                "#m6()\"><code>m6()",
+                "#m7()\"><code>m7()"
         );
 
         // Tests for interfaces
@@ -172,24 +172,24 @@
 
         checkOrder("pkg5/Interfaces.D.html",
                 "Start of links <p>",
-                "Interfaces.A.html#m0--\"><code>Interfaces.A.m0()",
-                "Interfaces.A.html#m1--\"><code>Interfaces.A.m1()",
-                "Interfaces.A.html#m2--\"><code>Interfaces.A.m2()",
-                "Interfaces.A.html#m3--\"><code>Interfaces.A.m3()",
-                "#m--\"><code>m()",
-                "#n--\"><code>n()",
-                "Interfaces.C.html#o--\"><code>Interfaces.C.o()",
+                "Interfaces.A.html#m0()\"><code>Interfaces.A.m0()",
+                "Interfaces.A.html#m1()\"><code>Interfaces.A.m1()",
+                "Interfaces.A.html#m2()\"><code>Interfaces.A.m2()",
+                "Interfaces.A.html#m3()\"><code>Interfaces.A.m3()",
+                "#m()\"><code>m()",
+                "#n()\"><code>n()",
+                "Interfaces.C.html#o()\"><code>Interfaces.C.o()",
                 "End of links",
 
                 // Check @see links
                 "See Also:",
-                "Interfaces.A.html#m0--\"><code>Interfaces.A.m0()",
-                "Interfaces.A.html#m1--\"><code>Interfaces.A.m1()",
-                "Interfaces.A.html#m2--\"><code>Interfaces.A.m2()",
-                "Interfaces.A.html#m3--\"><code>Interfaces.A.m3()",
-                "#m--\"><code>m()",
-                "#n--\"><code>n()",
-                "Interfaces.C.html#o--\"><code>Interfaces.C.o()",
+                "Interfaces.A.html#m0()\"><code>Interfaces.A.m0()",
+                "Interfaces.A.html#m1()\"><code>Interfaces.A.m1()",
+                "Interfaces.A.html#m2()\"><code>Interfaces.A.m2()",
+                "Interfaces.A.html#m3()\"><code>Interfaces.A.m3()",
+                "#m()\"><code>m()",
+                "#n()\"><code>n()",
+                "Interfaces.C.html#o()\"><code>Interfaces.C.o()",
 
                 // Check properties
                 "Properties declared in interface&nbsp;pkg5.<a href=\"Interfaces.A.html\" "
@@ -209,24 +209,128 @@
 
                 // Check Method Summary
                 "Method Summary",
-                "#m--\">m",
-                "#n--\">n",
+                "#m()\">m",
+                "#n()\">n",
 
                 // Check footnotes
                 "Methods declared in interface&nbsp;pkg5.<a href=\"Interfaces.A.html",
+                "Interfaces.A.html#getRate()\">getRate",
+                "Interfaces.A.html#rateProperty()\">rateProperty",
+                "Interfaces.A.html#setRate(double)",
+                "Methods declared in interface&nbsp;pkg5.<a href=\"Interfaces.B.html",
+                "Interfaces.B.html#m1()\">m1",
+                "Interfaces.B.html#m3()\">m3",
+                "Methods declared in interface&nbsp;pkg5.<a href=\"Interfaces.C.html",
+                "<a href=\"Interfaces.C.html#o()\">o</a>"
+        );
+
+        // Test synthetic values and valuesof of an enum.
+        checkOrder("index-all.html",
+                "<h2 class=\"title\">M</h2>",
+                "<a href=\"pkg5/Interfaces.C.html#m()\">m()",
+                "<a href=\"pkg5/Interfaces.D.html#m()\">m()</a>",
+                "<a href=\"pkg5/Classes.GP.html#m0()\">m0()",
+                "<a href=\"pkg5/Interfaces.A.html#m0()\">m0()</a>",
+                "<a href=\"pkg5/Classes.C.html#m1()\">m1()</a>",
+                "<a href=\"pkg5/Classes.P.html#m1()\">m1()</a>",
+                "<a href=\"pkg5/Interfaces.A.html#m1()\">m1()</a>",
+                "<a href=\"pkg5/Interfaces.B.html#m1()\">m1()</a>",
+                "<a href=\"pkg5/Classes.P.html#m2()\">m2()</a>",
+                "<a href=\"pkg5/Interfaces.A.html#m2()\">m2()</a>",
+                "<a href=\"pkg5/Classes.P.html#m3()\">m3()</a>",
+                "<a href=\"pkg5/Interfaces.A.html#m3()\">m3()</a>",
+                "<a href=\"pkg5/Interfaces.B.html#m3()\">m3()</a>",
+                "<a href=\"pkg5/Classes.C.html#m4(java.lang.String,java.lang.String)\">m4(String, String)</a>",
+                "<a href=\"pkg5/Classes.P.html#m4(K,V)\">m4(K, V)</a>",
+                "<a href=\"pkg5/Classes.P.html#m5()\">m5()</a>",
+                "<a href=\"pkg5/Classes.C.html#m6()\">m6()</a>",
+                "<a href=\"pkg5/Classes.P.html#m6()\">m6()</a>",
+                "<a href=\"pkg5/Classes.C.html#m7()\">m7()</a>",
+                "<a href=\"pkg5/Classes.GP.html#m7()\">m7()</a>",
+                "Returns the enum constant of this type with the specified name.",
+                "Returns an array containing the constants of this enum type, in\n" +
+                        "the order they are declared."
+        );
+    }
+
+    @Test
+    void testSummary_html4() {
+        javadoc("-d", "out-summary-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-javafx",
+                "--override-methods=summary",
+                "pkg5");
+
+        checkExit(Exit.OK);
+
+        checkOrder("pkg5/Classes.C.html",
+                "#m1--\">m1",
+                "#m4-java.lang.String-java.lang.String-\">m4",
+                "Classes.GP.html#m0--\">m0",
+                "Classes.GP.html#m7--\">m7"
+        );
+
+        checkOrder("pkg5/Classes.C.html",
+                // Check footnotes 2
+                "Classes.P.html#getRate--\">getRate",
+                "Classes.P.html#m2--\">m2",
+                "Classes.P.html#m3--\">m3",
+                "Classes.P.html#m4-K-V-\">m4",
+                "Classes.P.html#rateProperty--\">rateProperty",
+                "Classes.P.html#setRate-double-\">setRate",
+
+                // Check @link
+                "Classes.GP.html#m0--",
+                "#m1--",
+                "Classes.P.html#m2--",
+                "Classes.P.html#m3--",
+                "Classes.P.html#m5--",
+                "#m6--",
+                "#m7--",
+
+                // Check @see
+                "Classes.GP.html#m0--",
+                "#m1--",
+                "Classes.P.html#m2--",
+                "Classes.P.html#m3--",
+                "#m4-java.lang.String-java.lang.String-",
+                "Classes.P.html#m5--\"><code>Classes.P.m5()",
+                "#m6--\"><code>m6()",
+                "#m7--\"><code>m7()"
+        );
+
+        // Tests for interfaces
+
+        // Make sure the static methods in the super interface
+        // do not make it to this interface
+        checkOrder("pkg5/Interfaces.D.html",
+                "Interfaces.A.html#m0--\"><code>Interfaces.A.m0()",
+                "Interfaces.A.html#m1--\"><code>Interfaces.A.m1()",
+                "Interfaces.A.html#m2--\"><code>Interfaces.A.m2()",
+                "Interfaces.A.html#m3--\"><code>Interfaces.A.m3()",
+                "#m--\"><code>m()",
+                "#n--\"><code>n()",
+                "Interfaces.C.html#o--\"><code>Interfaces.C.o()",
+                "Interfaces.A.html#m0--\"><code>Interfaces.A.m0()",
+                "Interfaces.A.html#m1--\"><code>Interfaces.A.m1()",
+                "Interfaces.A.html#m2--\"><code>Interfaces.A.m2()",
+                "Interfaces.A.html#m3--\"><code>Interfaces.A.m3()",
+                "#m--\"><code>m()",
+                "#n--\"><code>n()",
+                "Interfaces.C.html#o--\"><code>Interfaces.C.o()",
+                "#m--\">m",
+                "#n--\">n",
                 "Interfaces.A.html#getRate--\">getRate",
                 "Interfaces.A.html#rateProperty--\">rateProperty",
                 "Interfaces.A.html#setRate-double-",
-                "Methods declared in interface&nbsp;pkg5.<a href=\"Interfaces.B.html",
                 "Interfaces.B.html#m1--\">m1",
                 "Interfaces.B.html#m3--\">m3",
-                "Methods declared in interface&nbsp;pkg5.<a href=\"Interfaces.C.html",
                 "<a href=\"Interfaces.C.html#o--\">o</a>"
         );
 
         // Test synthetic values and valuesof of an enum.
         checkOrder("index-all.html",
-                "<h2 class=\"title\">M</h2>",
                 "<a href=\"pkg5/Interfaces.C.html#m--\">m()",
                 "<a href=\"pkg5/Interfaces.D.html#m--\">m()</a>",
                 "<a href=\"pkg5/Classes.GP.html#m0--\">m0()",
@@ -246,10 +350,7 @@
                 "<a href=\"pkg5/Classes.C.html#m6--\">m6()</a>",
                 "<a href=\"pkg5/Classes.P.html#m6--\">m6()</a>",
                 "<a href=\"pkg5/Classes.C.html#m7--\">m7()</a>",
-                "<a href=\"pkg5/Classes.GP.html#m7--\">m7()</a>",
-                "Returns the enum constant of this type with the specified name.",
-                "Returns an array containing the constants of this enum type, in\n" +
-                        "the order they are declared."
+                "<a href=\"pkg5/Classes.GP.html#m7--\">m7()</a>"
         );
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/testOverview/TestOverview.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testOverview/TestOverview.java	Tue Mar 06 10:45:47 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8173302
+ * @bug 8173302 8182765
  * @summary make sure the overview-summary and module-summary pages don't
  *          don't have the See link, and the overview is copied correctly.
  * @library ../lib
@@ -48,15 +48,20 @@
                     "-sourcepath", testSrc("src"),
                     "p1", "p2");
         checkExit(Exit.OK);
-        checkOutput("overview-summary.html", true,
-                "<div class=\"header\">\n"
-                + "<h1 class=\"title\">Document Title</h1>\n"
-                + "</div>\n"
-                + "<div class=\"contentContainer\">\n"
-                + "<div class=\"block\">This is line1. This is line 2.</div>\n"
-                + "</div>\n"
-                + "<div class=\"contentContainer\">"
-        );
+        checkOverview();
+    }
+
+    @Test
+    void test1_html4() {
+        javadoc("-d", "out-1-html4",
+                "-html4",
+                "-doctitle", "Document Title",
+                "-windowtitle", "Window Title",
+                "-overview", testSrc("overview.html"),
+                "-sourcepath", testSrc("src"),
+                "p1", "p2");
+        checkExit(Exit.OK);
+        checkOverview_html4();
     }
 
     @Test
@@ -68,6 +73,35 @@
                     "-sourcepath", testSrc("msrc"),
                     "p1", "p2");
         checkExit(Exit.OK);
+        checkOverview();
+    }
+
+    @Test
+    void test2_html4() {
+        javadoc("-d", "out-2-html4",
+                "-html4",
+                "-doctitle", "Document Title",
+                "-windowtitle", "Window Title",
+                "-overview", testSrc("overview.html"),
+                "-sourcepath", testSrc("msrc"),
+                "p1", "p2");
+        checkExit(Exit.OK);
+        checkOverview_html4();
+    }
+
+    void checkOverview() {
+        checkOutput("overview-summary.html", true,
+                "<div class=\"header\">\n"
+                + "<h1 class=\"title\">Document Title</h1>\n"
+                + "</div>\n"
+                + "<main role=\"main\">\n"
+                + "<div class=\"contentContainer\">\n"
+                + "<div class=\"block\">This is line1. This is line 2.</div>\n"
+                + "</div>\n"
+                + "<div class=\"contentContainer\">");
+    }
+
+    void checkOverview_html4() {
         checkOutput("overview-summary.html", true,
                 "<div class=\"header\">\n"
                 + "<h1 class=\"title\">Document Title</h1>\n"
@@ -75,7 +109,6 @@
                 + "<div class=\"contentContainer\">\n"
                 + "<div class=\"block\">This is line1. This is line 2.</div>\n"
                 + "</div>\n"
-                + "<div class=\"contentContainer\">"
-        );
+                + "<div class=\"contentContainer\">");
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/testPackageDescription/TestPackageDescription.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testPackageDescription/TestPackageDescription.java	Tue Mar 06 10:45:47 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      8185194
+ * @bug      8185194 8182765
  * @summary  Test anchor for package description in package summary page
   * @library  ../lib/
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -42,8 +42,7 @@
     void test1() {
         javadoc("-d", "out",
                 "-sourcepath", testSrc,
-                "pkg",
-                "-html5");
+                "pkg");
         checkExit(Exit.OK);
 
         checkOutput("pkg/package-summary.html", true,
@@ -56,6 +55,7 @@
     @Test
     void test2() {
         javadoc("-d", "out-2",
+                "-html4",
                 "-sourcepath", testSrc,
                 "pkg");
         checkExit(Exit.OK);
--- a/test/langtools/jdk/javadoc/doclet/testPrivateClasses/TestPrivateClasses.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testPrivateClasses/TestPrivateClasses.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4780441 4874845 4978816 8014017 8016328 8025633 8026567 8175200
+ * @bug      4780441 4874845 4978816 8014017 8016328 8025633 8026567 8175200 8182765
  * @summary  Make sure that when the -private flag is not used, members
  *           inherited from package private class are documented in the child.
  *
@@ -42,7 +42,6 @@
  * @build    JavadocTester
  * @run main TestPrivateClasses
  */
-
 public class TestPrivateClasses extends JavadocTester {
 
     public static void main(String... args) throws Exception {
@@ -62,7 +61,7 @@
                 "<a href=\"#fieldInheritedFromParent\">"
                 + "fieldInheritedFromParent</a>",
                 // Method inheritance from non-public superclass.
-                "<a href=\"#methodInheritedFromParent-int-\">"
+                "<a href=\"#methodInheritedFromParent(int)\">"
                 + "methodInheritedFromParent</a>",
                 // private class does not show up in tree
                 "<ul class=\"inheritance\">\n"
@@ -94,15 +93,15 @@
 
         checkOutput("pkg/PublicChild.html", false,
                 // Should not document comments from private inherited interfaces
-                "<td class=\"colLast\"><code><span class=\"memberNameLink\">" +
-                "<a href=\"#methodInterface-int-\">" +
-                "methodInterface</a></span>&#8203;(int&nbsp;p1)</code>\n" +
-                "<div class=\"block\">Comment from interface.</div>\n</td>",
+                "<td class=\"colLast\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#methodInterface(int)\">"
+                + "methodInterface</a></span>&#8203;(int&nbsp;p1)</code>\n"
+                + "<div class=\"block\">Comment from interface.</div>\n</td>",
                 // and similarly one more
-                "<td class=\"colLast\"><code><span class=\"memberNameLink\">" +
-                "<a href=\"#methodInterface2-int-\">" +
-                "methodInterface2</a></span>&#8203;(int&nbsp;p1)</code>\n" +
-                "<div class=\"block\">Comment from interface.</div>\n</td>"
+                "<td class=\"colLast\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#methodInterface2(int)\">"
+                + "methodInterface2</a></span>&#8203;(int&nbsp;p1)</code>\n"
+                + "<div class=\"block\">Comment from interface.</div>\n</td>"
         );
 
         checkOutput("pkg/PublicInterface.html", true,
@@ -110,7 +109,7 @@
                 "<a href=\"#fieldInheritedFromInterface\">"
                 + "fieldInheritedFromInterface</a>",
                 // Method inheritance from non-public superinterface.
-                "<a href=\"#methodInterface-int-\">"
+                "<a href=\"#methodInterface(int)\">"
                 + "methodInterface</a>",
                 //Make sure implemented interfaces from private superclass are inherited
                 "<dl>\n"
@@ -132,7 +131,7 @@
         checkOutput("pkg2/C.html", false,
                 //Do not inherit private interface method with generic parameters.
                 //This method has been implemented.
-                "<span class=\"memberNameLink\"><a href=\"I.html#hello-T-\">hello</a></span>");
+                "<span class=\"memberNameLink\"><a href=\"I.html#hello(T)\">hello</a></span>");
 
         checkOutput("constant-values.html", false,
                 // Make inherited constant are documented correctly.
@@ -140,6 +139,42 @@
     }
 
     @Test
+    void testDefault_html4() {
+        javadoc("-d", "out-default-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg", "pkg2");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/PublicChild.html", true,
+                // Method inheritance from non-public superclass.
+                "<a href=\"#methodInheritedFromParent-int-\">");
+
+        checkOutput("pkg/PublicChild.html", false,
+                // Should not document comments from private inherited interfaces
+                "<td class=\"colLast\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#methodInterface-int-\">"
+                + "methodInterface</a></span>&#8203;(int&nbsp;p1)</code>\n"
+                + "<div class=\"block\">Comment from interface.</div>\n</td>",
+                // and similarly one more
+                "<td class=\"colLast\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#methodInterface2-int-\">"
+                + "methodInterface2</a></span>&#8203;(int&nbsp;p1)</code>\n"
+                + "<div class=\"block\">Comment from interface.</div>\n</td>"
+        );
+
+        checkOutput("pkg/PublicInterface.html", true,
+                // Method inheritance from non-public superinterface.
+                "<a href=\"#methodInterface-int-\">"
+                + "methodInterface</a>");
+
+        checkOutput("pkg2/C.html", false,
+                //Do not inherit private interface method with generic parameters.
+                //This method has been implemented.
+                "<span class=\"memberNameLink\"><a href=\"I.html#hello-T-\">hello</a></span>");
+    }
+
+    @Test
     void testPrivate() {
         javadoc("-d", "out-private",
                 "-sourcepath", testSrc,
@@ -158,17 +193,17 @@
                 "Methods inherited from class&nbsp;pkg."
                 + "<a href=\"PrivateParent.html\" title=\"class in pkg\">"
                 + "PrivateParent</a>",
-                "<a href=\"PrivateParent.html#methodInheritedFromParent-int-\">"
+                "<a href=\"PrivateParent.html#methodInheritedFromParent(int)\">"
                 + "methodInheritedFromParent</a>",
                 // Should document that a method overrides method from private class.
                 "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
-                + "<dd><code><a href=\"PrivateParent.html#methodOverridenFromParent-char:A-int-T-V-java.util.List-\">"
+                + "<dd><code><a href=\"PrivateParent.html#methodOverridenFromParent(char%5B%5D,int,T,V,java.util.List)\">"
                 + "methodOverridenFromParent</a></code>&nbsp;in class&nbsp;<code>"
                 + "<a href=\"PrivateParent.html\" title=\"class in pkg\">"
                 + "PrivateParent</a></code></dd>",
                 // Should document that a method is specified by private interface.
                 "<dt><span class=\"overrideSpecifyLabel\">Specified by:</span></dt>\n"
-                + "<dd><code><a href=\"PrivateInterface.html#methodInterface-int-\">"
+                + "<dd><code><a href=\"PrivateInterface.html#methodInterface(int)\">"
                 + "methodInterface</a></code>&nbsp;in interface&nbsp;<code>"
                 + "<a href=\"PrivateInterface.html\" title=\"interface in pkg\">"
                 + "PrivateInterface</a></code></dd>",
@@ -209,6 +244,56 @@
                 + "</dl>");
 
         checkOutput("pkg/PrivateInterface.html", true,
+                "<a href=\"#methodInterface(int)\">"
+                + "methodInterface</a>"
+        );
+
+        checkOutput("pkg2/C.html", true,
+                //Since private flag is used, we can document that private interface method
+                //with generic parameters has been implemented.
+                "<span class=\"descfrmTypeLabel\">Description copied from interface:&nbsp;<code>"
+                + "<a href=\"I.html#hello(T)\">I</a></code></span>",
+                "<dt><span class=\"overrideSpecifyLabel\">Specified by:</span></dt>\n"
+                + "<dd><code><a href=\"I.html#hello(T)\">hello</a></code>"
+                + "&nbsp;in interface&nbsp;<code>"
+                + "<a href=\"I.html\" title=\"interface in pkg2\">I</a>"
+                + "&lt;java.lang.String&gt;</code></dd>");
+
+        checkOutput("pkg/PrivateParent.html", true,
+                //Make sure when no modifier appear in the class signature, the
+                //signature is displayed correctly without extra space at the beginning.
+                "<pre>class <span class=\"typeNameLabel\">PrivateParent</span>");
+
+        checkOutput("pkg/PrivateParent.html", false,
+                "<pre> class <span class=\"typeNameLabel\">PrivateParent</span>");
+    }
+
+    @Test
+    void testPrivate_html4() {
+        javadoc("-d", "out-private-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-private",
+                "pkg", "pkg2");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/PublicChild.html", true,
+                "<a href=\"PrivateParent.html#methodInheritedFromParent-int-\">"
+                + "methodInheritedFromParent</a>",
+                // Should document that a method overrides method from private class.
+                "<dt><span class=\"overrideSpecifyLabel\">Overrides:</span></dt>\n"
+                + "<dd><code><a href=\"PrivateParent.html#methodOverridenFromParent-char:A-int-T-V-java.util.List-\">"
+                + "methodOverridenFromParent</a></code>&nbsp;in class&nbsp;<code>"
+                + "<a href=\"PrivateParent.html\" title=\"class in pkg\">"
+                + "PrivateParent</a></code></dd>",
+                // Should document that a method is specified by private interface.
+                "<dt><span class=\"overrideSpecifyLabel\">Specified by:</span></dt>\n"
+                + "<dd><code><a href=\"PrivateInterface.html#methodInterface-int-\">"
+                + "methodInterface</a></code>&nbsp;in interface&nbsp;<code>"
+                + "<a href=\"PrivateInterface.html\" title=\"interface in pkg\">"
+                + "PrivateInterface</a></code></dd>");
+
+        checkOutput("pkg/PrivateInterface.html", true,
                 "<a href=\"#methodInterface-int-\">"
                 + "methodInterface</a>"
         );
@@ -223,13 +308,5 @@
                 + "&nbsp;in interface&nbsp;<code>"
                 + "<a href=\"I.html\" title=\"interface in pkg2\">I</a>"
                 + "&lt;java.lang.String&gt;</code></dd>");
-
-        checkOutput("pkg/PrivateParent.html", true,
-                //Make sure when no modifier appear in the class signature, the
-                //signature is displayed correctly without extra space at the beginning.
-                "<pre>class <span class=\"typeNameLabel\">PrivateParent</span>");
-
-        checkOutput("pkg/PrivateParent.html", false,
-                "<pre> class <span class=\"typeNameLabel\">PrivateParent</span>");
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/testProperty/TestProperty.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testProperty/TestProperty.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      8176231 8189843
+ * @bug      8176231 8189843 8182765
  * @summary  Test JavaFX property.
  * @library  ../lib/
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -55,6 +55,77 @@
                 + "Object is a single Object.</div>\n"
                 + "<dl>\n"
                 + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
+                + "<dd><a href=\"#getGood()\"><code>getGood()</code></a>, \n"
+                + "<a href=\"#setGood(pkg.MyObj)\">"
+                + "<code>setGood(MyObj)</code></a></dd>\n"
+                + "</dl>",
+
+                "<pre>public final&nbsp;<a href=\"ObjectProperty.html\" "
+                + "title=\"class in pkg\">ObjectProperty</a>"
+                + "&lt;<a href=\"MyObj.html\" "
+                + "title=\"class in pkg\">MyObj</a>[]&gt; badProperty</pre>\n"
+                + "<div class=\"block\">This is an Object property where the "
+                + "Object is an array.</div>\n"
+                + "<dl>\n"
+                + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
+                + "<dd><a href=\"#getBad()\"><code>getBad()</code></a>, \n"
+                + "<a href=\"#setBad(pkg.MyObj%5B%5D)\">"
+                + "<code>setBad(MyObj[])</code></a></dd>\n"
+                + "</dl>",
+
+                // id should not be used in the property table
+                "<tr class=\"altColor\">\n"
+                + "<td class=\"colFirst\"><code><a href=\"ObjectProperty.html\" "
+                + "title=\"class in pkg\">ObjectProperty</a>&lt;<a href=\"MyObj.html\" "
+                + "title=\"class in pkg\">MyObj</a>[]&gt;</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#badProperty\">bad</a></span></code></th>",
+
+                // id should be used in the method table
+                "<tr id=\"i0\" class=\"altColor\">\n"
+                + "<td class=\"colFirst\"><code><a href=\"ObjectProperty.html\" "
+                + "title=\"class in pkg\">ObjectProperty</a>&lt;<a href=\"MyObj.html\" "
+                + "title=\"class in pkg\">MyObj</a>[]&gt;</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#badProperty()\">badProperty</a></span>()</code></th>"
+        );
+
+        checkOutput("pkg/MyClassT.html", true,
+                "<pre>public final&nbsp;<a href=\"ObjectProperty.html\" "
+                + "title=\"class in pkg\">ObjectProperty</a>"
+                + "&lt;java.util.List&lt;<a href=\"MyClassT.html\" "
+                + "title=\"type parameter in MyClassT\">T</a>&gt;&gt; "
+                + "listProperty</pre>\n"
+                + "<div class=\"block\">This is an Object property where the "
+                + "Object is a single <code>List&lt;T&gt;</code>.</div>\n"
+                + "<dl>\n"
+                + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
+                + "<dd><a href=\"#getList()\">"
+                + "<code>getList()</code></a>, \n"
+                + "<a href=\"#setList(java.util.List)\">"
+                + "<code>setList(List)</code></a></dd>\n"
+                + "</dl>"
+        );
+    }
+
+    @Test
+    void testArrays_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-javafx",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/MyClass.html", true,
+                "<pre>public final&nbsp;<a href=\"ObjectProperty.html\" "
+                + "title=\"class in pkg\">ObjectProperty</a>"
+                + "&lt;<a href=\"MyObj.html\" "
+                + "title=\"class in pkg\">MyObj</a>&gt; goodProperty</pre>\n"
+                + "<div class=\"block\">This is an Object property where the "
+                + "Object is a single Object.</div>\n"
+                + "<dl>\n"
+                + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
                 + "<dd><a href=\"#getGood--\"><code>getGood()</code></a>, \n"
                 + "<a href=\"#setGood-pkg.MyObj-\">"
                 + "<code>setGood(MyObj)</code></a></dd>\n"
@@ -73,14 +144,6 @@
                 + "<code>setBad(MyObj[])</code></a></dd>\n"
                 + "</dl>",
 
-                // id should not be used in the property table
-                "<tr class=\"altColor\">\n"
-                + "<td class=\"colFirst\"><code><a href=\"ObjectProperty.html\" "
-                + "title=\"class in pkg\">ObjectProperty</a>&lt;<a href=\"MyObj.html\" "
-                + "title=\"class in pkg\">MyObj</a>[]&gt;</code></td>\n"
-                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
-                + "<a href=\"#badProperty\">bad</a></span></code></th>",
-
                 // id should be used in the method table
                 "<tr id=\"i0\" class=\"altColor\">\n"
                 + "<td class=\"colFirst\"><code><a href=\"ObjectProperty.html\" "
--- a/test/langtools/jdk/javadoc/doclet/testRelativeLinks/TestRelativeLinks.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testRelativeLinks/TestRelativeLinks.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4460354 8014636 8043186 8195805
+ * @bug      4460354 8014636 8043186 8195805 8182765
  * @summary  Test to make sure that relative paths are redirected in the
  *           output so that they are not broken.
  * @author   jamieh
@@ -46,7 +46,10 @@
                 "-use",
                 "-sourcepath", testSrc,
                 "pkg", "pkg2");
-        checkExit(Exit.OK);
+        checkExit(Exit.ERROR);
+
+        checkOutput(Output.OUT, true,
+                "attribute not supported in HTML5: name");
 
         // These relative paths should stay relative because they appear
         // in the right places.
@@ -91,4 +94,14 @@
         checkOutput("overview-summary.html", true,
             "<a href=\"./pkg/relative-package-link.html\">relative package link</a>");
     }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-use",
+                "-sourcepath", testSrc,
+                "pkg", "pkg2");
+        checkExit(Exit.OK);
 }
+}
--- a/test/langtools/jdk/javadoc/doclet/testRepeatedAnnotations/TestRepeatedAnnotations.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testRepeatedAnnotations/TestRepeatedAnnotations.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      8005092 6469562
+ * @bug      8005092 6469562 8182765
  * @summary  Test repeated annotations output.
  * @author   bpatel
  * @library  ../lib
@@ -65,6 +65,86 @@
 
         checkOutput("pkg/D.html", true,
                 "<a href=\"RegDoc.html\" title=\"annotation in pkg\">@RegDoc</a>"
+                + "(<a href=\"RegDoc.html#x()\">x</a>=1)",
+                "<a href=\"RegArryDoc.html\" title=\"annotation in pkg\">@RegArryDoc</a>"
+                + "(<a href=\"RegArryDoc.html#y()\">y</a>=1)",
+                "<a href=\"RegArryDoc.html\" title=\"annotation in pkg\">@RegArryDoc</a>"
+                + "(<a href=\"RegArryDoc.html#y()\">y</a>={1,2})",
+                "<a href=\"NonSynthDocContainer.html\" "
+                + "title=\"annotation in pkg\">@NonSynthDocContainer</a>"
+                + "("
+                + "<a href=\"RegArryDoc.html\" title=\"annotation in pkg\">@RegArryDoc</a>"
+                + "(<a href=\"RegArryDoc.html#y()\">y</a>=1))");
+
+        checkOutput("pkg1/C.html", true,
+                "<a href=\"RegContainerValDoc.html\" "
+                + "title=\"annotation in pkg1\">@RegContainerValDoc</a>"
+                + "(<a href=\"RegContainerValDoc.html#value()\">value</a>={"
+                + "<a href=\"RegContaineeNotDoc.html\" "
+                + "title=\"annotation in pkg1\">@RegContaineeNotDoc</a>,"
+                + "<a href=\"RegContaineeNotDoc.html\" "
+                + "title=\"annotation in pkg1\">@RegContaineeNotDoc</a>},"
+                + "<a href=\"RegContainerValDoc.html#y()\">y</a>=3)",
+                "<a href=\"ContainerValDoc.html\" "
+                + "title=\"annotation in pkg1\">@ContainerValDoc</a>"
+                + "(<a href=\"ContainerValDoc.html#value()\">value</a>={"
+                + "<a href=\"ContaineeNotDoc.html\" "
+                + "title=\"annotation in pkg1\">@ContaineeNotDoc</a>,"
+                + "<a href=\"ContaineeNotDoc.html\" "
+                + "title=\"annotation in pkg1\">@ContaineeNotDoc</a>},"
+                + "<a href=\"ContainerValDoc.html#x()\">x</a>=1)");
+
+        checkOutput("pkg/C.html", false,
+                "<a href=\"RegContaineeDoc.html\" "
+                + "title=\"annotation in pkg\">@RegContaineeDoc</a> "
+                + "<a href=\"RegContaineeDoc.html\" "
+                + "title=\"annotation in pkg\">@RegContaineeDoc</a>",
+                "<a href=\"RegContainerNotDoc.html\" "
+                + "title=\"annotation in pkg\">@RegContainerNotDoc</a>"
+                + "(<a href=\"RegContainerNotDoc.html#value()\">value</a>={"
+                + "<a href=\"RegContaineeNotDoc.html\" "
+                + "title=\"annotation in pkg\">@RegContaineeNotDoc</a>,"
+                + "<a href=\"RegContaineeNotDoc.html\" "
+                + "title=\"annotation in pkg\">@RegContaineeNotDoc</a>})");
+
+        checkOutput("pkg1/C.html", false,
+                "<a href=\"ContaineeSynthDoc.html\" "
+                + "title=\"annotation in pkg1\">@ContaineeSynthDoc</a> "
+                + "<a href=\"ContaineeSynthDoc.html\" "
+                + "title=\"annotation in pkg1\">@ContaineeSynthDoc</a>",
+                "<a href=\"RegContainerValNotDoc.html\" "
+                + "title=\"annotation in pkg1\">@RegContainerValNotDoc</a>"
+                + "(<a href=\"RegContainerValNotDoc.html#value()\">value</a>={"
+                + "<a href=\"RegContaineeDoc.html\" "
+                + "title=\"annotation in pkg1\">@RegContaineeDoc</a>,"
+                + "<a href=\"RegContaineeDoc.html\" "
+                + "title=\"annotation in pkg1\">@RegContaineeDoc</a>},"
+                + "<a href=\"RegContainerValNotDoc.html#y()\">y</a>=4)",
+                "<a href=\"ContainerValNotDoc.html\" "
+                + "title=\"annotation in pkg1\">@ContainerValNotDoc</a>"
+                + "(<a href=\"ContainerValNotDoc.html#value()\">value</a>={"
+                + "<a href=\"ContaineeNotDoc.html\" "
+                + "title=\"annotation in pkg1\">@ContaineeNotDoc</a>,"
+                + "<a href=\"ContaineeNotDoc.html\" "
+                + "title=\"annotation in pkg1\">@ContaineeNotDoc</a>},"
+                + "<a href=\"ContainerValNotDoc.html#x()\">x</a>=2)",
+                "<a href=\"ContainerSynthNotDoc.html\" "
+                + "title=\"annotation in pkg1\">@ContainerSynthNotDoc</a>("
+                + "<a href=\"ContainerSynthNotDoc.html#value()\">value</a>="
+                + "<a href=\"ContaineeSynthDoc.html\" "
+                + "title=\"annotation in pkg1\">@ContaineeSynthDoc</a>)");
+    }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg", "pkg1");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/D.html", true,
+                "<a href=\"RegDoc.html\" title=\"annotation in pkg\">@RegDoc</a>"
                 + "(<a href=\"RegDoc.html#x--\">x</a>=1)",
                 "<a href=\"RegArryDoc.html\" title=\"annotation in pkg\">@RegArryDoc</a>"
                 + "(<a href=\"RegArryDoc.html#y--\">y</a>=1)",
@@ -95,10 +175,6 @@
                 + "<a href=\"ContainerValDoc.html#x--\">x</a>=1)");
 
         checkOutput("pkg/C.html", false,
-                "<a href=\"RegContaineeDoc.html\" "
-                + "title=\"annotation in pkg\">@RegContaineeDoc</a> "
-                + "<a href=\"RegContaineeDoc.html\" "
-                + "title=\"annotation in pkg\">@RegContaineeDoc</a>",
                 "<a href=\"RegContainerNotDoc.html\" "
                 + "title=\"annotation in pkg\">@RegContainerNotDoc</a>"
                 + "(<a href=\"RegContainerNotDoc.html#value--\">value</a>={"
@@ -108,10 +184,6 @@
                 + "title=\"annotation in pkg\">@RegContaineeNotDoc</a>})");
 
         checkOutput("pkg1/C.html", false,
-                "<a href=\"ContaineeSynthDoc.html\" "
-                + "title=\"annotation in pkg1\">@ContaineeSynthDoc</a> "
-                + "<a href=\"ContaineeSynthDoc.html\" "
-                + "title=\"annotation in pkg1\">@ContaineeSynthDoc</a>",
                 "<a href=\"RegContainerValNotDoc.html\" "
                 + "title=\"annotation in pkg1\">@RegContainerValNotDoc</a>"
                 + "(<a href=\"RegContainerValNotDoc.html#value--\">value</a>={"
--- a/test/langtools/jdk/javadoc/doclet/testSearch/TestSearch.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testSearch/TestSearch.java	Tue Mar 06 10:45:47 2018 -0800
@@ -24,7 +24,7 @@
 /*
  * @test
  * @bug 8141492 8071982 8141636 8147890 8166175 8168965 8176794 8175218 8147881
- *      8181622 8182263 8074407 8187521 8198522
+ *      8181622 8182263 8074407 8187521 8198522 8182765
  * @summary Test the search feature of javadoc.
  * @author bpatel
  * @library ../lib
@@ -41,7 +41,10 @@
 
     @Test
     void test1() {
-        javadoc("-d", "out-1", "-sourcepath", "-use", testSrc("UnnamedPkgClass.java"));
+        javadoc("-d", "out-1",
+                "-sourcepath",
+                "-use",
+                testSrc("UnnamedPkgClass.java"));
         checkExit(Exit.OK);
         checkSearchOutput("UnnamedPkgClass.html", true, true);
         checkJqueryAndImageFiles(true);
@@ -60,12 +63,15 @@
 
     @Test
     void test2() {
-        javadoc("-d", "out-2", "-Xdoclint:none", "-sourcepath", testSrc,
-                "-use", "pkg", "pkg1", "pkg2", "pkg3");
+        javadoc("-d", "out-2",
+                "-Xdoclint:none",
+                "-sourcepath", testSrc,
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
         checkExit(Exit.OK);
         checkInvalidUsageIndexTag();
         checkSearchOutput(true);
-        checkSingleIndex(true, false);
+        checkSingleIndex(true, true);
         checkSingleIndexSearchTagDuplication();
         checkJqueryAndImageFiles(true);
         checkSearchJS();
@@ -81,13 +87,28 @@
     }
 
     @Test
+    void test2_html4() {
+        javadoc("-d", "out-2-html4",
+                "-html4",
+                "-Xdoclint:none",
+                "-sourcepath", testSrc,
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
+        checkExit(Exit.OK);
+        checkSingleIndex(true, false);
+    }
+
+    @Test
     void test2a() {
-        javadoc("-d", "out-2a", "-Xdoclint:all", "-sourcepath", testSrc,
-                "-use", "pkg", "pkg1", "pkg2", "pkg3");
+        javadoc("-d", "out-2a",
+                "-Xdoclint:all",
+                "-sourcepath", testSrc,
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
         checkExit(Exit.ERROR);
         checkDocLintErrors();
         checkSearchOutput(true);
-        checkSingleIndex(true, false);
+        checkSingleIndex(true, true);
         checkSingleIndexSearchTagDuplication();
         checkJqueryAndImageFiles(true);
         checkSearchJS();
@@ -103,10 +124,24 @@
     }
 
     @Test
+    void test2a_html4() {
+        javadoc("-d", "out-2a-html4",
+                "-html4",
+                "-Xdoclint:all",
+                "-sourcepath", testSrc,
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
+        checkSingleIndex(true, false);
+    }
+
+    @Test
     void test3() {
-        javadoc("-d", "out-3", "-noindex", "-Xdoclint:none",
+        javadoc("-d", "out-3",
+                "-noindex",
+                "-Xdoclint:none",
                 "-sourcepath", testSrc,
-                "-use", "pkg", "pkg1", "pkg2", "pkg3");
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
         checkExit(Exit.OK);
         checkSearchOutput(false);
         checkJqueryAndImageFiles(false);
@@ -124,9 +159,12 @@
 
     @Test
     void test4() {
-        javadoc("-d", "out-4", "-html5", "-Xdoclint:none",
+        javadoc("-d", "out-4",
+                "-html5",
+                "-Xdoclint:none",
                 "-sourcepath", testSrc,
-                "-use", "pkg", "pkg1", "pkg2", "pkg3");
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
         checkExit(Exit.OK);
         checkSearchOutput(true);
         checkSingleIndex(true, true);
@@ -146,9 +184,13 @@
 
     @Test
     void test5() {
-        javadoc("-d", "out-5", "-noindex", "-html5", "-Xdoclint:none",
+        javadoc("-d", "out-5",
+                "-html5",
+                "-noindex",
+                "-Xdoclint:none",
                 "-sourcepath", testSrc,
-                "-use", "pkg", "pkg1", "pkg2", "pkg3");
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
         checkExit(Exit.OK);
         checkSearchOutput(false);
         checkJqueryAndImageFiles(false);
@@ -166,9 +208,12 @@
 
     @Test
     void test6() {
-        javadoc("-d", "out-6", "-nocomment", "-Xdoclint:none",
+        javadoc("-d", "out-6",
+                "-nocomment",
+                "-Xdoclint:none",
                 "-sourcepath", testSrc,
-                "-use", "pkg", "pkg1", "pkg2", "pkg3");
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
         checkExit(Exit.OK);
         checkSearchOutput(true);
         checkIndexNoComment();
@@ -187,9 +232,12 @@
 
     @Test
     void test7() {
-        javadoc("-d", "out-7", "-nodeprecated", "-Xdoclint:none",
+        javadoc("-d", "out-7",
+                "-nodeprecated",
+                "-Xdoclint:none",
                 "-sourcepath", testSrc,
-                "-use", "pkg", "pkg1", "pkg2", "pkg3");
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
         checkExit(Exit.OK);
         checkSearchOutput(true);
         checkIndexNoDeprecated();
@@ -208,8 +256,12 @@
 
     @Test
     void test8() {
-        javadoc("-d", "out-8", "-splitindex", "-Xdoclint:none", "-sourcepath", testSrc,
-                "-use", "pkg", "pkg1", "pkg2", "pkg3");
+        javadoc("-d", "out-8",
+                "-splitindex",
+                "-Xdoclint:none",
+                "-sourcepath", testSrc,
+                "-use",
+                "pkg", "pkg1", "pkg2", "pkg3");
         checkExit(Exit.OK);
         checkInvalidUsageIndexTag();
         checkSearchOutput(true);
@@ -230,8 +282,12 @@
 
     @Test
     void test9() {
-        javadoc("-d", "out-9", "-sourcepath", testSrc, "-javafx", "-package",
-                "-use", "pkgfx", "pkg3");
+        javadoc("-d", "out-9",
+                "-sourcepath", testSrc,
+                "-javafx",
+                "-package",
+                "-use",
+                "pkgfx", "pkg3");
         checkExit(Exit.OK);
         checkSearchOutput(true);
         checkJavaFXOutput();
@@ -386,7 +442,7 @@
                 + "Search tag in pkg.AnotherClass.ModalExclusionType.NO_EXCLUDE</dt>");
         checkOutput("index-files/index-5.html", true,
                 "<dt><span class=\"searchTagLink\"><a href=\"../pkg/AnotherClass.ModalExclusionType.html"
-                + "#html-span-see-/span-\">html &lt;span&gt; see &lt;/span&gt;</a></span> - Search "
+                + "#html%3Cspan%3Esee%3C/span%3E\">html &lt;span&gt; see &lt;/span&gt;</a></span> - Search "
                 + "tag in pkg.AnotherClass.ModalExclusionType.APPLICATION_EXCLUDE</dt>");
         checkOutput("index-files/index-11.html", true,
                 "<dt><span class=\"searchTagLink\"><a href=\"../pkg/AnotherClass.html#quoted\">quoted</a>"
--- a/test/langtools/jdk/javadoc/doclet/testSeeTag/TestSeeTag.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testSeeTag/TestSeeTag.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      8017191
+ * @bug      8017191 8182765
  * @summary  Javadoc is confused by at-link to imported classes outside of the set of generated packages
  * @author   jjg
  * @library  ../lib
@@ -50,10 +50,10 @@
             "<code>List</code>",
             "<dl>\n"
             + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
-            + "<dd><a href=\"Test.InnerOne.html#foo--\"><code>Test.InnerOne.foo()</code></a>, \n"
-            + "<a href=\"Test.InnerOne.html#bar-java.lang.Object-\"><code>Test.InnerOne.bar(Object)</code></a>, \n"
+            + "<dd><a href=\"Test.InnerOne.html#foo()\"><code>Test.InnerOne.foo()</code></a>, \n"
+            + "<a href=\"Test.InnerOne.html#bar(java.lang.Object)\"><code>Test.InnerOne.bar(Object)</code></a>, \n"
             + "<a href=\"http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#see\">Javadoc</a>, \n"
-            + "<a href=\"Test.InnerOne.html#baz-float-\"><code>something</code></a></dd>\n"
+            + "<a href=\"Test.InnerOne.html#baz(float)\"><code>something</code></a></dd>\n"
             + "</dl>");
 
         checkOutput("pkg/Test.html", false,
@@ -65,4 +65,23 @@
         checkOutput("pkg/Test2.html", false,
            ">Serialized Form<");
     }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/Test.html", true,
+            "<code>List</code>",
+            "<dl>\n"
+            + "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
+            + "<dd><a href=\"Test.InnerOne.html#foo--\"><code>Test.InnerOne.foo()</code></a>, \n"
+            + "<a href=\"Test.InnerOne.html#bar-java.lang.Object-\"><code>Test.InnerOne.bar(Object)</code></a>, \n"
+            + "<a href=\"http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#see\">Javadoc</a>, \n"
+            + "<a href=\"Test.InnerOne.html#baz-float-\"><code>something</code></a></dd>\n"
+            + "</dl>");
 }
+}
--- a/test/langtools/jdk/javadoc/doclet/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java	Tue Mar 06 10:45:47 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 6802694 8025633 8026567 8183511 8074407
+ * @bug 6802694 8025633 8026567 8183511 8074407 8182765
  * @summary This test verifies deprecation info in serialized-form.html.
  * @author Bhavesh Patel
  * @library ../lib
@@ -96,12 +96,12 @@
                 + "java.io.IOException</code> - on error</dd>\n"
                 + "<dt><span class=\"seeLabel\">See Also:</span>"
                 + "</dt>\n"
-                + "<dd><a href=\"pkg1/C1.html#setUndecorated-boolean-\">"
+                + "<dd><a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
                 + "<code>C1.setUndecorated(boolean)</code></a></dd>\n"
                 + "</dl>",
                 "<span class=\"deprecatedLabel\">Deprecated.</span>\n"
                 + "<div class=\"deprecationComment\">As of JDK version 1.5, replaced by\n"
-                + " <a href=\"pkg1/C1.html#setUndecorated-boolean-\">"
+                + " <a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
                 + "<code>setUndecorated(boolean)</code></a>.</div>\n"
                 + "</div>\n"
                 + "<div class=\"block\">This field indicates whether the C1 "
@@ -112,12 +112,12 @@
                 + "<dd>1.4</dd>\n"
                 + "<dt><span class=\"seeLabel\">See Also:</span>"
                 + "</dt>\n"
-                + "<dd><a href=\"pkg1/C1.html#setUndecorated-boolean-\">"
+                + "<dd><a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
                 + "<code>C1.setUndecorated(boolean)</code></a></dd>\n"
                 + "</dl>",
                 "<span class=\"deprecatedLabel\">Deprecated.</span>\n"
                 + "<div class=\"deprecationComment\">As of JDK version 1.5, replaced by\n"
-                + " <a href=\"pkg1/C1.html#setUndecorated-boolean-\">"
+                + " <a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
                 + "<code>setUndecorated(boolean)</code></a>.</div>\n"
                 + "</div>\n"
                 + "<div class=\"block\">Reads the object stream.</div>\n"
@@ -140,7 +140,7 @@
                 + "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated.</span>\n"
                 + "<div class=\"deprecationComment\">"
                 + "As of JDK version 1.5, replaced by\n"
-                + " <a href=\"pkg1/C1.html#setUndecorated-boolean-\"><code>"
+                + " <a href=\"pkg1/C1.html#setUndecorated(boolean)\"><code>"
                 + "setUndecorated(boolean)</code></a>.</div>\n"
                 + "</div>\n"
                 + "</li>",
@@ -148,7 +148,7 @@
                 + "Deprecated.</span>\n"
                 + "<div class=\"deprecationComment\">As of JDK version"
                 + " 1.5, replaced by\n"
-                + " <a href=\"pkg1/C1.html#setUndecorated-boolean-\">"
+                + " <a href=\"pkg1/C1.html#setUndecorated(boolean)\">"
                 + "<code>setUndecorated(boolean)</code></a>.</div>\n"
                 + "</div>\n"
                 + "</li>");
--- a/test/langtools/jdk/javadoc/doclet/testStylesheet/TestStylesheet.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testStylesheet/TestStylesheet.java	Tue Mar 06 10:45:47 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
 /*
  * @test
  * @bug      4494033 7028815 7052425 8007338 8023608 8008164 8016549 8072461 8154261 8162363 8160196 8151743 8177417
- *           8175218 8176452 8181215 8182263 8183511 8169819 8183037 8185369
+ *           8175218 8176452 8181215 8182263 8183511 8169819 8183037 8185369 8182765
  * @summary  Run tests on doclet stylesheet.
  * @author   jamieh
  * @library  ../lib
@@ -45,7 +45,10 @@
         javadoc("-d", "out",
                 "-sourcepath", testSrc,
                 "pkg");
-        checkExit(Exit.OK);
+        checkExit(Exit.ERROR);
+
+        checkOutput(Output.OUT, true,
+                "attribute not supported in HTML5: name");
 
         // TODO: most of this test seems a bit silly, since javadoc is simply
         // copying in the stylesheet from the source directory
@@ -251,4 +254,13 @@
                 + "    font-weight:bold;\n"
                 + "}");
     }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
 }
+}
--- a/test/langtools/jdk/javadoc/doclet/testSummaryTag/TestSummaryTag.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testSummaryTag/TestSummaryTag.java	Tue Mar 06 10:45:47 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,7 @@
 
 /*
  * @test
- * @bug      8173425 8186332
+ * @bug      8173425 8186332 8182765
  * @summary  tests for the summary tag behavior
  * @library  ../lib
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -49,6 +49,63 @@
 
         checkOutput("index-all.html", true,
             "<dl>\n"
+            + "<dt><span class=\"memberNameLink\"><a href=\"p1/A.html#m()\">m()"
+            + "</a></span> - Method in class p1.<a href=\"p1/A.html\" title=\"class in p1\">A</a></dt>\n"
+            + "<dd>\n"
+            + "<div class=\"block\">First sentence</div>\n"
+            + "</dd>\n"
+            + "<dt><span class=\"memberNameLink\"><a href=\"p1/B.html#m()\">m()"
+            + "</a></span> - Method in class p1.<a href=\"p1/B.html\" title=\"class in p1\">B</a></dt>\n"
+            + "<dd>\n"
+            + "<div class=\"block\">First sentence</div>\n"
+            + "</dd>\n"
+            + "<dt><span class=\"memberNameLink\"><a href=\"p1/A.html#m1()\">m1()"
+            + "</a></span> - Method in class p1.<a href=\"p1/A.html\" title=\"class in p1\">A</a></dt>\n"
+            + "<dd>\n"
+            + "<div class=\"block\"> First sentence </div>\n"
+            + "</dd>\n"
+            + "<dt><span class=\"memberNameLink\"><a href=\"p1/A.html#m2()\">m2()"
+            + "</a></span> - Method in class p1.<a href=\"p1/A.html\" title=\"class in p1\">A</a></dt>\n"
+            + "<dd>\n"
+            + "<div class=\"block\">Some html &lt;foo&gt; &nbsp; codes</div>\n"
+            + "</dd>\n"
+            + "<dt><span class=\"memberNameLink\"><a href=\"p1/A.html#m3()\">m3()"
+            + "</a></span> - Method in class p1.<a href=\"p1/A.html\" title=\"class in p1\">A</a></dt>\n"
+            + "<dd>\n"
+            + "<div class=\"block\">First sentence </div>\n"
+            + "</dd>\n"
+            + "<dt><span class=\"memberNameLink\"><a href=\"p1/A.html#m4()\">m4()"
+            + "</a></span> - Method in class p1.<a href=\"p1/A.html\" title=\"class in p1\">A</a></dt>\n"
+            + "<dd>\n"
+            + "<div class=\"block\">First sentence i.e. the first sentence</div>\n"
+            + "</dd>\n"
+            + "</dl>\n",
+            "<div class=\"block\">The first... line</div>\n"
+        );
+
+        // make sure the second @summary's content is displayed correctly
+        checkOutput("p1/A.html", true,
+             "<li class=\"blockList\">\n"
+             + "<h4>m3</h4>\n"
+             + "<pre>public&nbsp;void&nbsp;m3()</pre>\n"
+             + "<div class=\"block\">First sentence  some text maybe second sentence.</div>\n"
+             + "</li>\n"
+        );
+
+        checkOutput("p1/package-summary.html", true,
+                "<div class=\"block\">The first... line second from ...</div>");
+    }
+
+    @Test
+    void test1_html4() {
+        javadoc("-d", "out1-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "p1");
+        checkExit(Exit.OK);
+
+        checkOutput("index-all.html", true,
+            "<dl>\n"
             + "<dt><span class=\"memberNameLink\"><a href=\"p1/A.html#m--\">m()"
             + "</a></span> - Method in class p1.<a href=\"p1/A.html\" title=\"class in p1\">A</a></dt>\n"
             + "<dd>\n"
@@ -79,22 +136,10 @@
             + "<dd>\n"
             + "<div class=\"block\">First sentence i.e. the first sentence</div>\n"
             + "</dd>\n"
-            + "</dl>\n",
-            "<div class=\"block\">The first... line</div>\n"
+            + "</dl>\n"
         );
+    }
 
-        // make sure the second @summary's content is displayed correctly
-        checkOutput("p1/A.html", true,
-             "<li class=\"blockList\">\n"
-             + "<h4>m3</h4>\n"
-             + "<pre>public&nbsp;void&nbsp;m3()</pre>\n"
-             + "<div class=\"block\">First sentence  some text maybe second sentence.</div>\n"
-             + "</li>\n"
-        );
-
-        checkOutput("p1/package-summary.html", true,
-                "<div class=\"block\">The first... line second from ...</div>");
-    }
     @Test
     void test2() {
         javadoc("-d", "out2",
--- a/test/langtools/jdk/javadoc/doclet/testTypeAnnotations/TestTypeAnnotations.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testTypeAnnotations/TestTypeAnnotations.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      8005091 8009686 8025633 8026567 6469562 8071982 8071984 8162363 8175200 8186332
+ * @bug      8005091 8009686 8025633 8026567 6469562 8071982 8071984 8162363 8175200 8186332 8182765
  * @summary  Make sure that type annotations are displayed correctly
  * @author   Bhavesh Patel
  * @library  ../lib
@@ -438,16 +438,13 @@
         );
 
         checkOutput("typeannos/RepeatingOnConstructor.Inner.html", true,
-                "<code><span class=\"memberNameLink\"><a href=\""
-                + "#Inner-java.lang.String-java.lang.String...-\">Inner</a></span>"
-                + "&#8203;(java.lang.String&nbsp;parameter,\n     java.lang.String <a href="
-                + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
-                + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title="
-                + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html"
-                + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> <a href="
-                + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
+                "<code><span class=\"memberNameLink\"><a href=\"#%3Cinit%3E(java.lang.String,"
+                + "java.lang.String...)\">Inner</a></span>&#8203;(java.lang.String&nbsp;parameter,\n"
+                + "     java.lang.String <a href=\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
                 + "@RepTypeUseB</a> ...&nbsp;vararg)</code>",
-
                 "Inner&#8203;(<a href=\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
                 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title="
                 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html"
@@ -574,7 +571,7 @@
         checkOutput("typeannos/RepeatingOnMethod.html", true,
                 "<code>(package private) java.lang.String</code></td>\n<th class=\"colSecond\" scope=\"row\">"
                 + "<code><span class=\"memberNameLink\"><a href="
-                + "\"#test1--\">test1</a></span>()</code>",
+                + "\"#test1()\">test1</a></span>()</code>",
 
                 "<code>(package private) <a href=\"RepTypeUseA.html\" "
                 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
@@ -583,7 +580,7 @@
                 + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html"
                 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> java.lang.String</code>"
                 + "</td>\n<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
-                + "<a href=\"#test2--\">test2</a>"
+                + "<a href=\"#test2()\">test2</a>"
                 + "</span>()</code>",
 
                 "<code>(package private) <a href=\"RepTypeUseA.html\" "
@@ -593,7 +590,7 @@
                 + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" "
                 + "title=\"annotation in typeannos\">@RepTypeUseB</a> java.lang.String</code>"
                 + "</td>\n<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
-                + "<a href=\"#test3--\">test3</a>"
+                + "<a href=\"#test3()\">test3</a>"
                 + "</span>()</code>",
 
                 "<code>(package private) <a href=\"RepAllContextsA.html\" "
@@ -604,10 +601,10 @@
                 + "\"RepAllContextsB.html\" title=\"annotation in typeannos\">"
                 + "@RepAllContextsB</a> java.lang.String</code></td>\n<th class=\"colSecond\" scope=\"row\">"
                 + "<code><span class=\"memberNameLink\"><a href=\""
-                + "#test4--\">test4</a></span>()</code>",
+                + "#test4()\">test4</a></span>()</code>",
 
                 "<code><span class=\"memberNameLink\"><a href=\""
-                + "#test5-java.lang.String-java.lang.String...-\">test5</a></span>"
+                + "#test5(java.lang.String,java.lang.String...)\">test5</a></span>"
                 + "&#8203;(java.lang.String&nbsp;parameter,\n     java.lang.String <a href="
                 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
                 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title="
@@ -684,12 +681,12 @@
                 "<code>(package private) &lt;T&gt;&nbsp;java.lang.String</code></td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\"><a href="
                 + "\"#"
-                + "genericMethod-T-\">genericMethod</a></span>&#8203;(T&nbsp;t)</code>",
+                + "genericMethod(T)\">genericMethod</a></span>&#8203;(T&nbsp;t)</code>",
 
                 "<code>(package private) &lt;T&gt;&nbsp;java.lang.String</code></td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\"><a href="
                 + "\"#"
-                + "genericMethod2-T-\">genericMethod2</a></span>&#8203;(<a href=\"RepTypeUseA.html"
+                + "genericMethod2(T)\">genericMethod2</a></span>&#8203;(<a href=\"RepTypeUseA.html"
                 + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html"
                 + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html"
                 + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html"
@@ -697,7 +694,7 @@
 
                 "<code>(package private) java.lang.String</code></td>\n<th class=\"colSecond\" scope=\"row\"><code>"
                 + "<span class=\"memberNameLink\"><a href=\"#"
-                + "test--\">test</a></span>()</code>",
+                + "test()\">test</a></span>()</code>",
 
                 "java.lang.String&nbsp;test&#8203;(<a href=\"RepTypeUseA.html\" "
                 + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
@@ -720,4 +717,89 @@
                 + "\"RepMethodB.html\" title=\"annotation in typeannos\">"
                 + "@RepMethodB</a>\nvoid&nbsp;test()");
     }
+
+    @Test
+    void test_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-private",
+                "typeannos");
+        checkExit(Exit.OK);
+
+        checkOutput("typeannos/RepeatingOnConstructor.Inner.html", true,
+                "<code><span class=\"memberNameLink\"><a href=\""
+                + "#Inner-java.lang.String-java.lang.String...-\">Inner</a></span>"
+                + "&#8203;(java.lang.String&nbsp;parameter,\n     java.lang.String <a href="
+                + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title="
+                + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html"
+                + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> <a href="
+                + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseB</a> ...&nbsp;vararg)</code>");
+
+        checkOutput("typeannos/RepeatingOnMethod.html", true,
+                "<code>(package private) java.lang.String</code></td>\n<th class=\"colSecond\" scope=\"row\">"
+                + "<code><span class=\"memberNameLink\"><a href="
+                + "\"#test1--\">test1</a></span>()</code>",
+
+                "<code>(package private) <a href=\"RepTypeUseA.html\" "
+                + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
+                + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title="
+                + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html"
+                + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> java.lang.String</code>"
+                + "</td>\n<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#test2--\">test2</a>"
+                + "</span>()</code>",
+
+                "<code>(package private) <a href=\"RepTypeUseA.html\" "
+                + "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
+                + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title="
+                + "\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" "
+                + "title=\"annotation in typeannos\">@RepTypeUseB</a> java.lang.String</code>"
+                + "</td>\n<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
+                + "<a href=\"#test3--\">test3</a>"
+                + "</span>()</code>",
+
+                "<code>(package private) <a href=\"RepAllContextsA.html\" "
+                + "title=\"annotation in typeannos\">@RepAllContextsA</a> <a href="
+                + "\"RepAllContextsA.html\" title=\"annotation in typeannos\">"
+                + "@RepAllContextsA</a> <a href=\"RepAllContextsB.html\" "
+                + "title=\"annotation in typeannos\">@RepAllContextsB</a> <a href="
+                + "\"RepAllContextsB.html\" title=\"annotation in typeannos\">"
+                + "@RepAllContextsB</a> java.lang.String</code></td>\n<th class=\"colSecond\" scope=\"row\">"
+                + "<code><span class=\"memberNameLink\"><a href=\""
+                + "#test4--\">test4</a></span>()</code>",
+
+                "<code><span class=\"memberNameLink\"><a href=\""
+                + "#test5-java.lang.String-java.lang.String...-\">test5</a></span>"
+                + "&#8203;(java.lang.String&nbsp;parameter,\n     java.lang.String <a href="
+                + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title="
+                + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html"
+                + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> <a href="
+                + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseB</a> ...&nbsp;vararg)</code>");
+
+        checkOutput("typeannos/RepeatingOnTypeParametersBoundsTypeArgumentsOnMethod.html", true,
+                "<code>(package private) &lt;T&gt;&nbsp;java.lang.String</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\"><a href="
+                + "\"#"
+                + "genericMethod-T-\">genericMethod</a></span>&#8203;(T&nbsp;t)</code>",
+
+                "<code>(package private) &lt;T&gt;&nbsp;java.lang.String</code></td>\n"
+                + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\"><a href="
+                + "\"#"
+                + "genericMethod2-T-\">genericMethod2</a></span>&#8203;(<a href=\"RepTypeUseA.html"
+                + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html"
+                + "\" title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html"
+                + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html"
+                + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> T&nbsp;t)</code>",
+
+                "<code>(package private) java.lang.String</code></td>\n<th class=\"colSecond\" scope=\"row\"><code>"
+                + "<span class=\"memberNameLink\"><a href=\"#"
+                + "test--\">test</a></span>()</code>");
 }
+}
--- a/test/langtools/jdk/javadoc/doclet/testTypeParams/TestTypeParameters.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testTypeParams/TestTypeParameters.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4927167 4974929 7010344 8025633 8081854
+ * @bug      4927167 4974929 7010344 8025633 8081854 8182765
  * @summary  When the type parameters are more than 10 characters in length,
  *           make sure there is a line break between type params and return type
  *           in member summary. Also, test for type parameter links in package-summary and
@@ -68,12 +68,27 @@
 
         // Nested type parameters
         checkOutput("pkg/C.html", true,
+                "<a id=\"formatDetails(java.util.Collection,java.util.Collection)\">\n"
+                + "<!--   -->\n"
+                + "</a>");
+    }
+
+    @Test
+    void test1_html4() {
+        javadoc("-d", "out-1-html4",
+                "-html4",
+                "-use",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        // Nested type parameters
+        checkOutput("pkg/C.html", true,
                 "<a name=\"formatDetails-java.util.Collection-java.util.Collection-\">\n"
                 + "<!--   -->\n"
                 + "</a>");
     }
 
-
     @Test
     void test2() {
         javadoc("-d", "out-2",
--- a/test/langtools/jdk/javadoc/doclet/testTypeVariableLinks/TestTypeVariableLinks.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testTypeVariableLinks/TestTypeVariableLinks.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8174805
+ * @bug 8174805 8182765
  * @summary JavacTrees should use Types.skipTypeVars() to get the upper bound of type variables
  * @library ../lib
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
@@ -40,7 +40,10 @@
 
     @Test
     void test1() {
-        javadoc("-d", "out", "-sourcepath", testSrc, "-package", "pkg1");
+        javadoc("-d", "out",
+                "-sourcepath", testSrc,
+                "-package",
+                "pkg1");
         checkExit(Exit.OK);
 
         checkOutput("pkg1/C.html", true,
@@ -48,6 +51,21 @@
         checkOutput("pkg1/C.html", true,
                 "<div class=\"block\">Linking to List.clear() <code>List.clear()</code></div>");
         checkOutput("pkg1/C.html", true,
+                "<div class=\"block\">Linking to Additional.doAction() <a href=\"Additional.html#doAction()\"><code>Additional.doAction()</code></a></div>");
+        checkOutput("pkg1/C.html", true,
+                "<div class=\"block\">Linking to I.abstractAction() <a href=\"I.html#abstractAction()\"><code>I.abstractAction()</code></a></div>");
+    }
+
+    @Test
+    void test1_html4() {
+        javadoc("-d", "out-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-package",
+                "pkg1");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg1/C.html", true,
                 "<div class=\"block\">Linking to Additional.doAction() <a href=\"Additional.html#doAction--\"><code>Additional.doAction()</code></a></div>");
         checkOutput("pkg1/C.html", true,
                 "<div class=\"block\">Linking to I.abstractAction() <a href=\"I.html#abstractAction--\"><code>I.abstractAction()</code></a></div>");
--- a/test/langtools/jdk/javadoc/doclet/testUseOption/TestUseOption.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testUseOption/TestUseOption.java	Tue Mar 06 10:45:47 2018 -0800
@@ -24,6 +24,7 @@
 /*
  * @test
  * @bug 4496290 4985072 7006178 7068595 8016328 8050031 8048351 8081854 8071982 8162363 8175200 8186332
+ *      8182765
  * @summary A simple test to ensure class-use files are correct.
  * @author jamieh
  * @library ../lib
@@ -84,7 +85,7 @@
           "that return types with arguments of type"
         );
         checkOutput("pkg1/class-use/UsedClass.html", true,
-          "<a href=\"../C1.html#methodInC1ReturningType--\">methodInC1ReturningType</a>"
+          "<a href=\"../C1.html#methodInC1ReturningType()\">methodInC1ReturningType</a>"
         );
         checkOutput("pkg1/class-use/UsedInterface.html", true,
           "Classes in <a href=\"../package-summary.html\">pkg1</a> that implement " +
@@ -101,16 +102,62 @@
            "<a href=\"../AnAbstract.html\" title=\"class in pkg1\">AnAbstract</a>"
         );
         checkOutput("pkg1/class-use/UsedInterface.html", true,
+            "../C10.html#withReturningTypeParameters()"
+        );
+        checkOutput("pkg1/class-use/UsedInterface.html", true,
+            "../C10.html#withTypeParametersOfType(java.lang.Class)"
+        );
+        checkOutput("pkg1/class-use/UsedInterface.html", true,
+            "\"../package-summary.html\">pkg1</a> that return " +
+            "<a href=\"../UsedInterface.html\" title=\"interface in pkg1\""
+        );
+        checkOutput("pkg1/class-use/UsedInterface.html", true,
+            "<a href=\"../C10.html#addAll(pkg1.UsedInterface...)\">addAll</a>"
+        );
+        checkOutput("pkg1/class-use/UsedInterface.html", true,
+            "<a href=\"../C10.html#create(pkg1.UsedInterfaceA,pkg1." +
+            "UsedInterface,java.lang.String)\">"
+        );
+        checkOutput("pkg1/class-use/UsedInterface.html", true,
+            "<a href=\"../C10.html#withTypeParametersOfType(java.lang.Class)\">" +
+            "withTypeParametersOfType</a>"
+        );
+        checkOutput("pkg1/class-use/UsedInterface.html", true,
+            "Subinterfaces of <a href=\"../UsedInterface.html\" title=\"interface in pkg1\">"
+            + "UsedInterface</a> in <a href=\"../package-summary.html\">pkg1",
+            "<td class=\"colFirst\"><code>interface&nbsp;</code></td>\n<th class=\"colSecond\" scope=\"row\">"
+            + "<code><span class=\"memberNameLink\"><a href=\"../SubInterface.html\" "
+            + "title=\"interface in pkg1\">SubInterface</a>&lt;T&gt;</span></code></th>"
+        );
+        checkOutput("pkg1/class-use/UsedThrowable.html", true,
+            "Methods in <a href=\"../package-summary.html\">pkg1</a> that throw "
+            + "<a href=\"../UsedThrowable.html\" title=\"class in pkg1\">UsedThrowable</a>",
+            "<td class=\"colFirst\"><code>void</code></td>\n<th class=\"colSecond\" scope=\"row\"><span class="
+            + "\"typeNameLabel\">C1.</span><code><span class=\"memberNameLink\">"
+            + "<a href=\"../C1.html#methodInC1ThrowsThrowable()\">methodInC1ThrowsThrowable"
+            + "</a></span>()</code></th>"
+        );
+    }
+
+    @Test
+    void test1_html4() {
+        javadoc("-d", "out-1-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-use",
+                "pkg1", "pkg2");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg1/class-use/UsedClass.html", true,
+          "<a href=\"../C1.html#methodInC1ReturningType--\">methodInC1ReturningType</a>"
+        );
+        checkOutput("pkg1/class-use/UsedInterface.html", true,
             "../C10.html#withReturningTypeParameters--"
         );
         checkOutput("pkg1/class-use/UsedInterface.html", true,
             "../C10.html#withTypeParametersOfType-java.lang.Class-"
         );
         checkOutput("pkg1/class-use/UsedInterface.html", true,
-            "\"../package-summary.html\">pkg1</a> that return " +
-            "<a href=\"../UsedInterface.html\" title=\"interface in pkg1\""
-        );
-        checkOutput("pkg1/class-use/UsedInterface.html", true,
             "<a href=\"../C10.html#addAll-pkg1.UsedInterface...-\">addAll</a>"
         );
         checkOutput("pkg1/class-use/UsedInterface.html", true,
@@ -121,13 +168,6 @@
             "<a href=\"../C10.html#withTypeParametersOfType-java.lang.Class-\">" +
             "withTypeParametersOfType</a>"
         );
-        checkOutput("pkg1/class-use/UsedInterface.html", true,
-            "Subinterfaces of <a href=\"../UsedInterface.html\" title=\"interface in pkg1\">"
-            + "UsedInterface</a> in <a href=\"../package-summary.html\">pkg1",
-            "<td class=\"colFirst\"><code>interface&nbsp;</code></td>\n<th class=\"colSecond\" scope=\"row\">"
-            + "<code><span class=\"memberNameLink\"><a href=\"../SubInterface.html\" "
-            + "title=\"interface in pkg1\">SubInterface</a>&lt;T&gt;</span></code></th>"
-        );
         checkOutput("pkg1/class-use/UsedThrowable.html", true,
             "Methods in <a href=\"../package-summary.html\">pkg1</a> that throw "
             + "<a href=\"../UsedThrowable.html\" title=\"class in pkg1\">UsedThrowable</a>",
@@ -151,11 +191,30 @@
                 + "UsedInC</a> in <a href=\"../package-summary.html\">&lt;Unnamed&gt;</a>"
         );
         checkOutput("class-use/UsedInC.html", true,
-                "<li class=\"blockList\"><a name=\"unnamed.package\">"
+                "<li class=\"blockList\">\n"
+                + "<section role=\"region\"><a id=\"unnamed.package\">"
         );
         checkOutput("package-use.html", true,
                 "<th class=\"colFirst\" scope=\"row\">"
                 + "<a href=\"class-use/UsedInC.html#unnamed.package\">UsedInC</a></th>",
+                "<th class=\"colFirst\" scope=\"row\"><a href=\"#%3CUnnamed%3E\">&lt;Unnamed&gt;</a></th>\n"
+                + "<td class=\"colLast\">&nbsp;</td>"
+        );
+    }
+
+    @Test
+    void test2_html4() {
+        javadoc("-d", "out-2-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-use",
+                testSrc("C.java"), testSrc("UsedInC.java"), "pkg3");
+        checkExit(Exit.OK);
+
+        checkOutput("class-use/UsedInC.html", true,
+                "<li class=\"blockList\"><a name=\"unnamed.package\">"
+        );
+        checkOutput("package-use.html", true,
                 "<th class=\"colFirst\" scope=\"row\"><a href=\"#-Unnamed-\">&lt;Unnamed&gt;</a></th>\n"
                 + "<td class=\"colLast\">&nbsp;</td>"
         );
@@ -169,6 +228,21 @@
                 "-package", "unique");
         checkExit(Exit.OK);
         checkUnique("unique/class-use/UseMe.html",
+                "<a href=\"../C1.html#umethod1(unique.UseMe,unique.UseMe%5B%5D)\">",
+                "<a href=\"../C1.html#umethod2(unique.UseMe,unique.UseMe)\">",
+                "<a href=\"../C1.html#umethod3(unique.UseMe,unique.UseMe)\">",
+                "<a href=\"../C1.html#%3Cinit%3E(unique.UseMe,unique.UseMe)\">");
+    }
+
+    @Test
+    void test3_html4() {
+        javadoc("-d", "out-3-html4",
+                "-html4",
+                "-sourcepath", testSrc,
+                "-use",
+                "-package", "unique");
+        checkExit(Exit.OK);
+        checkUnique("unique/class-use/UseMe.html",
                 "<a href=\"../C1.html#umethod1-unique.UseMe-unique.UseMe:A-\">",
                 "<a href=\"../C1.html#umethod2-unique.UseMe-unique.UseMe-\">",
                 "<a href=\"../C1.html#umethod3-unique.UseMe-unique.UseMe-\">",
--- a/test/langtools/jdk/javadoc/doclet/testWarnings/TestWarnings.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/doclet/testWarnings/TestWarnings.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4515705 4804296 4702454 4697036 8025633
+ * @bug      4515705 4804296 4702454 4697036 8025633 8182765
  * @summary  Make sure that first sentence warning only appears once.
  *           Make sure that only warnings/errors are printed when quiet is used.
  *           Make sure that links to private/unincluded methods do not cause
@@ -78,8 +78,22 @@
         checkExit(Exit.ERROR);
 
         checkOutput("pkg/X.html", true,
-            "<a href=\"#m--\"><code>m()</code></a><br/>",
-            "<a href=\"#X--\"><code>X()</code></a><br/>",
+            "<a href=\"#m()\"><code>m()</code></a><br/>",
+            "<a href=\"#%3Cinit%3E()\"><code>X()</code></a><br/>",
             "<a href=\"#f\"><code>f</code></a><br/>");
     }
+
+    @Test
+    void testPrivate_html4() {
+        javadoc("-d", "out-private-html4",
+                "-html4",
+                "-private",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.ERROR);
+
+        checkOutput("pkg/X.html", true,
+            "<a href=\"#m--\"><code>m()</code></a><br/>",
+            "<a href=\"#X--\"><code>X()</code></a><br/>");
 }
+}
--- a/test/langtools/jdk/javadoc/tool/6958836/Test.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/tool/6958836/Test.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 6958836 8002168
+ * @bug 6958836 8002168 8182765
  * @summary javadoc should support -Xmaxerrs and -Xmaxwarns
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
  */
@@ -63,7 +63,6 @@
         // For some reason, this must be the first option when used.
         opts.addAll(list("-locale", "en_US"));
         opts.add("-Xdoclint:none");
-        opts.add("-html4");
         opts.addAll(list("-classpath", System.getProperty("test.src")));
         opts.addAll(list("-d", testOutDir.getPath()));
         opts.addAll(testOpts);
--- a/test/langtools/jdk/javadoc/tool/6964914/Test.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/tool/6964914/Test.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 6964914
+ * @bug 6964914 8182765
  * @summary javadoc does not output number of warnings using user written doclet
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
  */
@@ -47,7 +47,6 @@
         File testSrc = new File(System.getProperty("test.src"));
         String[] args = {
             "-Xdoclint:none",
-            "-html4",
             "-source", "8",
             "-classpath", ".",
             "-package",
--- a/test/langtools/jdk/javadoc/tool/6964914/TestStdDoclet.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/tool/6964914/TestStdDoclet.java	Tue Mar 06 10:45:47 2018 -0800
@@ -58,7 +58,6 @@
         cmdArgs.addAll(Arrays.asList(
                 "-classpath", ".", // insulates us from ambient classpath
                 "-Xdoclint:none",
-                "-html4",
                 "-package",
                 new File(testSrc, thisClassName + ".java").getPath()
         ));
--- a/test/langtools/jdk/javadoc/tool/MaxWarns.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/tool/MaxWarns.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8005644
+ * @bug 8005644 8182765
  * @summary set default max errs and max warns
  * @modules jdk.javadoc/jdk.javadoc.internal.tool
  */
@@ -75,7 +75,7 @@
     String javadoc(File f) {
         StringWriter sw = new StringWriter();
         PrintWriter pw = new PrintWriter(sw);
-        String[] args = { "-Xdoclint:none", "-html4", "-d", "api", f.getPath() };
+        String[] args = { "-Xdoclint:none", "-d", "api", f.getPath() };
         int rc = jdk.javadoc.internal.tool.Main.execute(args, pw);
         pw.flush();
         return sw.toString();
--- a/test/langtools/jdk/javadoc/tool/QuietOption.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/tool/QuietOption.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8035473
+ * @bug 8035473 8182765
  * @summary make sure tool is quiet when told to, and chatty otherwise
  */
 
@@ -62,7 +62,6 @@
     void run1() throws Exception {
         List<String> output = doTest(javadoc.getPath(),
                 "-classpath", ".", // insulates us from ambient classpath
-                "-html4",
                 "-quiet",
                 new File(testSrc, thisClassName + ".java").getPath());
 
--- a/test/langtools/jdk/javadoc/tool/doclint/DocLintTest.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/jdk/javadoc/tool/doclint/DocLintTest.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8004834 8007610 8129909
+ * @bug 8004834 8007610 8129909 8182765
  * @summary Add doclint support into javadoc
  * @modules jdk.compiler/com.sun.tools.javac.main
  */
@@ -92,7 +92,7 @@
         /* 05 */    "}\n";
 
     private final String rawDiags = "-XDrawDiagnostics";
-    private final String htmlVersion = "-html4";
+    private final String htmlVersion = "-html5";
 
     private enum Message {
         // doclint messages
--- a/test/langtools/tools/javadoc/6964914/TestStdDoclet.java	Tue Mar 06 17:43:21 2018 +0100
+++ b/test/langtools/tools/javadoc/6964914/TestStdDoclet.java	Tue Mar 06 10:45:47 2018 -0800
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 6964914
+ * @bug 6964914 8182765
  * @summary javadoc does not output number of warnings using user written doclet
  */
 
@@ -57,7 +57,6 @@
         cmdArgs.add(javadoc.getPath());
         cmdArgs.addAll(Arrays.asList(
                 "-classpath", ".", // insulates us from ambient classpath
-                "-html4",
                 "-Xdoclint:none",
                 "-package",
                 new File(testSrc, thisClassName + ".java").getPath()