[Bug 12561] Add the @action in the <form> so that there is a way to submit to the same page

http://www.w3.org/Bugs/Public/show_bug.cgi?id=12561

Luke Plant <L.Plant.98@cantab.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |L.Plant.98@cantab.net

--- Comment #12 from Luke Plant <L.Plant.98@cantab.net> 2011-06-06 09:39:17 UTC ---
HTML5 shouldn't be inventing the way to specify the base URL. RFC 1808 does
this, and it clearly states (section 4, step 2a, and 5.1/5.2) that the empty
URL means the base URL. There is in fact no other way to specify "the
base URL" as a relative URL in that RFC.

The only complication is the legacy fact that browsers ignore the <base href>
in this case. But use of base is relatively rare, and validators could issue a
warning in that case. Forcing authors/tools to change the value of 'action' to
avoid a problem they didn't have anyway, because they weren't using <base>, is
just silly - they didn't have a problem before, but they do now.

Saying "omit the attribute if you want to specify the empty URL" has various
problems:

1 It makes it harder to produce valid HTML for tools that
generate HTML. The tool has to special case the empty URL and omit the
@action attribute entirely if an empty URL was specified, even though an
empty URL is not a special case - it is a perfectly valid relative URL.

2. I makes it impossible for such tools to generate HTML that
is compatible with HTML4 and HTML5 in the case of the empty URL. HTML4
requires the attribute, HTML5 requires it to be absent in this case.

3. You cannot apply this to the @formaction attribute, because for that,
omitting the attribute means the @action on the form is used.

This problem produces an arbitrary and completely unnecessary limitation. The
following (simplified) form is quite sensible:

<form action="/foo/" method="POST">
<input type="submit" name="post" value="post">
<input type="submit" name="preview" value="preview" formaction="">
</form>

The result would be that the default action for the form is to go to one
specifed URL, but one button should result in posting to the base URL.
However, under current spec, it should be rejected, and there is *no
other way* to produce the same effect. For some reason, you cannot
specify that a certain button should target the base URL. This is a
clear bug in the spec, AFAICS.

Now, browsers are going to continue to treat @action as they currently
do (i.e. allow the empty URL) for backwards compatibility. If and when
they support @formaction, it is extremely unlikely they will apply
different rules, because 1) this would require more work 2) it would
produce less usefulness.

Therefore, the de-facto standard will be to allow @formaction to be
empty, just like @action, and treat it in the same way.

To fix this, you could allow @formaction to be empty. But if that is
allowed, it makes no sense to treat @action any different - that would
be very confusing.

-- 
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

Received on Monday, 6 June 2011 09:39:20 UTC