Допустим, мы создаем приложение под названием foo. Наше приложение будет использовать веб-компонент app-foo
, который создает теневой корень, содержащий следующую разметку:
<app-foo>
#shadow-root
<main>
...
</main>
</app-foo>
Конечно, пользователя не волнует, что находится внутри теневого корня веб-компонентов, которые они используют, поэтому он просто пишет свой документ так, как считает нужным, и использует app-foo
везде, где ему это нужно. Это означает, что документ может содержать элемент main
, как и app-foo
.
Возможно, вам известно, что спецификации html (см. html. spec.whatwg.org) сообщает нам, что
В документе не должно быть более одного элемента
main
, для которого не указан атрибутhidden
.
Что на самом деле означает документ? В некотором смысле теневые корни считаются их собственным инкапсулированным документом, где такие правила применяются к каждому отдельному документу или теневому корню (поскольку они совместно используют _ 8_ API) или эти правила применяются к плоскому документу?
TL; DR; будет ли недопустимым в соответствии со спецификациями HTML использовать элемент main
внутри теневого корня веб-компонента, учитывая, что страница, на которой он используется, также содержит main
?