Why isn't my document validating as XHTML 1.1

2020-04-06 06:53发布

While target="_blank" is deprecated, why is the W3C validator not giving an error about this ? You can paste and check this code int the validator:

<!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>

Edit:

Does it mean that XHTML 1.1 supports target=”_blank”, but XHTML 1.0 strict does not? Or is it a bug in the W3C validator?

6条回答
ら.Afraid
2楼-- · 2020-04-06 07:20

I used your code and I got the following error.

Error found while checking this document as XHTML 1.1!

Validation Output: 1 Error

  1. Error Line 11, Column 76: there is no attribute "target"

    ….com" title="New window will open" target="_blank">Link opens in new window

The validator is working as of 1/30/2012. You cannot pass validation using target="_blank"

Replace with this valid portion of code:

onclick="target='_blank';"

查看更多
何必那么认真
3楼-- · 2020-04-06 07:23

Does it means XHTML 1.1 support target=”_blank” but XHTML 1.0 strict not?

Well, Yes.

If you need a workaround for your problem, then this is one of them. Another option is to use window.open() instead of target="_blank".

查看更多
贪生不怕死
4楼-- · 2020-04-06 07:28

You are being validated as XHTML Transitional rather than Strict. If you manually override the doctype to XHTML 1.0 Strict you get this error:

Error Line 11, Column 76: Attribute "target" exists, but can not be used for this element.

…om" title="New window will open" target="_blank">Link opens in new window

Use this doctype if you want to be strict:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

The transitional schemas still allow certain deprecated elements and attributes, I guess to help people transition in steps towards a stricter markup.

EDIT:

OK, so the original code was XHTML 1.1 of which there is just one single version (no Strict/Transitional), and according this FAQ the target attribute is indeed not allowed. So I guess this must be a bug in the validator.

查看更多
一纸荒年 Trace。
5楼-- · 2020-04-06 07:32

The XHTML1.1 documentation shows that the target attribute of an a element can be "anything".

查看更多
\"骚年 ilove
6楼-- · 2020-04-06 07:34

It is deprecated but not removed. That's why i think there is problem in validating that.

查看更多
贪生不怕死
7楼-- · 2020-04-06 07:36

While xhtml may support "targrt="_blank", it WILL NOT validate it because it hase been depreciated. If you don't want to use JS, you will have to use transitional instead of strict in your "document type".

查看更多
登录 后发表回答