diff --git a/core/misc/collapse.es6.js b/core/misc/collapse.es6.js
index 374af0c..9e979c2 100644
--- a/core/misc/collapse.es6.js
+++ b/core/misc/collapse.es6.js
@@ -9,12 +9,18 @@
    *
    * @constructor Drupal.CollapsibleDetails
    *
-   * @param {HTMLElement} node
-   *   The details element.
+   * @param {HTMLDetailsElement} node
+   *   The `<details>` tag to process.
    */
   function CollapsibleDetails(node) {
     this.$node = $(node);
-    this.$node.data('details', this);
+    // Details tag polyfill.
+    if (!Modernizr.details) {
+      this.$node.addClass('collapse-processed');
+      // Initialize and setup the legend, replicate summary tag functionality.
+      this.setupLegend();
+    }
+
     // Expand details if there are errors inside, or if it contains an
     // element that is targeted by the URI fragment identifier.
     const anchor = location.hash && location.hash !== '#' ? `, ${location.hash}` : '';
@@ -23,8 +29,7 @@
     }
     // Initialize and setup the summary,
     this.setupSummary();
-    // Initialize and setup the legend.
-    this.setupLegend();
+
   }
 
   $.extend(CollapsibleDetails, /** @lends Drupal.CollapsibleDetails */{
@@ -48,12 +53,24 @@
      */
     setupSummary() {
       this.$summary = $('<span class="summary"></span>');
+
+      this.$node.find('> summary')
+        .append(this.$summary);
+
       this.$node
-        .on('summaryUpdated', $.proxy(this.onSummaryUpdated, this))
+        .on('summaryUpdated', this.onSummaryUpdated.bind(this))
         .trigger('summaryUpdated');
     },
 
     /**
+    * Update summary.
+    */
+    onSummaryUpdated: function () {
+      var text = $.trim(this.$node.drupalGetSummary());
+      this.$summary.html(text ? ' (' + text + ')' : '');
+    },
+
+    /**
      * Initialize and setup legend markup.
      */
     setupLegend() {
@@ -71,16 +88,14 @@
         .prepend($legend.contents())
         .appendTo($legend);
 
-      $legend
-        .append(this.$summary)
-        .on('click', $.proxy(this.onLegendClick, this));
+      $legend.on('click', this.onLegendClick.bind(this));
     },
 
     /**
      * Handle legend clicks.
      *
      * @param {jQuery.Event} e
-     *   The event triggered.
+     * jQuery Event object.
      */
     onLegendClick(e) {
       this.toggle();
@@ -88,15 +103,7 @@
     },
 
     /**
-     * Update summary.
-     */
-    onSummaryUpdated() {
-      const text = $.trim(this.$node.drupalGetSummary());
-      this.$summary.html(text ? ` (${text})` : '');
-    },
-
-    /**
-     * Toggle the visibility of a details element using smooth animations.
+     * Toggle the value of the open attribute.
      */
     toggle() {
       const isOpen = !!this.$node.attr('open');
@@ -124,11 +131,8 @@
    *   Attaches behavior for the details element.
    */
   Drupal.behaviors.collapse = {
-    attach(context) {
-      if (Modernizr.details) {
-        return;
-      }
-      const $collapsibleDetails = $(context).find('details').once('collapse').addClass('collapse-processed');
+    attach: function (context) {
+      var $collapsibleDetails = $(context).find('details').once('collapse');
       if ($collapsibleDetails.length) {
         for (let i = 0; i < $collapsibleDetails.length; i++) {
           CollapsibleDetails.instances.push(new CollapsibleDetails($collapsibleDetails[i]));
diff --git a/core/misc/collapse.js b/core/misc/collapse.js
index 2f157ba..a97dd9e 100644
--- a/core/misc/collapse.js
+++ b/core/misc/collapse.js
@@ -8,7 +8,12 @@
 (function ($, Modernizr, Drupal) {
   function CollapsibleDetails(node) {
     this.$node = $(node);
-    this.$node.data('details', this);
+
+    if (!Modernizr.details) {
+      this.$node.addClass('collapse-processed');
+
+      this.setupLegend();
+    }
 
     var anchor = location.hash && location.hash !== '#' ? ', ' + location.hash : '';
     if (this.$node.find('.error' + anchor).length) {
@@ -16,8 +21,6 @@
     }
 
     this.setupSummary();
-
-    this.setupLegend();
   }
 
   $.extend(CollapsibleDetails, {
@@ -27,8 +30,17 @@
   $.extend(CollapsibleDetails.prototype, {
     setupSummary: function setupSummary() {
       this.$summary = $('<span class="summary"></span>');
-      this.$node.on('summaryUpdated', $.proxy(this.onSummaryUpdated, this)).trigger('summaryUpdated');
+
+      this.$node.find('> summary').append(this.$summary);
+
+      this.$node.on('summaryUpdated', this.onSummaryUpdated.bind(this)).trigger('summaryUpdated');
     },
+
+    onSummaryUpdated: function onSummaryUpdated() {
+      var text = $.trim(this.$node.drupalGetSummary());
+      this.$summary.html(text ? ' (' + text + ')' : '');
+    },
+
     setupLegend: function setupLegend() {
       var $legend = this.$node.find('> summary');
 
@@ -36,16 +48,12 @@
 
       $('<a class="details-title"></a>').attr('href', '#' + this.$node.attr('id')).prepend($legend.contents()).appendTo($legend);
 
-      $legend.append(this.$summary).on('click', $.proxy(this.onLegendClick, this));
+      $legend.on('click', this.onLegendClick.bind(this));
     },
     onLegendClick: function onLegendClick(e) {
       this.toggle();
       e.preventDefault();
     },
-    onSummaryUpdated: function onSummaryUpdated() {
-      var text = $.trim(this.$node.drupalGetSummary());
-      this.$summary.html(text ? ' (' + text + ')' : '');
-    },
     toggle: function toggle() {
       var _this = this;
 
@@ -65,10 +73,7 @@
 
   Drupal.behaviors.collapse = {
     attach: function attach(context) {
-      if (Modernizr.details) {
-        return;
-      }
-      var $collapsibleDetails = $(context).find('details').once('collapse').addClass('collapse-processed');
+      var $collapsibleDetails = $(context).find('details').once('collapse');
       if ($collapsibleDetails.length) {
         for (var i = 0; i < $collapsibleDetails.length; i++) {
           CollapsibleDetails.instances.push(new CollapsibleDetails($collapsibleDetails[i]));
diff --git a/core/modules/comment/comment-entity-form.es6.js b/core/modules/comment/comment-entity-form.es6.js
index 00a3404..8bab95b 100644
--- a/core/modules/comment/comment-entity-form.es6.js
+++ b/core/modules/comment/comment-entity-form.es6.js
@@ -11,7 +11,7 @@
   Drupal.behaviors.commentFieldsetSummaries = {
     attach(context) {
       const $context = $(context);
-      $context.find('fieldset.comment-entity-settings-form').drupalSetSummary(context => Drupal.checkPlain($(context).find('.js-form-item-comment input:checked').next('label').text()));
+      $context.find('.comment-node-settings-form').drupalSetSummary(context => Drupal.checkPlain($(context).find('.js-form-item-comment-0-status input:checked').next('label').text()));
     },
   };
 }(jQuery, Drupal));
diff --git a/core/modules/comment/comment-entity-form.js b/core/modules/comment/comment-entity-form.js
index 15196ca..420da34 100644
--- a/core/modules/comment/comment-entity-form.js
+++ b/core/modules/comment/comment-entity-form.js
@@ -9,8 +9,8 @@
   Drupal.behaviors.commentFieldsetSummaries = {
     attach: function attach(context) {
       var $context = $(context);
-      $context.find('fieldset.comment-entity-settings-form').drupalSetSummary(function (context) {
-        return Drupal.checkPlain($(context).find('.js-form-item-comment input:checked').next('label').text());
+      $context.find('.comment-node-settings-form').drupalSetSummary(function (context) {
+        return Drupal.checkPlain($(context).find('.js-form-item-comment-0-status input:checked').next('label').text());
       });
     }
   };
diff --git a/core/themes/classy/css/components/collapse-processed.css b/core/themes/classy/css/components/collapse-processed.css
index 3ed2e35..4367da3 100644
--- a/core/themes/classy/css/components/collapse-processed.css
+++ b/core/themes/classy/css/components/collapse-processed.css
@@ -30,3 +30,6 @@
   -webkit-transform: rotate(90deg);
   transform: rotate(90deg);
 }
+.collapse-processed .details-title {
+  color: #333;
+}
diff --git a/core/themes/seven/css/components/entity-meta.css b/core/themes/seven/css/components/entity-meta.css
index f6999be..72512ff 100644
--- a/core/themes/seven/css/components/entity-meta.css
+++ b/core/themes/seven/css/components/entity-meta.css
@@ -57,5 +57,7 @@
   text-shadow: 0 1px 0 white;
 }
 .entity-meta details .summary {
-  display: none; /* Hide JS summaries. @todo Rethink summaries. */
+  color: #666;
+  text-transform: none;
+  font-size: 0.85em;
 }
