Les animations de menus déroulants sur le web

Ce week-end, j’ai regardé la vidéo du test du Nexus 4 de The Verge. Les tests vidéo de The Verge sont particulièrement bien réalisés, et le Nexus 4 semble être un bon rapport qualité/prix pour un téléphone Android. Mais à un moment, je suis un resté bloqué devant un petit détail de l’interface d’Android. De 4:15 à 4:30 dans la vidéo, Joshua Topolski joue avec le menu de notifications et le nouveau panneau de préférences.

Nexus 4 hands-on review

Ma réaction a été de me dire : « Whao, cette animation est vraiment naze ». Alors que je regardais ce passage en boucle pour comprendre pourquoi, mon cerveau n’arrêtait pas de me dire « Ce n’est pas possible. On n’y croit pas une seule seconde. Pitié arrête moi ça ».

A ce stade de votre lecture, il y a quelque chose que vous devez savoir sur moi : j’adore les animations. Et pas juste des courts-métrages animés, comme celui-ci, celui-ci ou celui-là. Mais plus particulièrement, les animations d’interface. Bien réalisé, c’est le genre de détails qui peut totalement transformer et donner vie à une interface. Et dans ce domaine, Apple maîtrise plutôt bien le sujet.

Alors j’ai me suis tourné vers Youtube pour voir des vidéos du centre de notifications d’iOS, et essayer de comprendre en quoi l’animation d’Apple était si différente. Voici une comparaison côte à côte.

Comparaison d'animation entre iOS et Android

iOS et Android utilisent deux métaphores différentes pour cet effet d’apparition, que j’appelerais le tiroir et le parchemin. Quand vous ouvrez un tiroir, le contenu qui se révèle à vous suit le mouvement du tiroir. Pour voir le contenu qui apparaît, il suffit de laisser votre regard fixe vers le haut du tiroir. Quand vous déroulez un parchemin, le contenu qui se révèle à vous reste fixe. Pour voir le contenu qui apparaît, vous devez suivre du regard le déroulement en cours.

Le tiroir et le parchemin

Retranscrits dans notre monde informatique, vous comprendrez déjà que l’effet du parchemin est naturellement plus fatigant pour notre cerveau et nos yeux. Mais surtout, sans notion physique et sans indication visuelle du contenu restant à dérouler, je pense que cette métaphore ne fonctionne pas.

Et le problème, c’est que sur le web, on en voit partout, des menus déroulants en parchemin. Voici quelques exemples glânés sur le web et via Twitter (merci @synapse_studio) : Ville d’Agen, Beats by Dr Dre, World Trade Center de Lyon, Highcharts JS, La cinémathèque française.

Exemples de menus en parchemin

Alors cela ne signifie pas qu’il faut bannir les animations en parchemin. Mais ça signifie que si vous tenez vraiment à faire une animation en parchemin, vous allez devoir faire quelques kilomètres en plus pour que ça fonctionne vraiment. Récemment, Justin Windle a publié Makisu, une impressionnante démonstration de menu déroulant en CSS 3D. Je pense que cette animation rend particulièrement bien car elle est très détaillée. Mais le rendu est du coup visuellement un peu trop lourd et beaucoup trop caractérisé pour une utilisation réelle sur un site institutionnel.

Je pense que la propagation de cette animation est dûe en partie à jQuery. En jQuery, pour faire une animation en parchemin, il suffit d’appeler la fonction slideDown() sur n’importe quel élément. Et c’est tout. A l’opposé, pour faire une animation en tiroir, il faudra surcharger son code HTML pour avoir un conteneur avec une hauteur souple et un overflow:hidden, pour ensuite jouer sur un margin-top négatif sur un élément global à l’intérieur. Ce n’est pas forcément plus compliqué, mais ça demande plus de travail, et plus de réflexion. Certains sites, comme Converse, font ça pas trop mal.

