Existem alguns equívocos na sua postagem. Primeiro, os elementos frame
e frameset
não são preteridos no HTML5, eles são obsoletos (ou seja, eles foram totalmente removidos).
Em segundo lugar, os elementos frame
e frameset
não são a mesma coisa que o elemento iframe
, nem fornecem a mesma saída:
-
O elemento
frameset
substitui o elemento body em páginas como um meio de incluir um modelo de documento diferente para páginas da Web: elas são ruins para usabilidade e acessibilidade, e o que elas pretendiam realizar foi completamente substituído por CSS e desenvolvimento onipresente do lado do servidor. -
O elemento
iframe
, por outro lado, não substitui o corpo de uma página. Ele age como um meio de incluir um novo contexto de navegação incorporado em um bloco de conteúdo. Ele não sofre dos mesmos problemas de usabilidade ou acessibilidade que o modelo de conjunto de quadros e é usado em quase todos os lugares onde é necessário incluir um contexto de navegação embutido (os widgets são o exemplo mais prolífico). 1
O iframe
em HTML5 também assume recursos adicionais, pois pode ser sandbox , permitindo que o documento pai decida o que é executado dentro dele. Isso permite alguma medida de segurança para o documento pai (e os visitantes do documento pai) ao incorporar conteúdo não confiável.
Notas
Nota 1: o elemento object
de certa forma se sobrepõe ao elemento iframe
, mas tem um modelo de conteúdo diferente (que é destinado principalmente a plugins), tem seu próprio conjunto de advertências, e não tem os atributos de sandboxing que o elemento iframe
tem.