R040: تمرير أفقي على مستوى المستند

حين يكون عنصر واحد أعرض من نافذة العرض تتمرر الصفحة كلها جانبيًا، وعلى الهاتف يضطر القارئ العربي إلى السحب للوصول إلى محتوى مقطوع عند الحافة.

الفحص

المعرّف
R040
الفئة
التخطيط
الخطورة الافتراضية
عالية

متى يُطلق ملاحظة

  1. حرجة

    عند مقاس عرض الجوال، نافذة بعرض 390px، يزيد عرض محتوى الصفحة على عرض النافذة بأكثر من 4px، فتتمرر الصفحة كلها جانبيًا. على الهاتف هذا حرج: يسحب القارئ ليصل إلى ما قُطع عند الحافة.

    الإصلاح: قيّد العناصر المسببة (يسرد الدليل أعرضها) بـmax-width: 100% أو بتخطيطات مرنة.

  2. عالية

    الحالة نفسها عند مقاس الجهاز اللوحي أو سطح المكتب، بعرض 834px أو 1440px.

    الإصلاح: قيّد العناصر المسببة (يسرد الدليل أعرضها) بـmax-width: 100% أو بتخطيطات مرنة.

ما الذي يتجاهله عمدًا

الفائض بمقدار 4px أو أقل، فهو تقريب وضجيج شريط التمرير، والتمرير الجانبي داخل عنصر، كجدول عريض في حاوية تمرير خاصة به، فهو لا يوسّع الصفحة. لا يقتصر على الصفحات العربية: الصفحة الفائضة معطوبة بأي لغة.

قبل الإصلاح وبعده

before.css
.hero-banner {
  width: 600px;
}
after.css
.hero-banner {
  width: 600px;
  max-width: 100%;
}

افحصه يدويًا

اجعل نافذة العرض بعرض الهاتف، ثم شغّل [document.documentElement.scrollWidth, document.documentElement.clientWidth, [...document.querySelectorAll('body *')].filter((e) => { const r = e.getBoundingClientRect(); return r.right > innerWidth || r.left < 0; }).slice(0, 5)] في وحدة تحكم DevTools. الرقم الأول الأكبر من الثاني هو الملاحظة، والقائمة تُظهر العناصر البارزة من أي جانب؛ وفي الصفحة من اليمين إلى اليسار كثيرًا ما يخرج الفائض من اليسار.

ما يعرضه لك التقرير

تحمل كل ملاحظة من R040 ما ينطبق عليها من الحقول أدناه، فترى سبب ظهورها دون إعادة الفحص.

scrollWidth
عرض محتوى الصفحة، بالبكسل.
clientWidth
عرض نافذة العرض، بالبكسل.
breakpoint
mobile (الجوال) أو tablet (الجهاز اللوحي) أو desktop (سطح المكتب).
widestElements
العناصر التي تمتد أبعد من نافذة العرض، مع حجمها: نقطة البداية.

هل تخفق صفحتك في الفحص R040؟

الصق رابطًا، فتعرض ريتلا الصفحة على سطح المكتب والجهاز اللوحي والجوال، وتشغّل كل الفحوص، وتريك أهم المشكلات مع لقطة شاشة دليلًا على كل منها.