چرا اتربیوت accept تجربهٔ آپلود فایل رو خراب میکنه
خلاصهٔ کاملتر
نویسنده تو این مقاله سراغ یه عادت رایج تو فرمهای وب میره: اتربیوت accept روی . این اتربیوت مشخص میکنه که input چه فرمتهایی رو قبول میکنه و بقیهٔ فایلها تو پنجرهٔ انتخاب فایل غیرفعال و خاکستری میشن. مثلاً برای آپلود رسید میشه فقط image/jpeg و image/png رو مجاز کرد.
منطق پشتش اینه که جلوی انتخاب فرمت اشتباه رو میگیره تا کاربر بعد از submit با خطا روبرو نشه. ولی به گفتهٔ نویسنده همینجا مشکل شروع میشه: فایلهای خاکستریشده سخت خونده میشن و خیلی از کاربرها اصلاً متوجه این استایل ظریف نمیشن، برای همین روی فایل غیرمجاز کلیک میکنن و چون هیچ اتفاقی نمیافته حس میکنن فرم خراب یا گیجکنندهست.
یه نفر به اسم Russell به نویسنده جواب داده که غیرفعال کردن گزینههای نامعتبر تجربهٔ خوبیه و با قانون Jakob (آشنا بودن کاربر با الگوهای رایج) همخوونه و حتی به یه راهنمای WCAG اشاره کرده. نویسنده میگه دقیقاً همین رفتار باعث همون مشکلیه که هر دوشون میخوان حلش کنن، یعنی کاربر نمیفهمه چرا فرم کار نمیکنه، و این چیزی نیست که فقط تئوری باشه؛ بارها تو user research دیدتش.
راهحل پیشنهادی Russell اینه که فرمتهای مجاز رو تو متن راهنما (hint text) بگیم. نویسنده با این موافقه ولی میگه نمیشه به خوندن hint text تکیه کرد، چون تحقیقات نشون میده خیلیها متن راهنما رو نمیبینن یا نمیخونن. حتی اگه بخونن، ممکنه یادشون بره؛ مثلاً کاربر عجله داره، وسط کار تلفن بهش زنگ میزنه، یا مشکل حافظه و شناختی داره.
نویسنده سه ایراد فنی دیگه هم برای accept میشمره: فقط نوع فایل رو کنترل میکنه نه حجمش، با drag and drop میشه دورش زد، و بعضی مرورگرها مثل Firefox روی اندروید ازش پشتیبانی نمیکنن. پس به هر حال باید خطاها رو هم مدیریت کنی و این اتربیوت یه لایهٔ محافظ مطمئن نیست.
به گفتهٔ نویسنده اون راهنمای WCAG هم success criteria نیست، فقط advisory guidanceـه و احتمالاً ریشهش به پنجمین heuristic معروف Jakob Nielsen دربارهٔ «جلوگیری از خطا» برمیگرده. نویسنده میگه طراحها این اصل رو اشتباه میفهمن و فکر میکنن یعنی خطا رو از کاربر پنهان کن، در حالی که جمعبندیش اینه: پنهان کردن خطا، جلوگیری از خطا نیست. بهتره accept رو کنار بذاری و وقتی فایل اشتباه انتخاب شد همونجا یه خطای واضح نشون بدی تا کاربر بتونه فوری درستش کنه.
نکات کلیدی:
- اتربیوت accept فقط فرمت فایل رو محدود میکنه و فایلهای دیگه رو خاکستری میکنه
- خیلی از کاربرها استایل خاکستری رو نمیبینن و فکر میکنن فرم خرابه
- تکیه به hint text کافی نیست چون خیلیها نمیخونن یا یادشون میره
- accept حجم فایل رو کنترل نمیکنه، با drag and drop دور زده میشه و همهجا پشتیبانی نمیشه
- راه بهتر اینه که خطا رو واضح نشون بدی نه اینکه پنهانش کنی




