Por que os frames foram removidos em HTML5, mas não os iFrames? Afinal, quase não há diferença entre os dois. Em muitos casos, o uso de qualquer um deles geraria a mesma saída (desculpe se eu estiver errado)?

Comentários

Resposta

Há alguns equívocos em sua postagem. Primeiro, o frame e frameset os elementos não estão obsoletos em HTML5, eles “re obsoletos (ou seja, eles “foram totalmente removidos).

Em segundo lugar, o frame e

elementos não são a mesma coisa que o elemento iframe, nem fornecem a mesma saída:

  • O elemento frameset substitui o elemento body nas páginas como um meio de incluir um modelo de documento diferente para páginas da web: eles são ruins para usabilidade e acessibilidade, e o que pretendem para realizar foram completamente substituídos 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 atua como um meio de incluir um novo contexto de navegação embutido em um bloco de conteúdo. Ele não sofre dos mesmos problemas de usabilidade ou acessibilidade que o modelo de frameset e é usado em quase todos os lugares em que seja necessário incluir um contexto de navegação incorporado (widgets sendo o exemplo mais prolífico). 1

O iframe em HTML5 também possui recursos adicionais, pois pode ser em sandbox , permitindo que o documento pai decida o que é executado dentro dele. Isso permite alguma medida de segurança para o documento pai (e visitantes do documento pai) ao incorporar conteúdo não confiável.


Notas

Nota 1: o elemento object um tanto se sobrepõe ao elemento iframe, mas tem um modelo de conteúdo diferente (que se destina principalmente a plug-ins), tem seu próprio conjunto de advertências e não tem os atributos de sandboxing que o elemento iframe possui.

Comentários

  • Por que os elementos do frameset são ruins para " usabilidade " e " acessibilidade " mas os elementos iframe aren ' t?
  • @meriton O conjunto de quadros constrói uma página a partir de vários documentos, todos com a mesma prioridade: isso causa desafios para leitores de tela que não sabem em qual documento se concentrar em um momento específico. I os elementos do quadro, por outro lado, são simplesmente incorporados em uma única página: ' não é diferente de ter uma imagem incorporada.
  • Desafios para leitores de tela: Todos os cegos com quem conversei disseram que preferem que a navegação fique presa em um quadro separado (não iFrame) porque podem ignorá-lo e só tê-lo lido quando quiserem. O verdadeiro culpado dos leitores de tela é o Javascript e AJAX, que tornam as páginas completamente inutilizáveis com os leitores de tela atuais (bem, minhas informações têm cerca de 10 meses). Minha experiência pessoal com leitores de tela suporta isso.
  • Eu ' estive me perguntando se muito de 2005 ' s as afirmações de acessibilidade frequentemente reclassificadas ' não estavam atrasadas para uma atualização. Obrigado pela discordância sobre isso.
  • @GlenPeterson o mesmo efeito sem elemento de quadro pode ser obtido usando CSS para tornar o elemento de bloco fixo na janela de visualização. É assim que deve ser feito se você deseja esse tipo de navegação. Faz mais sentido.

Resposta

Conjuntos de quadros são frequentemente usados de uma forma que quebram o princípio fundamental de a Web – que cada documento tem um único URL. Isso leva a problemas com links, favoritos, mecanismos de pesquisa, etc.

O uso típico de um conjunto de quadros seria um quadro na parte superior com um logotipo ou cabeçalho, um quadro ao lado com um menu e um quadro de conteúdo. Mas os mecanismos de pesquisa indexam páginas individuais, então, quando você encontra alguma página no Google, ela se vincula diretamente à página de conteúdo sem o conjunto de quadros, e você perde a navegação.O problema com links e marcadores é que você normalmente deseja vincular ou marcar uma página de conteúdo específica dentro do conjunto de quadros, sem perder o próprio conjunto de quadros. Não é uma maneira fácil de fazer isso.

A razão pela qual os conjuntos de quadros se tornaram populares em primeiro lugar foi porque eles permitiam um cabeçalho e um menu posicionados estaticamente com uma área de conteúdo de rolagem. Mas isso pode ser alcançado muito mais facilmente com CSS hoje. Além disso, os frames permitem que você use elementos comuns como logotipos e menus em várias páginas sem usar qualquer codificação do lado do servidor. Isso era uma vantagem em um momento em que a codificação do lado do servidor era entediante e sujeita a erros (ou seja, scripts CGI), e muitos hosts não permitiam scripts do lado do servidor. Hoje, com sistemas de gerenciamento de conteúdo (CMS) e melhor do lado do servidor plataformas, isso é muito melhor tratado no lado do servidor.

Então, basicamente, não há vantagens em usar um conjunto de quadros, apenas muitos problemas.

Os IFrames podem ser usados da mesma forma que os framesets foram usados e, nesse caso, eles também levam aos mesmos problemas. Mas também há muitos usos legítimos de iframes que não levam aos mesmos problemas.

Resposta

Os frames (frameset) funcionam como um documento. Ele foi removido porque quebra a estrutura e a navegação dos documentos HTML. Por exemplo. você tem links em um quadro, conteúdo em outro, não pode abrir o link da página em uma nova janela, não pode criar um link para uma subpágina específica, etc.

Por outro iframes manuais não quebram nada se usados corretamente, porque se destinam a armazenar conteúdo (por exemplo, anúncios).

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *