शुरुआत native select आज़माने से करें, क्योंकि उससे keyboard सपोर्ट, focus संभालना और screen reader का बर्ताव मुफ्त मिलता है। अगर डिज़ाइन उसकी इजाज़त न दे, तो listbox या combobox pattern ढंग से लागू करें: focus खुद संभालें, arrow keys, Home, End, Escape और type ahead सपोर्ट करें, aria-expanded, aria-activedescendant तथा सही roles जोड़ें, और बंद होने पर focus वापस trigger पर लाएं।
इंटरव्यूअर यह क्यों पूछते हैं
एक्सेसिबिलिटी उन डेवलपरों को अलग करती है जो सबके लिए शिप करते हैं और जो सिर्फ माउस के लिए। इंटरव्यूअर जांच रहा है कि आपको पता है कि ARIA एक अनुबंध है जिसे आपको लागू करना पड़ता है, कोई ऐसा attribute नहीं जो बर्ताव जोड़ दे, और कि आप पहले native element की तरफ जाएंगे या नहीं। आप कैसे टेस्ट करते हैं, keyboard से और असली screen reader से, यह बताना सैद्धांतिक जवाब को भरोसेमंद बना देता है।
अपना जवाब कैसे स्ट्रक्चर करें
- बताएं कि आप पहले native element की तरफ जाते हैं और क्यों।
- इस pattern को जिन keyboard interactions की ज़रूरत है, वे गिनाएं।
- समझाएं कि ARIA हालत बताता है, बर्ताव जोड़ता नहीं।
- बताएं कि आप इसे कैसे टेस्ट करेंगे।
उदाहरण जवाब
मेरा पहला कदम यह सवाल उठाना है कि इसे बनाया ही क्यों जाए, क्योंकि native select बिना एक लाइन कोड के keyboard handling, mobile pickers और screen reader की घोषणाएं देता है, और ज़्यादातर डिज़ाइन उसके इर्द गिर्द styling से पूरे हो जाते हैं। जब हमें सच में custom चाहिए था, avatars वाले multi select के लिए, तो मैंने उसे मनमाने ढंग से नहीं, ARIA authoring practices वाले listbox pattern के हिसाब से बनाया। यानी trigger एक असली button है जिस पर aria-expanded और aria-controls हैं, popup पर role listbox है जिसके options पर role option और aria-selected हैं, और मैं सक्रिय option को aria-activedescendant से ट्रैक करता हूं ताकि focus input पर ही रहे। keyboard के लिहाज़ से आपको ऊपर और नीचे, Home और End, बंद करने तथा focus वापस trigger पर लाने के लिए Escape, चुनने के लिए Enter या Space, और कूदने के लिए type ahead चाहिए। जो अहम बात मैं लोगों से कहता हूं वह यह कि ARIA सिर्फ हालत बताता है; वह कोई बर्ताव नहीं जोड़ता, तो role button वाला ऐसा div जिस पर कोई key handler नहीं, बेकार से भी बदतर है। मैं पहले सिर्फ keyboard से, फिर screen reader से टेस्ट करता हूं, उसके बाद ही वह review के पास जाता है।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- options की list अपडेट हुई है, यह कैसे घोषित करेंगे?
- focus indicator के लिए कितना contrast ratio चाहिए?
- दिखने वाले label के मुकाबले aria-label कब गलत चुनाव है?
फुल स्टैक डेवलपर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें