Attention, c'est un sujet qui fâche !
Essayons toutefois de rester au-dessus de la mêlée et d'exposer calmement les arguments des uns et des autres. Les cadres sont apparus avec la version 2 du navigateur de Netscape et ils ont indéniablement rencontré un vif succès populaire, qui a été consacré par son adoption par le méchant concurrent Microsoft, puis par les grands gourous du consortium WWW. Cependant, l'usage a dévoilé quelques difficultés de cohabitation entre ces cadres et certaines pratiques que les internautes chevronnés trouvaient bien commodes, et ceux-ci ont maintenant tendance à vouer aux gémonies ce qu'ils auraient adoré un ou deux ans auparavant. L'internaute moyen et le créateur amateur de pages perso n'ont pas suivi cette évolution et ils n'ont pas forcément la même pratique de l'Internet. Le dialogue est donc difficile.
Nous allons aborder d'abord les « avantages », puis les « inconvénients » généralement attribués aux cadres, avec des guillemets parce que cette classification est bien évidemment contestée selon qu'on est pour ou contre les cadres...
C'est l'utilisation essentielle. On la considère comme une aide à la navigation, dans la mesure où on peut s'orienter dans le site sans aller tout au début ou tout à la fin de la page en cours ; en d'autres termes, on économise une manoeuvre d'ascenseur. Petite économie, mais un grand confort peut naître de beaucoup de petites attentions...
Mais il y a plus que l'économie d'un geste. Le visiteur peut aussi rester sur le milieu de la page pendant qu'il étudie le menu pour décider où aller. C'est une autre petite chose appréciable et ça n'est possible qu'avec des cadres.
Bien entendu, l'existence de ce menu n'est pas une panacée universelle. Le problème de fond est que le visiteur sache toujours où il est dans le site, qu'il puisse s'y déplacer commodément, qu'il puisse retrouver une page déjà vue et et qu'il sache s'il a tout vu ou s'il reste encore des pages à découvrir. Dans le cas d'un site complexe, il est évident que ce cadre de menu ne pourra pas porter toute l'arborescence du site, mais il devra néammoins apporter une réponse valable à ces soucis de navigation, ou y contribuer. Il incombe à l'auteur de bien réfléchir à ces problèmes.
C'est la deuxième justification des cadres : on peut les utiliser pour donner un habillage graphique fort au site. Il est clair que les tables offrent peut-être encore plus de souplesse pour élaborer des graphismes, mais ces tables glisseront et sortiront de l'écran quand on jouera de l'ascenseur. On aura ainsi simplement construit une image plus ou moins complexe en haut de la page, qui laissera la place au restant de la page. Au contraire, un graphisme construit sur des cadres pourra rester en place, conférant ainsi au site un habillage permanent et une véritable identité graphique.
Etant donnée l'importance de la présentation dans les questions de communication, il s'agit évidemment d'un argument très fort.
C'est un avantage annexe, mais non négligeable. Le problème est d'éviter qu'il y ait plus de 60/80 caractères par ligne, afin que la lecture ne soit pas trop fatigante lorsque l'on a des textes abondants à parcourir. Les lignes que vous avez sous les yeux en ce moment même, si vous êtes en 800x600, sont déjà un peu trop longues ! Il faut donc limiter la largeur du texte. A nouveau, cela se fait aisément avec une table, mais au prix de grandes marges vides à droite et à gauche (en 800x600 ou plus). Un cadre de menu permet un remplissage naturel de cet espace.
A nouveau on va confronter cadres et tables. Si on fait ses pages sans cadres (donc avec des tables, à cause des nécessités de mise en page), on va devoir répéter le menu sur toutes les pages concernées. il faudra ensuite toutes les reprendre chaque fois que ce menu sera modifié, ce qui sera inévitable lors de la mise au point ou de l'évolution du site. Au contraire, avec des cadres, on n'aura que la seule et unique page de menu à reprendre. Bien évidemment, l'écriture initiale des framesets est une petite corvée supplémentaire, mais ce n'est pas cher payé pour la suite.
Comme on ne répète pas le menu à chaque page, les fichiers sont plus légers. Ils occupent moins d'espace disque et ils sont plus rapides à charger. Ces arguments ont néammoins perdu beaucoup de poids à cause de l'amélioration constante des hébergements et des transferts sur le réseau, amélioration certes jamais suffisante, mais indéniable.
Les cadres simplifient beaucoup la vie quand il s'agit de passer des variables javascript d'une page à l'autre. Nous n'en dirons pas plus car c'est un peu ésotérique, mais c'est bien pratique... pour les initiés.
Les cadres peuvent faire apparaître des ascenseurs en plein milieu de l'écran si on les charge avec des pages trop importantes. L'effet esthétique est franchement doûteux et en règle générale, il vaut mieux éviter ça (vous en voyez un exemple avec cette page du Coin, mais dans ce cas précis, nous avons décidé que l'esthétique était moins importante que la fonctionnalité).
Il est donc hautement conseillé de n'accepter les ascenseurs que sur
les côtés de la fenêtre. Mais même ainsi, on peut tiquer si l'ascenseur ne
couvre pas tout le côté, ce qui arrivera souvent dans la configuration
classique illustrée ci-contre : un menu à gauche, et à droite un titre en
bandeau, puis la page principale. A l'auteur d'apprécier si la gêne
esthétique est pardonnable ou bien s'il doit légèrement
sous-dimensionner le cadre du bandeau pour faire apparaître l'ascenseur
complémentaire...
On entend encore souvent qu'il serait difficile de référencer
des pages avec des cadres, mais
il semble que ce problème appartient au passé. Il vaut
mieux dire que le référencement de ces pages impose des
contraintes supplémentaires à l'auteur. D'après un
comparatif déjà un peu ancien (1998!) cité par
Luc Van Lancker, parmi
les grands moteurs de recherche, seul
Altavista saurait lire les frames, mais les autres se rattrapent sur la
section <NOFRAME> que la sagesse impose de mettre. Aux auteurs
d'aller plus loin qu'un simple
"Navré, mais ce site contient des frames"
et d'y étayer les prétentions de leurs balises METAS.
Avec la plupart des navigateurs, on ne peut pas imprimer l'ensemble de l'affichage, mais seulement le contenu du cadre sélectionné (celui dans lequel on a cliqué). C'est embêtant, d'autant plus que l'impression des cadres étroits (cadres de menu, en particulier) peut s'écarter sensiblement de ce qu'on voit à l'écran, dans la mesure où il semble que la mise en page soit réinterprétée aux dimensions du papier...
Même chose si on essaie d'enregistrer : on ne peut enregistrer que le cadre dans lequel on vient de cliquer.
Là, c'est plus génant. Si une page vous intéresse et que vous vouliez la mettre dans vos favoris, vous inscrivez en fait l'URL du frameset, pas celle de la page précise que vous avez remarquée.
Le visiteur peut évidemment immédiatement éditer son signet pour y inscrire l'URL précise qui l'intéresse, mais il devra faire ça lettre par lettre au clavier puisque cette URL n'apparaîtra que dans une barre d'état sur laquelle il n'y a pas de copié-collé possible. Qui parlait tout à l'heure de confort et de petites corvées ?
En fait la situation s'est un peu améliorée avec les toutes dernières versions NN4.7 et IE5 sur Windows, où le menu contextuel (clic droit de la souris à l'intérieur du cadre) permet précisément de conserver l'URL de la page. Les possesseurs de Mac n'en sont pas encore là en mars 2000, mais ils ont tout de même droit à une autre astuce: on peut réouvrir le cadre intéressant dans une nouvelle fenêtre (clic droit sous PC-Windows, clic prolongé sous Mac, et on a le "menu contextuel") et ce cadre se rouvre sous sa propre URL, qu'on peut alors mettre en favori.
S'il y est sensible, l'auteur du site peut minimiser ce désagrément en découpant son site en chapitres bien serrés avec peu de pages à chaque fois et en redéfinissant ses framesets à l'entrée de chaque chapitre.
Là, c'est un peu le contraire. Si un moteur de recherche indique l'URL d'une page qui est normalement dans un frameset, on va charger cette page en plein écran, sans le menu qui devrait lui être associé, et on a de fortes chances de pas pouvoir naviguer dans le site à partir de cette page.
index.html dans le répertoire
reponses/.
A noter que l'auteur qui lance un javascript dans son
<BODY> pour
recharger automatiquement l'ensemble du frameset lors du chargement
ne fait qu'empirer les choses, puisqu'il empêche de voir la page
indexée par le moteur de recherches, précisément celle
qui contenait l'information recherchée par le visiteur.
Les cadres seraient incompatibles avec de nombreux navigateurs non graphiques, tous absolument marginaux mais plus nombreux qu'on ne le penserait. Les adversaires des cadres citent généralement le plus connu d'entre eux, Lynx, l'ancêtre toujours vert (il bénéficie encore de mises à jour) et vaillant.
En fait, c'est faux. Lynx sait très bien ouvrir les cadres... et si nombre d'autres navigateurs peu connus n'y arrivent pas, ne serait-ce pas plutôt qu'ils n'y arrivent pas encore, parce qu'ils sont développés par de toutes petites équipes, qui n'ont pas encore eu le temps de se confronter au problème ?
Il en est finalement des cadres comme bien des outils. Ils peuvent rendre de grands services si on les emploie à bon escient. Leurs vrais inconvénients tournent autour du fait que l'affichage d'une page dans un cadre ne correspond pas à un document unique avec une URL précise. La lecture du site n'en est absolument pas gênée et c'est bien là l'objectif essentiel d'un site web , mais tout ce qui tourne autour de l'indexation des pages à l'intérieur du site est perturbé. L'auteur du site peut très bien prendre ces difficultés de très haut en statuant que le seul point d'entrée qu'il accepte est sa page d'accueil, mais il peut aussi les alléger à travers une organisation soigneuse de ses pages.
Charles (pour) (TOM) (contre) Gérald (assez pour)