دوست عزیزم احمد رضا زاهدی لطف کردن و در مورد نوشتهی قبلی من نکاتی رو متذکر شدن که فکر کردم بهتره اولا من هم در یک نوشتهی جداگانه به این موضوع بپردازم و هم این که به سوء تفاهمهایی که احتمال داره بوجود آمده باشه پاسخ داده باشم.
اما قبلش بهتر میدونم که دو نکته رو ذکر بکنم. اولا تاکید من بر قابلیت دسترسی در وب دلیل بر نادیده گرفتن زیبایی توسط طراح نیست، و در نوشتهی مورد بحث هم اشاره کردهام که مهمترین ابزاری که طراح وب برای جذب مخاطب در اختیار داره یک طرح زیباست. سعی من بر این بود که پارامترهایی مثل دسترسی در وب رو در مقابل مسائل مربوط به زیبایی شناختی در طراحی، پر رنگ بکنم (همین طور در مورد کارکرد در وب). چون بنظر میرسه که امروزه با رشد سریع تکنولوژیهای جدید دسترسی در وب بیش از هر زمان دیگری نادیده گرفته میشه:
Currently most Web sites and Web software have accessibility barriers that make it difficult or impossible for many people with disabilities to use the Web.
– W۳C, Introduction to Web Accessibility
ثانیا من آژاکس بلد نیستم و البته خیلی دوست دارم یاد بگیرم ولی با وجود گرفتاریهای عدیدهای که دارم برنامهای برای یادگیری آژاکس در نظر نگرفتهام.
و اما
تاکید من بر لزوم رعایت معیارهای لازم در رابطه با قابلیت دسترسی یک سایت، دلیل بر چشم بستن به تکنولوژیهای جدید مثل آژاکس و نادیده گرفتن امکانات فوق العادهای که در اختیار ما میگذارن نیست. و همان طوری که آقای زاهدی بهش اشاره کردن استفاده از آژاکس، بعنوان نمونه در فرمها و سیستمهای نظر خواهی، کاربر رو از لزوم انتظار برای بارگذاری مجدد صفحه بینیاز میکنه (امکانی که از اون با نام میکرو-آپدیت یاد میشه). و خیلی از قابلیتهای دیگه که اتفاقا همگی برای کاربران هم خوش آیند هستند و هم راحتی رو به ارمغان میآورند و از این نظر سطح کاربری سایت رو هم افزایش میدهند چیزی که حتی من از اون در مقابل مقولهی زیبایی دفاع کردم. و همون طور که در نوشتهی قبلی هم گفتم وب ۲٫۰ بخش بزرگی از پیشرفت خودش رو مدیون آژاکس هستش، همچنین به نظر من استفاده از سرویسهایی مثل جیمیل و یا گوگل ریدر بدون وجود آژاکس دیگر هیچ لطفی نخواهد داشت و علاوه بر این بدون وجود آژاکس سرویسهایی مثل گوگل مپس و میبو دیگر وجود نداشتند. اما تاکید من به پرهیز از استفاده، در مواردی بود که میشود از روشهای جایگزین استفاده کرد، هر چند با کاهش سطح کاربری. مایلم به این موصوع در دو حالت بپردازم: اولی مربوط میشه به معیارهای شخصی من در طراحی (فکر میکنم این طوری بگم بهتره :-)) و دومی اصولی که طراحان وب باید خودشون رو ملزم به رعایتشون بدونن.
اصولی که من به عنوان طراح وب خود را ملزم به رعایت آنها میدانم
گروهی از کاربران وب وجود دارند که امکان پشتیبانی از کدهای جاوااسکریپت رو در مرورگر خودشون مسدود میکنند، بنابر این، این افراد به اون دست از فرمهایی که اشاره کردی (و یا بسیاری از امکانات دیگه) دسترسی نخواهند داشت –تاکید میکنم که این موضوع مسئلهای نیست که بتوان از لحاظ دسترسی بهش ایراد گرفت، چون طبیعتا کسی که اقدام به اینکار میکنه مسئولیت محدودیتهایی رو که برای خودش بوجود میآره رو میپذيره– این موضوع باعث میشه که من خودم «شخصا» بفکر راهحلهای جایگزین در استفاده از اینگونه امکانات باشم و یا این امکان رو بصورت ترکیبی و در کنار راه حلهایی مانند استفاده از کدهای سرورساید در اختیار کاربرهام قرار بدم (مثلا فرمی رو در نظر بگیر که هم از آژاکس برای تایید اولیهی اطلاعات وارد شده استفاده میکنه و هم از PHP البته به صورت ابتدایی و با سطح کاربری کمتر). به عنوان یک نمونهی عملی میشه به سرویس جیمیل هم اشاره کرد که به دو صورت آژاکس و HTML طراحی شده.
اصولی که طراحان وب ملزم به رعایت آنها میباشند
بخشی از کاربران وب کسانی هستند که دارای معلولیت جسمی میباشند، عمدتا افراد نابینا، ناشنوا، کسایی که قادر به استفاده از موس نیستند و مواردی از این دست. همجنین اگر افراد کهنسال و کسانی رو که دارای ناتوانیهای موقتی هستند رو هم به این گروه اضافه بکنیم درصد بزرگی از کاربران اینترنت رو تشکیل خواهند داد. در مقابل بیایید بررسی بکنیم که آژاکس با امکاناتی که در سالهای اخیر برامون به ارمغان اورده چطور باعث شده که این دسته از افراد بطور کامل از لیست کاربران برخی از سایتها که تعدادشون روز به روز در حال افزایش (و البته در بسیاری از موارد بدون استفاده از آژاکس هم میتونن همون سرویسها رو ارائه بدن) حذف بشن:
اسکرین ریدرها نرم افزارهایی هستند که توسط افراد نابینا بر روی مرورگرها مورد استفاده قرار میگیرند که در واقع محتوای نوشتاری سایت رو به صدا تبدیل میکنند (مثل JAWS، ویندو-آی و هال). مشکل اساسی این گونه ابزارها عدم شناسایی صحیح کدهای جاوااسکریپت هستش (نتایج تستی که بر روی این ندمافزارها انجام شده رو میتونید این جا ببینید) و در کنار اون منوهای کرکرهای، منوهای پوشهای و قسمتهایی از محتوای سایت که بصورت درجا آپدیت میشوند نیز توسط این نرمافزارها قابل شناسایی نیستند. البته مواردی مثل استفاده از تصاویر و یا فایلهای فلش در هدر صفحات، نویگیشنها و یا کپچاها رو هم میشه به این لیست اصافه کرد ولی بحث ما فعلا دربارهی تکنولوژیهای جدید و لزوم ارائهی راه حلهای مناسب برای رفع مشکلات اونهاست.
نرمافزارهای مبتنی بر وب که برخی از عمل گرهای آنها بصورت درگ اند دراپ (کشیدن و رها کردن) انجام میگیرد –بعنوان نمونه میتوان به اسکرولبارها اشاره کرد– برای افراد نابینا که قادر به استفاده از موس نمیباشند و از صفحهکلید استفاده میکنند و همچنین کسانی که قادر به حرکت دادن موس نیستند، غیر قابل استفاده میباشند.
برای روشن شدن اهمیت فوقالعادهای که این مسئله داره، کافیه به این فکر بکنیم که این افراد بخاطر ناتواناییهایی که دارند از جامعه دور افتادن و به خیلی از سرویسها و امکاناتی که ما براحتی بهشون دسترسی داریم دسترسی ندارند. همون طور که آقای حیمز اِدوارد در وبلاگشون برادرکیک هم تاکید میکنن اینترنت برای این گروه نقش شاهرگ حیاتی رو داره. وجود کامپیوتر باعث شده که بسیاری از مشکلاتی که این افراد در گذشته برای خواندن و نوشتن داشتند حل بشه در حالی که اتفاقی که الان رخ میده این که تکنولوژی داره اونها رو از امکاناتی که حق استفادهش رو دارن دور میکنه. ما حق نداریم این امکانات و سرویسها رو مختص خودمون بدونیم، «اونها هم بین ما زندگی میکنند و مثل همهی ما برای پیشرفت جامعهمون هزینه میپردازند و حق استفاده از این امکانات رو دارند».
The power of the Web is in its universality. Access by everyone regardless of disability is an essential aspect.
– Tim Berners-Lee, W۳C Director and inventor of the World Wide Web
حقیقت این که برای رفع مشکلات فوق تلاشهای زیادی داره انجام میگیره. در حال حاضر راهکارهای کنسرسیوم وب (W۳C) برای حل مشکل دسترسی سرویسهای وب ۲٫۰ در قالب WAI-ARIA (Accessible Rich Internet Applications) پیشنهاد میشه . همون طور که قبلا هم گفتم در سرویسهای وب ۲٫۰، عملگرها (مثل دکمهها و یا رابطهای کنترلی مثل اسکرولها) اغلب توسط اسکریپتها نوشته میشوند که ابزارهایی مثل اسکرین ریدرها قادر به تشخیص ماهیت این عملگرها نیستند. در حقیقت WAI-ARIA راهکارهایی رو پیشنهاد میده که توسط اونها بشه کارکرد عملگرها رو به اسکرین ریدرها معرفی کرد. ساختار WAI-ARIA خیلی شبیه به نشانه گذاریهایی که در XHTML ۱.۱ برای المانها پیشنهاد میشه با این فرق که این بار این نشانهگذاریها توسط RDF و بصورت دستهبندی معنادار (semantic) برای تعیین ماهیت عملگرها استفاده میشوند. در حال حاضر در بین مرورگرها فقط فایرفاکس ۳ از WAI-ARIA پشتیبانی میکنه و برای رسیدن به نرمافزارهای تماما قابل دسترس هنوز راه خیلی زیادی وجود داره که باید طی بشه. برای مطالعهی بیشتر در مورد WAI-ARIA میتونید این مقاله به زبان ساده در اِلیست اپارت رو بخونید.
چرا من گوگل ریدر را میپرستم
در اون مقالهای که من در نوشتهی قبلی هم لینکش رو داده بودم (این جا) آقای جیمز اِدوارد به بررسی سایت فلیکر –که بحق یکی از قابل توجهترین نرمافزارهای حوزهی وب ۲٫۰ محسوب میشه– پرداختند و بررسی کردند که چطوری توسعه دهندگان فلیکر با استفادهی نابجا از آژاکس سایتشون رو برای گروه زیادی از بازدید کنندههاشون غیر قابل دسترس کردند. ایشون حتی یک نسخهی تماما قابل دسترس از فلیکر رو طراحی کردند که در اون از هیچ کد جاوااسکریپتی استفاده نشده (میتونید این جا امتحانش بکنید). البته این صرفا یک نمونهی شبیهسازی شدهس و مصلم که میتونست زیباتر از این هم باشه. علاوه بر این راهکار پیشنهادی، توسعه دهندگان فلیکر میتونن سرویسشون رو در دو نسخهی HTML و آژاکس هم ارائه بدن (راهکاری که گوگل در سرویس ایمیل خودش پیش گرفته).
من اما این جا به سرویس فیدخوان گوگل یعنی گوگل ریدر خواهم پرداخت و سه تا از ویژگیهای قابل ستایش اون رو که در جهت هر چه قابل دسترس کردن این سرویس ارائه شدهاند، معرفی خواهم کرد.
۱ میانبرهای صفحهکلید
یکی از ویژگیهای بارز سرویسهای گوگل میانبرهای صفحهکلید آنهاست. این میانبرها در گوگل ریدر بگونهای هوشمندانه طراحی شدهاند که اغلب افراد (از جمله خود من) ترجیح میدهند که صرفا از صفحهکلید برای مطالعه، برچسب گذاری، مدیریت فیدها و جابجایی بین فیدها و دستهبندیها استفاده بکنند. این ویژگی برای کسانی که توانایی استفاده از موس را ندارند، امتیاز بزرگی محسوب میشه و میتونه گوگل ریدر را به ابزاری برای کاوش در اینترنت تبدیل بکنه.

