मोबाइल के लिए अपने-आप कैपिटल लेटर का इस्तेमाल करें

पॉल किनलन
पॉल किनलन

यह आपको सबसे मुश्किल सुविधा लग सकती है, लेकिन मुझे लगता है कि यह ज़रूरी है, क्योंकि हर किसी को मोबाइल पर टाइप करना अच्छा नहीं लगता: आपको इससे नफ़रत है, मुझे इससे नफ़रत है. Android के लिए Chrome (Chrome 43 से पहले का बीटा वर्शन - अप्रैल 2015 से उपलब्ध) में डेवलपर के पास इस बात का बहुत कम कंट्रोल होता है कि ब्राउज़र, टेक्स्ट डालने में उपयोगकर्ता की मदद कैसे कर सकता है. अगर आप आज किसी डिवाइस पर टाइप कर रहे हैं, तो आपको ऐसा लग सकता है:

ध्यान दें कि Android की ओर से पहचाने गए कुछ वैल्यू को छोड़कर, सब कुछ छोटे अक्षरों में है.

Apple ने iOS 5 में HTMLInputElement और HTMLTextAreaElement पर auto Capital नाम का एट्रिब्यूट लॉन्च किया है. इसकी मदद से, पेज के लेखक को यह सुझाव दिया जा सकता है कि ब्राउज़र को वर्चुअल कीबोर्ड को किस तरह पेश करना चाहिए, ताकि टेक्स्ट एंट्री को उपयोगकर्ता के लिए ऑप्टिमाइज़ किया जा सके. सबसे आसान रूप में, यह बताया जा सकता है कि टेक्स्ट बॉक्स में हर नए वाक्य का पहला अक्षर अपने-आप बड़ा होना चाहिए.

Chrome 43 से, Chrome में HTMLInputElement और HTMLTextAreaElement, दोनों के लिए autocap एट्रिब्यूट काम करेगा. इससे आप वर्चुअल कीबोर्ड के अपने-आप बड़े होने की सेटिंग को कंट्रोल कर पाएंगे. साथ ही, iOS पर Safari के ज़रिए इसे इनलाइन कर पाएंगे.

autoCap सिर्फ़ उन HTMLInputElement पर लागू होगा जिनके लिए type एट्रिब्यूट इस पर सेट है: type="text", type="search", type="url", type="tel", type="email" या type="password". डिफ़ॉल्ट तौर पर, यह अपने-आप कैपिटल लेटर का इस्तेमाल नहीं करता है.

यहां एक आसान उदाहरण दिया गया है, जिसमें आपको टेक्स्ट एरिया में, वाक्यों को अपने-आप कैपिटल लेटर में रखने की सुविधा दी गई है:

<textarea autocapitalize="sentences">

अपने-आप बड़े होने की सुविधा किन वैल्यू को ले सकती है?

नीचे दी गई टेबल में उन अलग-अलग स्थितियों को दिखाया गया है जिनमें इनपुट एलिमेंट हो सकता है:

स्थिति कीवर्ड
<input>
<input autocapitalize=off>
कैपिटल लेटर का इस्तेमाल नहीं किया जाना कोई नहीं [डिफ़ॉल्ट]
बंद है
<input autocapitalize=characters> वर्णों के बड़े अक्षरों का इस्तेमाल करना वर्ण
<input autocapitalize=words> शब्दों का अक्षर बड़ा करना शब्दों
<input autocapitalize=sentences> वाक्य में कैपिटल लेटर का इस्तेमाल वाक्य

HTMLInputElement के लिए, अगर एलिमेंट का टाइप type=text या type=search है, तो अमान्य वैल्यू डिफ़ॉल्ट तौर पर वाक्य में कैपिटल लेटर का इस्तेमाल करती है. ऐसा न होने पर, कैपिटलाइज़ेशन नहीं है.

  • <input autocapitalize="simon"> में एक टेक्स्ट फ़ील्ड होगा, जिसमें वाक्य में कैपिटल लेटर का इस्तेमाल किया जाएगा
  • <input type="email" autocapitalize="simon"> एक टेक्स्ट फ़ील्ड होगा, जिसमें कैपिटलाइज़ेशन नहीं होगा.
  • <input> एक टेक्स्ट फ़ील्ड होगा, जिसमें कैपिटलाइज़ेशन नहीं होगा.

