Structure > html
این متن هنوز کامل نیست و در حال بروزرسانی است. نسخه‌ی نهایی پس از تکمیل در دسترس قرار خواهد گرفت.

دسترسی‌پذیری ساختاری برای همه کاربران

در عصر دیجیتال، دسترسی‌پذیری (Accessibility) به عنوان یکی از اصلی‌ترین اصول توسعه وب مدرن، بیش از یک ویژگی فنی، به یک حق اساسی برای تمام کاربران تبدیل شده است. این فصل به بررسی جامع و تخصصی چهار اصل اصلی WCAG (Web Content Accessibility Guidelines) نقش صفات و نقش‌های ARIA، و راهکارهای ناوبری بدون ماوس می‌پردازد. هدف این فصل، ایجاد صفحات وبی که هر کاربر - چه نابینا، چه ناشنوا، چه دارای محدودیت حرکتی یا شناختی - بتواند به راحتی به محتوا دسترسی داشته باشد.

11.1 چهار اصل اصلی WCAG: بنیان دسترسی‌پذیری

11.1.1 قابل‌ادراک (Perceivable)

کاربران باید بتوانند تمامی محتوا را از طریق حواس خود درک کنند. شامل:
<img src="chart.png" alt="نمودار رشد فروش در سال ۱۴۰۳">
<video controls>
 <track kind="captions" src="subtitles.vtt" srclang="fa" label="زیرنویس فارسی">
</video>
alt برای تصاویر مهم و track برای ویدئوها به کاربران نابینا و گفتاری کمک می‌کنند. استفاده از aria-label برای اشیاء غیرقابل دسترسی (مثل آیکون‌ها) ضروری است.

11.1.2 قابل‌عمل (Operable)

کاربران باید بتوانند به تمامی عناصر تعاملی دسترسی داشته باشند، حتی بدون ماوس. شامل:
<button tabindex="0">اعمال تغییرات</button>
<a href="#content" class="skip-link">پرش به محتوا</a>

11.1.3 قابل‌فهم (Understandable)

محتوا باید به روشی واضح، منطقی و پیش‌بینی‌پذیر ارائه شود.
<label for="email">ایمیل:</label>
<input type="email" id="email" name="email" required aria-invalid="true">
<p id="error-email" role="alert">لطفاً یک ایمیل معتبر وارد کنید.</p>

11.1.4 مقاوم (Robust)

محتوا باید با تمام ابزارهای دسترسی و مرورگرهای مختلف کار کند.
<div role="region" aria-label="منوی اصلی">
 <ul>
  <li><a href="/">صفحه اصلی</a></li>
  <li><a href="/about">درباره ما</a></li>
 </ul>
</div>

11.2 نقش‌ها و صفات ARIA: تقویت ساختار معنایی

11.2.1 نقش‌های ARIA (Roles)

role="navigation" منوی ناوبری
role="main" محتوای اصلی صفحه
role="button" دکمه مجازی
role="alert" پیام هشدار
role="dialog" پنجره مودال
role="listbox" لیست قابل انتخاب
<div role="alert" aria-live="assertive">
 فرم با موفقیت ارسال شد!
</div>

11.2.2 ویژگی‌های ARIA (Properties & States)

این ویژگی‌ها وضعیت فعلی یک عنصر را مشخص می‌کنند.
aria-label توضیح مختصر بدون نمایش
aria-labelledby ارجاع به یک یا چند عنوان
aria-describedby توضیحات جانبی
aria-expanded آیا بخش باز است؟
aria-checked آیا گزینه انتخاب شده؟
aria-hidden مخفی کردن از دسترسی
<button 
 aria-expanded="false" 
 aria-controls="menu-content"
 onclick="toggleMenu()"
 >
 منو
</button>
<div id="menu-content" hidden>
 <ul>
  <li><a href="#">اولین مورد</a></li>
  <li><a href="#">دومین مورد</a></li>
 </ul>
</div>

11.3 ناوبری بدون ماوس (کیبوردی): دسترسی برای تمام کاربران

11.3.1 tabindex: مدیریت ترتیب دسترسی

tabindex ترتیب ورود کاربر به عناصر را تعیین می‌کند. مقادیر:
<a href="#content" tabindex="0">پرش به محتوا</a>
از tabindex با مقادیر بالای 0 خودداری کنید - این کار باعث سردرگمی می‌شود. بهتر است از ترتیب طبیعی DOM استفاده کنید.

11.3.2 Skip Links (لینک‌های پرش): جلوگیری از گم‌شدن در منوی اصلی

این لینک‌ها به کاربران کمک می‌کنند تا مستقیماً به محتوای اصلی برسند و از گذر از منوی اصلی جلوگیری کنند.
<a href="#main-content" class="skip-link">پرش به محتوای اصلی</a>

<main id="main-content">
 <h1>محتوای اصلی صفحه</h1>
 <p>این محتوا بلافاصله بعد از پرش نمایش داده می‌شود.</p>
</main>
.skip-link {
 position: absolute;
 top: -40px;
 left: 0;
 background: #000;
 color: #fff;
 padding: 8px;
 text-decoration: none;
 z-index: 999;
 }
      
.skip-link:focus {
 top: 0;
 }
focus برای نمایش لینک وقتی کاربر به آن رسیده است. این لینک فقط در زمان تمرکز نمایش داده می‌شود.

11.3.3 گردش در محتوا با کیبورد

11.3.3 گردش در محتوا با کیبورد

<ul role="menubar">
 <li role="none">
  <a href="#" role="menuitem">منوی اول</a>
 </li>
 <li role="none">
  <a href="#" role="menuitem">منوی دوم</a>
 </li>
</ul>
استفاده از role="menuitem" به Screen Readers کمک می‌کند تا ساختار منو را تشخیص دهد. کلیدهای Enter و Space برای انتخاب گزینه.
یک صفحه وب موفق، فقط با زیبایی ظاهری نیست بلکه با احترام به تمام کاربران، استفاده از ARIA، مدیریت دسترسی با کیبورد، و پایبندی به استانداردهای WCAG ساخته می‌شود. این فصل پایه‌ای برای نوشتن محتوای دسترسی‌پذیر، انسانی و متناسب با استانداردهای جهانی است.



بعدی قبلی