From c9028230851e75ddf1e4a6c2a2a9a3159c5a7035 Mon Sep 17 00:00:00 2001 From: Parham Fakhari Date: Mon, 21 Sep 2026 11:37:01 +0000 Subject: [PATCH] feat(fa): translate the accessibility best practices guide `_articles/accessibility-best-practices-for-your-project.md` exists only in English, Russian and Simplified Chinese; 25 other languages, Persian among them, have no file at all, so /fa/ shows 12 guides while /en/ shows 13. This adds the Persian translation of the whole article: one new file, nothing else touched, same shape the merged Russian PR used. * front matter follows docs/translations.md: `lang: fa`, translated title/description, `class`/`order`/`image` unchanged, no `untranslated` flag. * all 30 links and every URL are copied from the English file, so no target drifts; headings 41/41 and links 30/30 against the English source. * technical names (WCAG, ARIA, VoiceOver, axe-core, CI/CD, `ACCESSIBILITY.md`, exit codes) are kept untranslated, as the other Persian guides do. * `node test/prose` reports no issues for this file (the repo's markdown lint is green on the tree with this file added). --- ...ibility-best-practices-for-your-project.md | 301 ++++++++++++++++++ 1 file changed, 301 insertions(+) create mode 100644 _articles/fa/accessibility-best-practices-for-your-project.md diff --git a/_articles/fa/accessibility-best-practices-for-your-project.md b/_articles/fa/accessibility-best-practices-for-your-project.md new file mode 100644 index 00000000000..b93689709e6 --- /dev/null +++ b/_articles/fa/accessibility-best-practices-for-your-project.md @@ -0,0 +1,301 @@ +--- +lang: fa +title: بهترین روال‌های تجربه‌شده‌ی دسترس‌پذیری برای پروژه‌تان +description: گام‌های عملی و قابل‌اجرا برای اینکه پروژه‌ی متن باز شما برای همه قابل‌استفاده باشد، به‌ویژه برای افراد دارای معلولیت. +class: accessibility-best-practices +order: -1 +image: /assets/images/cards/accessibility-best-practices.png +--- + +دسترس‌پذیری (که اغلب به _a11y_ خلاصه می‌شود) یعنی افراد بتوانند صرف‌نظر از معلولیت، فناوری کمکی، محیط یا دستگاهشان از پروژه‌ی شما استفاده کنند. این شامل پشتیبانی از صفحه‌خوان‌ها، پیمایش فقط با صفحه‌کلید، زیرنویس/بازنویسی متن، کنتراست رنگی کافی و ساختار روشن محتوا است — و به این‌ها محدود نمی‌شود. + +## با افراد دارای معلولیت همراه شوید + +**«هیچ چیزی درباره‌ی ما، بدون ما»** - مهم‌ترین کاری که می‌توانید برای دسترس‌پذیری بکنید این است که افراد سرویس‌گیرنده را در مرکز قرار دهید. کاربران، مشارکت‌کنندگان و آزمایشگران دارای معلولیت، موانع را به شکلی می‌فهمند که راهنماها و ابزارهای خودکار هرگز نمی‌توانند. تجربه‌ی زیستۀ آن‌ها را زود و مدام بخواهید. + +### در عمل پیاده‌اش کنید + +تصمیم‌هایی که بدون افرادِ تحت‌تأثیر گرفته شوند، معمولاً هدف را خطا می‌روند. ساختن نرم‌افزار با افراد دارای معلولیت، نه برایشان، به نرم‌افزار بهتری برای همه می‌رسد. + +چند راه برای اینکه تجربه‌ی زیسته را مرکز قرار دهید: + +* مشارکت‌کنندگان دارای معلولیت را به بحث‌های طراحی دعوت کنید، نه فقط به اولویت‌بندی باگ. +* هر جا می‌توانید، افراد دارای معلولیت را در آزمون کاربردپذیری و بازخورد درگیر کنید. +* وقتی کسی توضیح می‌دهد چگونه از پروژه‌ی شما استفاده می‌کند، گوش بدهید — حتی وقتی فرض‌های شما را به چالش می‌کشد. +* گزارش‌های دسترس‌پذیری را تخصص بدانید، نه شکایت - ممکن است نمایندۀ افراد بیشتری باشند از آنچه فکر می‌کنید. + +### دسترس‌پذیری به نفع همه است + +* **روی افراد زیادی اثر می‌گذارد.** بر اساس [سازمان جهانی بهداشت](https://www.who.int/news-room/fact-sheets/detail/disability-and-health)، حدود ۱٫۳ میلیارد نفر (۱ نفر از هر ۶ نفر) معلولیت جدی دارند. +* **بخشی از کیفیت است.** محصولات دسترس‌پذیر معمولاً برای همه قابل‌استفاده‌ترند. +* **بار پشتیبانی را کم می‌کند.** رابط و اسناد روشن‌تر یعنی کاربران گیج‌تر کمتر. +* **پایۀ مشارکت‌کنندگان شما را گسترش می‌دهد.** کاربران فناوری‌های کمکی می‌توانند کامل‌تر مشارکت کنند. +* **نوآوری را پیش می‌راند.** طراحی برای نیازهای متنوع اغلب به ویژگی‌هایی می‌رسد که به نفع همه است (زیرنویس، کنترل صوتی و حالت تیره همگی از راه‌حل‌های دسترس‌پذیری شروع شدند). +* **اغلب الزامی است.** سازمان‌های زیاد (و بعضی دولت‌ها) دسترس‌پذیری را برای تدارکات و انطباق الزامی می‌کنند. +* **آیندۀ ما نامعلوم است.** هیچ‌کس امروز نمی‌تواند درباره‌ی توانایی‌هایی که فردا دارد مطمئن باشد. + +## با یک بیانیه‌ی دسترس‌پذیری شروع کنید + +پیش از شیرجه رفتن در کد، زمانی بگذارید و تعهد دسترس‌پذیری پروژه‌تان را مستند کنید. یک بیانیه‌ی دسترس‌پذیری به کاربران و مشارکت‌کنندگان سیگنال می‌دهد که دسترس‌پذیری اولویت است، نه فکر بعدی. برای راهنمایی به [Developing an Accessibility Statement](https://www.w3.org/WAI/planning/statements/) کنسرسیوم W3C مراجعه کنید. + +بیانیه‌ی روشنی اضافه کنید که انتظارها را مشخص کند و گزارش مسئله را برای کاربران آسان کند. می‌توانید مستقیماً یک بخش دسترس‌پذیری به README اضافه کنید، یا یک فایل **ACCESSIBILITY.md** بسازید و برای دیده‌شدن از README به آن لینک بدهید. به [نمونۀ ACCESSIBILITY.md](https://github.com/open-source-accessibility/accessibility-toolkit/blob/main/ACCESSIBILITY.md) نگاه کنید. + +### اهداف + +* اهداف و راهنماهای قابل‌سنجش اعلام کنید (مثل [WCAG AA](https://www.w3.org/TR/WCAG22/#wcag-2-layers-of-guidance) هر جا شدنی باشد). +* اولویت‌های اصلی را تعریف کنید، و اینکه چگونه آن‌ها را برآورده می‌کنید (پشتیبانی از صفحه‌کلید و صفحه‌خوان، زیرنویس و بازنویسی متن، و غیره). +* محدودیت‌های شناخته‌شده را اعلام کنید، و راه‌حل‌های جایگزین را (اگر وجود دارد). + +### الزامات مشارکت‌کنندگان + +چارچوب روشن بگذارید تا مشارکت‌کنندگان بدانند چه چیزی انتظار آن‌هاست: + +* **آزمون:** هر تغییر UI باید با یک ابزار آزمون دسترس‌پذیری بررسی شود (مثل [Axe DevTools](https://www.deque.com/axe/devtools/extension/#:~:text=Try%20Axe%20DevTools%20Extension%20in%20your%20browser%20of%20choice)). +* **مستندسازی:** برای اجزایی مثل SVG، تصویر و عناصر تعاملی، راهنماهای دسترس‌پذیری خودِ پروژه را دنبال کنید. +* **CI/CD:** اگر pull request نقض‌هایی را وارد کند که workflow آزمون دسترس‌پذیری تشخیص می‌دهد، رد می‌شود. + +### محیط‌های پشتیبانی‌شده + +* سکوها و پلتفرم‌هایی را که پشتیبانی می‌کنید فهرست کنید (وب، وب موبایل، iOS، Android، ترمینال/CLI، اپ دسکتاپ). +* یادداشت‌های پشتیبانی نسبی را هم فهرست کنید. + +### گزارش باگ‌های دسترس‌پذیری + +* از گزارش‌دهندگان بخواهید با استفاده از قالب issue دسترس‌پذیری، موضوع باز کنند. +* **نکته:** انتظارها را صادقانه بگویید (مثل «رویش کار می‌کنیم - در ISSUE-123 پیگیری می‌شود»)؛ گزارش‌ها را تأیید کنید و هر جا ممکن است راه‌حل جایگزین یا پیگیری ارائه دهید. + +#### چرا دسترس‌پذیری را از فرایند عمومی issue جدا می‌کنیم؟ + +کاربران عادت کرده‌اند یک بیانیه و یک مسیر گزارش اختصاصی برای دسترس‌پذیری ببینند - این یک روال جاافتاده در بخش خصوصی و در سایت‌های دولتی است، و خیلی از کاربران وقتی به مانعی می‌خورند اول دنبال همین می‌گردند. جدا نگه داشتن دسترس‌پذیری از جریان عمومی issueها مهم است، چون: + +* **اثرش زمانی‌حساس است.** یک باگ دسترس‌پذیری می‌تواند استفاده‌ی کاربر از پروژه را کلاً ممکن نکند، نه اینکه فقط اذیتش کند. یک مسیر اختصاصی کمک می‌کند این گزارش‌ها سریع‌تر اولویت‌بندی شوند. +* **بافتش فرق می‌کند.** مسئله‌های گزارش‌شده‌ی دسترس‌پذیری به اطلاعات مشخص نیاز دارند (فناوری کمکی، سیستم‌عامل، مرورگر، شدت) که یک قالب عمومیِ باگ آن‌ها را درخواست نمی‌کند. +* **تعهد را نشان می‌دهد.** یک بیانیه‌ی جدا و دیدنی به کاربران و مشارکت‌کنندگان می‌گوید دسترس‌پذیری یک نگرانی درجه‌یک است، نه چیزی که لای «باگ‌های دیگر» حل شود. +* **خودِ گزارش‌دهنده ممکن است برای ثبت گزارش از فناوری کمکی استفاده کند.** یک فرایند روشن و قابل‌پیش‌بینی (فایل مشخص، برچسب مشخص، قالب مشخص) اصطکاک را برای افرادی که بیشترین اثر را می‌پذیرند کم می‌کند. + +## اسناد را به‌طور پیش‌فرض دسترس‌پذیر بسازید + +اسناد اغلب اولین «UI»ای است که کاربر لمس می‌کند. مطمئن شوید همه می‌توانند بخوانندش را. + +### ساختار و معنا + +* از **سلسله‌مراتب منطقی عنوان‌ها** استفاده کنید و سطوح را جا نیندازید (`#`، `##`، `###`، `####`، `#####` و `######`). +* از **متن لینک روشن و یکتا** استفاده کنید («راهنمای مشارکت را بخوانید» به‌جای «اینجا کلیک کنید»). +* زبان ساده به کار ببرید، از تخصص‌گرایی پرهیز کنید و هر مخفف را در اولین استفاده باز کنید. +* [از **فهرست واقعی**](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#lists) استفاده کنید، نه شماره‌گذاری دستی. +* **راهنما و پیمایش را در جای ثابت** در همه‌ی صفحه‌ها نگه دارید تا کاربران با اطمینان پیدایشان کنند. +* معنا را فقط با جایگاه یا ظاهر منتقل نکنید («متن قرمز سمت راست را ببینید»). + +### تصویر، نمودار و ویدیو + +* برای تصاویر **متن جایگزین** معنادار بگذارید (که معمولاً به «alt text» خلاصه می‌شود؛ به [W3C's alt Decision Tree](https://www.w3.org/WAI/tutorials/images/decision-tree/) مراجعه کنید). +* به‌جای تصویر کردن متن، تا می‌شود از خودِ متن استفاده کنید. +* برای تصاویر پیچیده (مثل نمودار معماری)، یک **جایگزین متنی** اضافه در کنارش بگذارید (فهرست نشانه‌دار یا یک توضیح کوتاه). +* اگر دمو، آموزش، سخنرانی یا ویدیوی انتشار منتشر می‌کنید: + * **زیرنویس** بگذارید (ویرایش انسانی را ترجیح دهید). + * **بازنویسی متن** بگذارید. + * از پخش خودکار صدا و تصویر پرهیز کنید. + * کنش‌های مهم روی صفحه را با صدا توضیح دهید. + +### جدول‌ها + +* جدول را فقط برای داده‌های جدولی به کار ببرید، نه برای چیدمان. +* **سلول‌های سرستون** بگذارید تا سرستون‌ها و سرصفحه‌ی سطرها به داده‌ها وصل شوند. +* یک **عنوان یا خلاصه** برای توضیح هدف جدول بگذارید. + +### بلوک‌های کد + +* خط‌ها را معقول کوتاه نگه دارید (خط‌شکستن خوانایی را بالا می‌برد). +* فقط به رنگ‌آمیزی برای انتقال معنا تکیه نکنید. +* درجا توضیح دهید کد چه کار می‌کند و موفقیت چه شکلی است. + +## رابط‌های دسترس‌پذیر طراحی کنید + +اگر پروژه‌ی شما UI وب دارد، این پیش‌فرض‌های پر اثر به نفع همه‌ی کاربران است. + +### پشتیبانی از صفحه‌کلید + +* هر چیز تعاملی باید فقط با **صفحه‌کلید** قابل‌دسترسی و قابل‌استفاده باشد. +* یک **نشانگر فوکوس دیدنی** داشته باشید (حاشیۀ فوکوس را حذف نکنید، مگر اینکه جایگزینش کنید). +* **ترتیب tab** منطقی و هم‌خوان با چیدمان دیداری را حفظ کنید. +* فوکوس را داخل اجزا حبس نکنید، مگر اینکه عمداً آن را مدیریت کنید (مثل دیالوگ‌های modal) و راه خروج بگذارید. + +### اول معنا، بعد ظاهر + +* وقتی ممکن است از عناصر **HTML بومی** استفاده کنید (`

`، `