native elements semantics के साथ बर्ताव भी लाते हैं: button focus लायक होता है, Enter और Space पर चलता है, forms में हिस्सा लेता है और सही role तथा state मुफ्त में उजागर करता है। role button वाले div को लेबल तो मिल जाता है पर बर्ताव कुछ नहीं, तो tabindex, key handling और disabled state आपको खुद जोड़ने पड़ते हैं, और हर एक में गड़बड़ी हो सकती है। ARIA का पहला नियम यही है कि जहां HTML काम कर देता है वहां ARIA इस्तेमाल न करें।
इंटरव्यूअर यह क्यों पूछते हैं
एक्सेसिबिलिटी के सवाल उन लोगों को अलग कर देते हैं जिन्होंने एक बार ऑटोमेटेड audit चलाया है और जो सच में इस्तेमाल लायक components बनाते हैं। इंटरव्यूअर सुनना चाहता है कि ARIA यह बदलता है कि क्या घोषित होगा, पर वह न keyboard का बर्ताव जोड़ता है न focus संभालता है। कोई असली मामला बताना, जैसे नकली button जिस तक keyboard से पहुंचा ही नहीं जा सकता, साबित करता है कि आपने keyboard या screen reader से जांचा है, हरे Lighthouse स्कोर पर भरोसा नहीं किया।
अपना जवाब कैसे स्ट्रक्चर करें
- बंटवारा बताएं: native semantics के साथ बर्ताव देता है, ARIA सिर्फ नाम बदलता है।
- गिनाएं कि div इस्तेमाल करने पर आपको क्या क्या दोबारा बनाना पड़ता है।
- वह नियम बताएं कि जहां HTML है वहां ARIA न इस्तेमाल करें।
- ऐसा उदाहरण दें जहां native element ने असली मेहनत बचाई।
उदाहरण जवाब
ARIA सिर्फ यह बदलता है कि accessibility tree में क्या दिखता है। वह किसी चीज़ को focus लायक नहीं बनाता, key handling नहीं जोड़ता, और focus नहीं संभालता। तो जिस पल मैं role button वाला div लिखता हूं, मैंने tabindex zero, Enter तथा Space का handler, एक aria disabled state जिसे handler में भी लागू करना पड़ेगा, यह सब अपने सिर ले लिया, और फिर भी form submission नहीं मिलती। असली button मुझे यह सब देता है और ब्राउज़र बदलने पर भी सही बना रहता है। तो मेरा डिफ़ॉल्ट है पहले native: button, असली href वाला a, मेल खाते label वाला input, modals के लिए dialog, सादे disclosure के लिए details। ARIA की तरफ मैं तब जाता हूं जब सच में कोई native बराबरी नहीं है, जैसे tab set या combobox, और तब मैं roles गढ़ने की जगह authoring practices वाला pattern अपनाता हूं। जो bug मैं सबसे ज़्यादा देखता हूं वह table row में click होने वाला div है जिस तक keyboard यूज़र पहुंच ही नहीं सकता, और वह हर ऑटोमेटेड जांच पास कर जाता है क्योंकि markup में तकनीकी रूप से कुछ गलत है ही नहीं।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- custom tab component को keyboard से चलने लायक कैसे बनाएंगे?
- aria hidden क्या करता है, और वह कब नुकसान करता है?
- ऑटोमेटेड scanner चलाने से आगे आप इसे कैसे जांचते हैं?
फ्रंटएंड डेवलपर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें