Index: src/wp-includes/functions.php
===================================================================
--- src/wp-includes/functions.php	(revision 52013)
+++ src/wp-includes/functions.php	(working copy)
@@ -8332,3 +8332,64 @@
 function wp_fuzzy_number_match( $expected, $actual, $precision = 1 ) {
 	return abs( (float) $expected - (float) $actual ) <= $precision;
 }
+
+/**
+ * Assign a visual indicator for required form fields.
+ *
+ * @since 6.0.0
+ *
+ * @param string $space_before Space character, entity or empty string to add before glyph. Default ' '.
+ * @return string Indicator glyph wrapped in a `span` tag.
+ */
+function get_required_field_indicator( $space_before = ' ' ) {
+	$required_glyph     = __( '*' ); // Can be filtered, too (#23870).
+	$required_indicator = sprintf(
+		'%1$s<span class="required" aria-hidden="true">%2$s</span>',
+		esc_html( $space_before ),
+		esc_html( $required_glyph ),
+	);
+
+	return $required_indicator;
+}
+
+/**
+ * Display the visual indicator for a required form field.
+ *
+ * @since 6.0.0
+ *
+ * @param string $space_before Space character, entity or empty string to add before glyph. Default ' '.
+ */
+function the_required_field_indicator( $space_before = ' ' ) {
+	echo get_required_field_indicator( $space_before );
+}
+
+/**
+ * Create a message to explain required form fields.
+ *
+ * @since 6.0.0
+ *
+ * @param string $space_before Space character, entity or empty string to add before glyph. Default ' '.
+ * @return string Message text and glyph wrapped in a `span` tag.
+ */
+function get_required_field_message( $space_before = ' ' ) {
+	$required_indicator     = get_required_field_indicator( '' );
+	$required_field_message = sprintf(
+		'%1$s<span class="required-field-message" aria-hidden="true">%2$s</span>',
+		esc_html( $space_before ),
+		/* translators: %s: Asterisk symbol (*). */
+		sprintf( __( 'Required fields are marked %s' ), $required_indicator ),
+	);
+
+	return $required_field_message;
+}
+
+/**
+ * Display the message that explains required form fields.
+ *
+ * @since 6.0.0
+ *
+ * @param string $space_before Space character, entity or empty string to add before glyph. Default ' '.
+ */
+function the_required_field_message( $space_before = ' ' ) {
+	echo get_required_field_message( $space_before );
+}
