К обсуждениям

Safari Technology Preview 251: ::part выбирает неверный originating element в @container

Редакция VOne Технологии

Safari Technology Preview 251: ::part выбирает неверный originating element в @container. Обратимый локальный тест, схема «host × shadow part × originating element × container condition × matched style» и критерий остановки без пользовательских данных и без переноса вывода на стабильный Safari.

Одна проверяемая боль: стиль ::part внутри @container проверяется относительно неверного элемента и срабатывает не в том хосте

Пользовательская задача этой страницы — как проверить originating element для part в container query safari technology preview 251. Наблюдаемый симптом: стиль ::part внутри @container проверяется относительно неверного элемента и срабатывает не в том хосте. Он не доказывает общую неисправность Safari и не переносится на stable-ветку без отдельной проверки. ::part пересекает shadow boundary, а container query выбирает контекст по originating element. Эти две связи нужно зарисовать отдельно. Два одинаковых компонента с разными hosts дают естественный отрицательный контроль без доступа к данным приложения. Граница диагноза фиксируется до опыта: входные условия, одно действие, ожидаемый и фактический результат. Соседние визуальные или сетевые проблемы не объединяются с этим URL.

Что именно подтверждают WebKit Release 251 и 318620@main

На прямой странице WebKit Release Notes for Safari Technology Preview 251 от 26 августа 2026 года указано: исправлено определение originating element для ::part() в @container queries. Строка ведёт на первичную запись 318620@main в репозитории WebKit. Эти два источника подтверждают наличие и техническую границу изменения в Technology Preview 251, но не подтверждают частоту проблемы, конкретную конфигурацию сайта, поисковый спрос или поведение всех будущих версий. Публичная ветка о релизе используется только как lead свежести, а не как доказательство причины.

Baseline для схема «host × shadow part × originating element × container condition × matched style»

До canary запишите: host element, shadow container, имя part, тип container, условие query, matched rule и итоговый стиль exported part. Каждое поле снимается из минимального fixture, а не восстанавливается по памяти. Добавьте точную версию Safari Technology Preview 251, масштаб страницы, локаль и время опыта; не прикладывайте имя профиля, IP, cookie, токены, query-параметры, локальные пути и рабочий контент. Рабочая форма результата — схема «host × shadow part × originating element × container condition × matched style». Пустая колонка обозначается unknown: её нельзя заполнять предположением или текстом из поискового сниппета.

Обратимый canary с одной изменяемой переменной

На изолированной странице создайте два custom elements с одинаковым part, но разными контейнерными условиями у hosts; ожидайте стиль только в одном, затем поменяйте местами размеры hosts. До действия сохраните baseline, после действия снимите только заранее выбранные поля, затем полностью выполните rollback и повторите наблюдение. Минимальный пример должен работать без аккаунта, расширений, внешних данных и production endpoint. Положительный и отрицательный контроль запускаются отдельно, чтобы не смешивать состояния. Если возврат не восстановил baseline, опыт останавливается: добавлять вторую CSS-декларацию, новый API-вызов или очистку общего кэша нельзя.

Интерпретация без подмены expected и observed

Если exported part следует условию собственного корректного container context при перестановке hosts, связь подтверждена. Одинаковый стиль в обоих хостах требует проверки rule matching. Ошибка внутри shadow CSS без ::part — другой кейс. В итоговой записи разделите supported, reproduced, not reproduced, unsupported и unknown. Статус not reproduced относится только к этой сборке и этому fixture; он не обещает отсутствие регрессии на реальном сайте. Статус reproduced требует одинакового результата минимум в повторе после успешного rollback. Несовпадение контролей означает invalid test, а не повод расширять вывод.

Красная линия и минимальный пакет для 318620@main

Красная линия: не раскрывайте внутреннюю структуру реального web component и не меняйте его публичный part API ради теста. Для воспроизводимого обращения достаточно версии сборки, коротких expected/actual, минимального HTML/CSS/JS fixture, результата rollback, схема «host × shadow part × originating element × container condition × matched style» и ссылки на 318620@main. Удалите из вложений локальные пути, идентификаторы, сетевые дампы и реальный контент. Отчёт не обещает срок исправления, индексацию страницы или одинаковое поведение стабильного Safari. Он позволяет другому человеку повторить ровно одну безопасную проверку.

Материал подготовлен редакцией VOne с помощью ИИ; дата, граница факта, первичный WebKit commit, обратимый тест, стоп-линия и роль community lead постатейно проверены 29 августа 2026 года.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.