محدد :has()
يكتشف التغييرات البصرية الناتجة عن محددات الأب :has() التي تنسق العناصر شرطياً بناءً على أبنائها.
يُقدّم CSS الحديث أدوات قويّة جداً — :has()، التداخل الأصلي nesting، @layer، subgrid، @scope، container queries، خصائص مخصّصة موسّعة — تُبسّط بشكل ملحوظ تصميم الواجهات المعقّدة. الوجه الآخر لهذه القوّة هو تعرّض متزايد لاختلافات الدعم بين المتصفّحات المختلفة وفخاخ التتالي غير المتوقّعة. ورقة أنماط تعتمد على :has() لتنسيق نموذج تعمل بشكل ممتاز على Chrome حديث، لكنّها قد تفقد كلّ معالمها البصرية على نسخة أقدم قليلاً من Firefox أو Safari. subgrid مُستخدَم لمحاذاة الأسعار والأوصاف وأزرار الشراء في شبكة منتجات قد يختلّ تماماً على متصفّح لا يدعمه، فتظهر الأسعار غير متطابقة مع المنتجات الصحيحة على الصفحة. @layer سيّئ التنظيم قد يعكس بصمت أولوية قاعدة بأكملها، وإدخال خاصية مخصّصة ذات نطاق غير ملائم قد يُلوّث عدّة مكوّنات دون أيّ تحذير من البناء. لأنّ معظم الفِرَق التقنية تطوّر وتختبر بشكل أساسي على Chrome، تُكتشَف هذه الانحدارات غالباً في بيئة الإنتاج فقط، من قِبَل المستخدمين النهائيين أنفسهم. على لوحات معلومات بنكية ولوحات إدارة ERP وصفحات منتجات التجارة الإلكترونية المُتصفَّحة على متصفّحات متنوّعة، تصبح هذه المخاطر تشغيلية وتجارية. يُعالج Delta-QA هذه الفئة عبر التقاط الصفحات في المتصفّحات المستهدفة المختلفة ومقارنة المعروض بـbaselines البصرية المقابلة لكلّ متصفّح. يُبرز diff المكوّنات سيّئة الأبعاد، المحدّدات التي لم تعد تنطبق، الشبكات المختلّة، وميزات CSS الحديثة التي لم تتراجع إلى fallback المتوقّع منها. هذه التغطية متعدّدة المتصفّحات قيّمة جداً للفرق التي تتبنّى المواصفات الجديدة بسرعة دون قدرة دائمة على تدقيق كلّ مزيج متصفّح/نسخة يدوياً، وتمنع تحوّل انحدارات الدعم إلى حوادث جسيمة في الإنتاج. هذا هو دور الاختبار البصري ومقارنة الصفحات اعتماداً على لقطة مرجعية snapshot في كشف الانحدار البصري داخل نظام التصميم design system.
يكتشف التغييرات البصرية الناتجة عن محددات الأب :has() التي تنسق العناصر شرطياً بناءً على أبنائها.
يراقب سلوك تداخل CSS الأصلي ويلتقط انحدارات خصوصية القواعد المتداخلة.
يتتبع تغييرات ترتيب طبقات التتالي التي يمكن أن تتجاوز الأنماط بشكل غير متوقع.
يكتشف تغييرات التخطيط عندما ينكسر محاذاة subgrid بين حاويات الشبكة.
يراقب تغييرات الأنماط المحددة النطاق والشروط الحدية التي تؤثر على عزل أنماط المكونات.
يلتقط تغييرات الخصائص المنطقية (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 في صفحات الويب — بدون كود.