Por que meu documento não está validando como XHTML 1.1 STRICT?
-
19-09-2019 - |
Pergunta
Enquanto target = "_ blank" está obsoleta, porque é que o validador do W3C não dando um erro sobre isso? Você pode colar e verificar este código int validador :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<p>
<a href="http://www.stackoverflow.com" title="New window will open" target="_blank">Link opens in new window</a>
</p>
</body>
</html>
Editar:
Isso significa que XHTML 1.1 suporta target =”_ blank”, mas XHTML 1.0 estrito não? Ou é um bug no validador do W3C?
Solução
Você está sendo validado como XHTML Transição em vez de Strict . Se você substituir manualmente o tipo de documento para XHTML 1.0 Strict você receber esse erro:
Erro de linha 11, coluna 76:. Atributo "target" existe, mas não pode ser usado para este elemento
... om" title = "Nova janela será aberta" target = "_ blank"> O link se abre em uma nova janela
Use este doctype se você quiser ser rigoroso:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Os esquemas de transição ainda permitir que certos elementos obsoletos e atributos, acho que para ajudar as pessoas transição em passos para uma marcação mais rigorosa.
EDIT:
OK, então o código original XHTML 1.1 do qual existe apenas uma única versão (sem Strict / Transitório), e de acordo com este FAQ o atributo de destino é, na verdade não é permitido. Então eu acho que isso deve ser um bug no validador.
Outras dicas
É desaconselhável, mas não removido. É por isso que eu acho que não há problema em validar isso.
O XHTML1.1 documentação mostra que o atributo de destino de um elemento a
pode ser "qualquer coisa".
Será que isso significa XHTML 1.1 alvo apoio =”_ blank” mas XHTML 1.0 estrito não?
Bem, sim.
Se você precisa de uma solução para o seu problema, então este é um deles. Outra opção é usar window.open () em vez de target = "_ blank".
Eu usei o seu código e eu tenho o seguinte erro.
Erro encontrado durante a verificação este documento como XHTML 1.1!
Validação de saída: 1 Erro
-
Erro de linha 11, coluna 76: não há nenhum atributo "target"
... .com" title = "Nova janela será aberta" target = "_ blank"> O link se abre em uma nova janela
O validador está a trabalhar a partir de 2012/01/30. Você não pode passar a validação usando target = "_ blank"
Substitua por esta parte válida de código:
onclick = "target = '_ blank';"
Enquanto xhtml pode apoiar "targrt =" _ blank", não vai validá-lo porque Hase sido depreciado. Se você não quiser usar JS, você terá que usar de transição, em vez de estrita no seu 'tipo de documento' .