1 पॉइंट द्वारा GN⁺ 2024-11-19 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • BBC navigation bar component का बग

    • हाल ही में टीम ने एक अजीब बग को ठीक किया। उसे सिर्फ एक टीम सदस्य ही reproduce कर पा रहा था, और वह भी सिर्फ घर पर।
  • बग का कारण

    • BBC वेबसाइट पर 'More' बटन क्लिक करने पर मेन्यू खुलना चाहिए था, लेकिन बाहरी मॉनिटर पर यह काम नहीं कर रहा था।
    • यह समस्या सिर्फ बाहरी मॉनिटर पर होती थी, और Safari में यह समस्या नहीं थी।
  • समस्या को reproduce करना

    • पता चला कि बग सिर्फ तब होता था जब बाहरी मॉनिटर लैपटॉप के ऊपर रखा हो।
    • OS settings में मॉनिटर की position बदलकर इस समस्या को reproduce किया जा सकता था।
  • जांच की प्रक्रिया

    • पहला संकेत: Safari में बग नहीं होता था।
    • दूसरा संकेत: यह सिर्फ तब होता था जब बाहरी मॉनिटर मुख्य मॉनिटर के ऊपर और बाईं ओर होता था।
    • तीसरा संकेत: Chrome और Firefox में screenX और screenY की values negative थीं।
    • चौथा संकेत: बग सिर्फ तब होता था जब screenX और screenY negative हों।
    • पांचवां संकेत: Chrome और Firefox में मुख्य मॉनिटर का ऊपर-बायां कोना (0,0) coordinate होता है।
  • समाधान

    • isInvokedByMouse function को बदलकर यह जांच की गई कि screenX और screenY 0 नहीं हैं।
    • समस्या जटिल थी, लेकिन समाधान सरल निकला।
    • code refactoring की जरूरत है, लेकिन फिलहाल यह समाधान पर्याप्त है।
  • सीख

    • API कैसे काम करते हैं, इस बारे में की गई धारणाओं से सावधान रहना चाहिए।
    • कई तरह की testing के बावजूद यह बग पकड़ में नहीं आया।
    • इससे पता चला कि मॉनिटर configuration के अनुसार user experience बदल सकता है।
  • 2024-11-19 संशोधन: screenX के उपयोग को लेकर भ्रम था, और navigation component को refactor किया गया। अगले blog post में refactoring process और सवालों के जवाब दिए जाएंगे।

1 टिप्पणियां

 
GN⁺ 2024-11-19
Hacker News की राय
  • यह बताता है कि BBC की वेबसाइट पर कीबोर्ड और पॉइंटर से मेनू खोलने पर अलग व्यवहार क्यों दिखता है

    • कीबोर्ड से खोलने पर बिना animation के focus पहले लिंक पर चला जाता है
    • पॉइंटर से खोलने पर focus मेनू container पर चला जाता है
    • कीबोर्ड उपयोगकर्ताओं के लिए अनुभव बनाते समय click event device-independent होने के कारण उपयोगी है
  • isInvokedByMouse को संशोधित कर screenX और screenY के 0 न होने की जांच करने का तरीका सुझाया गया है

    • यह भी ध्यान में रखना चाहिए कि माउस वास्तव में 0,0 पर हो सकता है
    • event handler function की complexity कम करने के लिए अतिरिक्त refactoring की जरूरत है
  • BBC के accessibility में निवेश और bug खोजने की सराहना की गई है

    • यह पूछा गया है कि dropdown menu सभी उपयोगकर्ताओं के लिए एक जैसा क्यों नहीं खुलता
    • यह जिज्ञासा जताई गई है कि क्या web framework या web component ऐसी समस्याओं को हल कर सकते हैं
  • server-side template, CSS framework, और न्यूनतम JS का उपयोग करके समस्या हल करने की कोशिश की गई

    • यह निश्चित नहीं है कि यह BBC के accessibility standards के अनुरूप है या नहीं
  • यह इंगित किया गया है कि bug गलत heuristic की वजह से हुआ

    • सुझाव दिया गया है कि screenX और screenY coordinates जांचते समय केवल positive ही नहीं बल्कि negative values भी देखी जानी चाहिए
  • यह सवाल उठाया गया है कि वेबसाइट screen coordinates से माउस की स्थिति क्यों लेती है

    • दावा किया गया है कि केवल click event भी पर्याप्त जानकारी देता है
  • इस पर जिज्ञासा व्यक्त की गई है कि browser monitor के अनुसार अलग coordinates क्यों report करता है

    • चिंता जताई गई है कि web API के पास ऐसी जानकारी होना security और information tracking risk पैदा कर सकता है
  • माउस click और कीबोर्ड click में फर्क करने के सही तरीके पर सवाल किया गया है

    • mousedown और keydown events के आधार पर flag सेट करने का तरीका सुझाया गया है
  • तर्क दिया गया है कि screen coordinates की जगह viewport coordinates का उपयोग करना चाहिए

    • screen space में negative values को bug नहीं माना गया है
  • BBC के management और legal team की मंजूरी के बिना blog लिखने से प्रभावित होने की बात कही गई है