- From: Nashorn <notifications@github.com>
- Date: Tue, 18 Dec 2018 03:48:39 -0800
- To: w3c/webcomponents <webcomponents@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/webcomponents/issues/509/448194242@github.com>
I don't think the majority of developers understand the issues they are ranting/asking about. The engineers behind the specs took years to think it up and finalize it, it may not be perfect but here's some insight: **The general pattern of comments state the issue of:** 1. redundancy 2. confusion of why "is" attribute is needed on tag. First the redundancy. I do think this is redundant: customElements.define("plastic-button", PlasticButton, { extends: "button" }); PlasticButton already extends HTMLButton in class syntax, solution is to modify customElements.define() to lookup the parent constructor/ancestor class of PlasticButton, which would resolve to HTMLButton. define() can then make the redundant (3rd arg) call under the hood. SOLUTION to "is" attribute: You have to understand the use-case and context problem to see why "is" is very necessary. Imagine 1 such use-case: HTML hand-off from a graphics/css developer. He hands you HTML5 markup. You open the html, eith manually in an editor or programmatically using query-selection on DOM, and add "is" to one of the buttons that should be/is Plastic. You address a few things: 1. The semantics is preserved 2. Accessibility is preserved 3. Progressively decorated 4. Smallest possible change I have done this tons of times before to decorate existing html but have been using a "namespace" attribute, pointing the namespace to a class: <div namespace="core.ui.PlasticButton"></div> and during app boot lifecycle, tags with "namespaces" would get decorated in place as PlasticButtons. Without the "is"/namespace idea, doing this programmatically or even manually would be like chopping and re-declaring fragments all across the src. -- 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-448194242
Received on Tuesday, 18 December 2018 11:49:00 UTC