- From: Elliott Sprehn <esprehn@chromium.org>
- Date: Fri, 30 Jan 2015 05:50:09 +1100
- To: Brian Kardell <bkardell@gmail.com>
- Cc: Bruce Lawson <brucel@opera.com>, Steve Faulkner <faulkner.steve@gmail.com>, Anne van Kesteren <annevk@annevk.nl>, "Edward O'Connor" <eoconnor@apple.com>, WebApps WG <public-webapps@w3.org>
- Message-ID: <CAO9Q3iJ6663KR94KNZn8CyaNHjfZByq_hW8ffx-ndOvPg_Xaog@mail.gmail.com>
On Fri, Jan 30, 2015 at 3:52 AM, Brian Kardell <bkardell@gmail.com> wrote: > > > On Thu, Jan 29, 2015 at 10:33 AM, Bruce Lawson <brucel@opera.com> wrote: > >> On 29 January 2015 at 14:54, Steve Faulkner <faulkner.steve@gmail.com> >> wrote: >> > I think being able to extend existing elements has potential value to >> > developers far beyond accessibility (it just so happens that >> accessibility >> > is helped a lot by re-use of existing HTML features.) >> >> I agree with everything Steve has said about accessibility. Extending >> existing elements also gives us progressive enhancement potential. >> >> Try https://rawgit.com/alice/web-components-demos/master/index.html in >> Safari or IE. The second column isn't functional because it's using >> brand new custom elements. The first column loses the web componenty >> sparkles but remains functional because it extends existing HTML >> elements. >> >> There's a similar story with Opera Mini, which is used by at least >> 250m people (and another potential 100m transitioning on Microsoft >> feature phones) because of its proxy architecture. >> >> Like Steve, I've no particularly affection (or enmity) towards the >> <input type="radio" is="luscious-radio"> syntax. But I'd like to know, >> if it's dropped, how progressive enhancement can be achieved so we >> don't lock out users of browsers that don't have web components >> capabilities, JavaScript disabled or proxy browsers. If there is a >> concrete plan, please point me to it. If there isn't, it's >> irresponsible to drop a method that we can see working in the example >> above with nothing else to replace it. >> >> I also have a niggling worry that this may affect the uptake of web >> components. When I led a dev team for a large UK legal site, there's >> absolutely no way we could have used a technology that was >> non-functional in older/proxy browsers. >> >> bruce >> >> > Humor me for a moment while I recap some historical arguments/play devil's > advocate here. > > One conceptual problem I've always had with the is="" form is that it adds > some amount of ambiguity for authors and makes it plausible to author > non-sense. It's similar to the problem of aria being "bolt on" with mix > and match attributes. With the imperative form of extending you wind up > with a tag name that definitely is defined as subclassing something > "<super-button> 'inherits' from HTMLButtonElement and I'll explain how it's > different". With the declarative attribute form you basically have to > manage 3 things: ANY tag, the base class and the final definition. This > means it's possible to do things like <iframe is="button"> which likely > won't work. Further, you can then proceed to define something which is > clearly none-of-the-above. > The is@ only works on the element you defined it to apply to, so <iframe is="button"> does nothing unless the element "button" was registered as a type extension to "iframe". I don't see that as any more error prone than writing <paper-buton> instead of <paper-button>. Also fwiw most "share" buttons on the web are actually iframes, so <iframe is="facebook-button"> makes total sense. - E
Received on Thursday, 29 January 2015 18:51:18 UTC