Safari Technology Preview 251: scrollTo внутри content-visibility hidden. People-first диагностика: состояния «visibility → requested top → stored top → revealed marker»; синтетический fixture, независимый контроль, одно обратимое воздействие, stop-line и обезличенный handoff.
Короткий ответ и область проверки
Прямой ответ на запрос «как проверить element scroll и scrollTo внутри content visibility hidden subtree Safari Technology Preview 251» начинается с границы: проверяется только боль «element.scrollTo не меняет внутреннюю позицию scroller, пока его предок скрыт через content-visibility:hidden» на локальном fixture. Успех заранее определяется так: запрошенный scrollTop сохраняется и проявляется после раскрытия, контроль подтверждает ту же достижимую границу. Нельзя подменять его похожей картинкой, общей скоростью браузера или выводом о стабильном Safari. Отдельная ловушка — размонтирование subtree, ошибочно названное ограничением content-visibility. Исход получает один из статусов reproduced, not reproduced, unsupported, environment-blocked, invalid или unknown. Первое наблюдение не считается доказательством, пока контроль и возврат к baseline не подтвердили, что изменилась ровно одна причина.
Свежий факт и предел доказательства
Официальная страница WebKit от 26 августа 2026 года относит к Safari Technology Preview 251 следующий change item: исправлены element.scroll() и element.scrollTo() внутри subtree с content-visibility:hidden. Техническая ссылка — 319219@main. Release note и commit подтверждают наличие конкретного изменения в ветке, но не частоту жалоб, спрос, причинность для чужой страницы, результат на данном компьютере или перенос в стабильный выпуск. Публичная ветка MacRumors перепроверена только как community lead. Её текст, реакции и поисковые snippets не используются как фактологическое evidence и не дают права писать о массовости.
Паспорт воспроизведения
Fixture: локальный hidden subtree с внутренним scroller фиксированной высоты и маркерами начала/конца. До действия без интерпретации записываются content-visibility state, requested top, scrollTop до/после, scrollHeight и положение маркера после раскрытия. Рабочий артефакт — состояния «visibility → requested top → stored top → revealed marker». У каждой строки есть expected, observed, время, версия TP 251 и флаг валидности. Используются только синтетические данные. Запрещено сохранять cookie, IP, Authorization, токены, реальные URLs с query, имена профилей, пользовательские файлы и полные логи. Если нужное поле нельзя получить без персональных или секретных данных, тест останавливается: пробел не заполняют догадкой и не расширяют сбор.
Пара, способная опровергнуть гипотезу
Контрольная ветка готовится до canary: идентичный scroller, который остаётся visible на протяжении вызова. Она проверяет, не объясняется ли симптом общей средой или тестовой обвязкой. Риск «размонтирование subtree, ошибочно названное ограничением content-visibility» получает собственную колонку, потому что совпадение внешнего вида не означает совпадение причины. Если control отклоняется вместе с основной веткой, результат invalid и публикационная формулировка не утверждает воспроизведение. Такой контроль не обещает универсальной корректности; он лишь делает конкретный вывод опровержимым и не позволяет замаскировать соседний сбой вторым изменением.
Протокол одного воздействия
Основной шаг: вызвать scrollTo только в hidden-состоянии, затем переключить visibility на visible и считать позицию. Сначала фиксируется baseline, затем выполняется только указанное воздействие, после заранее выбранного settle-события повторно снимаются content-visibility state, requested top, scrollTop до/после, scrollHeight и положение маркера после раскрытия. Далее состояние полностью возвращается и baseline измеряется ещё раз. PASS возможен, когда запрошенный scrollTop сохраняется и проявляется после раскрытия, контроль подтверждает ту же достижимую границу. Production, реальные аккаунты, чужие сайты, VPN-конфиги, маршрутизация и пользовательские данные в процедуру не входят. Если rollback не возвращает исходные признаки, весь прогон помечается invalid независимо от привлекательности результата.
Решение и минимальный handoff
Финальное решение хранится как состояния «visibility → requested top → stored top → revealed marker». Reproduced означает только выполнение условия «запрошенный scrollTop сохраняется и проявляется после раскрытия, контроль подтверждает ту же достижимую границу» на этом стенде; not reproduced не опровергает проблему в других средах. Стоп-линия: остановиться, если DOM размонтирован, размеры вычисляются лениво иначе, вызывается window.scrollTo или framework сбрасывает scrollTop. Для передачи разработчику достаточно минимального fixture, версии, обезличенных значений «content-visibility state, requested top, scrollTop до/после, scrollHeight и положение маркера после раскрытия», результата контрольной ветки, отметки rollback и ссылки на 319219@main. Статья не обещает индексацию, позиции, спрос, стабильную поддержку или автоматическое исправление; сомнительный либо неполный прогон не должен становиться новым URL.
Материал подготовлен редакцией VOne с помощью ИИ; дата, WebKit Release 251, primary commit 319219@main, техническая граница, контроль, rollback, privacy-stop и роль community lead постатейно проверены 29 августа 2026 года.
Источники и проверка
- WebKit — Release Notes for Safari Technology Preview 251 проверено 2026-08-29
- WebKit commit 319219@main проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.