Comment interroger les éléments à l'intérieur de l'ombre DOM à partir de l'extérieur de Dart?

Comment puis-je sélectionner les nœuds à l'intérieur de l'ombre DOM? Considérons l'exemple suivant:

structure de "unshadowed" DOM

<app-element>
  #shadow-root
    <h2></h2>
    <content>
      #outside shadow
      <h2></h2>
    </content>
    <ui-button>
      #shadow-root
        <h2></h2>
  </ui-button>
</app-element>

index.html

<body>
<app-element>
  <!-- OK: querySelect('app-element').querySelect('h2') -->
  <!-- OK: querySelect('app-element h2') -->
  <!-- There is no problem to select it -->
  <h2>app-element > content > h2</h2>
</app-element>
</body>

templates.html

<polymer-element name="ui-button" noscript>
  <template>
    <!-- FAIL: querySelect('app-element::shadow ui-button::shadow h2') -->
    <h2>app-element > ui-button > h2</h2>
  </template>
</polymer-element>

<polymer-element name="app-element" noscript>
  <template>
    <!-- FAIL: querySelect('app-element::shadow').querySelect('h2') -->
    <!-- FAIL: querySelect('app-element::shadow h2') -->
    <!-- FAIL: querySelect('app-element').shadowRoot.querySelect('h2') -->
    <h2>app-element > h2</h2>
    <content></content>
    <ui-button></ui-button>
  </template>
</polymer-element>

Dans les commentaires comme "OK: querySelect()" je montre les sélecteurs j'ai essayé de l'exécuter à partir de l'extérieur toute l'ombre DOM.

J'ai déjà lu l'article suivant: http://www.html5rocks.com/en/tutorials/webcomponents/shadowdom-201/?redirect_from_locale=ru et repose sur le fait qu'il a été dit dans l'article, la requête comme: document.querySelector('app-element::shadow h2'); en JS devrait fonctionner comme prévu. Cependant dans Dart il ne fonctionne pas.

Que dois-je tort?