อักษรตัวพิมพ์ใหญ่อัตโนมัติสำหรับมือถือ

นี่อาจดูไม่ใช่ฟีเจอร์ที่น่าประทับใจที่สุดที่มีอยู่ แต่ฉันคิดว่าเรื่องนี้สำคัญเพราะใครๆ ก็ไม่ชอบการพิมพ์บนอุปกรณ์เคลื่อนที่ ไม่ชอบเลย ฉันไม่ชอบเลย ใน Chrome สำหรับ Android (ก่อน Chrome 43 โดยรุ่นเบต้า ณ เดือนเมษายน 2015) นักพัฒนาซอฟต์แวร์จะควบคุมวิธีที่เบราว์เซอร์ช่วยให้ผู้ใช้ป้อนข้อความได้เพียงเล็กน้อย หากคุณกำลังพิมพ์บนอุปกรณ์อยู่ อาจมีลักษณะดังนี้

โปรดสังเกตว่าทุกอย่างเป็นตัวพิมพ์เล็ก นอกเหนือจากค่าบางค่าที่ Android รู้จักเป็นชื่อ

Apple เปิดตัวแอตทริบิวต์ใน HTMLInputElement และ HTMLTextAreaElement ที่เรียกว่าตัวพิมพ์ใหญ่อัตโนมัติ ใน iOS 5 และช่วยให้ผู้เขียนหน้าบอกใบ้วิธีที่เบราว์เซอร์ควรแสดงแป้นพิมพ์เสมือนให้ผู้ใช้เพื่อเพิ่มประสิทธิภาพการป้อนข้อความสำหรับผู้ใช้ ด้วยรูปแบบที่ง่ายที่สุด คุณสามารถระบุว่ากล่องข้อความควรใช้อักษรตัวพิมพ์ใหญ่กับอักษรตัวแรกของทุกประโยคใหม่โดยอัตโนมัติ

ตั้งแต่วันที่ Chrome 43 เป็นต้นไป Chrome จะรองรับแอตทริบิวต์ตัวพิมพ์ใหญ่อัตโนมัติทั้งใน HTMLInputElement และ HTMLTextAreaElement ซึ่งจะทำให้คุณควบคุมลักษณะการใช้อักษรตัวพิมพ์ใหญ่อัตโนมัติของแป้นพิมพ์เสมือน และแทรกในบรรทัดด้วย Safari ใน iOS

ตัวพิมพ์ใหญ่อัตโนมัติ จะมีผลกับ 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 สำหรับองค์ประกอบอินพุตหากต้องการให้ป้อนเนื้อหาในรูปแบบย่อหน้าปกติ เช่น บล็อกโพสต์
  • ใช้ none กับ TextAreas หากคุณคาดหวังว่าจะได้รับเนื้อหาที่ไม่ได้รับผลกระทบ เช่น การป้อนรหัส
  • หากไม่ต้องการคำใบ้ โปรดอย่าเพิ่มอักษรตัวพิมพ์ใหญ่อัตโนมัติ