- From: Andrea Giammarchi <notifications@github.com>
- Date: Tue, 08 Nov 2016 13:36:58 -0800
- To: w3c/webcomponents <webcomponents@noreply.github.com>
- Message-ID: <w3c/webcomponents/issues/509/259267305@github.com>
> I'm still wondering whether it is a good idea to soup up the template API to do more work vs. allowing dedicated elements to do it? I think you should stop using `template` or decide to never extend it natively in any of **your** projects. Same goes for buttons, forms, maps, tables, and every other example previously described multiple times in intent and problems caused by not having an `is` like mechanism. It's clear you don't want `is` to happen but it looks like you are also not capable to propose concrete alternatives that work like a native extend would, or like Custom Elements worked until now, and for the last 2+ years. Yes, you don't need to do that, and it's very good for you because you don't have to use it or to wait for it to happen everywhere: lucky you, I'm almost envious! So, thank you for your contribution to this discussion, but please stop telling us we're all doing it wrong and it's possible without `is`, because we all agreed on the fact it's not perfect but so isn't the entirety of the HTML specification, and that's legacy we don't want to break, but also the only legacy we can use to improve the current Web as a platform. That legacy worked well so far but it's going to be stuck forever if we cannot enhance it, do you understand this **is** a problem in both the short and long term? As alternative, we have 3rd parts frameworks that circumvent Web limits, meaning in my opinion that the Web, as platform, failed to keep it up, encouraging every possible sort of hack on JS side (developers will do that if necessary, it already happened in the past) instead of gracefully enhancing itself like it has done for many years, adding special elements or attributes when needed (imagine a conversation like "_we don't need draggable attribute_" or "_we don't need checked and disabled_") HTML Elements are different, and these have a meaning in certain context that cannot be simply replaced by regular `HTMLElement`. It's like being in ECMAScript 3 era where everyone hacked native constructors prototypes because it wasn't possible, and it took forever to make it possible, to simply extend `Array` or `String` and others. The current Custom Elements have the same limitation but not everything, metaphorically speaking, is an `Object` with a generic `object` role. As summary: we should stop wasting time saying there are no use cases for `is` or nobody uses it, because evidence demonstrated the contrary. We can agree to disagree then and, hopefully, move on. For future reference, these are all the **non** `HTMLElement` classes you think nobody should be able to natively extend. You said you care about the future of this platform? Then you should care about what's being discussed in here as "_leaast ugly but working option we have to move forward_". ``` HTMLAllCollection HTMLCollection HTMLFormControlsCollection HTMLOptionsCollection HTMLAnchorElement HTMLAppletElement HTMLAreaElement HTMLAttachmentElement HTMLAudioElement HTMLBRElement HTMLBaseElement HTMLBodyElement HTMLButtonElement HTMLCanvasElement HTMLContentElement HTMLDListElement HTMLDataElement HTMLDataListElement HTMLDetailsElement HTMLDialogElement HTMLDirectoryElement HTMLDivElement HTMLDocument HTMLElement HTMLEmbedElement HTMLFieldSetElement HTMLFontElement HTMLFormElement HTMLFrameElement HTMLFrameSetElement HTMLHRElement HTMLHeadElement HTMLHeadingElement HTMLHtmlElement HTMLIFrameElement HTMLImageElement HTMLInputElement HTMLKeygenElement HTMLLIElement HTMLLabelElement HTMLLegendElement HTMLLinkElement HTMLMapElement HTMLMarqueeElement HTMLMediaElement HTMLMenuElement HTMLMenuItemElement HTMLMetaElement HTMLMeterElement HTMLModElement HTMLOListElement HTMLObjectElement HTMLOptGroupElement HTMLOptionElement HTMLOutputElement HTMLParagraphElement HTMLParamElement HTMLPictureElement HTMLPreElement HTMLProgressElement HTMLQuoteElement HTMLScriptElement HTMLSelectElement HTMLShadowElement HTMLSlotElement HTMLSourceElement HTMLSpanElement HTMLStyleElement HTMLTableCaptionElement HTMLTableCellElement HTMLTableColElement HTMLTableElement HTMLTableRowElement HTMLTableSectionElement HTMLTemplateElement HTMLTextAreaElement HTMLTimeElement HTMLTitleElement HTMLTrackElement HTMLUListElement HTMLUnknownElement HTMLVideoElement Attr Audio CDATASection CharacterData Comment Document DocumentFragment DocumentType Element Image Option ProcessingInstruction ShadowRoot Text XMLDocument ``` Thanks for your collaboration. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/w3c/webcomponents/issues/509#issuecomment-259267305
Received on Tuesday, 8 November 2016 21:37:53 UTC