چک‌لیست نهایی: قبل از اینکه صفحه رو منتشر کنی

به آخرین درس آموزشی این دوره رسیدیم. تو این درس، می‌خوایم همه‌چیزی که تو ۱۱ فصل قبل یاد گرفتیم رو تو قالب یه چک‌لیست عملی و نهایی جمع کنیم؛ یه فرایند گام‌به‌گام که قبل از انتشار هر صفحه‌ی HTML، باید ازش عبور کنه تا مطمئن بشیم صفحه‌مون کامل، حرفه‌ای و آماده‌ی انتشاره.

مرحله‌ی اول: بررسی ساختار پایه‌ی سند

<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
  <meta charset="UTF-8">
</head>
<body>
</body>
</html>

همون‌طور که تو فصل ۱ و ۲ کامل دیدیم، اولین چیزی که باید چک کنی اینه که ساختار پایه‌ی سند کامل و درسته: DOCTYPE در ابتدای فایل، ویژگی‌های lang و dir روی تگ html، و meta charset به‌عنوان اولین خط داخل head.

مرحله‌ی دوم: بررسی فراداده‌ی head

  • آیا title منحصربه‌فرد و مرتبط با محتوای همین صفحه نوشته شده؟ (درس ۲-۴)
  • آیا meta description کوتاه، دقیق و جذاب است؟ (درس ۲-۳ و ۱۱-۱)
  • آیا meta viewport برای سازگاری موبایل وجود دارد؟ (درس ۲-۳)
  • آیا در صورت نیاز، canonical و تگ‌های Open Graph اضافه شده‌اند؟ (درس ۱۱-۱ و ۱۱-۲)

مرحله‌ی سوم: بررسی ساختار heading

  • آیا فقط یک h1 در صفحه وجود دارد؟
  • آیا سطوح heading (h1 تا h6) بدون پرش ناگهانی و به ترتیب منطقی استفاده شده‌اند؟

این نکات رو تو درس ۳-۱ کامل دیدیم؛ ساختار heading منظم هم برای خوانایی کاربر، هم برای سئو و دسترسی‌پذیری حیاتیه.

مرحله‌ی چهارم: بررسی تصاویر و رسانه‌ها

  • آیا تمام تصاویر، ویژگی alt مناسب دارند (یا در صورت تزئینی‌بودن، alt خالی)؟ (درس ۵-۱ و ۵-۳)
  • آیا ویژگی‌های width و height برای جلوگیری از پرش محتوا مشخص شده‌اند؟ (درس ۵-۱ و ۹-۲)
  • آیا فایل‌های صوتی و ویدیویی، فرمت‌های جایگزین (source) و در صورت نیاز زیرنویس (track) دارند؟ (فصل ۹)

مرحله‌ی پنجم: بررسی ساختار معنایی

  • آیا از header، main، footer، article، section، aside، nav به‌جای div خنثی استفاده شده؟ (فصل ۸)
  • آیا دقیقاً یک main در کل صفحه وجود دارد؟
  • آیا تاریخ‌ها با تگ time و ویژگی datetime نوشته شده‌اند؟ (درس ۸-۷)

مرحله‌ی ششم: بررسی لینک‌ها و ناوبری

  • آیا تمام لینک‌ها ویژگی href معتبر دارند؟ (درس ۴-۱)
  • آیا لینک‌های خارجی از target="_blank" همراه با rel="noopener noreferrer" استفاده می‌کنند؟ (درس ۴-۲)
  • آیا متن لینک‌ها توصیفی و گویاست، نه عباراتی مثل «کلیک کنید»؟

مرحله‌ی هفتم: بررسی فرم‌ها (در صورت وجود)

  • آیا هر ورودی فرم، یک label مرتبط (با for و id) دارد؟ (درس ۷-۳)
  • آیا از انواع مناسب input (email، tel، date و غیره) استفاده شده؟ (درس ۷-۲)
  • آیا اعتبارسنجی‌های اولیه (required، pattern) در جای مناسب اعمال شده‌اند؟ (درس ۷-۶)
  • آیا هر button، ویژگی type مشخصی (submit، button، reset) دارد؟ (درس ۷-۵)

مرحله‌ی هشتم: بررسی جدول‌ها (در صورت وجود)

  • آیا از th برای سربرگ‌ها استفاده شده، نه td؟ (درس ۶-۱)
  • آیا caption گویا برای جدول اضافه شده؟ (درس ۶-۴)
  • آیا جدول فقط برای داده‌ی واقعاً جدولی استفاده شده، نه چیدمان صفحه؟

مرحله‌ی نهم: بررسی دسترسی‌پذیری کلی

  • آیا رنگ متن و پس‌زمینه (که در CSS تنظیم می‌شود) کنتراست کافی دارند؟
  • آیا در صورت استفاده از عناصر سفارشی (مثل div به‌جای button)، ARIA مناسب اضافه شده؟ (درس ۱۱-۴)
  • آیا صفحه با صفحه‌کلید (بدون ماوس) هم قابل‌پیمایش است؟

