প্রকাশিত: ২০ মে, ২০২৫
যখন কোনো ওয়েব প্ল্যাটফর্মের ফিচার প্রতিটি ব্রাউজারে প্রয়োগ করা হয়, তখন তা 'বেসলাইন নিউলি অ্যাভেইলেবল' (Baseline Newly available) হয়ে যায়। ৩০ মাস পর, সেই ফিচারটি 'বেসলাইন ওয়াইডলি অ্যাভেইলেবল' (Baseline Widely available) হয়ে ওঠে, যা এমন একটি সীমা যার মধ্যে বেশিরভাগ ওয়েবসাইট সামঞ্জস্যতার (compatibility) উদ্বেগ ছাড়াই ফিচারগুলো গ্রহণ করতে পারে। এই নির্দেশিকাটি ব্যাখ্যা করে কীভাবে বেসলাইন ব্যবহার করতে হয় এবং আপনার ওয়েবসাইটের ব্যবহারকারীদের কাছ থেকে প্রাপ্ত ডেটা ব্যবহার করে কীভাবে একটি বেসলাইন লক্ষ্যমাত্রা (Baseline target) নির্বাচন করতে হয়।
বেসলাইন টার্গেট বলতে কী বোঝায়?
বেসলাইন টার্গেট হলো ওয়েব ফিচারগুলোর একটি সমষ্টি, যা ডেভেলপাররা তাদের বেসলাইন স্ট্যাটাসের উপর ভিত্তি করে সমর্থন করার জন্য বেছে নিতে পারেন। বেসলাইন টার্গেট দুই প্রকারের হয়: মুভিং টার্গেট এবং ফিক্সড টার্গেট।
মুভিং টার্গেট, যেমন ‘বেসলাইন ওয়াইডলি অ্যাভেইলেবল’ বা ‘বেসলাইন নিউলি অ্যাভেইলেবল’, হলো এমন টার্গেট যেখানে অন্তর্ভুক্ত ফিচারগুলো সময়ের সাথে সাথে পরিবর্তিত হতে পারে। মুভিং টার্গেট সেইসব ক্ষেত্রে কার্যকর যেখানে আপনি চান যে ব্রাউজারের নতুন সংস্করণ প্রকাশিত হওয়ার সাথে সাথে সমর্থিত ফিচারগুলোর সেট স্বয়ংক্রিয়ভাবে বিকশিত হোক।
স্থির লক্ষ্যমাত্রা হলো সেগুলো, যেখানে বৈশিষ্ট্যসমূহের সেট সময়ের সাথে সাথে পরিবর্তিত হয় না। সাধারণত, স্থির লক্ষ্যমাত্রাগুলো ক্যালেন্ডার বছরের উপর ভিত্তি করে নির্ধারিত হয়। উদাহরণস্বরূপ, বেসলাইন ২০২৩ হলো একটি স্থির লক্ষ্যমাত্রা, যাতে সেইসব ওয়েব বৈশিষ্ট্যসমূহের সেট রয়েছে যেগুলো ২০২৩ সালে ‘বেসলাইন নিউলি’ হিসেবে উপলব্ধ হয়েছে। বেসলাইন ২০২৩-এ এমন কোনো বৈশিষ্ট্য অন্তর্ভুক্ত থাকবে না যা ২০২৩ সালের পরে ‘বেসলাইন’ হয়েছে, যার অর্থ হলো বেসলাইন ২০২৩-এর বৈশিষ্ট্যসমূহের সেট কখনোই পরিবর্তিত হয় না।
যেসব ক্ষেত্রে পূর্বাভাসযোগ্যতা এবং নিয়তিবাদ সবচেয়ে গুরুত্বপূর্ণ, সেখানে স্থির লক্ষ্যমাত্রা নির্ধারণ করা যুক্তিযুক্ত, কিন্তু সময়ের সাথে সাথে তা অপ্রচলিত হয়ে যেতে পারে। তাই স্থির লক্ষ্যমাত্রা ব্যবহার করার সময় নিয়মিতভাবে আপনার লক্ষ্য পুনর্মূল্যায়ন করা উচিত।
কেন একটি লক্ষ্য বেছে নেওয়া হয়?
সামঞ্জস্যতার উদ্বেগের কারণে ওয়েবে বিভিন্ন ফিচারের ব্যবহার বাধাগ্রস্ত হয়—এবং এটি ওয়েবকে তার সম্ভাব্য সেরা রূপে পৌঁছাতে বাধা দেয়। বেসলাইন শুধু ব্রাউজারে ফিচার সমর্থনের প্রশ্নেই স্বচ্ছতা আনে না, বরং নির্দিষ্ট ফিচারগুলো কখন ব্যবহার করা যাবে, সেই প্রশ্নটিও স্পষ্ট করতে এটি সহায়ক হতে পারে। আপনার ব্যবহারকারী এবং প্রয়োজন অনুযায়ী একটি লক্ষ্যমাত্রা বেছে নেওয়ার মাধ্যমে, আপনি সেই নির্দিষ্ট গোষ্ঠীর ফিচারগুলো আত্মবিশ্বাসের সাথে ব্যবহার করতে পারেন—এর জন্য আপনাকে আলাদা আলাদা ফিচার এক এক করে পরীক্ষা করার প্রয়োজন হয় না।
আপনার বেসলাইন লক্ষ্য নির্বাচন করতে ডেটা ব্যবহার করুন।
সঠিক বেসলাইন টার্গেট নির্বাচন করার সিদ্ধান্তটি, সম্ভব হলে, ডেটা-ভিত্তিক হওয়া উচিত। যখন আপনার সামনে ডেটা থাকে, তখন কোন টার্গেটটি নির্বাচন করবেন সেই সিদ্ধান্তটি আরও সহজ এবং অনেক বেশি তথ্যসমৃদ্ধ হয়ে ওঠে।
আপনার সাইটের জন্য যদি রিয়েল ইউজার মনিটরিং ডেটা থাকে, তাহলে আপনি জানতে পারবেন বেসলাইন টার্গেটগুলো আপনার ব্যবহারকারীদের সাথে কীভাবে সম্পর্কিত। উদাহরণস্বরূপ, আপনি যদি গুগল অ্যানালিটিক্স ব্যবহার করেন, তাহলে এই তথ্য পাওয়ার একটি বিনামূল্যের উপায় হলো গুগল অ্যানালিটিক্স বেসলাইন চেকার ব্যবহার করা।
এই টুলটি ব্যবহার করার জন্য, আপনাকে আপনার গুগল অ্যাকাউন্ট দিয়ে প্রমাণীকরণ করতে হবে এবং আপনার গুগল অ্যানালিটিক্স ডেটা দেখার জন্য টুলটিকে শুধুমাত্র-পঠ্য (read-only) অনুমতি দিতে হবে। সেখান থেকে, আপনি যে গুগল অ্যানালিটিক্স প্রপার্টির জন্য বেসলাইন টার্গেট ডেটা তৈরি করতে চান, সেটি নির্বাচন করুন। এই ধাপগুলো সম্পন্ন করার পর, আপনি নিম্নলিখিতের মতো একটি আউটপুট পাবেন:

