W dniach 5 i 6 marca 2018 roku postanowiono zabić deklaratywny Shadow DOM. Stało się to w czasie meetingu Web Platform WG w Tokio.

Osobiście bardzo cieszyłem się z powodu deklaratywnego Shadow DOM (dSD). Niestety, radości tej nie podzielają twórcy przeglądarek, którzy uważają, że implementacja dSD jest zbyt trudna i może spowodować problemy z bezpieczeństwem przeglądarek. Jest to dziwne o tyle, że w dyskusji jako przykład wskazuje się template, którego kod byłby przecież wymarzonym kandydatem do wykorzystania jako podwaliny dSD.

Równocześnie stwierdzono, że ta funkcjonalność jest dość prosta do zaimplementowania przez developerów, nawet pokazano przykładową implementację. Niemniej fakt, że nie mówimy tutaj o natywnej funkcji, pociąga za sobą wszystkie minusy typowe dla nienatywnych rozwiązań (zależność od JS, możliwy FOUC, niższa wydajność…).

Trochę przypomina mi to sytuację z setImmediate, w której wszyscy poza Microsoftem stwierdzili, że nie zaimplementują tego, bo… polyfilla bardzo łatwo napisać. Ale może jestem po prostu przewrażliwony.

Tak czy inaczej: koniec marzeń o deklaratywnym cieniu. A szkoda, wielka szkoda.