Safari Technology Preview 251: SVGLength.value не отдаёт отрицательную геометрию. People-first диагностика: реестр «element/property → specified → baseVal → computed → geometry»; синтетический fixture, независимый контроль, одно обратимое воздействие, stop-line и обезличенный handoff.
Наблюдаемый симптом без догадок
Прямой ответ на запрос «как проверить отрицательный SVGLength value для r rx ry width height textLength Safari Technology Preview 251» начинается с границы: проверяется только боль «SVGLength.value возвращает отрицательное число для геометрического свойства, расходясь с getComputedStyle» на локальном fixture. Успех заранее определяется так: DOM value и computed behavior классифицируются согласованно для каждого свойства без объединения разных SVG типов. Нельзя подменять его похожей картинкой, общей скоростью браузера или выводом о стабильном Safari. Отдельная ловушка — различие указанного и вычисленного значения, ошибочно принятое за один и тот же API слой. Исход получает один из статусов reproduced, not reproduced, unsupported, environment-blocked, invalid или unknown. Первое наблюдение не считается доказательством, пока контроль и возврат к baseline не подтвердили, что изменилась ровно одна причина.
Primary change item без обещаний
Официальная страница WebKit от 26 августа 2026 года относит к Safari Technology Preview 251 следующий change item: исправлены отрицательные значения SVGLength.value для r, rx, ry, width, height и textLength, не согласованные с getComputedStyle(). Техническая ссылка — 317963@main. Release note и commit подтверждают наличие конкретного изменения в ветке, но не частоту жалоб, спрос, причинность для чужой страницы, результат на данном компьютере или перенос в стабильный выпуск. Публичная ветка MacRumors перепроверена только как community lead. Её текст, реакции и поисковые snippets не используются как фактологическое evidence и не дают права писать о массовости.
Чистый fixture и поля
Fixture: локальный SVG с отдельным элементом для каждого свойства и заведомо отрицательной specified value. До действия без интерпретации записываются property, attribute text, baseVal.value, animVal.value, computed style и bounding box. Рабочий артефакт — реестр «element/property → specified → baseVal → computed → geometry». У каждой строки есть expected, observed, время, версия TP 251 и флаг валидности. Используются только синтетические данные. Запрещено сохранять cookie, IP, Authorization, токены, реальные URLs с query, имена профилей, пользовательские файлы и полные логи. Если нужное поле нельзя получить без персональных или секретных данных, тест останавливается: пробел не заполняют догадкой и не расширяют сбор.
Контроль до canary
Контрольная ветка готовится до canary: положительный sibling того же типа элемента с идентичными остальными атрибутами. Она проверяет, не объясняется ли симптом общей средой или тестовой обвязкой. Риск «различие указанного и вычисленного значения, ошибочно принятое за один и тот же API слой» получает собственную колонку, потому что совпадение внешнего вида не означает совпадение причины. Если control отклоняется вместе с основной веткой, результат invalid и публикационная формулировка не утверждает воспроизведение. Такой контроль не обещает универсальной корректности; он лишь делает конкретный вывод опровержимым и не позволяет замаскировать соседний сбой вторым изменением.
Одна переменная по шагам
Основной шаг: задать отрицательное значение одному свойству за раз и затем вернуть допустимое положительное. Сначала фиксируется baseline, затем выполняется только указанное воздействие, после заранее выбранного settle-события повторно снимаются property, attribute text, baseVal.value, animVal.value, computed style и bounding box. Далее состояние полностью возвращается и baseline измеряется ещё раз. PASS возможен, когда DOM value и computed behavior классифицируются согласованно для каждого свойства без объединения разных SVG типов. Production, реальные аккаунты, чужие сайты, VPN-конфиги, маршрутизация и пользовательские данные в процедуру не входят. Если rollback не возвращает исходные признаки, весь прогон помечается invalid независимо от привлекательности результата.
Как классифицировать исход
Финальное решение хранится как реестр «element/property → specified → baseVal → computed → geometry». Reproduced означает только выполнение условия «DOM value и computed behavior классифицируются согласованно для каждого свойства без объединения разных SVG типов» на этом стенде; not reproduced не опровергает проблему в других средах. Стоп-линия: остановиться, если анимация активна, unit conversion различается или несколько геометрических свойств меняются одновременно. Для передачи разработчику достаточно минимального fixture, версии, обезличенных значений «property, attribute text, baseVal.value, animVal.value, computed style и bounding box», результата контрольной ветки, отметки rollback и ссылки на 317963@main. Статья не обещает индексацию, позиции, спрос, стабильную поддержку или автоматическое исправление; сомнительный либо неполный прогон не должен становиться новым URL.
Материал подготовлен редакцией VOne с помощью ИИ; дата, WebKit Release 251, primary commit 317963@main, техническая граница, контроль, rollback, privacy-stop и роль community lead постатейно проверены 29 августа 2026 года.
Источники и проверка
- WebKit — Release Notes for Safari Technology Preview 251 проверено 2026-08-29
- WebKit commit 317963@main проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.