Re: [whatwg] WF2 - <form action="">

Responding to one of the issues on the Web Forms 2 issues list:

> Thomas Broyer wrote:
>> 2007/7/1, Philip Taylor:
>>> WF2 says:
>>>
>>>   "When the [form element's action] attribute is absent, UAs must act
>>> as if the action attribute was the empty string, which is a relative
>>> URI reference, and would thus point to the current document (or the
>>> specified base URI, if any)."
>>>
>>> But: 
>>> http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20html%3E%0D%0A%3Cbase%20href%3D%22http%3A//google.com%22%3E%3Cform%3E%3Cinput%20type%3Dsubmit%3E 
>>>
>>>
>>> In IE7, FF2, FF3, Opera 9.2, it ignores the base URI and always
>>> submits to the current page. In Safari 3, it does take account of the
>>> base URI. In all, <form action=""> does the same as <form>. In all,
>>> <form action="."> does take account of the base URI. Perhaps it would
>>> be sensible to follow the majority.
>>  
>> Wouldn't that be a violation of RFC3986?
>>  
>> http://tools.ietf.org/html/rfc3986#section-4.4
>>  
>> Are there pages in the wild relying on that behavior (i.e. has Apple
>> received a bug report for pages breaking in Safari? [1])
>>  
>> [1] Hmm, seems like there is such a bug report, with people
>> misunderstanding RFC3986 §4.4 and relying on such broken behaviors:
>> http://bugs.webkit.org/show_bug.cgi?id=7763
>> (for the first example, it's at
>> http://www.polytechnique.fr/eleves/login.php, there's a <base
>> href="http://www.polytechnique.fr/eleves/"> and <form action="">
>> expected to be POSTed to login.php)
>
> See also https://bugzilla.mozilla.org/show_bug.cgi?id=297761 where it 
> was reported that we changed the behavior for firefox 1 and thereby 
> broke sites.
>
> I actually seem to recall the spec saying that action="" meant to submit 
> to the current page. Though I can't find that in the spec right now so I 
> might be wrong.
>
> So the answer is that this is a web compat issue. How much of the web 
> would break if we changed this behavior is anyones guess unfortunately.
>
> / Jonas
>   
As described in section 5.2 item 2) [1] of RFC2396, and shown in section 
C.1. [2] and C.2. [3], it is specified behaviour for URIs that are empty 
(<>) or only contain a hash (<#s>) to resolve to the current document, 
and not the base URI. So Safari is wrong, Safari’s bug 7763 is right, 
the other browsers are right, and the Web Forms 2 specification is wrong.

~Grauw

[1] http://rfc.net/rfc2396.html#s5.2.
[2] http://rfc.net/rfc2396.html#sC.1.
[3] http://rfc.net/rfc2396.html#sC.2.

-- 
Ushiko-san! Kimi wa doushite, Ushiko-san nan da!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Laurens Holst, student, university of Utrecht, the Netherlands.
Website: www.grauw.nl. Backbase employee; www.backbase.com.

Received on Thursday, 17 January 2008 14:22:49 UTC