Safari Technology Preview 251 исправляет larger и smaller в Canvas font. Безопасная локальная диагностика: таблица «font token → serialized ctx.font → advance width → ink bounds», одна переменная, отрицательный контроль, rollback и минимизированный пакет для поддержки.
Рабочее определение проблемы
Запрос «как проверить масштаб larger и smaller в CanvasRenderingContext2D font Safari Technology Preview 251» сводится к одной проверяемой боли: текст canvas почти не меняется при larger или smaller, потому что масштаб около 1.02 вместо ожидаемой ступени примерно 1.2. До опыта фиксируется ожидаемый признак: larger и smaller образуют заметные согласованные ступени вокруг medium, а не почти одинаковые размеры с коэффициентом 1.02. Нельзя расширять вывод на stable Safari, другой движок, произвольный сайт или массовость симптома. Главная ловушка здесь такова: width из measureText и высота ink реагируют по-разному; оба показателя нужны, а сравнение только картинки недостаточно. Поэтому наблюдение получает статус reproduced только после повторного одинакового результата и успешного возврата; not reproduced относится исключительно к этому стенду, а unsupported, environment-blocked и unknown остаются разными статусами.
Почему тема актуальна именно сейчас
Официальные Release Notes WebKit от 26 августа 2026 года формулируют изменение так: WebKit указывает, что canvas font keywords larger и smaller больше не масштабируются на 1.02 вместо примерно 1.2. Пункт связан с первичной записью 318798@main. Release page доказывает наличие изменения в ветке Safari Technology Preview 251, а commit задаёт техническую границу конкретной правки. Ни один из этих источников сам по себе не подтверждает частоту запроса, результат на конкретном устройстве или будущий перенос в стабильный выпуск. Публичная ветка о релизе использована только как свежий community lead; комментарии, реакции и поисковые snippets не превращаются в доказательство причины.
Baseline, fixture и privacy-граница
Стенд: локальный canvas с фиксированным DPR и тремя одинаковыми искусственными строками: medium, larger и smaller при одном family. До воздействия запишите: родительский размер шрифта, ctx.font после присваивания, measureText metrics, bitmap bounding box и scale canvas. Рабочий артефакт — таблица «font token → serialized ctx.font → advance width → ink bounds». У каждого ряда должны быть версия TP 251, время, expected, observed и отметка о валидности контроля. Не сохраняются IP, cookie, токены, Authorization, полные URL с приватными query, локальные пути, имена профилей и содержимое рабочих документов. Случайные или вымышленные данные стенда помечаются как тестовые. Если обязательное поле нельзя получить без доступа к реальным данным, эксперимент останавливается: пробел не заполняют догадкой и не компенсируют дополнительной мутацией.
Сравнительный прогон без побочных действий
Canary меняет ровно одну причину: по очереди присваивать только keyword в ctx.font, очищать canvas, рисовать строку и возвращать medium. Контроль устроен отдельно: явные px-размеры вокруг расчётной ступени показывают визуальный и метрический диапазон без зависимости от keyword. Сначала снимается baseline, затем выполняется единственное воздействие, после него — заранее выбранное измерение, затем полный rollback и повтор baseline. Новый шаг не добавляют, пока предыдущий не получил результат и контроль. Если rollback не вернул исходное состояние, прогон invalid, даже когда картинка кажется убедительной. Тест выполняется только локально или на специально подготовленном безопасном стенде; production, пользовательские сессии и чужие страницы в процедуру не входят.
Классификация исхода для команды
PASS для узкой гипотезы означает: larger и smaller образуют заметные согласованные ступени вокруг medium, а не почти одинаковые размеры с коэффициентом 1.02. Практический результат оформляется как таблица «font token → serialized ctx.font → advance width → ink bounds». Stop-line: при fallback-шрифте, нефиксированном DPR или масштабировании CSS самого canvas измерение недействительно. Для передачи разработчику достаточно: canvas fixture, три font tokens, метрики и кропы, DPR, шрифт, явные px-controls и 318798@main. Перед отправкой артефакт ещё раз очищают от идентификаторов и проверяют, что отрицательный контроль действительно отличался только указанной переменной. Материал не обещает исправление на другом сайте, стабильную поддержку функции, индексацию, позиции или универсальное поведение; он даёт воспроизводимый путь, по которому команда может отделить наблюдаемый факт от предположения.
Материал подготовлен редакцией VOne с помощью ИИ; дата, первичный WebKit commit 318798@main, техническая граница, контроль, обратимость, privacy-stop и роль community lead постатейно проверены 29 августа 2026 года.
Источники и проверка
- WebKit — Release Notes for Safari Technology Preview 251 проверено 2026-08-29
- WebKit commit 318798@main проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.