1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42

content / test / data / accessibility / html / custom-element-hidden.html [blame]

<!--
@BLINK-ALLOW:htmlTag=*
@WAIT-FOR:Done
-->
<!DOCTYPE html>
<html>
<body>
  <template id="template">
    <div><slot name="my-slot"></slot></div>
  </template>

  <div hidden>
    <my-element>
      <span slot="my-slot">Slot contents</span>
    </my-element>
  </div>

  <button id="status"></button>

  <script>
    // After a delay, make "my-element" into a custom element using
    // the template defined above. That will cause the template to be
    // rendered inside <my-element>, and the slot contents to be reparented
    // to the <slot> element.
    window.setTimeout(() => {
        customElements.define(
            'my-element',
            class extends HTMLElement {
                constructor() {
                    super();
                    let template = document.getElementById('template');
                    let templateContent = template.content;

                    const shadowRoot = this.attachShadow({mode: 'open'})
                          .appendChild(templateContent.cloneNode(true));
                }
            }
        );
        document.getElementById('status').setAttribute('aria-label', 'Done');
    }, 500);
  </script>
</body>