Селектор :has()
Обнаруживает визуальные изменения, вызванные родительскими селекторами :has(), условно стилизующими элементы.
Современный CSS даёт мощные инструменты — :has(), нативная вложенность, @layer, subgrid, @scope, container queries, расширенные пользовательские свойства — которые существенно упрощают проектирование сложных интерфейсов. Обратная сторона этой мощи — повышенная подверженность различиям в поддержке между браузерами и каскадным ловушкам. Таблица стилей, опирающаяся на :has() для стилизации формы, отлично работает на свежем Chrome, но может потерять все визуальные ориентиры на более старой версии Firefox. Subgrid, использованный для выравнивания цены, описаний и кнопок покупки в товарной сетке e-commerce, может полностью разъехаться на браузере без поддержки, и цены перестанут соответствовать товарам. Плохо организованные @layer тихо инвертируют приоритет правила, а внедрение плохо заскоупленного пользовательского свойства может загрязнить несколько компонентов без предупреждения сборки. Поскольку большинство команд разрабатывает и тестирует на Chrome, такие регрессии часто обнаруживаются в production самими пользователями. Delta-QA обрабатывает эту категорию, захватывая страницы в целевых браузерах и сравнивая рендеринг с соответствующими baseline эталонных скриншотов. Diff подсвечивает плохо размеренные компоненты, селекторы, переставшие применяться, разъехавшиеся сетки и современные CSS-возможности, не упавшие в предусмотренный fallback. Такое мультибраузерное покрытие через визуальное тестирование особенно ценно для команд, быстро принимающих новые CSS-спецификации и не имеющих возможности вручную аудитировать поведение на каждой комбинации браузер/версия, и страхует от того, чтобы регрессии поддержки оборачивались инцидентами в production через тихую визуальную регрессию.
Обнаруживает визуальные изменения, вызванные родительскими селекторами :has(), условно стилизующими элементы.
Мониторит поведение нативной вложенности CSS и фиксирует регрессии специфичности вложенных правил.
Отслеживает изменения порядка каскадных слоёв, которые могут неожиданно переопределять стили.
Обнаруживает изменения макета при нарушении выравнивания subgrid между родительскими и дочерними контейнерами.
Мониторит изменения scoped-стилей и граничных условий, влияющих на изоляцию стилей компонентов.
Фиксирует изменения логических свойств (inline-start, block-end) для интернационализированных макетов.
Посмотрите, что именно обнаруживает Delta-QA. Сравните две версии бок о бок.
Разработчик использует CSS container queries для адаптации компонента к контейнеру, но забывает указать container-type на родителе. В Chrome фоллбэк работает. В Safari компонент отображается неправильно — слишком широкий или слишком узкий в зависимости от контекста. Посетители на iPhone видят сломанный компонент. Команда разрабатывает и тестирует в Chrome, а не во всех браузерах каждый спринт. Delta-QA делает скриншоты в каждом браузере и сравнивает: неправильно размеренный компонент в Safari виден в diff.
Разработчик использует селектор :has() для стилизации формы — подсветка лейблов при заполнении поля, выделение обязательных полей. В Firefox (до версии 121) :has() не поддерживается: посетители видят форму без визуальных подсказок. Команда разрабатывает в Chrome, баг не проявляется локально. Delta-QA делает скриншоты формы в каждом браузере и сравнивает визуально: отсутствующие стили в Firefox видны при наложении.
Разработчик использует subgrid для выравнивания цен, описаний и кнопок в сетке товаров. В браузере без поддержки subgrid элементы разъезжаются: цены больше не напротив товаров, кнопки «Купить» на разной высоте. QA проверил в Chrome (который поддерживает subgrid), но не в других браузерах. Delta-QA делает скриншоты сетки в каждом браузере и сравнивает: разъехавшиеся элементы видны в diff.
Скачайте Delta-QA и начните обнаруживать CSS-изменения на ваших веб-страницах — без кода.