diff --git a/core/lib/Drupal/Core/Render/BareHtmlPageRenderer.php b/core/lib/Drupal/Core/Render/BareHtmlPageRenderer.php
index a8904e6..d744e19 100644
--- a/core/lib/Drupal/Core/Render/BareHtmlPageRenderer.php
+++ b/core/lib/Drupal/Core/Render/BareHtmlPageRenderer.php
@@ -74,6 +74,10 @@ protected function renderBarePage(array $content, $title, array $page_additions,
     // information about this; the exact same pattern is used there and
     // explained in detail there.
     drupal_render_root($html['page']);
+
+    // Add the bare minimum of attachments from the system module and the
+    // current maintenance theme.
+    system_page_attachments($html['page']);
     return drupal_render($html);
   }
 
diff --git a/core/modules/system/src/Tests/Installer/InstallerTest.php b/core/modules/system/src/Tests/Installer/InstallerTest.php
index 6d48123..74f1c5c 100644
--- a/core/modules/system/src/Tests/Installer/InstallerTest.php
+++ b/core/modules/system/src/Tests/Installer/InstallerTest.php
@@ -32,4 +32,14 @@ public function testInstaller() {
     )));
   }
 
+  /**
+   * Installer step: Select language.
+   */
+  protected function setUpLanguage() {
+    // Test that \Drupal\Core\Render\BareHtmlPageRenderer adds assets and
+    // metatags as expected to the first page of the installer.
+    $this->assertRaw('core/themes/seven/css/components/buttons.css', 'Seven\'s css is attached.');
+    $this->assertRaw('<meta name="charset" charset="utf-8" />', 'The installer page character set is set to utf-8.');
+    parent::setUpLanguage();
+  }
 }
