قائمة التدقيق الشاملة لمطورين واجهات المستخدم تحتوى على عناصر قد تحتاجها او فحصها قبل اطلاق مشروعك / صفحتك.

مرحبَا بكم في الشكل الجديد من الموقع, سيتم اجراء العديد من التغيرات الاخرى قريبا بالاضافة الى اطلاق قائمة اخرى لاحقا. 2019/12/08

الفهرس

كيفية الاستخدام؟

جميع العناصر في القائمة يجب أن تستخدم في غالبية المشاريع، لكن بعض العناصر يمكن تجاهلها، مثلا: لا تحتاج إلى تغذية RSS في موقع خاص لإدارة المدارس.

اخترنا وجود ثلاث مراحل من العناصر وأهمية استخدامها:

نوع المحتوى الذي ستجده في قائمة التدقيق:

نوع المستند: تعريف المتصفح انك تستخدم الاصدار الخامس من لغة HTML, يوضع في اعلى الملف

<!doctype html> <!-- HTML5 -->

تحديد ترميز الأحرف

عنصران البيانات الوصفية القادمه (Charset و Viewport) يجب ان تكونا في بداية عنصر Head

ترميز المحارف: يجب على ترميز UTF-8 مكتوب بشكل صحيح
<!-- تحديد ترميز الاحرف للمستند -->
<meta charset="utf-8">
العرض: العنصر Viewport ايضا يجب ان يكتب بشكل صحيح
<!-- Viewport for responsive web design -->
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
العنوان: العنوان يجب ان يستخدم في كل الصفحات (سيو : محرك البحث Google يحسب عرض الحرف بالبكسل ويقطع بين 472 الى 482 بكسل, يجب ان يكون الحد الاعلى للاحرف حوالي 55 حرف).
<!-- عنوان المستند -->
<title>عنوان الصفحه</title>
العنصر title - موسوعة حسوب
اداة لفحص كيفية ظهور اسم الموقع في محركات البحث
الوصف: يجب ان يكون الوصف فريدا من نوعه ولا يتجاوز 150 حرف.
<!-- الوصف -->
<meta name="description" content="وصف الصفحة لا يتجاوز 150 حرف">
الوصف - موسوعة حسوب
أَيْقُونَة: يجب ان تظعها في عنصر Head, يمكنك استخدام الصيغة .ico ولكن ينصح الان باستخدام الصيغة PNG (الابعاد 32x32px)
<!-- الصيغة الأساسية -->
<link rel="icon" type="image/x-icon" href="https://example.com/favicon.ico">
<!-- الصيغة التي ينصح بها -->
<link rel="icon" type="image/png" href="https://example.com/favicon.png">
البيانات الوصفية لتطبيقات Apple :
<!-- ايقونة Apple Touch (على الأقل 200 بكسل طولا وعرضا) -->
<link rel="apple-touch-icon" href="/custom-icon.png">
            
<!-- لتشغيل الموقع في وضع ملء الشاشة -->
<meta name="apple-mobile-web-app-capable" content="yes">
            
<!-- Status Bar Style (see Supported Meta Tags below for available values) -->
<!-- Has no effect unless you have the previous meta tag -->
<meta name="apple-mobile-web-app-status-bar-style" content="black">
تكوين تطبيقات الويب
البيانات الوصفية المعتمدة
قائمة ويندوز: من ميزات اخر اصدار من نظام ويندوز
<!-- Microsoft Tiles -->
<meta name="msapplication-config" content="browserconfig.xml" />

اقل ما يكتب في ملف browserconfig.xml :

<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
    <msapplication>
     <tile>
        <square70x70logo src="small.png"/>
        <square150x150logo src="medium.png"/>
        <wide310x150logo src="wide.png"/>
        <square310x310logo src="large.png"/>
     </tile>
   </msapplication>
