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

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

ध्यान दें कि कुछ वैल्यू को छोड़कर, सब कुछ लोअरकेस में है. Android ने इन वैल्यू को नाम के तौर पर पहचाना है.

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

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

autocapitalize सिर्फ़ उन 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> वाक्यों में कैपिटल लेटर का इस्तेमाल वाक्य

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

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

HTMLTextAreaElement के लिए, अमान्य वैल्यू डिफ़ॉल्ट रूप से Sentences Capitalization होती है. यह डिफ़ॉल्ट व्यवहार से अलग है.

  • <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 का इस्तेमाल करें. उदाहरण के लिए, ब्लॉग पोस्ट.
  • अगर आपको ऐसे कॉन्टेंट की उम्मीद है जिस पर असर नहीं पड़ना चाहिए, तो टेक्स्ट एरिया पर none का इस्तेमाल करें. उदाहरण के लिए, कोड डालना.
  • अगर आपको सुझाव नहीं चाहिए, तो ऑटोकैपिटलाइज़ेशन की सुविधा न जोड़ें.