Skip to content

Commit ba4ada5

Browse files
committed
Upgrade/Install: Add aria-describedby for input descriptions.
Accessibly associate field description text with relevant input fields. Add `aria-describedby` and target IDs for each description field. Update privacy text note to better reflect relevancy to specific fields. Props costdev, joedolson. Fixes #58613. git-svn-id: https://develop.svn.wordpress.org/trunk@56024 602fd350-edb4-49c9-b593-d223f7449a82
1 parent ced0775 commit ba4ada5

1 file changed

Lines changed: 10 additions & 10 deletions

File tree

src/wp-admin/install.php

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,8 @@ function display_setup_form( $error = null ) {
123123
echo '<input name="user_name" type="hidden" value="admin" />';
124124
} else {
125125
?>
126-
<input name="user_name" type="text" id="user_login" size="25" value="<?php echo esc_attr( sanitize_user( $user_name, true ) ); ?>" />
127-
<p><?php _e( 'Usernames can have only alphanumeric characters, spaces, underscores, hyphens, periods, and the @ symbol.' ); ?></p>
126+
<input name="user_name" type="text" id="user_login" size="25" aria-describedby="user-name-desc" value="<?php echo esc_attr( sanitize_user( $user_name, true ) ); ?>" />
127+
<p id="user-name-desc"><?php _e( 'Usernames can have only alphanumeric characters, spaces, underscores, hyphens, periods, and the @ symbol.' ); ?></p>
128128
<?php
129129
}
130130
?>
@@ -141,15 +141,15 @@ function display_setup_form( $error = null ) {
141141
<div class="wp-pwd">
142142
<?php $initial_password = isset( $_POST['admin_password'] ) ? stripslashes( $_POST['admin_password'] ) : wp_generate_password( 18 ); ?>
143143
<div class="password-input-wrapper">
144-
<input type="password" name="admin_password" id="pass1" class="regular-text" autocomplete="new-password" spellcheck="false" data-reveal="1" data-pw="<?php echo esc_attr( $initial_password ); ?>" aria-describedby="pass-strength-result" />
144+
<input type="password" name="admin_password" id="pass1" class="regular-text" autocomplete="new-password" spellcheck="false" data-reveal="1" data-pw="<?php echo esc_attr( $initial_password ); ?>" aria-describedby="pass-strength-result admin-password-desc" />
145145
<div id="pass-strength-result" aria-live="polite"></div>
146146
</div>
147147
<button type="button" class="button wp-hide-pw hide-if-no-js" data-start-masked="<?php echo (int) isset( $_POST['admin_password'] ); ?>" data-toggle="0" aria-label="<?php esc_attr_e( 'Hide password' ); ?>">
148148
<span class="dashicons dashicons-hidden"></span>
149149
<span class="text"><?php _e( 'Hide' ); ?></span>
150150
</button>
151151
</div>
152-
<p><span class="description important hide-if-no-js">
152+
<p id="admin-password-desc"><span class="description important hide-if-no-js">
153153
<strong><?php _e( 'Important:' ); ?></strong>
154154
<?php /* translators: The non-breaking space prevents 1Password from thinking the text "log in" should trigger a password save prompt. */ ?>
155155
<?php _e( 'You will need this password to log&nbsp;in. Please store it in a secure location.' ); ?></span></p>
@@ -177,8 +177,8 @@ function display_setup_form( $error = null ) {
177177
<?php endif; ?>
178178
<tr>
179179
<th scope="row"><label for="admin_email"><?php _e( 'Your Email' ); ?></label></th>
180-
<td><input name="admin_email" type="email" id="admin_email" size="25" value="<?php echo esc_attr( $admin_email ); ?>" />
181-
<p><?php _e( 'Double-check your email address before continuing.' ); ?></p></td>
180+
<td><input name="admin_email" type="email" id="admin_email" size="25" aria-describedby="admin-email-desc" value="<?php echo esc_attr( $admin_email ); ?>" />
181+
<p id="admin-email-desc"><?php _e( 'Double-check your email address before continuing.' ); ?></p></td>
182182
</tr>
183183
<tr>
184184
<th scope="row"><?php has_action( 'blog_privacy_selector' ) ? _e( 'Site visibility' ) : _e( 'Search engine visibility' ); ?></th>
@@ -198,17 +198,17 @@ function display_setup_form( $error = null ) {
198198
?>
199199
<input id="blog-public" type="radio" name="blog_public" value="1" <?php checked( 1, $blog_public ); ?> />
200200
<label for="blog-public"><?php _e( 'Allow search engines to index this site' ); ?></label><br />
201-
<input id="blog-norobots" type="radio" name="blog_public" value="0" <?php checked( 0, $blog_public ); ?> />
201+
<input id="blog-norobots" type="radio" name="blog_public" aria-describedby="public-desc" value="0" <?php checked( 0, $blog_public ); ?> />
202202
<label for="blog-norobots"><?php _e( 'Discourage search engines from indexing this site' ); ?></label>
203-
<p class="description"><?php _e( 'Note: Neither of these options blocks access to your site &mdash; it is up to search engines to honor your request.' ); ?></p>
203+
<p id="public-desc" class="description"><?php _e( 'Note: Discouraging search engines does not block access to your site &mdash; it is up to search engines to honor your request.' ); ?></p>
204204
<?php
205205
/** This action is documented in wp-admin/options-reading.php */
206206
do_action( 'blog_privacy_selector' );
207207
} else {
208208
?>
209-
<label for="blog_public"><input name="blog_public" type="checkbox" id="blog_public" value="0" <?php checked( 0, $blog_public ); ?> />
209+
<label for="blog_public"><input name="blog_public" type="checkbox" id="blog_public" aria-describedby="privacy-desc" value="0" <?php checked( 0, $blog_public ); ?> />
210210
<?php _e( 'Discourage search engines from indexing this site' ); ?></label>
211-
<p class="description"><?php _e( 'It is up to search engines to honor this request.' ); ?></p>
211+
<p id="privacy-desc" class="description"><?php _e( 'It is up to search engines to honor this request.' ); ?></p>
212212
<?php } ?>
213213
</fieldset>
214214
</td>

0 commit comments

Comments
 (0)