From b4a8ae2b499b4eabed36fb1aaa7dbf5ebcb75cf6 Mon Sep 17 00:00:00 2001 From: Robert Lange <robert.lange@uni-leipzig.de> Date: Thu, 29 Apr 2021 19:09:32 +0200 Subject: [PATCH] refs #19435 [finc] accessibility: add autocompletion for user creation fields * copied from /themes/bootstrap3/templates/Auth/Database/create.phtml ** add autocomplete for first name: given-name ** add autocomplete for last name: family-name ** add autocomplete for email: email ** add autocomplete for username: username ** add autocomplete for password: new-password ** add autocomplete for password confirmation: new-password * also add autocompletion for user fields of password reset ** add autocomplete for first name: given-name ** add autocomplete for last name: family-name ** add autocomplete for username: username ** add autocomplete for email: email --- .../templates/Auth/Database/create.phtml | 51 +++++++++++++++++++ .../Auth/AbstractBase/resetpassword.phtml | 8 +-- 2 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 themes/finc-accessibility/templates/Auth/Database/create.phtml diff --git a/themes/finc-accessibility/templates/Auth/Database/create.phtml b/themes/finc-accessibility/templates/Auth/Database/create.phtml new file mode 100644 index 00000000000..c4445398ee7 --- /dev/null +++ b/themes/finc-accessibility/templates/Auth/Database/create.phtml @@ -0,0 +1,51 @@ +<!-- finc-accessibility: auth - database - create --> +<?php /* copied from /themes/bootstrap3/templates/Auth/Database/create.phtml to add autocomplete */ ?> +<?php + $pattern = ''; + if (isset($this->passwordPolicy['pattern'])) { + if ($this->passwordPolicy['pattern'] == 'numeric') { + $pattern = '\d+'; + } elseif ($this->passwordPolicy['pattern'] == 'alphanumeric') { + $pattern = '[\da-zA-Z]+'; + } else { + $pattern = $this->passwordPolicy['pattern']; + } + } +?> +<div class="form-group"> + <label class="control-label" for="account_firstname"><?=$this->transEsc('First Name')?>:</label> + <input id="account_firstname" type="text" name="firstname" value="<?=$this->escapeHtmlAttr($this->request->get('firstname'))?>" class="form-control" autocomplete="given-name"/> +</div> +<div class="form-group"> + <label class="control-label" for="account_lastname"><?=$this->transEsc('Last Name')?>:</label> + <input id="account_lastname" type="text" name="lastname" value="<?=$this->escapeHtmlAttr($this->request->get('lastname'))?>" class="form-control" autocomplete="family-name"/> +</div> +<div class="form-group"> + <label class="control-label" for="account_email"><?=$this->transEsc('Email Address')?>:</label> + <input id="account_email" type="email" name="email" required aria-required="true" value="<?=$this->escapeHtmlAttr($this->request->get('email'))?>" class="form-control" autocomplete="email"/> + <div class="help-block with-errors"></div> +</div> +<div class="form-group"> + <label class="control-label" for="account_username"><?=$this->transEsc('Desired Username')?>:</label> + <input id="account_username" type="text" name="username" required aria-required="true" value="<?=$this->escapeHtmlAttr($this->request->get('username'))?>" class="form-control" autocomplete="username"/> + <div class="help-block with-errors"></div> +</div> +<div class="form-group"> + <label class="control-label" for="account_password"><?=$this->transEsc('Password')?>:</label> + <input id="account_password" type="password" name="password" required aria-required="true" class="form-control" + <?=isset($this->passwordPolicy['minLength']) ? ' data-minlength="' . $this->passwordPolicy['minLength'] . '" data-minlength-error="' . $this->escapeHtmlAttr($this->translate('password_minimum_length', ['%%minlength%%' => $this->passwordPolicy['minLength']])) . '"' : ''?> + <?=isset($this->passwordPolicy['maxLength']) ? ' maxlength="' . $this->passwordPolicy['maxLength'] . '"' : ''?> + <?=$pattern ? ' pattern="' . $pattern . '"' : '' ?> + autocomplete="new-password" + /> + <?php if ($this->passwordPolicy['hint']): ?> + <div class="help-block"><?=$this->transEsc($this->passwordPolicy['hint']) ?></div> + <?php endif; ?> + <div class="help-block with-errors"></div> +</div> +<div class="form-group"> + <label class="control-label" for="account_password2"><?=$this->transEsc('Password Again')?>:</label> + <input id="account_password2" type="password" name="password2" required aria-required="true" class="form-control" data-match="#account_password" data-match-error="<?=$this->escapeHtmlAttr($this->translate('Passwords do not match'))?>" autocomplete="new-password"/> + <div class="help-block with-errors"></div> +</div> +<!-- finc-accessibility: auth - database - create - END --> diff --git a/themes/finc/templates/Auth/AbstractBase/resetpassword.phtml b/themes/finc/templates/Auth/AbstractBase/resetpassword.phtml index 4db59bf5369..ed63456d5f7 100644 --- a/themes/finc/templates/Auth/AbstractBase/resetpassword.phtml +++ b/themes/finc/templates/Auth/AbstractBase/resetpassword.phtml @@ -13,19 +13,19 @@ $this->headTitle($this->translate('Reset Password')); <div class="form-group"> <label class="control-label"><?=$this->transEsc('First Name')?>:</label> - <input type="text" class="form-control" name="firstname" <?=isset($firstname) ? 'value="' . $firstname . '" ' : ''?>required/> + <input type="text" class="form-control" name="firstname" <?=isset($firstname) ? 'value="' . $firstname . '" ' : ''?>autocomplete="given-name" required/> </div> <div class="form-group"> <label class="control-label"><?=$this->transEsc('Last Name')?>:</label> - <input type="text" class="form-control" name="lastname" <?=isset($lastname) ? 'value="' . $lastname . '" ' : ''?>required/> + <input type="text" class="form-control" name="lastname" <?=isset($lastname) ? 'value="' . $lastname . '" ' : ''?>autocomplete="family-name" required/> </div> <div class="form-group"> <label class="control-label"><?=$this->transEsc('Username')?>:</label> - <input type="text" class="form-control" name="username" <?=isset($username) ? 'value="' . $username . '" ' : ''?>required/> + <input type="text" class="form-control" name="username" <?=isset($username) ? 'value="' . $username . '" ' : ''?>autocomplete="username" required/> </div> <div class="form-group"> <label class="control-label"><?=$this->transEsc('Email')?>:</label> - <input type="email" class="form-control" name="email" <?=isset($email) ? 'value="' . $email . '" ' : ''?>required/> + <input type="email" class="form-control" name="email" <?=isset($email) ? 'value="' . $email . '" ' : ''?>autocomplete="email" required/> </div> <?=$this->recaptcha()->html($this->useRecaptcha)?> <div class="form-group"> -- GitLab