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

Closed
opened 12 months ago by Roman · 8 comments
Roman commented 12 months ago

La page de login a quelques soucis d'accessibilité :

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.

La page de login a quelques soucis d'accessibilité : * Les messages d'alerte doivent avoir un _role="alert"_ (cf. "RGAA 7.5":https://www.numerique.gouv.fr/publications/rgaa-accessibilite/methode/criteres/#crit-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":https://www.numerique.gouv.fr/publications/rgaa-accessibilite/methode/criteres/#crit-11-10) 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.
Owner

Cible 3.3 et report en 3.2 je pense.
Version cible mise à 4.0
Statut changé à En cours

Cible 3.3 et report en 3.2 je pense. **Version cible mise à 4.0** **Statut changé à En cours**
Owner

Amélioré par 2340588d99
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
Statut changé à Fermé

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 **Statut changé à Fermé**
Owner

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

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
Owner

Statut changé à En cours

**Statut changé à En cours**
Owner

c'est donc clis cette fois ci
Statut changé à Fermé

c'est donc clis cette fois ci **Statut changé à Fermé**
Collaborator

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 ?
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 ?

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

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>.
Owner
There is no content yet.
Sign in to join this conversation.
No Milestone
No project
No Assignees
6 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.