- From: Boris Zbarsky <notifications@github.com>
- Date: Tue, 20 Oct 2015 07:22:46 -0700
- To: whatwg/dom <dom@noreply.github.com>
- Message-ID: <whatwg/dom/issues/81/149582699@github.com>
@ArkadiuszMichalski I'm not sure what you're asking. The whole point of `DOMSettableTokenList` when it was introduced was to be just like `DOMTokenList` but settable, in the sense that it was taking attributes that used to be string-typed and that people had set like this: `foo.ping = something` and aiming to preserve that behavior. This was done by giving it a settable attribute named `value` and making every single consumer do `[PutForwards=value]`. As far as Chrome's implementation goes, it does the following for places where the HTML spec uses `DOMSettableTokenList`: 1. `HTMLElement.dropzone` -- not implemented 2. `HTMLLinkElement.sizes` -- as your behavior above: updates the internal state of the `DOMSettableTokenList` but not the actual attribute, which is broken. 3. `HTMLAnchorElement.ping` -- implemented correctly per sanity: setting `a.ping` or `a.ping.value` changes the value of `a.getAttribute("ping")`. 4. `HTMIFrameElement.sandbox` -- implemented correctly per sanity. 5. `HTMLAreaElement.ping` -- implemented correctly per sanity. 6. `HTMLTableCellElement.headers` -- implemented as a string, not a `DOMSettableTokenList`. 7. `HTMLOutputElement.htmlFor` -- implemented brokenly like `HTMLLinkElement.sizes`. So my take on it is that Chrome has correct implementations of this for various places (e.g. sandbox/ping), has two broken ones (HTMLOutputElement.htmlFor` and `HTMLLinkElement.sizes`), and the spec is buggy. --- Reply to this email directly or view it on GitHub: https://github.com/whatwg/dom/issues/81#issuecomment-149582699
Received on Tuesday, 20 October 2015 14:23:17 UTC