# HG changeset patch # User pmuthuswamy # Date 1542691254 -19800 # Node ID 1a395165c09be5047bdf5198b6b5629a69374ecf # Parent 9a899e2c3e6491749f7cc5db0f213e827ec72423 8184205: Captions on tabbed tables are squashed together Reviewed-by: jjg diff -r 9a899e2c3e64 -r 1a395165c09b src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlAttr.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlAttr.java Tue Nov 20 10:07:42 2018 +0530 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlAttr.java Tue Nov 20 10:50:54 2018 +0530 @@ -39,6 +39,10 @@ */ public enum HtmlAttr { ALT, + ARIA_CONTROLS("aria-controls"), + ARIA_LABELLEDBY("aria-labelledby"), + ARIA_ORIENTATION("aria-orientation"), + ARIA_SELECTED("aria-selected"), CLASS, CLEAR, COLS, @@ -51,6 +55,7 @@ LANG, NAME, ONCLICK, + ONKEYDOWN, ONLOAD, REL, ROLE, @@ -59,6 +64,7 @@ SCROLLING, SRC, SUMMARY, + TABINDEX, TARGET, TITLE, TYPE, diff -r 9a899e2c3e64 -r 1a395165c09b src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlTag.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlTag.java Tue Nov 20 10:07:42 2018 +0530 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlTag.java Tue Nov 20 10:50:54 2018 +0530 @@ -39,6 +39,7 @@ */ public enum HtmlTag { A(BlockType.INLINE, EndTag.END), + BUTTON(BlockType.INLINE, EndTag.END), BLOCKQUOTE, BODY(BlockType.OTHER, EndTag.END), BR(BlockType.INLINE, EndTag.NOEND), diff -r 9a899e2c3e64 -r 1a395165c09b src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Table.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Table.java Tue Nov 20 10:07:42 2018 +0530 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Table.java Tue Nov 20 10:50:54 2018 +0530 @@ -415,47 +415,69 @@ * @return the HTML */ public Content toContent() { + HtmlTree mainDiv = new HtmlTree(HtmlTag.DIV); + mainDiv.setStyle(tableStyle); HtmlTree table = new HtmlTree(HtmlTag.TABLE); - table.setStyle(tableStyle); if (summary != null) { table.addAttr(HtmlAttr.SUMMARY, summary); } - if (tabMap != null) { - if (tabs.size() == 1) { + if (tabMap == null || tabs.size() == 1) { + if (tabMap == null) { + table.addContent(caption); + } else if (tabs.size() == 1) { String tabName = tabs.iterator().next(); table.addContent(getCaption(new StringContent(tabName))); - } else { - ContentBuilder cb = new ContentBuilder(); - int tabIndex = 0; - HtmlTree defaultTabSpan = new HtmlTree(HtmlTag.SPAN, - HtmlTree.SPAN(new StringContent(defaultTab)), - HtmlTree.SPAN(tabEnd, Contents.SPACE)) - .addAttr(HtmlAttr.ID, tabId.apply(tabIndex)) - .setStyle(activeTabStyle); - cb.addContent(defaultTabSpan); - for (String tabName : tabMap.keySet()) { - tabIndex++; - if (tabs.contains(tabName)) { - String script = "javascript:" + tabScript.apply(1 << (tabIndex - 1)); - HtmlTree link = HtmlTree.A(script, new StringContent(tabName)); - HtmlTree tabSpan = new HtmlTree(HtmlTag.SPAN, - HtmlTree.SPAN(link), HtmlTree.SPAN(tabEnd, Contents.SPACE)) - .addAttr(HtmlAttr.ID, tabId.apply(tabIndex)) - .setStyle(tabStyle); - cb.addContent(tabSpan); - } + } + table.addContent(getTableBody()); + mainDiv.addContent(table); + } else { + HtmlTree tablist = new HtmlTree(HtmlTag.DIV) + .addAttr(HtmlAttr.ROLE, "tablist") + .addAttr(HtmlAttr.ARIA_ORIENTATION, "horizontal"); + + int tabIndex = 0; + tablist.addContent(createTab(tabId.apply(tabIndex), activeTabStyle, true, defaultTab)); + table.addAttr(HtmlAttr.ARIA_LABELLEDBY, tabId.apply(tabIndex)); + for (String tabName : tabMap.keySet()) { + tabIndex++; + if (tabs.contains(tabName)) { + String script = tabScript.apply(1 << (tabIndex - 1)); + HtmlTree tab = createTab(tabId.apply(tabIndex), tabStyle, false, tabName); + tab.addAttr(HtmlAttr.ONCLICK, script); + tablist.addContent(tab); } - table.addContent(HtmlTree.CAPTION(cb)); } - } else { - table.addContent(caption); + HtmlTree tabpanel = new HtmlTree(HtmlTag.DIV) + .addAttr(HtmlAttr.ID, tableStyle + "_tabpanel") + .addAttr(HtmlAttr.ROLE, "tabpanel"); + table.addContent(getTableBody()); + tabpanel.addContent(table); + mainDiv.addContent(tablist); + mainDiv.addContent(tabpanel); } - table.addContent(header.toContent()); + return mainDiv; + } + + private HtmlTree createTab(String tabId, HtmlStyle style, boolean defaultTab, String tabName) { + HtmlTree tab = new HtmlTree(HtmlTag.BUTTON) + .addAttr(HtmlAttr.ROLE, "tab") + .addAttr(HtmlAttr.ARIA_SELECTED, defaultTab ? "true" : "false") + .addAttr(HtmlAttr.ARIA_CONTROLS, tableStyle + "_tabpanel") + .addAttr(HtmlAttr.TABINDEX, defaultTab ? "0" : "-1") + .addAttr(HtmlAttr.ONKEYDOWN, "switchTab(event)") + .addAttr(HtmlAttr.ID, tabId) + .setStyle(style); + tab.addContent(tabName); + return tab; + } + + private Content getTableBody() { + ContentBuilder tableContent = new ContentBuilder(); + tableContent.addContent(header.toContent()); Content tbody = new HtmlTree(HtmlTag.TBODY); bodyRows.forEach(row -> tbody.addContent(row)); - table.addContent(tbody); - - return table; + tableContent.addContent(tbody); + return tableContent; } /** diff -r 9a899e2c3e64 -r 1a395165c09b src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/script.js --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/script.js Tue Nov 20 10:07:42 2018 +0530 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/script.js Tue Nov 20 10:50:54 2018 +0530 @@ -119,16 +119,23 @@ } function updateTabs(type) { + var firstRow = document.getElementById(Object.keys(data)[0]); + var table = firstRow.closest('table'); for (var value in tabs) { - var sNode = document.getElementById(tabs[value][0]); - var spanNode = sNode.firstChild; + var tab = document.getElementById(tabs[value][0]); if (value == type) { - sNode.className = activeTableTab; - spanNode.innerHTML = tabs[value][1]; + tab.className = activeTableTab; + tab.innerHTML = tabs[value][1]; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex',0); + table.setAttribute('aria-labelledby', tabs[value][0]); } else { - sNode.className = tableTab; - spanNode.innerHTML = "" + tabs[value][1] + ""; + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex',-1); + tab.setAttribute('onclick', "show("+ value + ")"); + tab.innerHTML = tabs[value][1]; } } } @@ -137,3 +144,13 @@ top.packageFrame.location = pFrame; top.classFrame.location = cFrame; } +function switchTab(e) { + if (e.keyCode == 37 || e.keyCode == 38) { + $("[aria-selected=true]").prev().click().focus(); + e.preventDefault(); + } + if (e.keyCode == 39 || e.keyCode == 40) { + $("[aria-selected=true]").next().click().focus(); + e.preventDefault(); + } +} diff -r 9a899e2c3e64 -r 1a395165c09b src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css Tue Nov 20 10:07:42 2018 +0530 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css Tue Nov 20 10:50:54 2018 +0530 @@ -94,7 +94,10 @@ sup { font-size:8px; } - +button { + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size: 14px; +} /* * Styles for HTML generated by javadoc. * @@ -420,15 +423,15 @@ /* * Styles for tables. */ -.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary, -.requiresSummary, .packagesSummary, .providesSummary, .usesSummary { +.overviewSummary table, .memberSummary table, .typeSummary table, .useSummary table, .constantsSummary table, .deprecatedSummary table, +.requiresSummary table, .packagesSummary table, .providesSummary table, .usesSummary table { width:100%; border-spacing:0; - border-left:1px solid #EEE; - border-right:1px solid #EEE; - border-bottom:1px solid #EEE; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; } -.overviewSummary, .memberSummary, .requiresSummary, .packagesSummary, .providesSummary, .usesSummary { +.overviewSummary table, .memberSummary table, .requiresSummary table, .packagesSummary table, .providesSummary table, .usesSummary table { padding:0px; } .overviewSummary caption, .memberSummary caption, .typeSummary caption, @@ -484,41 +487,6 @@ border: none; height:16px; } -.memberSummary caption span.activeTableTab span, .packagesSummary caption span.activeTableTab span, -.overviewSummary caption span.activeTableTab span, .typeSummary caption span.activeTableTab span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - margin-right:3px; - display:inline-block; - float:left; - background-color:#F8981D; - height:16px; -} -.memberSummary caption span.tableTab span, .packagesSummary caption span.tableTab span, -.overviewSummary caption span.tableTab span, .typeSummary caption span.tableTab span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - margin-right:3px; - display:inline-block; - float:left; - background-color:#4D7A97; - height:16px; -} -.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab, -.packagesSummary caption span.tableTab, .packagesSummary caption span.activeTableTab, -.overviewSummary caption span.tableTab, .overviewSummary caption span.activeTableTab, -.typeSummary caption span.tableTab, .typeSummary caption span.activeTableTab { - padding-top:0px; - padding-left:0px; - padding-right:0px; - background-image:none; - float:none; - display:inline; -} .overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, .useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd, .requiresSummary .tabEnd, .packagesSummary .tabEnd, .providesSummary .tabEnd, .usesSummary .tabEnd { @@ -528,23 +496,23 @@ float:left; background-color:#F8981D; } -.memberSummary .activeTableTab .tabEnd, .packagesSummary .activeTableTab .tabEnd, -.overviewSummary .activeTableTab .tabEnd, .typeSummary .activeTableTab .tabEnd { - display:none; - width:5px; - margin-right:3px; - position:relative; - float:left; - background-color:#F8981D; +.overviewSummary [role=tablist] button, .memberSummary [role=tablist] button, +.typeSummary [role=tablist] button, .packagesSummary [role=tablist] button { + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; } -.memberSummary .tableTab .tabEnd, .packagesSummary .tableTab .tabEnd, -.overviewSummary .tableTab .tabEnd, .typeSummary .tableTab .tabEnd { - display:none; - width:5px; - margin-right:3px; - position:relative; - background-color:#4D7A97; - float:left; +.overviewSummary [role=tablist] .activeTableTab, .memberSummary [role=tablist] .activeTableTab, +.typeSummary [role=tablist] .activeTableTab, .packagesSummary [role=tablist] .activeTableTab { + background: #F8981D; + color: #253441; +} +.overviewSummary [role=tablist] .tableTab, .memberSummary [role=tablist] .tableTab, +.typeSummary [role=tablist] .tableTab, .packagesSummary [role=tablist] .tableTab { + background: #4D7A97; + color: #FFFFFF; } .rowColor th, .altColor th { font-weight:normal; diff -r 9a899e2c3e64 -r 1a395165c09b test/langtools/jdk/javadoc/doclet/testAbstractMethod/TestAbstractMethod.java --- a/test/langtools/jdk/javadoc/doclet/testAbstractMethod/TestAbstractMethod.java Tue Nov 20 10:07:42 2018 +0530 +++ b/test/langtools/jdk/javadoc/doclet/testAbstractMethod/TestAbstractMethod.java Tue Nov 20 10:50:54 2018 +0530 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 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 8004891 + * @bug 8004891 8184205 * @summary Make sure that the abstract method is identified correctly * if the abstract modifier is present explicitly or implicitly. * @author bpatel @@ -49,51 +49,61 @@ checkOutput("pkg/A.html", true, "default void", - "" - + "All Methods " - + "" - + "Instance Methods" - + " " - + "Abstract Methods " - + "" - + "Default Methods" - + " "); + "
"); checkOutput("pkg/B.html", true, - "" - + "All Methods " - + "" - + "Instance Methods" - + " Abstract " - + "Methods " - + "" - + "Concrete Methods" - + " ", + "
", "abstract void"); checkOutput("pkg/C.html", true, - "" - + "All Methods " - + "" - + "Instance Methods" - + " " - + "" - + "Default Methods" - + " ", - "default void"); + "
"); checkOutput("pkg/A.html", false, "abstract void"); checkOutput("pkg/B.html", false, - "Default Methods" - + " ", + "", "default void"); checkOutput("pkg/C.html", false, - "Abstract Methods" + "" + " "); } } diff -r 9a899e2c3e64 -r 1a395165c09b test/langtools/jdk/javadoc/doclet/testDeprecatedDocs/TestDeprecatedDocs.java --- a/test/langtools/jdk/javadoc/doclet/testDeprecatedDocs/TestDeprecatedDocs.java Tue Nov 20 10:07:42 2018 +0530 +++ b/test/langtools/jdk/javadoc/doclet/testDeprecatedDocs/TestDeprecatedDocs.java Tue Nov 20 10:50:54 2018 +0530 @@ -24,7 +24,7 @@ /* * @test * @bug 4927552 8026567 8071982 8162674 8175200 8175218 8183511 8186332 - * 8169819 8074407 8191030 8182765 + * 8169819 8074407 8191030 8182765 8184205 * @summary test generated docs for deprecated items * @author jamieh * @library ../lib @@ -210,13 +210,15 @@ + "
  • Annotation Type Elements
  • \n" + "", "", - "\n" + "
    \n" + + "
    \n" + "\n" + "\n" + "\n" + "\n" + "", - "
    For Removal 
    ElementDescription
    \n" + "
    \n" + + "
    \n" + "\n" + "\n" + "\n" @@ -230,8 +232,10 @@ + "\n" + "\n" + "\n" - + "
    Enums 
    Enum
    ", - "\n" + + "
    \n" + + "", + "
    \n" + + "\n" + "\n" + "\n" + "\n" @@ -245,8 +249,10 @@ + "\n" + "\n" + "\n" - + "
    Exceptions 
    Exceptions
    ", - "\n" + + "
    \n" + + "
    ", + "
    \n" + + "\n" + "\n" + "\n" + "\n" @@ -288,7 +294,8 @@ + "\n" + "\n" + "\n" - + "
    Fields 
    Field
    "); + + "\n" + + "
    "); } @Test @@ -301,13 +308,15 @@ checkOutput("deprecated-list.html", true, "
    ", - "\n" + "
    \n" + + "
    \n" + "\n" + "\n" + "\n" + "\n" + "", - "
    For Removal 
    ElementDescription
    \n" + "
    \n" + + "
    \n" + "\n" + "\n" + "\n" @@ -321,8 +330,10 @@ + "\n" + "\n" + "\n" - + "
    Enums 
    Enum
    ", - "\n" + + "
    \n" + + "", + "
    \n" + + "\n" + "\n" + "\n" + "\n" @@ -336,8 +347,10 @@ + "\n" + "\n" + "\n" - + "
    Exceptions 
    Exceptions
    ", - "\n" + + "
    \n" + + "
    ", + "
    \n" + + "\n" + "\n" + "\n" + "\n" @@ -379,6 +392,7 @@ + "\n" + "\n" + "\n" - + "
    Fields 
    Field
    "); + + "\n" + + "
    "); } } diff -r 9a899e2c3e64 -r 1a395165c09b test/langtools/jdk/javadoc/doclet/testFramesNoFrames/TestFramesNoFrames.java --- a/test/langtools/jdk/javadoc/doclet/testFramesNoFrames/TestFramesNoFrames.java Tue Nov 20 10:07:42 2018 +0530 +++ b/test/langtools/jdk/javadoc/doclet/testFramesNoFrames/TestFramesNoFrames.java Tue Nov 20 10:50:54 2018 +0530 @@ -23,7 +23,7 @@ /* * @test - * @bug 8162353 8164747 8173707 8196202 8204303 + * @bug 8162353 8164747 8173707 8196202 8204303 8184205 * @summary javadoc should provide a way to disable use of frames * @library /tools/lib ../lib * @modules @@ -347,7 +347,7 @@ // the index.html file contains a summary table // if an overview was generated and not in frames mode checkOutput("index.html", !frames && overview, - "\nabc < & > def", + "", ",\"abc < & > def\"],"); } @@ -99,7 +101,9 @@ checkExit(Exit.OK); checkOutput("overview-summary.html", true, - "abc < & > def", + "", ",\"abc < & > def\"],"); } } diff -r 9a899e2c3e64 -r 1a395165c09b test/langtools/jdk/javadoc/doclet/testHtmlTableStyles/TestHtmlTableStyles.java --- a/test/langtools/jdk/javadoc/doclet/testHtmlTableStyles/TestHtmlTableStyles.java Tue Nov 20 10:07:42 2018 +0530 +++ b/test/langtools/jdk/javadoc/doclet/testHtmlTableStyles/TestHtmlTableStyles.java Tue Nov 20 10:50:54 2018 +0530 @@ -23,7 +23,7 @@ /* * @test - * @bug 8008164 8169819 8183037 8182765 8196202 + * @bug 8008164 8169819 8183037 8182765 8196202 8184205 * @summary Test styles on HTML tables generated by javadoc. * @author Bhavesh Patel * @library ../lib @@ -56,24 +56,24 @@ checkOutput("pkg1/TestTable.html", true, "
    ", - "
    ", - "
    ", - "
    "); + "
    \n
    ", + "
    \n
    ", + "
    \n
    "); checkOutput("pkg1/package-summary.html", true, - "
    "); + "
    \n
    "); checkOutput("pkg1/class-use/TestTable.html", true, - "
    "); + "
    \n
    "); checkOutput("overview-summary.html", true, - "
    "); + "
    \n
    "); checkOutput("deprecated-list.html", true, - "
    "); + "
    \n
    "); checkOutput("constant-values.html", true, - "
    "); + "
    \n
    "); } @Test @@ -88,30 +88,35 @@ checkOutput("pkg1/TestTable.html", true, "
    ", - "
    \n" + + "
    ", - "
    \n" + + "
    ", - "
    "); + "
    \n", + "
    "); checkOutput("pkg1/package-summary.html", true, - "
    \n" + + "
    "); checkOutput("pkg1/class-use/TestTable.html", true, - "
    "); + "
    \n" + + "
    "); checkOutput("overview-summary.html", true, - "
    "); + "
    \n" + + "
    "); checkOutput("deprecated-list.html", true, - "
    "); + "
    \n" + + "
    "); checkOutput("constant-values.html", true, - "
    "); + "
    \n" + + "
    "); } } diff -r 9a899e2c3e64 -r 1a395165c09b test/langtools/jdk/javadoc/doclet/testHtmlTableTags/TestHtmlTableTags.java --- a/test/langtools/jdk/javadoc/doclet/testHtmlTableTags/TestHtmlTableTags.java Tue Nov 20 10:07:42 2018 +0530 +++ b/test/langtools/jdk/javadoc/doclet/testHtmlTableTags/TestHtmlTableTags.java Tue Nov 20 10:50:54 2018 +0530 @@ -23,7 +23,7 @@ /* * @test - * @bug 6786688 8008164 8162363 8169819 8183037 8182765 + * @bug 6786688 8008164 8162363 8169819 8183037 8182765 8184205 * @summary HTML tables should have table summary, caption and table headers. * @author Bhavesh Patel * @library ../lib @@ -78,70 +78,70 @@ void checkHtmlTableTag() { //Package summary checkOutput("pkg1/package-summary.html", true, - "
    ", - "
    "); + "
    \n
    ", + "
    \n
    "); checkOutput("pkg2/package-summary.html", true, - "
    ", - "
    "); + "
    \n
    ", + "
    \n
    "); // Class documentation checkOutput("pkg1/C1.html", true, - "
    ", - "
    "); + "
    \n
    ", + "
    \n
    "); checkOutput("pkg2/C2.html", true, - "
    ", - "
    "); + "
    \n
    ", + "
    \n
    "); checkOutput("pkg2/C2.ModalExclusionType.html", true, - "
    "); + "
    \n
    "); checkOutput("pkg2/C3.html", true, - "
    "); + "
    \n
    "); checkOutput("pkg2/C4.html", true, - "
    "); + "
    \n
    "); // Class use documentation checkOutput("pkg1/class-use/I1.html", true, - "
    "); + "
    \n
    "); checkOutput("pkg1/class-use/C1.html", true, - "
    ", - "
    "); + "
    \n
    ", + "
    \n
    "); checkOutput("pkg2/class-use/C2.html", true, - "
    ", - "
    "); + "
    \n
    ", + "
    \n
    "); checkOutput("pkg2/class-use/C2.ModalExclusionType.html", true, - "
    "); + "
    \n
    "); checkOutput("pkg2/class-use/C2.ModalExclusionType.html", true, - "
    "); + "
    \n
    "); // Package use documentation checkOutput("pkg1/package-use.html", true, - "
    ", - "
    "); + "
    \n
    ", + "
    \n
    "); checkOutput("pkg2/package-use.html", true, - "
    ", - "
    "); + "
    \n
    ", + "
    \n
    "); // Deprecated checkOutput("deprecated-list.html", true, - "
    ", - "
    "); + "
    \n
    ", + "
    \n
    "); // Constant values checkOutput("constant-values.html", true, - "
    "); + "
    \n
    "); // Overview Summary checkOutput("overview-summary.html", true, - "
    "); + "
    \n
    "); } /* @@ -150,85 +150,110 @@ void checkHtmlTableSummaries() { //Package summary checkOutput("pkg1/package-summary.html", true, - "
    \n" + + "
    ", - "
    \n" + + "
    "); checkOutput("pkg2/package-summary.html", true, - "
    \n" + + "
    ", - "
    \n" + + "
    "); // Class documentation checkOutput("pkg1/C1.html", true, - "
    \n" + + "
    ", - "
    "); + "
    \n", + "
    "); checkOutput("pkg2/C2.html", true, - "
    \n" + + "
    ", - "
    \n" + + "
    "); checkOutput("pkg2/C2.ModalExclusionType.html", true, - "
    \n" + + "
    "); checkOutput("pkg2/C3.html", true, - "
    \n" + + "
    "); checkOutput("pkg2/C4.html", true, - "
    \n" + + "
    "); // Class use documentation checkOutput("pkg1/class-use/I1.html", true, - "
    "); + "
    \n" + + "
    "); checkOutput("pkg1/class-use/C1.html", true, - "
    ", - "
    "); + "
    \n" + + "
    ", + "
    \n" + + "
    "); checkOutput("pkg2/class-use/C2.html", true, - "
    ", - "
    "); + "
    \n" + + "
    ", + "
    \n" + + "
    "); checkOutput("pkg2/class-use/C2.ModalExclusionType.html", true, - "
    "); + "
    \n" + + "
    "); checkOutput("pkg2/class-use/C2.ModalExclusionType.html", true, - "
    "); + "
    \n" + + "
    "); // Package use documentation checkOutput("pkg1/package-use.html", true, - "
    ", - "
    "); + "
    \n" + + "
    ", + "
    \n" + + "
    "); checkOutput("pkg2/package-use.html", true, - "
    ", - "
    "); + "
    \n" + + "
    ", + "
    \n" + + "
    "); // Deprecated checkOutput("deprecated-list.html", true, - "
    \n" + + "
    ", - "
    \n" + + "
    "); // Constant values checkOutput("constant-values.html", true, - "
    \n" + + "
    "); // Overview Summary checkOutput("overview-summary.html", true, - "
    "); + "
    \n" + + "
    "); } /* @@ -251,15 +276,18 @@ // Class documentation checkOutput("pkg1/C1.html", true, "", - ""); + "
    \n"); checkOutput("pkg2/C2.html", true, "", diff -r 9a899e2c3e64 -r 1a395165c09b test/langtools/jdk/javadoc/doclet/testHtmlVersion/TestHtmlVersion.java --- a/test/langtools/jdk/javadoc/doclet/testHtmlVersion/TestHtmlVersion.java Tue Nov 20 10:07:42 2018 +0530 +++ b/test/langtools/jdk/javadoc/doclet/testHtmlVersion/TestHtmlVersion.java Tue Nov 20 10:50:54 2018 +0530 @@ -24,7 +24,7 @@ /* * @test * @bug 8072945 8081854 8141492 8148985 8150188 4649116 8173707 8151743 8169819 8183037 8182765 8196202 - * 8202624 8210047 + * 8202624 8210047 8184205 * @summary Test the version of HTML generated by the javadoc tool. * @author bpatel * @library ../lib @@ -127,7 +127,8 @@ "\n" + "\n" + "", - "
    Fields All " - + "Methods " - + "" - + "Instance Methods " - + "" - + "Concrete Methods " - + "" - + "Deprecated Methods " - + "Nested Classes 
    \n" + "
    \n" + + "
    \n" + "
    ", "
    \n" + "