আমরা দেখতে পাচ্ছি যে অন্যান্য টুলও বেসলাইন-এর জন্য সাপোর্ট যুক্ত করছে, যা আপনাকে একটি নির্দিষ্ট টার্গেটকে আপনার অডিয়েন্সের কত অংশ সমর্থন করে তার একটি ডাইনামিক চিত্র দিতে পারে। উদাহরণস্বরূপ, RUMvision-এ একটি ড্যাশবোর্ড রয়েছে যা দেখায় যে আপনার অডিয়েন্সের কত অংশ প্রতিটি বেসলাইন বছরকে সমর্থন করে।

যদি আমার অ্যানালিটিক্স বা RUM প্রোভাইডারের কাছে এখনও কোনো বেসলাইন টার্গেট রিপোর্ট না থাকে, তাহলে কী হবে?
আপনি যদি এমন কোনো অ্যানালিটিক্স বা RUM টুল ব্যবহার করেন যা এখনও বেসলাইন টার্গেট রিপোর্ট প্রদান করে না, কিন্তু ব্রাউজার ভার্সনের ডেটা রয়েছে, তাহলে আপনি baseline-browser-mapping মডিউল থেকে ব্রাউজার ভার্সন ম্যাপিংয়ের সাথে আপনার রিয়েল-ওয়ার্ল্ড ডেটা যুক্ত করতে পারেন। এই মডিউলটি getAllVersions() নামে একটি জাভাস্ক্রিপ্ট ফাংশন প্রদান করে, যা নাম ও ভার্সন অনুযায়ী ব্রাউজারগুলোকে তাদের বেসলাইন বছর এবং 'Widely available'-এর সাপোর্ট স্ট্যাটাসের সাথে ম্যাপ করে। এই ম্যাপিংগুলো অ্যারে, কীড অবজেক্ট বা CSV ফাইল হিসেবে প্রদান করা যেতে পারে। উদাহরণস্বরূপ, Google Analytics Baseline Checker অ্যানালিটিক্স ডেটাকে বেসলাইন টার্গেটের সাথে যুক্ত করতে এই মডিউলটি ব্যবহার করে ।
এই ফাংশনের আউটপুটগুলো হোস্টেড JSON বা CSV ফাইল হিসেবেও পাওয়া যায়, যা প্রতিদিন আপডেট করা হয়। all_versions_with_supports.csv ফাইলটিতে এমন ডেটা রয়েছে যা আপনি নিম্নলিখিত ফিল্ডগুলোর সাহায্যে আপনার অ্যানালিটিক্স প্রোভাইডারের ব্রাউজার ভার্সন ডেটার সাথে মেলাতে পারবেন:
-
browser:baseline-browser-mappingএ ব্যবহৃত ব্রাউজারের নাম -
version: ব্রাউজারের সংস্করণ। কিছু ব্রাউজার শুধু মেজর ভার্সন নম্বর ব্যবহার করে, অন্যগুলো মেজর ও মাইনর ভার্সন নম্বর ব্যবহার করে। -
year: এই ব্রাউজার সংস্করণটি যে বেসলাইন বছরের ফিচার সেট সমর্থন করে। যদি কোনো ব্রাউজার সংস্করণ জুলাই ২০১৫-তে বেসলাইন সমর্থন নির্ধারণ করার আগে প্রকাশিত হয়ে থাকে, তাহলে এই ফিল্ডেpre_baselineথাকবে। -
supports: এই ফিল্ডটিতে সেইসব ব্রাউজার সংস্করণের জন্যwidely' বাnewlyলেখা থাকে, যেগুলো ওই বৈশিষ্ট্যগুলো সমর্থন করে; এবং যেসব সংস্করণ এই বৈশিষ্ট্যগুলোর কোনোটিই সমর্থন করে না, সেগুলোর জন্য এটি খালি থাকে। যেসব ব্রাউজার সংস্করণ 'নতুনভাবে উপলব্ধ' সমর্থন করে, সেগুলো 'ব্যাপকভাবে উপলব্ধ'-ও সমর্থন করে। -
release_date: এই ব্রাউজার সংস্করণটি প্রকাশের তারিখ, যদি উপলব্ধ থাকে। -
engine: কোর বেসলাইন ব্রাউজারের পরবর্তী ধাপের ব্রাউজারগুলোর ইঞ্জিনের নাম। এখানে শুধু ব্লিংক-ভিত্তিক ব্রাউজারগুলো অন্তর্ভুক্ত, তবে ভবিষ্যতে অন্যান্য ব্রাউজার ইঞ্জিনও যুক্ত হতে পারে। -
engine_version: এই ব্রাউজার সংস্করণটি যে ক্রোমিয়াম সংস্করণটি প্রয়োগ করে। পরবর্তী সংস্করণটি কোন বেসলাইন ফিচার সেট সমর্থন করবে, তা নির্ধারণ করতে এটি ব্যবহৃত হয়।
নতুন ব্রাউজার সংস্করণ প্রকাশিত হওয়ায় এবং বিভিন্ন ব্রাউজারের সাপোর্ট স্ট্যাটাস পরিবর্তিত হওয়ায় এই ফাইলটি ঘন ঘন আপডেট করা হয়। প্রতিদিন ডেটা রিফ্রেশ করে নিতে ভুলবেন না।
যদি আমার কাছে প্রকৃত ব্যবহারকারীদের কাছ থেকে পাওয়া সহায়ক ডেটা না থাকে তাহলে কী হবে?
আপনি এমন পরিস্থিতিতে পড়তে পারেন যেখানে বেসলাইন ফিচারগুলোর ক্ষেত্রে আপনি প্রকৃত ব্যবহারকারীর ডেটা পাচ্ছেন না। সুখবর হলো, আপনি RUM Archive Insights- এর মাধ্যমে বিভিন্ন বেসলাইন টার্গেটের সাপোর্ট সম্পর্কে একটি সাধারণ ধারণা পেতে পারেন, এমনকি এটি আপনাকে দেশ-স্তর পর্যন্ত ফিল্টার করার সুযোগও দেয়। যদিও এই ডেটা আপনার ওয়েবসাইটের ব্যবহারকারীদের জন্য নির্দিষ্ট হবে না, এটি একটি সাধারণ তথ্যমূলক টুল যা প্রমাণ করে যে নিম্নলিখিত অনুমানগুলো সাধারণত নিরাপদ:
- নতুন বেসলাইন টার্গেটগুলো—যেমন চলতি বছর বা তার আগের বছরের—আপনার ব্যবহারকারীদের মধ্যে সবচেয়ে কম সমর্থন পাওয়ার সম্ভাবনা থাকে। তবে, যেকোনো বেসলাইন টার্গেটের মতোই, সময় অতিবাহিত হওয়ার সাথে সাথে এগুলোর সমর্থনও বাড়বে।
- পুরোনো বেসলাইন লক্ষ্যমাত্রাগুলো—বিশেষ করে ‘বেসলাইন ওয়াইডলি অ্যাভেইলেবল’—ভালোভাবে সমর্থিত হবে। সন্দেহের ক্ষেত্রে, ‘ওয়াইডলি অ্যাভেইলেবল’ একটি চমৎকার লক্ষ্যমাত্রা, যা ৩০ মাসের সময়সীমা অতিবাহিত হওয়ার সাথে সাথে পরিবর্তিত হয়।
- এমনকি পুরোনো বেসলাইন টার্গেটগুলোও—যেগুলো ৩০ মাসের ‘ওয়াইডলি অ্যাভেইলেবল’ সময়সীমা অনেক আগেই পার করে ফেলেছে—সেরা সাপোর্ট পাবে। যদিও ‘ওয়াইডলি অ্যাভেইলেবল’ একটি ভালো ডিফল্ট টার্গেট, তবে বিশেষ ব্যবহারের ক্ষেত্রগুলোর জন্য কঠোর SLA প্রয়োজন হয়।
সম্ভাবনা আছে যে, আপনি পাঁচ বছরের বেশি পুরোনো কোনো বেসলাইন টার্গেট বেছে নিলেও, এমন সব ফিচার গ্রহণ করতে পারবেন যা আপনি এই মুহূর্তে ব্যবহার করছেন না। সবচেয়ে ভালো পরিস্থিতিতে, আপনি হয়তো ইতিমধ্যেই এই ফিচারগুলো ব্যবহার করছেন, কিন্তু এমন সব পলিফিলসহ যা আপনার প্রয়োজন নাও হতে পারে ।
আমার প্রজেক্টে নির্বাচিত বেসলাইন টার্গেট কীভাবে প্রয়োগ করব?
ব্রাউজারলিস্ট হলো আপনি যে ব্রাউজারগুলোকে সমর্থন করতে চান, সেগুলোকে নির্দিষ্ট করার একটি বহুল ব্যবহৃত পদ্ধতি। কোডের কোনো নির্দিষ্ট অংশকে রূপান্তর বা এমনকি পলিফিল করার প্রয়োজন আছে কিনা, তা নির্ধারণ করতে এটি বান্ডলার এবং ব্যাবেল ও পোস্টসিএসএস-এর মতো অন্যান্য সংশ্লিষ্ট টুলগুলোতে ব্যবহৃত হয়।
এখন ব্রাউজারলিস্টের সাথে বেসলাইন ব্যবহার করা সম্ভব, যার ফলে আপনি যখন একটি বেসলাইন টার্গেট নির্বাচন করবেন, তখন সেটিকে একটি বৈধ ব্রাউজারলিস্ট কোয়েরি হিসেবে নির্দিষ্ট করতে পারবেন। এটি নিশ্চিত করে যে আপনার প্রোজেক্টের টুলগুলো আপনার নির্বাচিত টার্গেট অনুযায়ী কোড রূপান্তর করবে। আরও তথ্যের জন্য, "ব্রাউজারলিস্টের সাথে বেসলাইনের ব্যবহার" পড়ুন।
যেসব ফিচার আমার বেসলাইন টার্গেট পূরণ করে না, সেগুলোর ব্যাপারে কী হবে?
একটি বেসলাইন টার্গেট নির্বাচন করার পর, এমন কিছু ফিচার থাকতে পারে যা আপনি ব্যবহার করতে চান, কিন্তু সেগুলো সেই টার্গেটের অন্তর্ভুক্ত নয়। এক্ষেত্রে আপনার কী করা উচিত, তা বেসলাইন আপনাকে বলে দেয় না; এবং আপনি এই ফিচারগুলো ব্যবহার করার কথা বিবেচনা করবেন কি না, তা নির্ভর করে আপনি কী ধরনের ওয়েবসাইট তৈরি করছেন এবং আপনার প্রত্যাশিত দর্শক কারা, তার উপর।
উদাহরণস্বরূপ, ইকমার্স বা বি২বি ওয়েবসাইটগুলো কম সাপোর্ট থ্রেশহোল্ড রাখতে এবং ব্যবহারকারীদের সহায়তার ভিত্তিতে সমস্যাগুলো সমাধান করতে ইচ্ছুক হতে পারে, যেখানে সরকারি ওয়েবসাইটগুলোর জন্য উচ্চ সাপোর্ট থ্রেশহোল্ডের প্রয়োজন হতে পারে। এক্ষেত্রে একটি গুরুত্বপূর্ণ সাধারণ নিয়ম হলো, সব ওয়েব ফিচার একই উপায়ে ব্যর্থ হয় না । ফিচারগুলো কীভাবে ব্যর্থ হয় তার উপর ভিত্তি করে সেগুলোকে শ্রেণীবদ্ধ করার অনেক উপায় আছে, কিন্তু যে ফিচারগুলো কার্যকর হতে পারে সেগুলোকে কয়েকটি ভাগে ভাগ করার একটি উপায় হলো এইরকম:
- উন্নয়ন: ফিচারটি কোনো অসমর্থিত ব্রাউজারে ব্যবহার করা হলেও অভিজ্ঞতায় কোনো সমস্যা হয় না। অভিজ্ঞতা হয়তো কিছুটা খারাপ হতে পারে, কিন্তু ব্যবহারকারীর কাছে তা লক্ষণীয় নাও হতে পারে। উদাহরণ:
loading="lazy"। - অতিরিক্ত: এই বৈশিষ্ট্যটি কিছু অতিরিক্ত সুবিধা প্রদান করে যা লক্ষণীয় হতে পারে—যেমন পৃষ্ঠার স্টাইলিং বা কিছু কার্যকারিতায় পরিবর্তন। যদি বৈশিষ্ট্যটি অসমর্থিত হয়, তবে ব্যবহারকারীরা পার্থক্যটি লক্ষ্য নাও করতে পারেন, যদি না এমন কোনো ব্রাউজারে তুলনা করা হয় যা এটিকে সমর্থন করে। উদাহরণ: সাবগ্রিড
- গুরুতর: যদি ফিচারটি অসমর্থিত হয়, তাহলে ব্যবহারকারীর অভিজ্ঞতা খারাপ হবে—এমনকি তা পুরোপুরি অকার্যকরও হয়ে যেতে পারে। উদাহরণ: ফাইল সিস্টেম অ্যাক্সেস এপিআই, যা একটি কেন্দ্রীয় এবং প্রয়োজনীয় ফিচার হিসেবে ব্যবহৃত হয়।
আপনি হয়তো এটাও দেখতে পারেন যে আপনার টার্গেটের বাইরের নির্দিষ্ট কিছু ফিচারের সাপোর্ট আপনার ধারণার চেয়েও ভালো। আপনার কতজন ব্যবহারকারী একটি নির্দিষ্ট ফিচারের সাপোর্ট পাচ্ছেন, তা বোঝা সম্ভব। Can I Use আপনার অ্যানালিটিক্স ডেটার সাথে মিলিয়ে স্বতন্ত্র ফিচারগুলোর সাপোর্ট যাচাই করার ক্ষমতা রাখে। আপনার জন্য সহায়ক হলে, RUMvision-এরও ফিচার লেভেলের ডেটা আরও গভীরে গিয়ে বিশ্লেষণ করার ক্ষমতা রয়েছে।
এইভাবে, আপনি আপনার বেসলাইন টার্গেট ব্যবহার করে সেইসব ফিচারের সংখ্যা কমাতে পারেন যেগুলোকে আপনাকে সতর্কতার সাথে বিবেচনা করতে হবে। আপনার টার্গেটের ভেতরের সবকিছু নিয়ে আপনাকে চিন্তা করতে হবে না। যদি আপনার টার্গেটের বাইরে এমন এক বা দুটি ফিচার থাকে যা বিশেষভাবে দরকারি হতে পারে—তবে সেগুলোকে আরও খতিয়ে দেখার এবং পলিফিল করবেন নাকি প্রগ্রেসিভ এনহ্যান্সমেন্ট হিসেবে ব্যবহার করবেন, সেই সিদ্ধান্ত নেওয়ার জন্য আপনার কাছে প্রয়োজনীয় টুলস রয়েছে।
উপসংহার
প্রতিটি ওয়েব অ্যাপ্লিকেশনের ভিন্ন ভিন্ন প্রয়োজনীয়তা থাকে—একটি ই-কমার্স সাইট যা আরও বেশি ইনকম্প্যাটিবিলিটি সমস্যা সহ্য করতে পারে, থেকে শুরু করে একটি সরকারি ওয়েবসাইট যা অবশ্যই যত বেশি সম্ভব ব্যবহারকারীর জন্য উপলব্ধ এবং কার্যকর থাকতে হবে। এই হিসাবগুলো আপনাকে নিজেই করতে হবে, এবং নতুন ওয়েব ফিচার গ্রহণ করার ক্ষেত্রে কী সিদ্ধান্ত নিতে হবে তা বলা বেসলাইনের উদ্দেশ্য নয়, বরং এটি কীভাবে তা করবেন , সেই বিষয়।