﻿Index: src/wp-admin/css/common.css
===================================================================
--- src/wp-admin/css/common.css	(revision 55156)
+++ src/wp-admin/css/common.css	(working copy)
@@ -572,7 +572,8 @@
 	margin: 10px 20px 0 2px;
 }
 
-.wrap.block-editor-no-js {
+.wrap.block-editor-no-js,
+.wrap.site-editor-no-js {
 	padding-left: 20px;
 }
 
Index: src/wp-admin/site-editor.php
===================================================================
--- src/wp-admin/site-editor.php	(revision 55156)
+++ src/wp-admin/site-editor.php	(working copy)
@@ -158,8 +158,32 @@
 require_once ABSPATH . 'wp-admin/admin-header.php';
 ?>
 
-<div id="site-editor" class="edit-site"></div>
+<div class="edit-site">
+	<h1 class="screen-reader-text hide-if-no-js"><?php _e( 'Edit site' ); ?></h1>
+	<div id="site-editor"></div>
 
+	<?php // JavaScript is disabled. ?>
+	<div class="wrap hide-if-js site-editor-no-js">
+		<h1 class="wp-heading-inline"><?php _e( 'Edit site' ); ?></h1>
+		<div class="notice notice-error notice-alt">
+			<p>
+				<?php
+					/**
+					 * Filters the message displayed in the site editor interface when JavaScript is
+					 * not enabled in the browser.
+					 *
+					 * @since 6.1.0
+					 *
+					 * @param string  $message The message being displayed.
+					 * @param WP_Post $post    The post being edited.
+					 */
+					echo apply_filters( 'site_editor_no_javascript_message', __( 'The site editor requires JavaScript. Please enable JavaScript in your browser settings.' ), $post );
+				?>
+			</p>
+		</div>
+	</div>
+</div>
+
 <?php
 
 require_once ABSPATH . 'wp-admin/admin-footer.php';
