W3C home > Mailing lists > Public > whatwg@whatwg.org > June 2010

[whatwg] Serialization of boolean content attributes

From: Jonas Sicking <jonas@sicking.cc>
Date: Fri, 18 Jun 2010 10:25:01 -0700
Message-ID: <AANLkTinnIhGRY5djaFs-TwwlaZGM559T_YbQvl5GnUl2@mail.gmail.com>
On Fri, Jun 18, 2010 at 10:15 AM, Alexey Proskuryakov <ap at webkit.org> wrote:
>
> My reading of HTML5 is that boolean content attributes with no value are
> serialized as e.g. <option selected="">. That's not what shipping versions
> of Firefox or IE do, and this markup is invalid per HTML 4, which is a
> concern for some people.
>
> Here are some examples of what Firefox 3.6.3 does, and what would be my
> preference for WebKit (which currently matches HTML5):
>
> <option selected> -> <option selected="selected">
> <option selected=""> -> <option selected="selected">
> <option selected="foo"> -> <option selected="foo">
>
> IE is different, and serializes all these examples as <option selected>.
> That wouldn't be my preference, since that's invalid XML, but at least it's
> valid HTML 4.
> This is tracked as WebKit bug
> <https://bugs.webkit.org/show_bug.cgi?id=22678>.

Serializing boolean attributes as <option selected="selected"> seems
like a very bad idea since that means that you're changing the value
as you serialize. I.e. if you roundtrip by for example setting:

myDivElement.innerHTML = myDivElement.innerHTML

you've change the value of all boolean attribute.

This leaves us with <option selected> or <option selected=""> which
both parse to the same DOM in HTML. Given that basically everyone uses
the first syntax, I would say that that is what we should serialize
as.

Obviously we don't want to serialize it this way in XHTML documents as
this isn't valid XML, so there I say we should serialize as <option
selected="">

/ Jonas
Received on Friday, 18 June 2010 10:25:01 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:59:24 UTC