</browserconfig>
تفاصيل أكثر
دمج الصفحات: يساعد في تجنب المحتوى المتكرر
<!-- Helps prevent duplicate content issues -->
<link rel="canonical" href="http://example.com/2017/09/a-new-article-to-read.html
دمج عناوين URL المتكررة
5 اخطاء شائعة مع rel=cononical

العنصر HTML

اللغة: ضع رمز اللغة الاساسية التي تستخدم في الصفحه
<html lang="ar">
اتجاه الصفحه: في حالة اللغة العربية والعبرية والفارسية يستعمل rtl وفي الغات الاخرى يستعمل ltr
<html dir="rtl">
لغة اخرىوضع رابط لنسخ اخرى من موقع بلغات مختلفة
<link rel="alternate" href="https://es.example.com/" hreflang="tr">
التعليقات الشرطيةالتعليقات الشرطية لمتصفج IE اذا تحتاج
التعليقات الشرطية - Microsoft
تغذية RSS: اذا كان مشروعك مدونة او يحتوي على مقالات, يجب توفر وصلة RSS.
ضغط شفرة CSS: يجمع كل شفرة CSS في سطر واحد (تصغير).
ترتيب ملفات CSSيجب على كلف ملفات CSS ان تحمل قبل اي ملف JavaScript. (عدا بعض الحالات التي تحمل ملفات JavaScript بشكل غير متزامن في اعلى صفحك)

مواقع التواصل الاجتماعي

مشاهدة وانشاء البيانات الوصفية لمواقع التواصل الاجتماعي بشكل تلقائي مع Meta Tags

بالنسبة لفيس بوك وتويتر فهما مهمين, المواقع الاجتماعيه الاخرى يمكن ان تاخذ بعين الأعتبار اذا كنت تستهدف جمهور معين.

فيس بوك: الصورة يجب ان تكون على الأقل 600 في 315 بكسل, وينصح 1200 في 630 بكسل.
<meta property="og:type" content="website">
<meta property="og:url" content="https://example.com/page.html">
<meta property="og:title" content="Content Title">
<meta property="og:image" content="https://example.com/image.jpg">
<meta property="og:description" content="Description Here">
<meta property="og:site_name" content="Site Name">
<meta property="og:locale" content="en_US">
<!-- Next tags are optional but recommended -->
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
دليل المشاركة لمسؤولي مواقع الويب
أفضل ممارسات المشاركة لمواقع الويب وتطبيقات الهواتف المحمولة
أداة تصحيح أخطاء المشاركة

شكرا لفيس بوك لتوفير كل الادوات والتوثيقات مترجمة الى الغة العربية

تويتر :
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@site_account">
<meta name="twitter:creator" content="@individual_account">
<meta name="twitter:url" content="https://example.com/page.html">
<meta name="twitter:title" content="Content Title">
<meta name="twitter:description" content="Content description less than 200 characters">
<meta name="twitter:image" content="https://example.com/image.jpg">
التوثيق
اداة فصح التوافق لبطاقات تويتر

HTML

افضل الممارسات

دلالات لفظية: يجب ان تستعمل عناصر التي تحتوي دلالات لفظية بشكل مناسب مثل (header, footer, section, main ...)
مرجع
صفحات الخطأ : يجب على صفحات الاخطاء 404 و5xx ان تكون متوفر, تذكر صفحه خطا 5xx يجب ان تحتوي على شفرة CSS داخلية.
خاصية Noopener: في حالة تم استخداك رابط خارجي مع target="_blank", يجب ان يحتوي على خاصية rel="noopener" في الصفحه السابقة, اذا كنت تحتاج دعم الاصدارات القديمة من متصفح فايرفوكس, استخدم rel="noopener noreferrer".
تنضيف تعليقات: احذف جميع التعليقات والشفرات الغير مستخدمة

اختبار HTML

