Proposal: deprecate <a target="_replace">

The `target` attribute for SVG <a> elements, as modified in the SVG 1.1 2nd
edition, includes a keyword `_replace` that does not have an HTML
equivalent.

Based on contemporary mailing list discussions [1][2], it seems that the
intention was that while `_self` would replace the entire HTML frame,
`_replace` would only replace the embedded SVG (when SVG was embedded in
HTML as an <object>).

However, the definition of link targets and browsing context names has
changed in HTML 5 [3].  An object is now considered a valid browsing
context which would match the `_self` keyword.  The `_parent` keyword would
match the document in which that object was embedded.

Based on my testing, currently IE treats `_replace` as a synonym for
`_self`.  Firefox and Chrome do not recognize it at all; in other words,
they treat it as a custom name, and open a new tab with the linked content.
 (IE has its own problems: it doesn't recognize browsing context names
declared on <object> elements using the `name` attribute.)

My recommendation would therefore be:

   - use of `_replace` is formally deprecated in SVG 2 (authors SHOULD NOT
   use in new content);
   - all browsers SHOULD treat `_replace` as a synonym for `_self` in
   existing content.

More generally, the definitions of the other keywords should refer to the
corresponding definitions in HTML 5.

AmeliaBR

[1]: https://lists.w3.org/Archives/Public/www-svg/2006Jul/0031.html
[2]: https://lists.w3.org/Archives/Public/www-svg/2007Mar/0048.html
[3]: http://www.w3.org/TR/html5/browsers.html#windows

Received on Sunday, 22 February 2015 22:44:42 UTC