لیست کامل این میانبرها را اینجا ببینید یا این که «?» (همان shift-/) را در صفحهکلید خود بفشارید. با کمی تمرین خیلی زود به کار کردن با صفحهکلید عادت خواهید کرد.
۲ ذرهبین گوگل ریدر
یکی دیگر از امکاناتی که اخیرا به گوگل ریدر اضافه شده ذرهبین گوگل ریدر هستش. خیلی از افراد (باز از جمله خود من، بیخود نیست اگر میگم میپرستمش :-)) راحتتر هستند که به صندلیشون تکیه بدن و با کامپیوتر کار بکنند، در این صورت اندازهی نوشتهها بر روی صفحهی نمایش کوچک به نظر میرسه و همین طور، افرادی که دید کمی دارند و یا افراد کهن سال بدون فونت بزرگ قادر به مطالعه بر روی صفحهی نمایش نیستند. راهکارهایی که مرورگرها برای افزایش اندازهی فونت و یا زوم کردن بر روی صفحات ارائه میدن هم از اون جایی که روی کل صفحه عمل میکنند، چندان مناسب به نظر نمیرسن. ذرهبین گوگل ریدر که با استفاده از CSS توسعه داده شده این امکان رو در اختیار شما قرار میده که فقط بر روی مطلبی که در حال مطالعه هستید، زوم بکنید.

