fragid navigation and pct-encoded

Hi,

Apparently there are some differences between browsers in the handling of  
percent escaped characters in fragment identifiers. I made a few tests to  
figure out the different behavior:

   http://tc.labs.opera.com/html/navigation/fragids/

I was able to test in Opera 9.5, Firefox 3.0, and Internet Explorer 6.0.  
Results:

IE does not handle pct-encoded in fragment which is in violation of RFC  
3986. It does nothing special with either the name or id attributes;  
simple literal matching.

Firefox does handle pct-encoded in fragment. It also handles pct-encoded  
in the name attribute. It effectively performs pct-encoded handling in  
fragment and name attributes and after that performs literal matching.  
Thus a fragment of ? and a name attribute of %3FC match and vice versa.  
Likewise, a fragment of %253F does not match a name attribute of %3FC. The  
id attribute is not affected by pct-encoded handling. So a fragment of ?  
does not match an id attribute of %3F.

Opera does handle pct-encoded in fragment. It does not have special  
handling of attributes. This is the behavior prescribed by HTML5 but  
breaks sites. Eg,

   http://www.readynas.com/forum/faq.php

The test suite assumes Firefox is correct as that seems the most  
"sensible" behavior if you want to be compliant with RFC 3986 and  
compatible with the Web. I suggest we change HTML5 to perform pct-encoded  
handling for name attributes. I have not checked whether this affects the  
usemap attribute.

Kind regards,


-- 
Anne van Kesteren
<http://annevankesteren.nl/>
<http://www.opera.com/>

Received on Thursday, 4 September 2008 13:06:09 UTC