Does IOS Safari support Shadow DOM?

geoyws picture geoyws · Apr 7, 2017 · Viewed 6.9k times · Source

My application is able to render the Shadow DOM, but the inspector cannot display the shadow root. Can anyone help me out on this?

Answer

sideshowbarker picture sideshowbarker · Apr 7, 2017

It depends on which Shadow DOM you mean—Shadow DOM v0 or Shadow DOM v1.

See http://caniuse.com/#feat=shadowdomv1 and http://caniuse.com/#feat=shadowdom

No version of Safari supports Shadow DOM v0. But as far as iOS Safari, version 10.2+ support Shadow DOM v1 with the following limitation:

Certain CSS selectors do not work (:host > .local-child) and styling slotted content (::slotted) is buggy.

As far as differences between Shadow DOM v0 and v1, see https://hayato.io/2016/shadowdomv1/


2020-07-31 update: Shadow roots are no longer hidden in current Safari Web Inspector — instead they’re now always shown, regardless. See https://trac.webkit.org/changeset/253706/webkit/


In older versions of Safari where Web Inspector does not show shadow roots by default, there’s a button you need to click to show shadow roots; it looks like this:

WebKit Inspector shadow-dom button
And in the Inspector UI, it’s in the toolbar on the right below the tabs. It turns blue when activated:

enter image description here