Project

General

Profile

Anomalie #4560

Améliorer l'accessibilité de la page de login

Added by Roman Mkrtchian 7 months ago. Updated 6 days ago.

Status:
Fermé
Priority:
Normal
Category:
accessibilité
Target version:
Start date:
09/30/2020
Due date:
% Done:

0%

Resolution:
fixed
Navigateur:

Description

La page de login a quelques soucis d'accessibilité :
  • Les messages d'alerte doivent avoir un role="alert" (cf. RGAA 7.5)
    Dans la page de login il y a plusieurs messages qui ne l'ont pas. Ca permet d'alerter le lecteur d'écran immédiatement en lisant d'abord ce message.
  • Les champs obligatoires doivent avoir un message indiquant qu'ils le sont avant la validation du formulaire. (cf. RGAA 11.10.1/11.10.2)
    Dans la page de login le champ login (d'après ce que j'en comprends le mot de passe n'est pas obligatoire) a un attribut required mais n'a rien dans son label, aria-labelledby ou aria-describedby n'indique qu'il est obligatoire. Le plus simple est de mettre un astérisque à la fin du label.

Je peux faire une PR pour ces deux points.

Il y a une autre chose que je ne comprends pas, dans login.php on a :

if (strlen($session_password)) {
    $erreurs['password'] = _T('login_erreur_pass');
} else {
    // sinon c'est un login en deux passe old style (ou js en panne)
    // pas de message d'erreur
    $erreurs['password'] = ' ';
}

Qu'est-ce qu'un login en deux passes ?
Le souci c'est qu'en cas d'absence de mot de passe on ne met rien dans le message d'erreur, et donc ça n'affiche aucun message d'erreur lié au champ de mot de passe.

screenshot-git.spip.net-2021.04.08-13_02_35.png View - login gitea :) (17.2 KB) erational 👺鬼, 04/08/2021 11:03 AM

History

#1 Updated by b b 7 months ago

  • Status changed from Nouveau to En cours
  • Target version set to 3.3

Cible 3.3 et report en 3.2 je pense.

#2 Updated by cedric - about 2 months ago

  • Status changed from En cours to Fermé
  • Resolution set to fixed

Amélioré par https://git.spip.net/spip/spip/commit/2340588d999e05b65d9caf43079043fa1f783215
Le login en 2 passes c'est quand on saisit que son login, qu'on fait entrée, et que tu coup ça submit le formulaire sans le mot de passe, et qu'on revient donc sur le même formulaire pour saisir le mot de passe.
Le mot de passe est a priori obligatoire en scénario normal d'utilisation, mais on ne peut pas préjuger de la présence d'un SSO qui orienterait vers une page d'identification vers un autre moyen que le mot de passe, c'est pourquoi il ne peut pas être mis en required dans le html

Je m'abstient sur le report en 3.2 mais il est faisable

#3 Updated by cedric - about 2 months ago

Ah mince j'avais raté la PR https://git.spip.net/spip/spip/pulls/67 et aussi le role='alert' sur les messages d'erreur de chaque champ.
Pour ce dernier point je propose donc https://git.spip.net/spip/spip/pulls/126

#4 Updated by cedric - about 2 months ago

  • Status changed from Fermé to En cours

#5 Updated by cedric - about 2 months ago

  • Status changed from En cours to Fermé

c'est donc clis cette fois ci

#6 Updated by erational 👺鬼 6 days ago

C'est franchement nécessaire ?
Peut-on améliorer cela ?

J'ai compris les impératifs d'accessibilité mais pour l'utilisateur bien voyant
c'est bizarre:
- les étoiles n'ont pas de légende pour signifier que cela signifie obligatoire
- les étoles flottent avec les ":" cela donne_ Login ou adresse email : * _ --> on dirait un smiley :*
- on se doute bien que le login / mot de passe sont obligatoires. j'ai consulté les logins de gitlab, gmail, wordpress, redmine,.... aucun n'a cette mention
le seul qui le fait est gitea (voir pièce jointe)

au pire si on doit la conserver:
- peut-on la masquer visuellement pour les voyants
- sinon virer le ":" et mettre l'étoile en rouge ?

#7 Updated by RastaPopoulos ♥ 6 days ago

Oui au passage, tous les ":" devraient être virés des chaines de langue, faut peut-être faire un ticket dédié. Parce que là ya aucune cohérence, parfois yen a parfois pas, mais dans tous les cas ils n'ont aucune utilité, puisque c'est juste de la déco, au niveau sémantique c'est déjà dans un <label>.

Also available in: Atom PDF