Project

General

Profile

Development #74652

inclure une case à cocher pour afficher en clair le mot de passe

Added by Frédéric Péters 4 months ago. Updated about 2 months ago.

Status:
Solution déployée
Priority:
Normal
Target version:
-
Start date:
18 February 2023
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

Description

Demande récurrente (mais flemme de chercher dans les audits d'accessibilité pour des références), c'est aussi une préconisation du NIST,

In order to assist the claimant in successfully entering a memorized secret, the verifier SHOULD offer an option to display the secret — rather than a series of dots or asterisks — until it is entered. This allows the claimant to verify their entry if they are in a location where their screen is unlikely to be observed.
— Digital Identity Guidelines, https://pages.nist.gov/800-63-3/sp800-63b.html#-5112-memorized-secret-verifiers

C'est également présent dans le composant "mot de passe" du système de design gouv.fr, https://www.systeme-de-design.gouv.fr/elements-d-interface/composants/mot-de-passe (sans commentaire particulier pour le justifier).

Ma position a toujours été que c'était aux navigateurs d'assurer le taf. Pas un franc succès. Je propose ici finalement de mettre ça en place.


Files


Related issues

Related to Authentic 2 - Development #50758: /login/ : switch pour afficher à l’usager le mot de passe saisi en clair avant tentative d’authentificationSolution déployée02 February 2021

Actions

History

#1

Updated by Frédéric Péters 4 months ago

(la partie css devra être dupliquée dans publik-base-theme, mais voyons d'abord ici).

#2

Updated by Thomas Jund 4 months ago

Je ne comprends pas l'intérêt de lancer un trigger change au chargement de la page.
Nul besoin de sauvegarder l'état du checkbox de visibilité. Il devrait toujours être décoché au chargement d'une page (le choix d'afficher le pass en clair devrait toujours provenir d'une action humaine).

#3

Updated by Frédéric Péters 4 months ago

Sur un rafraichissement de page type F5, le navigateur peut conserver la case cochée, sans en lancer l'événement.

#4

Updated by Thomas Jund 4 months ago

Ok, j'ai alors une préférence pour décocher la checkbox si cochée au chargement d'une page, que d'afficher le pass en clair.

#6

Updated by Thomas Jund 4 months ago

  • Status changed from Solution proposée to Solution validée

Côté CSS et pour PBT il faudra garantir que le label du champ ne rentre poas en conflit avec la checkbox de visibilité.

#7

Updated by Frédéric Péters 4 months ago

En conflit ?

#8

Updated by Thomas Jund 4 months ago

Se superpose.

#9

Updated by Frédéric Péters 4 months ago

Ok pour moi ça n'arrive pas. Soit page de connexion l'intitulé est "Mot de passe" et ça laisse de la place, même avec deux blocs côte à côte, soit le libellé est plus long, "Confirmation du nouveau mot de passe" mais là on a toute la largeur.

#11

Updated by Thomas Jund 4 months ago

Techniquement les 2 peuvent se superposer. Et des cas où ça peut arriver existent, comme créer un thème avec un font-size de base de 18 (ex Saumur, MNHN), choisir une font qui chasse un peu plus. L'idéal serait qu'à la création d'un thème on ait pas à se soucier de devoir corriger le layout d'un widget en fonction des choix typos du thème.
(Je pose une capture du formulaire de création de compte à 360px et font-size 18px)

#12

Updated by Frédéric Péters 4 months ago

Ok et donc l'idée serait de poser un padding-right sur le label, pour forcer un retour à la ligne plus tôt ?

#13

Updated by Thomas Jund 4 months ago

Appliquer un padding au label.
Par exemple un padding de 6em.
Mais ce padding ne s'adaptera pas à toutes les caracs d'une font. Dans certains cas le padding pourra être trop grand (utilisation d'une font condensed par ex.) ou trop petit.

J'ai alors tenté une solution 2, radicalement différente, à base de grid.
Mais le préalable est de décaler le {% block widget-bottom } après le bloc { widget-content %} (Si excluant, back solution padding)

.gadjo-password-field {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  column-gap: .7em;

  .content {
    grid-column-end: span 2;
  }
}

.password-visibility-checkbox {
  display: flex;
  grid-row: 1 / 2;
  grid-column: 2 / 3;

  input {
    margin-bottom: 0;
  } 
  input + label {
    margin: 0;
  }
}

#14

Updated by Frédéric Péters 4 months ago

Mais ce padding ne s'adaptera pas à toutes les caracs d'une font. Dans certains cas le padding pourra être trop grand (utilisation d'une font condensed par ex.) ou trop petit.

Je préférerais quand même cette petite solution simple; avec un peu de marge au pire ça passe à la ligne un peu trop tôt.

#15

Updated by Robot Gitea 4 months ago

  • Status changed from Solution validée to Solution proposée

Frédéric Péters (fpeters) a ouvert une pull request sur Gitea concernant cette demande :

#16

Updated by Robot Gitea 2 months ago

  • Status changed from Solution proposée to Solution validée

Corentin Sechet (csechet) a approuvé une pull request sur Gitea concernant cette demande :

#17

Updated by Robot Gitea about 2 months ago

  • Status changed from Solution validée to Résolu (à déployer)

Frédéric Péters (fpeters) a mergé une pull request sur Gitea concernant cette demande :

#18

Updated by Transition automatique about 2 months ago

  • Status changed from Résolu (à déployer) to Solution déployée
#19

Updated by Frédéric Péters about 1 month ago

  • Related to Development #50758: /login/ : switch pour afficher à l’usager le mot de passe saisi en clair avant tentative d’authentification added

Also available in: Atom PDF