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

Safari Technology Preview 251 уточняет computed value для line-height

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

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 года.

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

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

Ответы

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

Ваш ответ

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

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

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