Browse Source

Accessibilite des formulaires : pour les messages d'erreur sur les champs, qui sont 99% du temps un simple texte sans markup, on encapsule automatiquement dans <span role='alert'></span> - mais uniquement si l'erreur est au format string et si pas de _ en debut de nom car sinon c'est une fausse erreur utilisee pour passer des donnees complementaires au formulaire

decaler_niveau_titre
Cerdic 3 months ago
committed by Gitea
parent
commit
6ad6a47fa4
  1. 12
      ecrire/balise/formulaire_.php

12
ecrire/balise/formulaire_.php

@ -289,6 +289,18 @@ function balise_FORMULAIRE__contexte($form, $args) {
} elseif (isset($erreurs['message_ok'])) {
$valeurs['message_ok'] = $erreurs["message_ok"];
}
// accessibilite : encapsuler toutes les erreurs dans un role='alert'
// uniquement si c'est une string et au premier niveau (on ne touche pas au tableaux)
// et si $k ne commence pas par un _ (c'est bien une vrai erreur sur un vrai champ)
if (html5_permis()) {
foreach ($erreurs as $k => $v) {
if (is_string($v) and strpos($k,'_') !== 0) {
// on encapsule dans un span car ces messages sont en general simple, juste du texte, et deja dans un span dans le form
$valeurs['erreurs'][$k] = "<span role='alert'>".$erreurs[$k]."</span>";
}
}
}
}
return $valeurs;

Loading…
Cancel
Save