HTMLTextAreaElement के लिए, डिफ़ॉल्ट वैल्यू के तौर पर वाक्यों में बड़े अक्षरों का इस्तेमाल किया गया है. यह बदलाव डिफ़ॉल्ट तरीके से होता है.

  • <textarea autocapitalize="terry"></textarea> में एक टेक्स्ट एरिया होगा, जिसमें वाक्य में कैपिटल लेटर का इस्तेमाल किया जाएगा
  • <textarea></textarea> में वाक्य को कैपिटल लेटर में लिखना एक टेक्स्ट एरिया होगा.
  • <textarea autocapitalize="none"></textarea> एक टेक्स्ट एरिया होगा, जिसमें कैपिटलाइज़ेशन नहीं होगा.

HTMLFormElement के लिए, हमने इस एट्रिब्यूट को लागू न करने का फ़ैसला लिया है. हमें पता चला है कि आज-कल पेजों पर इसका इस्तेमाल बहुत कम होता है. जब इसका इस्तेमाल किया जाता है, तो ज़्यादातर मामलों में इसका इस्तेमाल फ़ॉर्म पर, ऑटोकैपिटलाइज़ेशन की सुविधा को बंद करने के लिए किया जाता है:

<form autocapitalize=off><input></form>

ऊपर दी गई वैल्यू अलग-अलग है, क्योंकि HTMLInputElement की डिफ़ॉल्ट स्थिति कैपिटलाइज़ेशन नहीं है.

आपने inputmode से ज़्यादा इसका इस्तेमाल क्यों किया है?

inputmode का इस्तेमाल, इसी तरह की दूसरी समस्याओं को हल करने के लिए किया जाता है. हालांकि, इसमें ब्राउज़र को लागू नहीं किया जा रहा है - हमारी जानकारी के मुताबिक, सिर्फ़ Firefox OS में ही इसे लागू किया गया है और यह प्रीफ़िक्स है (x-inputmode) - लेकिन वेब पर भी इसका बहुत कम इस्तेमाल किया गया है. वहीं दूसरी ओर, autocapitalize का इस्तेमाल, पहले से ही लाखों वेबसाइटों के लाखों पेजों पर किया जा रहा है.

मुझे इसका इस्तेमाल कब करना चाहिए?

यह इस बात की पूरी सूची नहीं है कि आपको autocapitalize का इस्तेमाल कब करना चाहिए. हालांकि, ऐसे कई जगहें हैं जहां टेक्स्ट डालने में उपयोगकर्ताओं की मदद करने से फ़ायदा होता है:

  • autocapitalization=words का इस्तेमाल तब करें, जब आप
    • लोगों के नाम डालना ज़रूरी है (ध्यान दें: सभी नाम इस नियम का पालन नहीं करते, लेकिन पश्चिमी नामों की संख्या, उम्मीद के मुताबिक अपने-आप कैपिटल लेटर में होगी)
    • कंपनी के नाम
    • पते
  • autocapitalization=characters का इस्तेमाल तब करें, जब आपको:
    • अमेरिका के राज्य
    • यूके के पिन कोड
  • अगर आपको ऐसा कॉन्टेंट चाहिए जिसे पैराग्राफ़ के सामान्य रूप में डाला गया है, तो इनपुट एलिमेंट के लिए sentences का इस्तेमाल करें - उदाहरण के लिए, कोई ब्लॉग पोस्ट.
  • अगर आपको ऐसा कॉन्टेंट चाहिए जिस पर असर नहीं होना चाहिए, तो TextAreas पर none का इस्तेमाल करें. उदाहरण के लिए, कोड डालना.
  • अगर आपको सुझाव नहीं देना है, तो ऑटोकैपिटल फ़ॉर्मैट का इस्तेमाल न करें.