مرحله‌ی دهم: بررسی کدنویسی تمیز

  • آیا تورفتگی منظم و حروف کوچک برای تگ‌ها رعایت شده؟ (درس ۱۲-۴)
  • آیا هیچ تگ یا ویژگی منسوخ (مثل font، center، bgcolor) استفاده نشده؟ (درس ۱۲-۱)
  • آیا مقادیر تمام ویژگی‌ها داخل گیومه نوشته شده‌اند؟

مرحله‌ی یازدهم: اعتبارسنجی نهایی با W3C Validator

همون‌طور که تو درس ۱۲-۲ دیدیم، آخرین قدم قبل از انتشار همیشه باید عبور کد از W3C Validator باشه؛ این کار تضمین می‌کنه هیچ خطای ساختاری پنهانی تو کد باقی نمونده.

مرحله‌ی دوازدهم: تست در چند مرورگر مختلف

همون‌طور که تو درس ۱۲-۳ دیدیم، صفحه رو حداقل تو چند مرورگر اصلی (Chrome، Firefox، Safari) باز کن و مطمئن شو ظاهر و عملکردش تو همه‌شون قابل‌قبوله.

یه چک‌لیست خلاصه و قابل‌چاپ

مرحله بررسی شد؟
DOCTYPE، lang، dir، charset
title و description منحصربه‌فرد
ساختار heading منظم (فقط یک h1)
alt برای تمام تصاویر
استفاده از HTML معنایی به‌جای div
لینک‌های خارجی با rel="noopener noreferrer"
label برای تمام ورودی‌های فرم
th و caption برای جدول‌ها
بدون تگ یا ویژگی منسوخ
عبور موفق از W3C Validator
تست در چند مرورگر مختلف

یه دیدگاه کلی: انتشار به‌عنوان یه فرایند، نه یه لحظه

نکته‌ی مهمی که باید تو پایان این دوره در نظر داشته باشی اینه که «آماده‌سازی برای انتشار» یه کار یک‌باره در پایان پروژه نیست؛ بلکه باید تبدیل به یه عادت مستمر بشه که در طول کل فرایند نوشتن کد، به‌طور طبیعی رعایتش می‌کنی. هرچی این اصول رو بیشتر تمرین کنی، کمتر نیاز به بازبینی و اصلاح گسترده در پایان کار پیدا می‌کنی.

چند اشتباه رایج نهایی

  • عجله برای انتشار بدون طی‌کردن چک‌لیست کامل.
  • فراموش‌کردن تست در مرورگرهای غیر از مرورگر پیش‌فرض خود توسعه‌دهنده.
  • نادیده‌گرفتن اعتبارسنجی نهایی با این تصور که «ظاهرش که درسته، پس مشکلی نیست».

بهترین روش‌ها

  • این چک‌لیست رو برای هر صفحه‌ی مهمی که منتشر می‌کنی، به‌عنوان یه روال ثابت در نظر بگیر.
  • هرچی این اصول برات به یه عادت طبیعی تبدیل بشه، سرعت و کیفیت کارت هم‌زمان بهبود پیدا می‌کنه.

نکته‌ی سئو

طی‌کردن این چک‌لیست کامل، عملاً به این معناست که تمام اصول سئوی درون‌صفحه‌ای که در این دوره آموختیم (title، description، ساختار heading، HTML معنایی، alt، canonical) رعایت شده‌اند؛ یعنی سئو نتیجه‌ی طبیعی یک فرایند انتشار درست و کامل است، نه یک اقدام جداگانه.

نکته‌ی دسترسی‌پذیری

دقیقاً همین موضوع برای دسترسی‌پذیری هم صادق است؛ صفحه‌ای که این چک‌لیست را کامل طی کرده باشد، به‌طور طبیعی برای کاربران صفحه‌خوان، کاربران صفحه‌کلید، و افراد با نیازهای خاص هم تجربه‌ی به‌مراتب بهتری فراهم می‌کند.

جمع‌بندی

آماده‌سازی نهایی یک صفحه‌ی HTML برای انتشار شامل بررسی ساختار پایه، فراداده، heading ها، تصاویر و رسانه‌ها، ساختار معنایی، لینک‌ها، فرم‌ها، جدول‌ها، دسترسی‌پذیری، کدنویسی تمیز، اعتبارسنجی نهایی و تست چندمرورگری است. رعایت مداوم این اصول در طول کل فرایند توسعه، به‌جای یک بازبینی عجولانه در پایان کار، پایه‌ی تولید صفحاتی حرفه‌ای، قابل‌دسترس و بهینه برای موتورهای جستجو را می‌سازد؛ همان چیزی که هدف اصلی این دوره‌ی کامل HTML5 بود.