diff --git a/core/modules/system/system.admin.inc b/core/modules/system/system.admin.inc
index d4c222d58ad4663aef11d54dcbb39e5d291702c4..1ad9b4b691eaf89cb037dc687e4d13a0b55ad231 100644
--- a/core/modules/system/system.admin.inc
+++ b/core/modules/system/system.admin.inc
@@ -268,9 +268,7 @@ function theme_system_admin_index($variables) {
 }
 
 /**
- * Prepares variables for status report template.
- *
- * Default template: status-report.html.twig.
+ * Returns HTML for the status report.
  *
  * This theme function is dependent on install.inc being loaded, because
  * that's where the constants are defined.
@@ -290,7 +288,8 @@ function theme_system_admin_index($variables) {
  *
  * @ingroup themeable
  */
-function template_preprocess_status_report(&$variables) {
+function theme_status_report($variables) {
+  $requirements = $variables['requirements'];
   $severities = array(
     REQUIREMENT_INFO => array(
       'title' => t('Info'),
@@ -309,8 +308,11 @@ function template_preprocess_status_report(&$variables) {
       'class' => 'error',
     ),
   );
+  $output = '<table class="system-status-report"><thead><tr class="visually-hidden">';
+  $output .= '<th>' . t('Status') . '</th><th>' . t('Component') . '</th><th>' . t('Details') . '</th>';
+  $output .= '</tr></thead><tbody>';
 
-  foreach ($variables['requirements'] as $i => $requirement) {
+  foreach ($requirements as $requirement) {
     // Always use the explicit requirement severity, if defined. Otherwise,
     // default to REQUIREMENT_OK in the installer to visually confirm that
     // installation requirements are met. And default to REQUIREMENT_INFO to
@@ -324,9 +326,29 @@ function template_preprocess_status_report(&$variables) {
     else {
       $severity = $severities[REQUIREMENT_INFO];
     }
-    $variables['requirements'][$i]['severity_class'] = $severity['class'];
-    $variables['requirements'][$i]['severity_title'] = $severity['title'];
+    // hook_requirements does not require value to be set. Set to null if not:
+    if (isset($requirement['value'])) {
+      $value = $requirement['value'];
+    }
+    else {
+      $value = NULL;
+    }
+
+    $severity['icon'] = '<div title="' . $severity['title'] . '"><span class="visually-hidden">' . $severity['title'] . '</span></div>';
+
+    // Output table rows.
+    $output .= '<tr class="' . $severity['class'] . '">';
+    $output .= '<td class="status-icon">' . $severity['icon'] . '</td>';
+    $output .= '<td class="status-title">' . $requirement['title'] . '</td>';
+    $output .= '<td class="status-value">' . $value;
+    if (!empty($requirement['description'])) {
+      $output .= '<div class="description">' . $requirement['description'] . '</div>';
+    }
+    $output .= '</td></tr>';
   }
+
+  $output .= '</tbody></table>';
+  return $output;
 }
 
 /**
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index cb0cb54966e1bf4a960e2881b35a8bd79a4b0bf5..5471188f9db9417f40a4d09f8396ffd1ee9cb5d4 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -177,7 +177,6 @@ function system_theme() {
     'status_report' => array(
       'variables' => array('requirements' => NULL),
       'file' => 'system.admin.inc',
-      'template' => 'status-report',
     ),
     'admin_page' => array(
       'variables' => array('blocks' => NULL),
diff --git a/core/modules/system/templates/status-report.html.twig b/core/modules/system/templates/status-report.html.twig
deleted file mode 100644
index d01f163b627149d4b1b3bd5bbe06bcc9ab262a61..0000000000000000000000000000000000000000
--- a/core/modules/system/templates/status-report.html.twig
+++ /dev/null
@@ -1,43 +0,0 @@
-{#
-/**
- * Default theme implementation for the status report.
- *
- * Available variables:
- * - requirements: Contains multiple requirement instances.
- *   Each requirement contains:
- *   - title: The title of the requirement.
- *   - value: (optional) The requirement's status.
- *   - description: (optional) The requirement's description.
- *   - severity_title: The title of the severity.
- *   - severity_class: The HTML class of the severity.
- *
- * @see template_preprocess_status_report()
- *
- * @ingroup themeable
- */
-#}
-<table class="system-status-report">
-  <thead>
-    <tr class="visually-hidden">
-      <th>{{ 'Status'|t }}</th><th>{{ 'Component'|t }}</th><th>{{ 'Details'|t }}</th>
-    </tr>
-  </thead>
-  <tbody>
-  {% for requirement in requirements %}
-    <tr class="{{ requirement.severity_class }}">
-      <td class="status-icon">
-        <div title="{{ requirement.severity_title }}">
-          <span class="visually-hidden">{{ requirement.severity_title }}</span>
-        </div>
-      </td>
-      <td class="status-title">{{ requirement.title }}</td>
-      <td class="status-value">
-        {{ requirement.value }}
-        {% if requirement.description %}
-          <div class="description">{{ requirement.description }}</div>
-        {% endif %}
-      </td>
-    </tr>
-  {% endfor %}
-  </tbody>
-</table>