The specification http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html reads: "The shadow DOM allows multiple DOM trees (in addition to the document tree) to be composed into one larger tree when rendered. The existence of multiple DOM trees is enabled by letting any element in the document tree to host one or more additional DOM trees." However elements APPLET,FIELDSET,FRAME,IFRAME,IMG,INPUT,OBJECT,SELECT,TEXTAREA are not able to host shadow tree. Found in Chrome version 23.0.1271.64 m Example code: <html> <head> <script type="text/javascript"> function A_04_00_01_test(elementName) { var d = document; var SR = window.ShadowRoot || window.WebKitShadowRoot; // create element var n = d.createElement(elementName); d.body.appendChild(n); try { var shadowTree1 = new SR(n); d.write("<P>"+elementName+": OK"); } catch(e) { d.write("<P>"+elementName+": " + e.name + e.message); } } function test() { // uncomment the line you need A_04_00_01_test('APPLET'); A_04_00_01_test('FIELDSET'); A_04_00_01_test('FRAME'); A_04_00_01_test('IFRAME'); A_04_00_01_test('IMG'); A_04_00_01_test('INPUT'); A_04_00_01_test('OBJECT'); A_04_00_01_test('SELECT'); A_04_00_01_test('TEXTAREA'); } </script> </head> <body onload="test()"> </body> </html>
The list from the description is not complete. 'embed', 'video', 'audio', 'canvas', 'progress' and 'meter' cannot be made a Shadow root as well
https://dom.spec.whatwg.org/#dom-element-attachshadow says which elements are allowed to be shadow root in shadow DOM v1. I think this bug can thus be closed.
We decided explicitly to not support this in V1 API.