Poursuivre le refactoring du bandeau
En marge de spip#5566 et spip#5984 (déplacé), j'ai commencé à regarder le code sous-jacent qui pilote les menus déroulants du bandeau.
On a un assortiment de squelettes, de code PHP legacy de requête xhr au survol, et du code jQuery, qui, comme déjà évoqué, qui gagnerait à être revu/simplifié, grâce au CSS notamment.
Le cas du bouton boutonbandeautoutsite
est celui qui concentre le plus de problèmes à mon avis.
En tant qu'élément de premier niveau de #bandeau_identite
avec du sous-contenu, il est sensé déployer un sous-menu au clic | focus | survol
si l'on s'en tient aux recommandations d'accessibilité, c'est-à-dire que l'item a
doit être suivi d'un button[hidden]
qui pilote ouverture/fermeture du sous-menu (@nicod reprend moi si j'ai tord).
Au passage, j'ai toujours été étonné de voir un bon nombre de personnes - après plusieurs années de pratique de SPIP - s'extasier lorsque je leur montrais la fonctionnalité "cachée" derrière le simple clic du bouton boutonbandeautoutsite
.
Ainsi, en l'état :
- pas d'élément
button
-
mouseenter
-> chargement dynamique du contenu du sous-menu (== toutes les sous-rubriques) -
clic
-> changement de page versexec=plan
-
focus
-> ouverture du sous-menu resté quasi vide si pas demouseenter
préalable
Tout ça pour dire, qu'amha, spip#5984 (déplacé) devrait être incorpopré dans une proposition de refactoring plus général avec :
- passage intégral en
squelettes
(+fichier_fonctions.php
si besoin) en adaptant le markup avec bouton d'accessibilité - suppression du code legacy dans
ecrire/action/menu_rubriques.php
- effets/animations déportés au maximum en CSS
-
boutonbandeautoutsite
à l'usage ambigu devrait être revu et contenir 2 entrées distinctes :
Proposition :
[Icône tout le site]
├── Accéder aux rubriques
└── Réorganiser le contenu
[Icône tout le site]
: ne fait que ouvrir/fermer les éléments du sous-menu
[Accéder aux rubriques]
: un clic provoque l'ouverture d'une mediabox latérale pour afficher l'arborescence verticalemenent.
- On peut peaufiner le comportement en provoquant un scroll interne (si sous-sous-sous-sous-rubrique) de sorte que la rubrique en cours se retrouve visuellement proche (sur la même ligne visuelle) que le bouton (== le curseur soursis) qui vient d'ếtre cliqué. On peut envisager de "replier" par défaut les rubriques ancêtres et filles à (n+2) pour le cas des arborescences très abondantes.
- On propage le
focus
en entrant et sortant de la sidebar mediabox, pour préserver la navigation au clavier. - On évite ainsi d'empiler les
deroulants__sous-menu
imbriqués. - On rend cette partie de la navigation sans doute beaucoup plus agréable/accessible sur petit écran.
[Réorganiser le contenu]
: lien classique vers exec=plan