اختبار W3C: جميع الصفحات يجب ان تفحص على W3C وتحديد الاخطاء المحتملة.
اختبار W3C
فحوصات اخرى: استخدام ادوات لتحليل اي خطأ قد يوجد في شفرة HTML
اداة Dirty Markup
موقع webhint
مدقق الارتباط: فحص عدم وجود رابط لا يعمل, تاكد من عدم وجود خطأ 404.
مدقق الروابط
مانع الاعلانات: يجب على موقعك ان يظهر بشكل صحيح اثناء استعمال مانع اعلانات (يجب توفير رسالة تشجع الزائر على اغلاق مانع الاعلانات).
استخدام مانع الاعلانات في بيئة التطوير

خطوط الويب

ملاحظة : استخدام خطوط ويب قد يسبب مشاكل في النص - خذ في عين الاعتبار ان يكون لديك خط احتياطي (اساسي في كل الاجهزة مثل Arial).

اعتبارات فنية يجب ان تاخذها في عين الاعتبار
صيغ خطوط الويب: الصيغ الاتية WOFF و WOFF2 و TTF مدعومة في جميع المتصفحات الحديثة.
دعم WOFF في المتصفحات
دعم WOFF2 في المتصفحات
دعم TTF/OTF في المتصفحات
استخدام @font-face
حجم ملف الخط: يجب ان لا يتجاوز 2MB
تحميل خطوط الويب: التحكم بسلوك التحميل
Typekit Web Font Loader

CSS

ملاحظة : اذا كان لديك شك في خاصية يمكنك زيارة التوثيق

تصميم ويب متجاوب: يجب على التصميم ان يكون متجاوب.
تصميم الطباعةيجب كتابة تصميم خاص لنسخه الطباعه من موقعك
المعالجة الاولية: مشروعك يستخدم (Sass, Less, Stylus).
ID مميز: اذا استخدم خاصية ID, يجب ان تكون مميزة
اعادة تعيين CSS: ابو خدوداستخدام احد هذة الملفات (reset ,Normalize , reboot) ويجب ان تكون باخر اصدار (اذا كنت تستخدم اطار عمل مثل Bootstrap او Foundation يكون ملف Normalize متضمن بالفعل). شفرة CSS المضمنه: تجنب تضمين شفرة CSS داخل العنصر <style> او كتابة الشفرة بشكل مباشر في ملف HTML.
البادئات: يتم كتابة البادئات وفقا لتوافق المتصفح الخاص بك.
Autoprefixer CSS online

الأداء

دمج: يتم دمج كل ملفات CSS في ملف واحد بشكل متسلسل.
ضغط الملفات: ملف CSS مضغوط.
حظر العرض: يجب على ملفات CSS عدم حظر الرؤية.
حظر العرض - Google
Loading CSS without blocking render
الشفرات الغير مستعملة: احذف كل الاسطر الغير مستعملة.

اختبار شفرة CSS

تصميم ويب متجاوب: كل الصفحات يجب ان تختبر في النقاط الاتية: 320px, 768px, 1024px.
مدقق شفرة CSS: شفرة CSS تم اختبارها وتصحيح اخطاءها.
CSS Validator
متصفحات سطح المكتب: كل الصفحات يتم فحصها على (FireFox, Chrome , Opera , Microsoft Edge).
متصفحات الهاتف: كل الصفحات تم اختبارها على : (Chrome, Safari , Samsung Browser, FireFox).
أنظمة التشغيل: كل الصفحات تم اختبارها على الانظمة الاتية : (Windows, Android, IOS, Mac...).
الاخلاص في التصميم: حسب المشروع وجودة التصميم, قد يطلب منك ان تبرمج نسخه قريبه من تصميم, في هذا الحالة يمكنك استخدام ادوات لتقارن التصميم بالتطبيق البرمجي وضمان التناسق.
Pixel Perfect - اضافة متصفح
قراءة الاتجاه: دعم اللغات التي تقرا من اليمين اليسار.
Building RTL-Aware Web Apps & Websites: Part 1 - Mozilla Hacks
Building RTL-Aware Web Apps & Websites: Part 2 - Mozilla Hacks