کافیست کلید «=» (برای افزایش اندازهی نوشتهها) و «-» (برای کاهش اندازهی نوشتهها) رو در صفحهکلید خود بفشارید.
۳ پشتیبانی از WAI-ARIA
همون طور که در بالا هم اشاره کردم WAI-ARIA روشهایی رو ارائه میده که توسط اونها توسعه دهندگان وب میتونن ماهیت عملگرهای نرمافزارهای وب ۲٫۰ را که با استفاده از آژاکس، جاوااسکریپت و تکنولوژیهای مربوط به اون نوشته شدن، به اسکرین ریدرها معرفی بکنن و قابلیت دسترسی نرمافزارشون رو بالا ببرن. یکی از ویژگیهای بارز گوگل ریدر پشتیبانی از WAI-ARIA هستش. هنگامی که گوگل ریدر را با استفاده از مرورگری که مجهز به اسکرین ریدر میباشد (مثل فایر وکس) باز میکنید، صدایی شنیده خواهد شد که از شما میخواهد برای فعال کردن نسخهی ARIA گوگل ریدر کلیک بکنید، بعد از فعالسازی ARIA با فشردن کلید «?» بر روی کیبرد، لیست میانبرهای موجود صفحهکلید شنیده میشود، سپس از طریق همین میانبرها میتوانید به فیدهای خود گوش بدهید!
علاوه بر سه مورد ذکر شده، گوگل گیرز (پلاگین برای بارگذاری فیدها در مرورگر بمنظور دسترسی آفلاین)، نسخهی موبایل (و یا آیفون) و نسخهی وی (Nintendo Wii، یک نوع کنسول بازی) از دیگر امکانات گوگل ریدر هستند که هر چند ارتباطی با بحث ما ندارند ولی جزو موارد دسترسی در وب بشمار میآیند.
بنظر شما توجه تیم توسعهی گوگل ریدر به کاربران خود ستودنی نیست؟ باید دید سرویسهای فیدخوان دیگر مثل استریمی با فیوریت که در حال حاضر بصورت آزمایشی ارائه میشوند، چه برنامههایی برای افزایش سطح دسترسی خود در نظر گرفتهاند.
نتیجه
در همان مقالهای که از آقای جیمز اِدوارد معرفی کردم، ایشون سه اصل مهم توسعهی نرمافزار برای وب رو در سه سطح بر اساس میزان اهمیت طبقهبندی کردند، بصورتی که دسترسی در وب در بالاترین سطح و بدنبال اون کارکرد در وب و بعد از آن مسئلهی زیبا شناسی قرار میگیره. من هم تقریبا در تمام تجربیاتم در طراحی وب سعی کردم از این سه اصل بهمان ترتیب مذکور تبعیت بکنم (در مورد وبلاگم هم همین طور) و معمولا هم وقتی اهمیت موضوع رو به مشتریهام توضیح میدم اونها هم علاقهمند میشوند که سایتشون از همین اصول تبعیت بکنه (میتونید امتحان بکنید، اون قدرها هم کار سختی نیست. کی از سایتی که همهی مرورگرها و با هر تنظیماتی ازش پشتیبانی میکنند و در یک چشم بهم زدن لود میشه بدش میآد). و میشه گفت دلیل این که هیچ وقت فلش کار کردن رو یاد نگرفتم و این که هنوز نمیدونم چطوری میشه با جاوا اسکریپت منوی کرکرهای ایجاد کرد دقیقا همین مسئلهس :-) منتظر دیدگاههای شما هستم.