The target attribute has been taken away (deprecated) in 4.01 strict and above. The best solution that I have seen is to use javascript:
Code:
<a href="some.htm" onclick="window.open(this.href,'_blank');return false;">Link</a>
This is obviously far from ideal, as many folks surf with javascript disabled or in browsers that just don't have javascript at all.
I seriously doubt that the target attribute will cease being supported in the real world though (read: in browsers). And, to get your page to validate, you could use target and the transitional DOCTYPE:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
You can do both, use the transitional DOCTYPE and:
Code:
<a href="some.htm" target="_blank" onclick="window.open(this.href,this.target);return false;">Link</a>
That way, pretty much all of your bases are covered.
However, people surfing without javascript generally are looking for a tamed web experience that goes along very predictable lines. Like, when they click on a link, they want the current page to change to it, etc. So, using the strict DOCTYPE and no target attribute with a javascript like in my first example might be the right way to go.
Using this philosophy (with the strict DOCTYPE) would tend to be the best way to 'future proof' your pages, at least in theory.
Personally, I think target will continue to be supported by browsers for a very, very long time though, regardless of what the w3c does.
Bookmarks