L'un des béta-testeurs de mon logiciel m'a posé une question intéressante: "À quand les menus contextuels ?". Ce à quoi j'ai répondu: "Jamais !".
Comment puis-je donner une réponse aussi catégorique ? Parce que cela fait un moment que j'y réfléchis.
Une demande des switchers
Les menus contextuels sont apparus sous Mac OS 8.5, alors que jusqu'alors, Apple ne les avait pas trouvés nécessaires. Il s'agissait de répondre à une demande des utilisateurs venant du monde Windows, qui ne parvenaient pas à créer un dossier ou faire du copier-coller.
Sous NeXTStep
Je souhaite revenir à ce vieux système, parce qu'il a poussé les menus contextuels très loin. D'après ce que je me suis laissé dire, un clic droit y permettait d'afficher un menu proposant toutes les opérations possibles sur l'objet cliqué, présentées en menus hiérarchiques. Et ce fonctionnement n'était pas affreux, puisqu'il était cohérent: on était sûr d'y trouver toutes les opérations possibles.
Il n'était pas non plus idéal, parce que les menus hiérarchiques ne sont jamais très pratiques: la souris a tendance à replier trop facilement le menu, et puis quand on arrive sur le bord droit de l'écran, l'article de menu doit passer à la ligne; on s'y perd un peu.
Pendant ce temps là, chez Microsoft
Sur PC, on était habitué depuis longtemps à ce que la souris comporte souvent trois boutons. Seules les applications de CAO en tiraient parti; pour le reste, comme l'IHM de Windows avait été pompée sur le Mac, Microsoft s'est longtemps demandé que faire des boutons supplémentaires, qui servaient à faire défiler le document ou à émuler le double-clic. Quand ils se décidèrent à utiliser le bouton droit pour faire apparaître un menu contextuel, ils ne voulurent pas — comme nous l'avons vu, par commodité — proposer trop de menus hiérarchiques, mais limitèrent la liste des opérations à une poignée.
Ceci amena alors une question: quelles opérations incorporer ?
Revenons au Mac
Tout développeur se retrouve donc avec la même question que Microsoft. Comme chez Apple, ils sont balèzes et que ça fait dix ans que ça existe sur Mac, ils ont dû trouver la réponse, pas vrai ? Comme à mon habitude, je m'en vais lire la bible, et la confronter aux logiciels d'Apple:
Un petit exemple sous Safari:
Et un extrait des AHIG:
Include a small subset of the most commonly used commands in the appropriate context. For example, Edit menu commands should appear in the contextual menu for highlighted text, but a Save or a Print command should not.
Un autre exemple sous Finder:
Always ensure that contextual menu items are also available as menu commands. A contextual menu is hidden by default and a user might not know it exists, so it should never be the only way to access a command. In particular, you should not use a contextual menu as the only way to access an advanced or power-user feature.
Ma démarche n'est pas de démontrer qu'Apple — qui n'est pas à une contradiction près — ne suit pas les règles qu'elle édicte; simplement que ses ingés ne savent foutrement pas quoi mettre dans ces menus.
C'est pas tout ça, mais j'ai un logiciel à coder
Je ne saisis pas bien l'intérêt d'avoir une manière supplémentaire de faire du copier-coller, dont les raccourcis-clavier sont bien connus. En tant qu'utilisateur, j'utilise les menus contextuels, mais justement pour les fonctionnalités avancées.
Et pour une application aussi simple que la mienne — il n'y a même pas de Préférences — je peux dire que les menus contextuels ne sont pas pour demain.
Renaud Pradenc
Céroce