ShadowRoot extends DocumentFragment and doesn't add too much more- perhaps just use DocumentFragment instead?

Alternatively this may be a good case for a custom element.