Index: /trunk/src/wp-includes/general-template.php
===================================================================
--- /trunk/src/wp-includes/general-template.php	(revision 54136)
+++ /trunk/src/wp-includes/general-template.php	(revision 54137)
@@ -5027,5 +5027,12 @@
 	$indicator = '<span class="required">' . esc_html( $glyph ) . '</span>';
 
-	return $indicator;
+	/**
+	 * Filters the markup for a visual indicator of required form fields.
+	 *
+	 * @since 6.1.0
+	 *
+	 * @param string $indicator Markup for the indicator element.
+	 */
+	return apply_filters( 'wp_required_field_indicator', $indicator );
 }
 
@@ -5044,5 +5051,12 @@
 	);
 
-	return $message;
+	/**
+	 * Filters the message to explain required form fields.
+	 *
+	 * @since 6.1.0
+	 *
+	 * @param string $message Message text and glyph wrapped in a `span` tag.
+	 */
+	return apply_filters( 'wp_required_field_message', $message );
 }
 
Index: /trunk/tests/phpunit/tests/general/wpRequiredFieldIndicator.php
===================================================================
--- /trunk/tests/phpunit/tests/general/wpRequiredFieldIndicator.php	(revision 54137)
+++ /trunk/tests/phpunit/tests/general/wpRequiredFieldIndicator.php	(revision 54137)
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Test wp_required_field_indicator().
+ *
+ * @group general
+ * @group template
+ *
+ * @covers ::wp_required_field_indicator
+ */
+class Tests_General_wpRequiredFieldIndicator extends WP_UnitTestCase {
+
+	/**
+	 * Tests that `wp_required_field_indicator()` returns the expected default value.
+	 *
+	 * @ticket 56389
+	 */
+	public function test_wp_required_field_indicator_should_return_default_value() {
+		$this->assertSame( '<span class="required">*</span>', wp_required_field_indicator() );
+	}
+
+	/**
+	 * Tests that `wp_required_field_indicator()` applies 'wp_required_field_indicator' filters.
+	 *
+	 * @ticket 56389
+	 */
+	public function test_wp_required_field_indicator_should_apply_wp_required_field_indicator_filters() {
+		$filter = new MockAction();
+		add_filter( 'wp_required_field_indicator', array( &$filter, 'filter' ) );
+
+		wp_required_field_indicator();
+
+		$this->assertSame( 1, $filter->get_call_count() );
+	}
+
+	/**
+	 * Tests that the final return value of `wp_required_field_indicator()` is the result of
+	 * 'wp_required_field_indicator' filters.
+	 *
+	 * @ticket 56389
+	 */
+	public function test_wp_required_field_indicator_should_return_wp_required_field_indicator_filters() {
+		add_filter( 'wp_required_field_indicator', '__return_empty_string' );
+		$this->assertSame( '', wp_required_field_indicator() );
+	}
+}
Index: /trunk/tests/phpunit/tests/general/wpRequiredFieldMessage.php
===================================================================
--- /trunk/tests/phpunit/tests/general/wpRequiredFieldMessage.php	(revision 54137)
+++ /trunk/tests/phpunit/tests/general/wpRequiredFieldMessage.php	(revision 54137)
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Test wp_required_field_message().
+ *
+ * @group general
+ * @group template
+ *
+ * @covers ::wp_required_field_message
+ */
+class Tests_General_wpRequiredFieldMessage extends WP_UnitTestCase {
+
+	/**
+	 * Tests that `wp_required_field_message()` returns the expected default value.
+	 *
+	 * @ticket 56389
+	 */
+	public function test_wp_required_field_message_should_return_default_value() {
+		$expected  = '<span class="required-field-message">';
+		$expected .= 'Required fields are marked <span class="required">*</span>';
+		$expected .= '</span>';
+		$this->assertSame( $expected, wp_required_field_message() );
+	}
+
+	/**
+	 * Tests that `wp_required_field_message()` applies 'wp_required_field_message' filters.
+	 *
+	 * @ticket 56389
+	 */
+	public function test_wp_required_field_message_should_apply_wp_required_field_message_filters() {
+		$filter = new MockAction();
+		add_filter( 'wp_required_field_message', array( &$filter, 'filter' ) );
+
+		wp_required_field_message();
+
+		$this->assertSame( 1, $filter->get_call_count() );
+	}
+
+	/**
+	 * Tests that the final return value of `wp_required_field_message()` is the result of
+	 * 'wp_required_field_message' filters.
+	 *
+	 * @ticket 56389
+	 */
+	public function test_wp_required_field_message_should_return_wp_required_field_message_filters() {
+		add_filter( 'wp_required_field_message', '__return_empty_string' );
+		$this->assertSame( '', wp_required_field_message() );
+	}
+}
