web-dev-qa-db-fra.com

Pourquoi les cadres sont-ils déconseillés en html?

HTML contient des cadres depuis le début, mais ils sont obsolètes dans la dernière version. De nombreux navigateurs (j'ai essayé avec Internet Explorer) n'affichent même pas correctement les cadres.

Pourquoi cela at-il été fait? Quel était l'inconvénient des cadres?

59
SonOfTheEARTh

Jakob Nielsen a écrit une chronique de 1996 qui cadres critiqués . Quelques points clés:

  1. Les cadres empêchent les utilisateurs de mettre correctement les pages en signet. Lorsqu'une page de jeux de cadres marquée est chargée, les clics de souris précédents des utilisateurs à l'intérieur des cadres n'ont pas d'importance. Seule l'URL externe est enregistrée, et les utilisateurs doivent naviguer où ils se trouvaient manuellement.

  2. Les cadres présentent des défis pour l'impression de pages Web. L'impression de tous les cadres à la fois n'est pas adaptée aux différentes dimensions du papier (et les utilisateurs ne peuvent obtenir que la première page de cette façon). Les utilisateurs doivent généralement cliquer avec le bouton droit sur le cadre de leur choix et choisir l'option de menu contextuel appropriée.

  3. Les utilisateurs provenant des moteurs de recherche peuvent ne pas avoir accès aux éléments de navigation s'ils se trouvent dans un autre cadre - ils sont dirigés uniquement vers le cadre dans lequel le moteur de recherche a trouvé le texte.

Alors que les "framesets" (le type le plus couramment utilisé sur les pages Web de la fin des années 1990/début des années 2000) se meurent, l'iframe (abréviation de frame en ligne) reste bel et bien vivant. En fait, récemment, les iframes se sont révélés utiles dans les applications Web "mashup" d'aujourd'hui, et des extensions de l'iframe sont actuellement proposées dans la spécification HTML5 .

Par exemple, Facebook, dans son API pour les développeurs d'applications, les utilise pour intégrer de manière transparente des applications tierces à leur propre site tout en minimisant le risque de sécurité. (Dans ce modèle, tout le code tiers reste sur un domaine séparé, ce qui est bon pour des raisons de sécurité.)

57
PleaseStand

Cadres ne sont pas déconseillés en HTML. Ils sont obsolètes en HTML 5 , et juste découragés avant cette version. Cela a été clairement mentionné dans les liens spécifiés.

10
Pascal Qyy

Ne pas répondre à l'OP mais plutôt équilibrer le dénigrement des framesets.

Je les trouve super et rien ne se rapproche d'eux quand vous voulez que votre menu soit intact et quand même:

  • Incorporez visuellement des pages/applications tierces (phpmyadmin ou similaire)
  • Affichage de doctypes autres que html (pdf ou images).
  • En raison de son width = "x, *" vous obtenez un comportement "réactif" simple.

De plus, vous pouvez fournir des animations de menu fluides tout en récupérant le contenu principal.

Utilisés avec sens, ils sont super.

4
Teson