Pourquoi les cadres ont-ils été supprimés dans HTML5, mais pas dans les iFrames? Après tout, il ny a presque aucune différence entre les deux. Dans de nombreux cas, lutilisation de lun ou de lautre donnerait le même résultat (pardonnez-moi si je me trompe)?
Commentaires
- stackoverflow.com/questions/4263509/…
- merci pour le lien, mais quoi ‘ est la petite différence entre les deux, que les iframes ne sont pas devenues obsolètes.
- Parce que les frames étaient une mauvaise idée dès le départ mais que les iframes ont quelques cas dutilisation légitimes?
- En cas de débordement de pile: » Cadres obsolètes en HTML5 mais pas en iFrames »
Réponse
Il y a « quelques idées fausses dans votre message. Tout dabord, le frame
et frameset
ne sont pas obsolètes en HTML5, ils « sont obsolètes (cest-à-dire quils « ont été entièrement supprimés).
Deuxièmement, les frame
et
les éléments ne sont pas la même chose que lélémentiframe
, ni ne donnent le même résultat:
-
Lélément
frameset
remplace lélément body dans les pages afin dinclure un modèle de document différent pour les pages Web: ils « sont mauvais pour la convivialité et laccessibilité, et ce quils voulaient à accomplir ont été complètement remplacés par CSS et le développement omniprésent côté serveur. -
Lélément
iframe
, en revanche, ne ne remplace pas le corps d’une page. Il agit comme un moyen dinclure un nouveau contexte de navigation intégré dans un bloc de contenu. Il ne souffre pas des mêmes problèmes dutilisabilité ou daccessibilité que le modèle de jeu de cadres et est utilisé presque partout où lon a besoin dinclure un contexte de navigation intégré (les widgets étant lexemple le plus prolifique). 1
Le iframe
en HTML5 prend également des fonctionnalités supplémentaires en ce sens quil peut être bac à sable , permettant au document parent de décider de ce qui sera exécuté en son sein. Cela permet une certaine mesure de sécurité pour le document parent (et les visiteurs du document parent) lors de lincorporation de contenu non approuvé.
Notes
Note 1: lélément object
chevauche quelque peu lélément iframe
, mais il a un modèle de contenu différent (qui est principalement destiné aux plugins), a son propre ensemble de mises en garde et na pas les attributs de sandboxing de lélément iframe
.
Commentaires
- Pourquoi les éléments du jeu de cadres sont-ils mauvais pour » utilisabilité » et » accessibilité » mais les éléments iframe ne sont pas ‘ t?
- @meriton Le jeu de cadres construit une page à partir de plusieurs documents, tous avec la même priorité: cela entraîne des défis pour les lecteurs décran qui ne savent pas sur quel document se concentrer à un moment donné. I les éléments frame, par contre, sont simplement intégrés dans une seule page: ‘ nest pas différent davoir une image intégrée.
- Défis pour les lecteurs décran: Les aveugles à qui jai parlé ont tous dit quils préféraient que la navigation soit bloquée dans un cadre séparé (pas dans iFrame) parce quils peuvent lignorer et ne le leur lire que lorsquils le souhaitent. Le vrai coupable des lecteurs décran est Javascript et AJAX qui rend les pages complètement inutilisables avec les lecteurs décran actuels (enfin, mes informations datent denviron 10 mois). Mon expérience personnelle avec les lecteurs décran le confirme.
- Je ‘ me demande si beaucoup de 2005 ‘ les assertions daccessibilité souvent renouvelées nont ‘ pas été en retard pour une mise à jour. Merci pour la dissidence à ce sujet.
- @GlenPeterson le même effet sans élément frame peut être obtenu en utilisant CSS pour rendre lélément de bloc fixe dans la fenêtre. Cest ainsi que cela doit être fait si vous voulez ce type de navigation. Cela a plus de sens.
Réponse
Les jeux de cadres sont souvent utilisés dune manière où ils enfreignent le principe fondamental de le Web – que chaque document a une seule URL. Cela conduit à des problèmes de liaison, de signets, de moteurs de recherche, etc.
Lutilisation typique dun jeu de cadres serait un cadre en haut avec un logo ou un en-tête, un cadre sur le côté avec un menu et un cadre de contenu. Mais les moteurs de recherche indexent des pages individuelles, donc lorsque vous trouvez une page dans Google, elle est directement liée à la page de contenu sans le jeu de cadres, de sorte que vous perdez la navigation.Le problème avec les liens et les signets est que vous souhaitez généralement lier ou mettre en signet une page de contenu particulière à lintérieur du jeu de cadres, sans perdre le jeu de cadres lui-même. Ce n’est pas un moyen facile de le faire.
La raison pour laquelle les jeux de cadres sont devenus populaires en premier lieu était parce quils permettaient un en-tête et un menu positionnés statiquement avec une zone de contenu défilante. Mais cela peut être réalisé beaucoup plus facilement avec CSS aujourdhui. De plus, les cadres vous permettaient dutiliser des éléments communs tels que des logos et des menus sur plusieurs pages sans utiliser de codage côté serveur. Cétait un avantage à une époque où le codage côté serveur était fastidieux et sujet aux erreurs (cest-à-dire les scripts CGI), et de nombreux hôtes ne permettaient pas du tout le script côté serveur. Aujourdhui, avec les systèmes de gestion de contenu (CMS) et un meilleur côté serveur plates-formes, cela est bien mieux géré côté serveur.
Donc, fondamentalement, il ny a aucun avantage à utiliser un jeu de cadres, juste beaucoup de problèmes.
IFrames peuvent être utilisés de la même manière que les framesets ont été utilisés, et dans ce cas, ils conduisent également aux mêmes problèmes. Mais il existe également de nombreuses utilisations légitimes des iframes qui ne conduisent pas aux mêmes problèmes.
Réponse
Les cadres (jeu de cadres) font office de document. Ils sont supprimés car ils cassent la structure et la navigation des documents HTML. Par exemple. vous avez des liens dans un cadre, du contenu dans lautre, vous ne pouvez pas ouvrir le lien de la page dans une nouvelle fenêtre, vous ne pouvez pas créer un lien vers une sous-page spécifique, etc.
De lautre Les iframes manuels ne « cassent rien » sils sont utilisés correctement, car ils « sont destinés au contenu sandbox (par exemple, les publicités).