CSS Accessibility Styling

🔹 ۱. کنتراست رنگ (Color Contrast)

  • رنگ متن و پس‌زمینه باید کنتراست کافی داشته باشن تا همه بتونن بخونن.

  • طبق استاندارد WCAG، نسبت کنتراست باید حداقل 4.5:1 باشه.

❌ بد (کنتراست کم):

.text { color: #aaa; background: #fff; }

✅ خوب (کنتراست مناسب):

.text { color: #000; background: #fff; }

🔹 ۲. فوکوس (Focus States)

  • برای کاربرانی که با کیبورد (Tab) حرکت می‌کنن، باید فوکوس کاملاً مشخص باشه.

  • هرگز outline پیش‌فرض مرورگر رو حذف نکن مگر اینکه جایگزین مناسبی بذاری.

❌ بد:

button:focus { outline: none; }

✅ خوب:

button:focus { outline: 3px solid #ff6347; outline-offset: 2px; }

🔹 ۳. اندازه متن و قابلیت بزرگ‌نمایی

  • واحدهای نسبی (em, rem, %) رو جایگزین پیکسل کن تا کاربر بتونه متن رو بزرگ کنه.

body { font-size: 1rem; /* به جای px */ }

🔹 ۴. لینک‌ها و دکمه‌ها (Links & Buttons)

  • لینک باید از متن معمولی متمایز باشه (فقط رنگ کافی نیست، خط زیر هم خوبه).

✅ نمونه:

a { color: #0056b3; text-decoration: underline; } a:hover { color: #ff6347; }

🔹 ۵. استفاده از prefers-reduced-motion

  • بعضی کاربران از انیمیشن زیاد اذیت می‌شن. با این media query می‌تونی انیمیشن رو خاموش کنی.

@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }

🔹 ۶. حالت تاریک (Dark Mode)

  • بعضی کاربران ترجیح می‌دن از حالت تاریک استفاده کنن. می‌شه با media query شناسایی کرد:

@media (prefers-color-scheme: dark) { body { background: #121212; color: #ffffff; } }

🔹 ۷. اندازه قابل کلیک (Touchable Targets)

  • دکمه‌ها و لینک‌ها باید حداقل 44px × 44px باشن تا راحت کلیک بشن (طبق استاندارد اپل و WCAG).

button { padding: 12px 20px; }

🔹 ۸. فونت‌های خوانا

  • از فونت‌های ساده و خوانا استفاده کن.

  • spacing مناسب (line-height, letter-spacing) هم مهمه.

body { font-family: Arial, sans-serif; line-height: 1.6; letter-spacing: 0.5px; }

✅ خلاصه

برای CSS Accessibility Styling این موارد خیلی مهمن:

  1. کنتراست رنگ کافی 🎨

  2. نمایش واضح فوکوس برای کیبورد ⌨️

  3. فونت و اندازه قابل تغییر 🔍

  4. لینک و دکمه واضح و قابل کلیک 🖱️

  5. پشتیبانی از prefers-reduced-motion و dark mode

  6. فاصله و readability متن 📖