Make WordPress Core

Changeset 53707


Ignore:
Timestamp:
07/15/2022 11:38:46 PM (2 years ago)
Author:
joedolson
Message:

Login: Explicitly associate errors with input fields.

Add an aria-describedby relationship between login email/password input fields and displayed login error messages.

Props patrickgroot, rollybueno, afercia.
Fixes #54483.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-login.php

    r53458 r53707  
    262262             * @param string $messages Login messages.
    263263             */
    264             echo '<p class="message">' . apply_filters( 'login_messages', $messages ) . "</p>\n";
     264            echo '<p class="message" id="login-message">' . apply_filters( 'login_messages', $messages ) . "</p>\n";
    265265        }
    266266    }
     
    13891389        $rememberme = ! empty( $_POST['rememberme'] );
    13901390
    1391         if ( $errors->has_errors() ) {
    1392             $aria_describedby_error = ' aria-describedby="login_error"';
    1393         } else {
    1394             $aria_describedby_error = '';
     1391        $aria_describedby = '';
     1392        $has_errors       = $errors->has_errors();
     1393
     1394        if ( $has_errors ) {
     1395            $aria_describedby = ' aria-describedby="login_error"';
     1396        }
     1397
     1398        if ( $has_errors && 'message' === $errors->get_error_data() ) {
     1399            $aria_describedby = ' aria-describedby="login-message"';
    13951400        }
    13961401
     
    14011406            <p>
    14021407                <label for="user_login"><?php _e( 'Username or Email Address' ); ?></label>
    1403                 <input type="text" name="log" id="user_login"<?php echo $aria_describedby_error; ?> class="input" value="<?php echo esc_attr( $user_login ); ?>" size="20" autocapitalize="off" autocomplete="username" />
     1408                <input type="text" name="log" id="user_login"<?php echo $aria_describedby; ?> class="input" value="<?php echo esc_attr( $user_login ); ?>" size="20" autocapitalize="off" autocomplete="username" />
    14041409            </p>
    14051410
     
    14071412                <label for="user_pass"><?php _e( 'Password' ); ?></label>
    14081413                <div class="wp-pwd">
    1409                     <input type="password" name="pwd" id="user_pass"<?php echo $aria_describedby_error; ?> class="input password-input" value="" size="20" autocomplete="current-password" />
     1414                    <input type="password" name="pwd" id="user_pass"<?php echo $aria_describedby; ?> class="input password-input" value="" size="20" autocomplete="current-password" />
    14101415                    <button type="button" class="button button-secondary wp-hide-pw hide-if-no-js" data-toggle="0" aria-label="<?php esc_attr_e( 'Show password' ); ?>">
    14111416                        <span class="dashicons dashicons-visibility" aria-hidden="true"></span>
Note: See TracChangeset for help on using the changeset viewer.