CSS ident() создаёт неожиданное имя в Safari Technology Preview 251: проверка generated identifier. Практическая проверка Safari Technology Preview 251: паспорт «вход ident × сериализованное имя × определение × ссылка × literal fallback», обратимый canary и ясный критерий остановки.
Симптом и граница CSS-функция ident()
Вопрос здесь один: как проверить css ident в safari technology preview 251 и сохранить явное имя. Наблюдаемое расхождение — сгенерированный identifier не связывает ожидаемые CSS-конструкции или сериализуется иначе, чем ручное имя. Название новой возможности не равно диагнозу: сначала нужны один повторяемый fixture и пара expected/actual. Граница наблюдения записывается как «event start → transition state → completion → released listener». Любая другая ошибка остаётся за пределами этого URL.
Два первичных источника для 319049@main
Официальная страница WebKit датирована 26 августа 2026 года, описывает Release 251 и в соответствующей строке называет CSS-функция ident(). Эта строка ссылается на 319049@main, первичную запись изменения в репозитории WebKit. Это подтверждает границу функции в Technology Preview, но не подтверждает ни конкретный сбой сайта, ни поведение stable Safari. Поисковый сниппет и community reply в этот слой доказательств не входят.
Поля контроля: паспорт «вход ident × сериализованное имя × определение × ссылка × literal fallback»
Базовый набор для этой задачи: входные компоненты ident(), итоговая сериализация, место определения, место ссылки и ручной identifier-контроль. Поле «входные компоненты ident()»: не восстанавливайте по памяти; его значение не подменяет соседнюю колонку. Поле «итоговая сериализация»: снимите до опыта; его значение не подменяет соседнюю колонку. Поле «место определения»: сопоставьте с контролем; его значение не подменяет соседнюю колонку. Поле «место ссылки»: пометьте observed или unknown; его значение не подменяет соседнюю колонку. Поле «ручной identifier-контроль»: повторите после отката; его значение не подменяет соседнюю колонку. Время, точная сборка и одинаковый fixture нужны для повтора, но имена, IP, cookie, токены, полные URL с query и содержимое рабочих данных не собираются.
Обратимый опыт для CSS-функция ident()
Одиночный canary: в изолированном примере создать одно имя через ident() и одно буквальное имя с тем же ожидаемым значением, затем удалить генерацию. До воздействия запишите исходную строку, после — только заранее выбранные поля, затем верните исходное состояние и повторите то же наблюдение. Сравнивайте не только картинку, но и сериализованное имя в CSSOM, место определения и место ссылки. Буквальный identifier служит oracle для связи. Если generated name отличается, не переименовывайте все зависимости: минимальный пример должен показать одну пару definition-reference. Неоднозначный результат не расширяет эксперимент: он получает статус unknown.
Как принять решение: паспорт «вход ident × сериализованное имя × определение × ссылка × literal fallback»
Практический итог — паспорт «вход ident × сериализованное имя × определение × ссылка × literal fallback». Заполните в нём все предусмотренные поля. Если вход не принят, отметьте unsupported и сохраните прежний fallback. Если функция доступна, но боль «сгенерированный identifier не связывает ожидаемые CSS-конструкции или сериализуется иначе, чем ручное имя» не повторилась, результат равен not reproduced только для этого fixture. Локальное повторение после единственного изменения и успешный возврат дают reproduced. Неудачный возврат — stopped, а не предлог менять ещё одну переменную.
Красная линия и минимальный report 319049@main
Стоп-линия: не переименовывать production identifiers массово и не полагаться на визуальное совпадение без чтения CSSOM. Для поддержки достаточно точной версии Technology Preview 251, коротких expected/actual, минимального fixture, шага возврата, паспорт «вход ident × сериализованное имя × определение × ссылка × literal fallback» и ссылки на 319049@main. Перед передачей удалите локальные пути, дампы профиля, идентификаторы и любой реальный контент. Отчёт не обещает исправление и не переносит вывод на stable Safari.
Материал подготовлен редакцией VOne с помощью ИИ; границы фактов, дата, первичный WebKit commit, стоп-линия и роль community lead постатейно проверены 29 августа 2026 года.
Источники и проверка
- WebKit — Release Notes for Safari Technology Preview 251 проверено 2026-08-29
- WebKit commit 319049@main проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.