Changeset 117903 in spip-zone


Ignore:
Timestamp:
Sep 19, 2019, 3:34:14 PM (5 months ago)
Author:
maieul@…
Message:

Les liens ouvrants, c'est mal en général.
Sauf dans un cas particulier : dans les explications dans un formulaire.
En effet, si le lien n'est pas ouvrant, la personne en train de remplir un formulaire
a) lis une explication
b) clique sur le lien pour savoir comment remplir son formulaire
c) est redirigée directement vers une page
d) perd du coup ce qu'elle avait commencé remplir.
Par conséquent, en terme d'accessibilité, il vaut mieux POUR LES EXPLICATIONS DE FORMULAIRE
avoir des liens systématiquement ouvrant,
et ce que le lien pointe en interne ou en externe (ce qui distingue du filtre |liens_ouvrants).
D'où un filtre saisies_liens_ouvrants, appliqué sur la saisie
explication + les explications des saisies individuelles.

On applique aussi ca aussi sur la chaine de langue qui renvoi vers la
doc des afficher_si de saisies.

Location:
_plugins_/saisies/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/saisies/trunk/lang/saisies_fr.php

    r117775 r117903  
    7575        'option_afficher_si_explication' => 'Indiquez les conditions pour afficher le champ en fonction de la valeur des autres champs. L’identifiant des autres champs doit être mis entre <code>@</code>. <br />Exemple <code>@selection_1@=="Toto"</code> conditionne l’affichage du champ à ce que le champ <code>selection_1</code> ait pour valeur <code>Toto</code>. <br />
    7676Il est possible d’utiliser les opérateurs booléens <code>||</code> (ou) et  <code>&&</code> (et). <br />
    77 Vous trouverez la <a href="https://contrib.spip.net/5080" target="_blank">documentation complète de la syntaxe sur spip-contrib</a>.',
     77Vous trouverez la [documentation complète de la syntaxe sur spip-contrib->https://contrib.spip.net/5080].',
    7878        'option_afficher_si_label' => 'Affichage conditionnel',
    7979        'option_afficher_si_remplissage_uniquement_explication' => 'En cochant cette case, l’affichage conditionnel s’appliquera uniquement lors du remplissage du formulaire, pas lors de l’affichage des résultats.',
  • _plugins_/saisies/trunk/paquet.xml

    r117836 r117903  
    22        prefix="saisies"
    33        categorie="outil"
    4         version="3.27.7"
     4        version="3.28.0"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.2.*]"
  • _plugins_/saisies/trunk/saisies/_base.html

    r117804 r117903  
    5050                        [<label[(#ENV{type_saisie}|match{oui_non|radio|checkbox|fichiers}|non) for="champ_[(#ENV{id,#ENV{nom}}|saisie_nom2classe)]"][ class="(#ENV{label_class})"]>(#ENV*{label}|extraire_idiome)[<span class='obligatoire'>(#GET{obligatoire}|oui)[(#ENV*{info_obligatoire}|trim|sinon{<:info_obligatoire_02:>})]</span>]</label>]
    5151                        [<span class='erreur_message'>(#GET{erreurs})</span>]
    52                         [<p class="explication" id="[explication_(#ENV{nom}|saisie_nom2name)]">(#ENV*{explication}|extraire_idiome)</p>]
     52                        [<p class="explication" id="[explication_(#ENV{nom}|saisie_nom2name)]">(#ENV*{explication}|extraire_idiome|saisies_liens_ouvrants)</p>]
    5353                        [<em class='attention'>(#ENV*{attention})</em>]
    5454                        [(#INCLURE{fond=saisies/#ENV{type_saisie},env,nom=[(#ENV{nom}|saisie_nom2name)], disable=#GET{disable},readonly=#GET{readonly},describedby=[(#ENV*{explication}|?{[explication_(#ENV{nom}|saisie_nom2name)]})]})]
  • _plugins_/saisies/trunk/saisies/explication.html

    r117804 r117903  
    33        <div class="explication">
    44                [<strong class="explication_titre">(#ENV*{titre}|extraire_idiome)</strong>]
    5                 [<div class="explication_texte">(#ENV*{texte}|propre)</div>]
     5                [<div class="explication_texte">(#ENV*{texte}|propre|saisies_liens_ouvrants)</div>]
    66        </div>
    77        #ENV*{inserer_fin}
  • _plugins_/saisies/trunk/saisies_fonctions.php

    r117832 r117903  
    314314        return $cle;
    315315}
     316
     317/**
     318 * Les liens ouvrants, c'est mal en général.
     319 * Sauf dans un cas particulier : dans les explications dans un formulaire.
     320 * En effet, si le lien n'est pas ouvrant, la personne en train de remplir un formulaire
     321 * a) lis une explication
     322 * b) clique sur le lien pour savoir comment remplir son formulaire
     323 * c) est redirigée directement vers une page
     324 * d) perd du coup ce qu'elle avait commencé remplir.
     325 * Par conséquent, en terme d'accessibilité, il vaut mieux POUR LES EXPLICATIONS DE FORMULAIRE
     326 * avoir des liens systématiquement ouvrant,
     327 * et ce que le lien pointe en interne ou en externe (ce qui distingue du filtre |liens_ouvrants).
     328 * D'où un filtre saisies_liens_ouvrants
     329 * @param string $texte
     330 * @return string $texte
     331**/
     332function saisies_liens_ouvrants($texte) {
     333        if (preg_match_all(",(<a\s+[^>]*https?://[^>]*\b[^>]+>),imsS",
     334                $texte, $liens, PREG_PATTERN_ORDER)) {
     335                foreach ($liens[0] as $a) {
     336                        $rel = 'noopener noreferrer ' . extraire_attribut($a, 'rel');
     337                        $ablank = inserer_attribut($a, 'rel', $rel);
     338                        $ablank = inserer_attribut($ablank, 'target', '_blank');
     339                        $texte = str_replace($a, $ablank, $texte);
     340                }
     341        }
     342        return $texte;
     343}
Note: See TracChangeset for help on using the changeset viewer.