- From: James Browning <notifications@github.com>
 - Date: Mon, 12 Feb 2018 21:17:01 -0800
 - To: w3c/webcomponents <webcomponents@noreply.github.com>
 - Cc: Subscribed <subscribed@noreply.github.com>
 - Message-ID: <w3c/webcomponents/issues/716/365153727@github.com>
 
@trusktr Although I really like the idea of hyphen-less names what would happen if you happen to upgrade an existing name?
e.g. What on earth would happen in this situation:
```js
<link rel="stylesheet" src=".." />
<script>
    class MyLink extends HTMLElement {
        constructor() {
            // Would this still be a proper link element?
            // If so this clearly wouldn't work as HTMLLinkElement
            // doesn't support attachShadow 
            this.attachShadow({ mode: 'open' })
        }
    }
    window.customElements.define('link', MyLink)
</script>
```
Now I think this could actually be resolvable by having a special element that *must* be included in head (similar to `<base>`/`<meta>`) that declares all names that will be overridden so that the browser knows ahead of time not to assign *any* builtin behavior to those elements.
For example it might look something like this:
```html
<head>
    <override element="link">
    <override element="input">
    <!-- Or maybe <override elements="link input">
</head>
<body>
    <!-- link no longer works as a link tag but is just a plain html tag -->
    <link rel="stylesheet" />
    <!-- Neither does input -->
    <input type="date">
    <script>
        ...
        customElements.define('input', MyCustomInput)
    </script>
</body> 
```
Of course this doesn't explain what'd happen if `override` itself is overriden (not allowed? namespaces (`<html:override element="link">`)?) or any other tag like `meta`. Perhaps metadata tags would need to be strictly reserved by html (which would prevent future metadata tags being added but maybe the existing metadata tags (particularly `<meta>`) are already sufficiently flexible for all such purposes?).
I think it's simpler to keep this and #658 separate given that I don't think it's worth blocking scoped registries on a topic that I personally think is much more complicated than scoped registries.
-- 
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/716#issuecomment-365153727
Received on Tuesday, 13 February 2018 05:17:23 UTC