الصور

لفهم اكثر في عملية تجاوب الصور, اقرا الكتاب الالكتروني Essential Image Optimization من عدي عثماني

افضل الممارسات

تجاوب: كل الصور يجب ان تظهر في الصفحه في احسن صورة, بعض الادوات التي ستساعدك : صور والعنصر srcset: توفير صور مناسبة لكل مقاسات الشاشات.
How to Build Responsive Images with srcset
شاشات ريتنا: بالنسبة للشاشات التي تحتوي معدل عالي من dpi, فان الصور يتم مدها وتَفقد جودتها.
How to Upgrade Website Images for Retina Displays
الدمج: دمج الصور الصغيرة في ملف واحد.
CSS Sprite Generator
العرض والطول: تحديد العرض والطول للصورة اذا كانت الابعاد معلومة
نص بديل: كل الصور يجب ان تحتوي على نص بديل يفسر الصورة اذا حدث خطأ في تحميلها.
التحميل الكسول: توفير خاصية التحميل الكسول في موقعك, مثال :

Javascript

افضل الممارسات

شفرة جافاسكربت في النسق: عدم استعمال اي شفرة جافاسكربت مع شفرات HTML.
دمج: دمج الملفات بشكل متسلسل.
تصغير الحجم: ضغط ملفات Javascript.
Minify Resources (HTML, CSS, and JavaScript
الأمان:
Guidelines for Developing Secure Applications Utilizing JavaScript
العنصر noscript: العنصر noscript عبارة عن رسالة تظهر للمستخدم اذا تم الغاء تفعيل الجافاسكريبت في متصفحه.
<noscript>
    يجب عليك تفعيل الجافاسكريبت لأستخدام الموقع
</noscript>
تحديث مكتبات Javascript: كل المكتباب المستخدمه يجب ان تكون ضرورية (تفضيل استخدام شفرة Javascript اصلية للمهام البسيطة), كل المكتبات بأخر اصدار ولا تغرق الشفرة بطرق غير مرغوبة او غير ضرورية.
You may not need jQuery
Vanilla JavaScript for building powerful web applications
داله Modernizr (المرتب): تقوم باخبار المتصفخ اذا كان يدعم ميزة معينه أم لا ويتصرف بناءً على ذلك.
if (Modernizr.opacity){
    // يدعم
} else {
    // لا يدعم
}
Customize your Modernizr
اداة ESLint: عدم وجود اخطاء تم اعلامها من قبل ESLint (بناء على القواعد او المعايير الخاصة بك.
ESLint - The pluggable linting utility for JavaScript and JSX

الحماية

الفحص والتحقق من موقعك

SecurityHeaders
Observatory by Mozilla
بروتوكول نقل النص التشعبي الآمن (HTTPS)يجب على بروتوكول HTTPS ان يستخدم في كل صفحه وفي كل المحتوى الاضافي : (صور, مرئيات)
Let's Encrypt - Free SSL/TLS Certificates
Free SSL Server Test
Strict Transport Security

"لم أتم ترجمه قسم الحماية لعدم خبرتي في المصطلحات المجال ولا فهم للتقنيات"

الاداء

افضل الممارسات

اهداف لتحقيقها Website Page Analysis
WebPageTest
Size Limit: Make the Web lighter
ضفط شفرة HTML
حجم ملف تعريف الارتباط: يجب على الملف ان لا يتجاوز 4096 بايت ويجب على النطاق الخاص بك ان لا يتاوز العشرين ملف ارتباط.
Cookie specification: RFC 6265
Cookies
Browser Cookie Limits
مكونات الطرف الثالثمكونات الطرف الثالث مثل iframe او مكونات تعتمد على شفرة JS خارجيه يجب ان تستبدل بمكونات ثابته داخليه عند الامكان
Simple sharing buttons generator

اعداد الطلبات القادمه

اعطاء المتصفح تلميح على المحتويات التي سيحتاجها المستخدم للتحميل في الصفحات القادمه.

التحميل المسبق لـDNS: اخبار المتصفح بان هناك رابط معلين يجب ان تبحث عن عنوان IP الخاص به, فلن نحتاج الى الانتظار للبحث عن IP عند الحاجه للصفحة.
<link rel="dns-prefetch" href="https://example.com">
الاتصال المسبق: يستخدم نفس الطريقة السابقة ولكن مع TCP و TLS
<link rel="preconnect" href="http://css-tricks.com">
الجلب المسبق: اذا كان هناك اي محتوى يحتاجه المستخدم مستقبلا, مثلا اذا أشرت الى قميص في محل الملابس فصاخب المحال سيقوم بانزال القياسات الاخرى لنفس القميص, يمكن ان يكون المحتوى صورة او سكربت.
<link rel="prefetch" href="image.png">
العرض المسبقانه القنبله النووية, يعطينا القابلية على تحميل كل الملفات والمحتوى لرابط معين.
<link rel="prerender" href="http://css-tricks.com">
مقالة من CSS Tricks لفهم اكبر

فحص الاداء

إمكانية الوصول

يمكنك مشاهدة الدورة التالية A11ycasts مع Rob Dodson

افضل الممارسات

بدون JavaScript: غالبية العمليات يجب ان تعمل بدون شفرة Javascript مثل البحث والتنقل.
Enable / Disable JavaScript in Chrome Developer Tools
تباين الألوانتناسق الالوان مهم ويمكنك قياسه في الاداة ادناه, او استعمل عيناك.
Contrast ratio

العناوين

العنصر H1: كل الصفحات يجب ان تحتوي على H1 ولا يجب ان يكون مشابها للـtitle.
العناوين: يجب ان تستخدم بشكل بصورة صحيحه وبترتيب صحيح (h1-h6).
Why headings and landmarks are so important -- A11ycasts #18

دلالات

تخصيص نوع الادخالتخصيص نوع البيانات المدخله مهم جدا وخاصة للهواتف.
انواع المُدخلات واهميتها
<input type="date">

استمارة

العنصر Label: عنصر Label يجب ان يكون مرفق مع كل عنصر ادخال

اختبارات إمكانية الوصول

إختبار معايير امكانية الوصول: استخدم الأداة WAVE.
Wave
لوحة المفاتيح: فحص موقعك اثناء وجود لوحة المفاتيح, كل العناصر قابلة للوصول والاستعمال.
التركيز: استعمال خاصية التركيز (Focus) لدعم اجهزة Screen Reader.
Managing Focus - A11ycasts #22

تحسين محركات البحث (SEO)

تحليلات Google: تحليلات Google تم تفعليه في الموقع.
Google Analytics
GA Cheaker
منطق العناوينالعناوين يجب ان تساعد لفهم محتوى الصفحه
Tota11y, tab Headings
ملف sitemap.xml: ملف sitemap.xml موجود.
Sitemap generator
ملف robots.xml: ملف robots.xml لا يحظر الصفحه.
The robots.txt file
فحص ملف robots.xml
البيانات المنظَّمةالصفحات التي تستخدم البيانات المنظمة تم فحصها وبدون اخطاء
التعرّف على آلية عمل البيانات المنظَّمة - Google
RDFa - Linked Data in HTML
JSON-LD
Microdata
Structured Data Testing Tool
Schema.org Full Hierarchy
خريطة الموقع: صفحه تعتبر فهرست للموقع يكون متوفر رابطها في اسفل الموقع.
إنشاء ملف Sitemap وإرساله - Google
توفير روابط لترقيم الصفحات: توفير rel="prev" و rel="next".
<!-- مثال : توفير صفحات الترقيم للصفحه الثانية -->
<link rel="prev" href="https://example.com/?page=1">
<link rel="next" href="https://example.com/?page=3">

الترجمات