Après jQuery, il devient désormais plus facile que jamais de faire des animations dans une page web. Mais comme j’aime à le répéter : juste parce que vous pouvez le faire ne signifie pas que vous devez le faire. Voici quelques conseils pour animer vos sous-menus :

  1. Une animation sert à attirer l’attention et à renforcer la compréhension d’une action. Si vous n’êtes pas sûr de ce que vous faites, ou si vous n’avez pas beaucoup de temps pour travailler sur ces animations, alors ne faites rien. Une mauvaise animation va rendre votre site pire que sans animation.
  2. A moins que vous n’ayez de solides arguments, privilégiez une animation en tiroir (plus reposante visuellement), et pas en parchemin (plus difficile à suivre pour notre cerveau, et beaucoup plus complexe à mettre en place pour être réellement efficace).
  3. Ne répétez pas votre animation à l’apparition de chaque sous-menu quand on passe d’un onglet à un autre. Votre animation doit se jouer à la première ouverture d’un sous-menu, et puis c’est tout. Cela signifie que même si vous utilisez des animations CSS, vous aurez besoin d’un peu de JavaScript pour détecter ce comportement. Si cela vous semble trop contraignant à mettre en place, alors ne faites pas d’animation.
  1. Thomas, le

    C’est très rare, mais je suis complètement pas d’accord :)
    Je déteste les animations en tiroir !
    C’est ce que j’ai sur vieil Android, et ça me rend fou.

    Pourquoi ?
    Parce que le contenu bouge.

    C’est à dire, que je suis obligé de lire en commençant par le bas, ce que personne ne fait naturellement ; ou d’ attendre d’avoir tout dérouler pour pouvoir commencer à lire, ce qui est une perte de temps.
    De plus, si je ne déroule pas le tiroir à un vitesse régulière c’est illisible.
    Si l’animation rame, comme sur Converse chez moi, c’est illisible.

    Je trouve le parchemin très logique, tout simplement parce qu’on lit de haut en bas.
    Et j’apprécie guère quand un contenu bouge inutilement.
    En regardant la vidéo, je trouvait ça intelligent d’avoir changé le type d’animation :)

    A bientôt,
    Thomas.

  2. Max, le

    L’avantage du parchemin (pour les notifications Android en particulier) est qu’il dévoile instantanément le contenu le plus important (qui est placé en haut), et comme le précise Thomas, le contenu étant fixe on peut directement et facilement commencer à le lire.

  3. ravaza, le

    Max a de solides arguments :)

  4. Bartdude, le

    Je pense surtout qu’il s’agit dans ce cas de beaucoup de bruit pour rien. Que ce soit dans la video ou dans les sites, ce genre d’animation est sensé aller très vite, le cerveau n’a dès lors pas vraiment le temps de s’habituer ou se fatiguer, c’est plus une question d’effet visuel qui fonctionne ou pas non ?

    De plus, comme le dit Thomas, le parchemin se défend tout à fait par rapport au tiroir. Il me paraît logique de voir d’abord apparaître les premiers éléments d’une liste, traditionnellement en haut, ce qui correspondrait au fond du tiroir. Or je range généralement au fond du tiroir les trucs que j’emploie pas souvent…

  5. Jean-Baptiste Minvielle, le

    Et tu n’aime pas Windows Phone ? Parce que niveau petites animations partout…

  6. Laurent G., le

    Bonjour Rémi !
    Je travaille pour l’agence qui a réalisé le site du WTC de Lyon (C2iS), et je te remercie de nous citer dans ton article, même si ton point de vue diffère du notre :-)
    Pour en revenir à la discussion, sache que ton point de vue est intéressant mais subjectif (jusque là, je pense qu’on est d’accord), tout comme le point de vue des autres commentaires…
    Je crois que cela dépend fortement de l’impression que l’on souhaite donner au « déroulant », et pour avoir tester les deux – je précise que les 2 techniques ne nous sont pas inconnus ;-) –, l’effet que tu nommes « parchemin » peut être aussi voulu, notamment dans le cas d’un petit contenu type menu pour donner une impulsion. Dans ce cas, je pense que ce fonctionnement était pour ce cas (pour nous) plus évident et plus pertinent que celui du tiroir.
    Mais la question derrière tout cela est la pertinence de l’animation et du message (comme le choix du support en imprimerie) véhiculé, qui doit être calculé et non guidé par la technique : là je rejoins ton commentaire sur le fameux « slideDown/Up » de jQuery !

    Au plaisir de te lire !

    P.S. : converse.com est full-flash (contrairement à converse.fr [html] qui use du même principe pour menu [quoi qu’il ne fonctionne pas sous Chrome, z-index par rapport au carrousel en flash]), et donc ton argumentaire peut paraître faussé car ce sont deux technos non comparables, même si… enfin c’est un autre débat ;-)

  7. Szed, le

    converse.fr c’est la cata sous Chrome x)

    Réflexion intéressante sinon, mais bossant dans une petite agence et faisant des petits site, l’utilisation de slideUp/Down simplifie quand même pas mal la chose.
    Bien que visuellement, je n’aime pas du tout ce déroulement « parchemin » :/