গ্যাসেকের উত্তরের ভিত্তিতে এবং ওয়েভ ব্রাউজার এক্সটেনশনের সাথে @ ওয়েবসিডের উদাহরণ বিশ্লেষণ করার পরে , আমি নিম্নলিখিত সংস্করণটি নিয়ে এসেছি যা বিপরীত অনুপাতের ভিত্তিতে কালো বা সাদা পাঠ্য চয়ন করে (ডাব্লু 3 সি এর ওয়েব সামগ্রী অ্যাক্সেসিবিলিটি গাইডলাইনস (ডাব্লুসিএজি) ২.১ এ সংজ্ঞায়িত ) পরিবর্তে, luminance।
এটি কোড (জাভাস্ক্রিপ্টে):
// As defined in WCAG 2.1
var relativeLuminance = function (R8bit, G8bit, B8bit) {
var RsRGB = R8bit / 255.0;
var GsRGB = G8bit / 255.0;
var BsRGB = B8bit / 255.0;
var R = (RsRGB <= 0.03928) ? RsRGB / 12.92 : Math.pow((RsRGB + 0.055) / 1.055, 2.4);
var G = (GsRGB <= 0.03928) ? GsRGB / 12.92 : Math.pow((GsRGB + 0.055) / 1.055, 2.4);
var B = (BsRGB <= 0.03928) ? BsRGB / 12.92 : Math.pow((BsRGB + 0.055) / 1.055, 2.4);
return 0.2126 * R + 0.7152 * G + 0.0722 * B;
};
var blackContrast = function(r, g, b) {
var L = relativeLuminance(r, g, b);
return (L + 0.05) / 0.05;
};
var whiteContrast = function(r, g, b) {
var L = relativeLuminance(r, g, b);
return 1.05 / (L + 0.05);
};
// If both options satisfy AAA criterion (at least 7:1 contrast), use preference
// else, use higher contrast (white breaks tie)
var chooseFGcolor = function(r, g, b, prefer = 'white') {
var Cb = blackContrast(r, g, b);
var Cw = whiteContrast(r, g, b);
if(Cb >= 7.0 && Cw >= 7.0) return prefer;
else return (Cb > Cw) ? 'black' : 'white';
};
একটি কার্যকারী উদাহরণ আমার ওয়েবসাইডের কোডপেনের কাঁটাচামুতে পাওয়া যেতে পারে , যা ওয়েভের শূন্য নিম্ন বিপরীতে ত্রুটি তৈরি করে।