I did some testing on id="" and name="" on <iframe>, <object> and <map>...

   http://hasather.net/test/html/id-vs-name/

(Thanks to David for uploading them -- FTP didn't work for me today.)


In the table below, A means "link opens in "iframe"", B means "link opens in new window", C means "link opens in same window", and D means "no link".



  Test  | Gecko WebKit Opera IE7 |          Title            |  Notes
--------+------------------------+---------------------------+----------
001.htm | A     A      A     A   | <iframe name>             | Interop
001.xml | B     A      A     -   | <iframe name>             | -
002.htm | B     A      A     B   | <iframe id>               | -
002.xml | A     A      A     -   | <iframe id>               | -
003.htm | B     B      B     B   | <object name>             | Interop
003.xml | B     A      B     -   | <object name>             | -
004.htm | B     B      B     B   | <object id>               | Interop
004.xml | B     B      B     -   | <object id>               | Interop
005.htm | A     A      A     B   | <object name data=data:,> | IE bug?
005.xml | B     A      A     -   | <object name data=data:,> | -
006.htm | B     B      A     B   | <object id data=data:,>   | -
006.xml | A     B      A     -   | <object id data=data:,>   | -
007.htm | C     C      C     C   | <map name>                | Interop
007.xml | D     C      C     -   | <map name>                | -
008.htm | D     D      C     C   | <map id>                  | -
008.xml | C     C      C     -   | <map id>                  | Interop


So... let's see what is interoperable...:

<a target> pointing to <iframe name> works in all, except in Gecko in XHTML.

<a target> pointing to an <object> that is not iframeish opens a new window in all, except in WebKit in XHTML.

<a target> pointing to an iframeish <object name> works in all except IE7, and also not in Gecko in XHTML.

<map name> works in all except in Gecko in XHTML and WebKit in XHTML.

<map id> works in all in XHTML.


Looking at each browser's results individually, Opera's seems to be most useful and predictable. I think this is what should be specced as to what UAs must do. Having differences between HTML and XHTML here is not useful IMHO.


Looking at this from an author's perspective, it seems using name="" is most reliable, and if we want some sort of consistency here, then I think target="" must point to an <iframe name> or an iframeish <object name> (as opposed to <iframe id> or <object id>), and usemap="" must point to a <map name> (as opposed to <map id>). <map> is not useful without a usemap="" pointing to it, so name="" could be a required attribute on <map>.

--
Simon Pieters

Reply via email to