অনেকেই তাদের ডেভেলপমেন্ট ওয়ার্কফ্লো প্রক্রিয়ায় প্যাটার্ন স্টাইল গাইড, কম্পোনেন্ট লাইব্রেরি বা পূর্ণাঙ্গ ডিজাইন সিস্টেম ব্যবহার করে কম্পোনেন্ট-ড্রাইভেন ডেভেলপমেন্ট প্রয়োগ করেন। এমনকি যদি আপনি আনুষ্ঠানিকভাবে এই টুলগুলো ব্যবহার নাও করে থাকেন, তবুও সম্ভবত আপনি একটি ওয়েবসাইট, অ্যাপ বা অন্য কোনো ডিজিটাল পণ্যের বড় ডিজাইনকে পরিচালনাযোগ্য ছোট ছোট অংশে ভাগ করার জন্য একই ধরনের প্রক্রিয়া ব্যবহার করে থাকেন।
একটি ভৌত কাঠামো নির্মাণের মতোই, একবারে একটি অংশ তৈরি করা গুরুত্বপূর্ণ। প্রথমে ভিত্তি, তারপর কাঠামো, দেয়াল, জানালা, ছাদ এবং এর মধ্যবর্তী সবকিছু। কম্পোনেন্ট-চালিত ডেভেলপমেন্ট টুলগুলো আমাদের ওয়েবসাইট, অ্যাপ এবং অন্যান্য ডিজিটাল পণ্যের জন্য এই কাজটি করতে সাহায্য করে।
কম্পোনেন্ট-চালিত ডেভেলপমেন্টের কিছু সুবিধার মধ্যে রয়েছে বিষয়বস্তুকে পরিচালনাযোগ্য ছোট ছোট অংশে ভাগ করা, ফলে এই পুনঃব্যবহারযোগ্য কম্পোনেন্টগুলোর কারণে ডেভেলপমেন্টে কম সময় লাগে। এটি ডিজাইনার, ফ্রন্টএন্ড ও ব্যাকএন্ড ডেভেলপার এবং QA-কে একই সাথে কাজ করার সুযোগ দেয়। আর ক্লায়েন্ট, ডিজাইনার, PM এবং অন্যান্যরা এটি পছন্দ করেন, কারণ তারা বিল্ড প্রসেসটি প্রিভিউ করতে পারেন এবং ওয়েবসাইটটি চালু হওয়ার পর একটি জীবন্ত স্টাইল গাইডকে রেফারেন্স হিসেবে ব্যবহার করতে পারেন।
তবে, যখন আমরা অ্যাক্সেসিবিলিটি মাথায় রেখে প্যাটার্ন, কম্পোনেন্ট এবং ডিজাইন সিস্টেমগুলো দেখি, তখন কিছু প্রশ্ন ওঠে। অ্যাক্সেসিবিলিটির ক্ষেত্রে কোন প্যাটার্নগুলো সবচেয়ে ভালো, তা আপনি কীভাবে জানবেন? আপনার কি কোনো প্রতিষ্ঠিত প্যাটার্ন বা লাইব্রেরি ব্যবহার করা উচিত, নাকি নতুন কিছু তৈরি করা উচিত? এই প্যাটার্নগুলো আপনার ব্যবহারকারীদের সত্যিই সাহায্য করবে কিনা, তা আপনি কীভাবে জানবেন?
উপলব্ধ অসংখ্য বিকল্পের কারণে আপনি প্যাটার্ন, কম্পোনেন্ট এবং ডিজাইন সিস্টেম নিয়ে বিভ্রান্ত হতে পারেন। এই মডিউলটির লক্ষ্য হলো, অ্যাক্সেসিবিলিটির জন্য প্যাটার্ন, কম্পোনেন্ট এবং ডিজাইন সিস্টেম কীভাবে মূল্যায়ন করতে হয় সে সম্পর্কে আপনাকে সাধারণ ধারণা দেওয়া এবং আরও অ্যাক্সেসিবল পছন্দ করতে সাহায্য করার জন্য একটি সূচনা বিন্দু প্রদান করা।
সমালোচনামূলকভাবে চিন্তা করুন
একটি সহজলভ্য প্যাটার্ন, উপাদান বা ডিজাইন সিস্টেম বেছে নেওয়া কোনো রকেট সায়েন্স নয়, তবে এর জন্য সময় এবং গভীর চিন্তাভাবনার প্রয়োজন হয়। প্রকৃতপক্ষে, ‘একটি নিখুঁত প্যাটার্ন’ বলে কিছু নেই, বরং এমন অনেক বিকল্প থাকতে পারে যা কার্যকর হতে পারে। মূল বিষয়টি হলো আপনার নিজস্ব পরিস্থিতির জন্য সেরা বিকল্পটি বেছে নিতে শেখা।
পরবর্তী টেস্টিং মডিউলগুলোতে, অ্যাক্সেসিবিলিটির জন্য প্যাটার্ন, কম্পোনেন্ট এবং ডিজাইন সিস্টেম মূল্যায়ন করার কৌশল ও পদ্ধতি সম্পর্কে আপনি আরও পড়বেন। সেখানে পৌঁছানোর আগে, আপনাকে নিজেকে কিছু মৌলিক প্রশ্ন করতে হবে, যেমন:
- ইতিমধ্যে কোনো প্রতিষ্ঠিত প্রবেশযোগ্য প্যাটার্ন, উপাদান, বা ডিজাইন সিস্টেম বিদ্যমান আছে কি?
- আমি কোন কোন ব্রাউজার এবং সহায়ক প্রযুক্তি (AT) সমর্থন করছি?
- কোড বা ফ্রেমওয়ার্কের কোনো সীমাবদ্ধতা আছে কি? অন্য কোনো ইন্টিগ্রেশন, বিষয় বা ব্যবহারকারীর চাহিদা আছে কি যা আমার বিবেচনা করা উচিত?
আপনার ডেভেলপমেন্ট পরিবেশ এবং ব্যবহারকারীর চাহিদার উপর নির্ভর করে, এগুলোর বাইরেও আপনার অতিরিক্ত বা ভিন্ন প্রশ্ন থাকতে পারে। আপনার অ্যাক্সেসিবিলিটি মূল্যায়নের প্রাথমিক ধাপ হিসেবে এই প্রশ্নগুলোকে বিবেচনা করুন।
প্রতিষ্ঠিত সম্পদ
একেবারে নতুন কিছু তৈরি করার আগে, ভালোভাবে খোঁজখবর নিন এবং সহজলভ্য প্যাটার্ন, উপাদান ও ডিজাইন সিস্টেমের দিক থেকে ইতোমধ্যে কী কী বিদ্যমান আছে তা পর্যালোচনা করুন। সামান্য একটু গবেষণা করলেই আপনি হয়তো আপনার প্রয়োজন অনুসারে এক বা একাধিক সমাধান খুঁজে পেয়ে অবাক হতে পারেন।
অ্যাক্সেসযোগ্য প্যাটার্ন, কম্পোনেন্ট এবং ডিজাইন সিস্টেমের জন্য কিছু চমৎকার রিসোর্স হলো:
- প্রবেশযোগ্য উপাদান
- ডেক বিশ্ববিদ্যালয় ARIA লাইব্রেরি
- Gov.UK ডিজাইন সিস্টেম
- অন্তর্ভুক্তিমূলক উপাদান
- ম্যাজেন্টাএ১১ওয়াই
- মার্কিন যুক্তরাষ্ট্রীয় সরকারের জন্য তৈরি ইউএস ওয়েব ডিজাইন সিস্টেম (USWDS) ।
- স্ম্যাশিং ম্যাগাজিন থেকে সহজলভ্য প্যাটার্নের তালিকা
জাভাস্ক্রিপ্ট ফ্রেমওয়ার্কগুলোর ক্ষেত্রে, নিম্নলিখিত রিসোর্সগুলো ডিফল্টরূপে বেশ সহজলভ্য অথবা অ্যাক্সেসিবিলিটির জন্য কাস্টমাইজযোগ্য:
- যখন CSS যথেষ্ট নয়: অ্যাক্সেসযোগ্য কম্পোনেন্টের জন্য জাভাস্ক্রিপ্টের প্রয়োজনীয়তা
- প্রতিক্রিয়া
- অ্যাঙ্গুলার: ম্যাটেরিয়াল লাইব্রেরি
- Vue: Vuetensils
তবে—এবং এই বিষয়টির উপর যথেষ্ট জোর দেওয়া প্রয়োজন—আপনার কখনই শুধু কোড কপি/পেস্ট করে এটা ধরে নেওয়া উচিত নয় যে, তা আপনার পরিবেশে খাপ খেয়ে যাবে এবং স্বয়ংক্রিয়ভাবে আপনার ব্যবহারকারীর চাহিদা পূরণ করবে। এই কথাটি সমস্ত প্যাটার্ন, কম্পোনেন্ট এবং ডিজাইন সিস্টেমের ক্ষেত্রেই প্রযোজ্য, এমনকি যদি সেগুলোকে সম্পূর্ণ অ্যাক্সেসিবল হিসেবে চিহ্নিত করাও হয়।
সমস্ত উপকরণকে একটি সূচনা বিন্দু হিসেবে দেখা উচিত। সবকিছু পরীক্ষা করে দেখতে ভুলবেন না!
ব্রাউজার এবং সহায়ক প্রযুক্তি (AT) সমর্থন
আপনার ডেভেলপমেন্ট এনভায়রনমেন্টের জন্য উপযুক্ত হতে পারে এমন কয়েকটি বেস প্যাটার্ন, কম্পোনেন্ট বা একটি সম্পূর্ণ ডিজাইন সিস্টেম নিয়ে গবেষণা করার পর, আপনি সহায়ক প্রযুক্তি সাপোর্টের দিকে অগ্রসর হতে পারেন। প্যাটার্ন, কম্পোনেন্ট এবং ডিজাইন সিস্টেম মূল্যায়ন করার সময়, সহায়ক প্রযুক্তির একটি প্রধান ধরন যার উপর আপনাকে মনোযোগ দিতে হবে, তা হলো স্ক্রিন রিডার।
স্ক্রিন রিডারগুলো নির্দিষ্ট ব্রাউজারকে মাথায় রেখে তৈরি করা হয়েছে এবং এই ব্রাউজারগুলোর সাথেই এগুলো সবচেয়ে ভালোভাবে কাজ করে। আমরা AT টেস্টিং মডিউলে এই বিষয়টি নিয়ে আরও বিস্তারিত আলোচনা করব, কিন্তু প্যাটার্ন মূল্যায়নের জন্য এই সংমিশ্রণগুলোর অস্তিত্ব সম্পর্কে জানা সহায়ক, যাতে আপনি বুঝতে পারেন যে আপনার কী ধরনের সাপোর্ট প্রয়োজন।
| স্ক্রিন রিডার | ওএস | ব্রাউজার সামঞ্জস্যতা | খরচ |
|---|---|---|---|
| জব অ্যাক্সেস উইথ স্পিচ (JAWS) | উইন্ডোজ | ক্রোম, ফায়ারফক্স, এজ | লাইসেন্স প্রয়োজন (একটি বিনামূল্যের ৪০-মিনিটের সংস্করণ রয়েছে) |
| নন-ভিজ্যুয়াল ডেস্কটপ অ্যাক্সেস (NVDA) | উইন্ডোজ | ক্রোম এবং ফায়ারফক্স | বিনামূল্যে (ডাউনলোড প্রয়োজন) |
| বর্ণনাকারী | উইন্ডোজ | প্রান্ত | বিনামূল্যে (উইন্ডোজ মেশিনে অন্তর্নির্মিত) |
| ভয়েসওভার | ম্যাকওএস | সাফারি | বিনামূল্যে (ম্যাকওএস মেশিনে অন্তর্নির্মিত) |
| ওরকা | লিনাক্স | ফায়ারফক্স | বিনামূল্যে (গ্নোম-ভিত্তিক ডিস্ট্রিবিউশনগুলিতে অন্তর্নির্মিত) |
| টকব্যাক | অ্যান্ড্রয়েড | ক্রোম এবং ফায়ারফক্স | বিনামূল্যে (অ্যান্ড্রয়েড ওএস-এর নির্দিষ্ট কিছু সংস্করণে অন্তর্নির্মিত) |
| ভয়েসওভার | আইওএস | সাফারি | বিনামূল্যে (আইওএস ডিভাইসে অন্তর্নির্মিত) |
ব্রাউজার সাপোর্ট সাধারণত বেশ জটিল, এবং এর সাথে AT ডিভাইস ও ARIA স্পেসিফিকেশন যুক্ত হলে পরিস্থিতি আরও কঠিন হয়ে ওঠে।
কিন্তু সব খবরই খারাপ নয়। সৌভাগ্যবশত, HTML5 Accessibility , Accessibility Support , এবং WCAG-এর Custom Control Accessible Development Checklist-এর মতো চমৎকার রিসোর্সগুলো আমাদের বর্তমান ব্রাউজার ও AT ডিভাইসের সাপোর্ট আরও ভালোভাবে বুঝতে সাহায্য করে, এমনকি আদৌ কখন ARIA ব্যবহার করতে হবে, সেটাও বুঝতে সহায়তা করে।
এই রিসোর্সগুলোতে বিভিন্ন HTML এবং ARIA প্যাটার্নের উপ-উপাদানগুলোর রূপরেখা দেওয়া হয়েছে, যার মধ্যে ওপেন-সোর্স কমিউনিটি টেস্টও অন্তর্ভুক্ত। আপনি ডেস্কটপ, মোবাইল ব্রাউজার এবং AT ডিভাইসের জন্য কিছু প্যাটার্নের উদাহরণও পর্যালোচনা করতে পারেন। ফলস্বরূপ, এই রিসোর্সগুলো আপনাকে প্যাটার্ন, কম্পোনেন্ট এবং ডিজাইন সিস্টেম ব্যবহারের বিষয়ে আরও সহজবোধ্য সিদ্ধান্ত নিতে সাহায্য করতে পারে।
অন্যান্য বিবেচ্য বিষয়
একবার আপনি কয়েকটি সহজলভ্য বেস প্যাটার্ন বা কম্পোনেন্ট বেছে নিলে এবং ব্রাউজার ও AT ডিভাইস সাপোর্টের বিষয়টি বিবেচনায় রাখলে, আপনি প্যাটার্ন, কম্পোনেন্ট, ডিজাইন সিস্টেম এবং ডেভেলপমেন্ট এনভায়রনমেন্ট সম্পর্কিত আরও সুনির্দিষ্ট প্রাসঙ্গিক প্রশ্নগুলোর দিকে অগ্রসর হতে পারেন।
উদাহরণস্বরূপ, আপনি যদি কোনো ম্যানেজমেন্ট সিস্টেমে (CMS) কাজ করেন বা আপনার কাছে লিগ্যাসি কোড থাকে, তাহলে আপনি কোন প্যাটার্নগুলো ব্যবহার করতে পারবেন তার উপর কিছু সীমাবদ্ধতা থাকতে পারে। পর্যালোচনার পর, একাধিক প্যাটার্নের বিকল্প থেকে দ্রুত এক বা দুটি বিকল্প বেছে নেওয়া যেতে পারে।
অনেক জাভাস্ক্রিপ্ট ফ্রেমওয়ার্ক ডেভেলপারদের তাদের পছন্দের প্রায় যেকোনো প্যাটার্ন ব্যবহার করার সুযোগ দেয়। এই ধরনের ক্ষেত্রে, আপনার উপর বিধিনিষেধ কম থাকতে পারে এবং আপনি সবচেয়ে সহজলভ্য প্যাটার্ন বিকল্পটি বেছে নিতে পারেন।
প্যাটার্ন, উপাদান বা ডিজাইন সিস্টেম বেছে নেওয়ার সময় আরও কিছু বিষয় বিবেচনা করতে হয়, যেমন:
- কর্মক্ষমতা
- নিরাপত্তা
- সার্চ ইঞ্জিন অপ্টিমাইজেশন
- ভাষা অনুবাদ সহায়তা
- তৃতীয় পক্ষের ইন্টিগ্রেশন
এই বিষয়গুলো নিঃসন্দেহে আপনার প্যাটার্ন নির্বাচনে ভূমিকা রাখবে, কিন্তু যারা কন্টেন্ট এবং কোড তৈরি করছেন, তাদের কথাও আপনার বিবেচনা করা উচিত। আপনার নির্বাচিত প্যাটার্নটি অবশ্যই সম্পাদক বা ব্যবহারকারীর তৈরি কন্টেন্টের যেকোনো সম্ভাব্য সীমাবদ্ধতা সামলানোর জন্য যথেষ্ট শক্তিশালী হতে হবে এবং এমনভাবে তৈরি হতে হবে যাতে অ্যাক্সেসিবিলিটি বিষয়ে সব ধরনের জ্ঞানসম্পন্ন ডেভেলপাররা তা ব্যবহার করতে পারেন।