Safari Technology Preview 251 уточняет computed value для line-height. Безопасная локальная диагностика: четырёхколоночный журнал «specified → declared → computed → measured», одна переменная, отрицательный контроль, rollback и минимизированный пакет для поддержки.
Рабочее определение проблемы
Запрос «как сравнить specified и computed line-height в Safari Technology Preview 251» сводится к одной проверяемой боли: редактор стилей читает line-height через getComputedStyle и получает форму, которую трудно сопоставить с исходной декларацией. До опыта фиксируется ожидаемый признак: одно и то же заданное значение стабильно сопоставляется с computed output во всех трёх местах объявления без случайной смены формы. Нельзя расширять вывод на stable Safari, другой движок, произвольный сайт или массовость симптома. Главная ловушка здесь такова: высота box и сериализованное line-height отвечают на разные вопросы; совпавшие пиксели не доказывают совпадение CSSOM. Поэтому наблюдение получает статус reproduced только после повторного одинакового результата и успешного возврата; not reproduced относится исключительно к этому стенду, а unsupported, environment-blocked и unknown остаются разными статусами.
Почему тема актуальна именно сейчас
Официальные Release Notes WebKit от 26 августа 2026 года формулируют изменение так: WebKit пишет, что computed value line-height теперь ближе соответствует тому, как значение было задано. Пункт связан с первичной записью 318710@main. Release page доказывает наличие изменения в ветке Safari Technology Preview 251, а commit задаёт техническую границу конкретной правки. Ни один из этих источников сам по себе не подтверждает частоту запроса, результат на конкретном устройстве или будущий перенос в стабильный выпуск. Публичная ветка о релизе использована только как свежий community lead; комментарии, реакции и поисковые snippets не превращаются в доказательство причины.
Baseline, fixture и privacy-граница
Стенд: локальная таблица элементов с line-height normal, unitless number, percentage и absolute length при одном шрифте и одинаковом тексте. До воздействия запишите: текст декларации, CSSStyleDeclaration, getComputedStyle().lineHeight, фактическая высота строки и размер шрифта для каждой строки таблицы. Рабочий артефакт — четырёхколоночный журнал «specified → declared → computed → measured». У каждого ряда должны быть версия TP 251, время, expected, observed и отметка о валидности контроля. Не сохраняются IP, cookie, токены, Authorization, полные URL с приватными query, локальные пути, имена профилей и содержимое рабочих документов. Случайные или вымышленные данные стенда помечаются как тестовые. Если обязательное поле нельзя получить без доступа к реальным данным, эксперимент останавливается: пробел не заполняют догадкой и не компенсируют дополнительной мутацией.
Сравнительный прогон без побочных действий
Canary меняет ровно одну причину: по одному переносить декларации из inline style в stylesheet, перечитывать computed value и возвращать источник без иных изменений. Контроль устроен отдельно: абсолютное значение в px и элемент без явного line-height показывают, где меняется сериализация, а где только наследование. Сначала снимается baseline, затем выполняется единственное воздействие, после него — заранее выбранное измерение, затем полный rollback и повтор baseline. Новый шаг не добавляют, пока предыдущий не получил результат и контроль. Если rollback не вернул исходное состояние, прогон invalid, даже когда картинка кажется убедительной. Тест выполняется только локально или на специально подготовленном безопасном стенде; production, пользовательские сессии и чужие страницы в процедуру не входят.
Классификация исхода для команды
PASS для узкой гипотезы означает: одно и то же заданное значение стабильно сопоставляется с computed output во всех трёх местах объявления без случайной смены формы. Практический результат оформляется как четырёхколоночный журнал «specified → declared → computed → measured». Stop-line: не делать нормативный вывод по одной строке: точная ожидаемая сериализация должна сверяться со спецификацией и первичным commit, а не угадываться. Для передачи разработчику достаточно: таблица деклараций и четырёх измерений, версия TP, сведения о шрифте, отсутствие приватного текста и ссылка 318710@main. Перед отправкой артефакт ещё раз очищают от идентификаторов и проверяют, что отрицательный контроль действительно отличался только указанной переменной. Материал не обещает исправление на другом сайте, стабильную поддержку функции, индексацию, позиции или универсальное поведение; он даёт воспроизводимый путь, по которому команда может отделить наблюдаемый факт от предположения.
Материал подготовлен редакцией VOne с помощью ИИ; дата, первичный WebKit commit 318710@main, техническая граница, контроль, обратимость, privacy-stop и роль community lead постатейно проверены 29 августа 2026 года.
Источники и проверка
- WebKit — Release Notes for Safari Technology Preview 251 проверено 2026-08-29
- WebKit commit 318710@main проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.