มีหลายปัจจัยที่ต้องคำนึงถึง เพื่อแสดงจุดเหล่านั้นฉันจะใช้ตัวอย่างของเขตข้อมูลที่ผู้ใช้ควรป้อนเปอร์เซ็นต์ในบริบทของโควต้าที่กำหนดไว้สำหรับงานเฉพาะในแง่ของจำนวนเนื้อที่ดิสก์ที่สามารถใช้งานได้ 0% หมายถึงงานจะไม่สามารถเขียนอะไรลงดิสก์ได้ 100% หมายถึงงานที่สามารถเติมพื้นที่ดิสก์ทั้งหมด ค่าระหว่างนั้นหมายถึงสิ่งที่พวกเขาหมายถึง
ในฐานะนักพัฒนาซอฟต์แวร์คุณอาจกำลังพิจารณาว่าค่าที่ยอมรับได้คือ [0, 1, 2, 3, ⋯ 99, 100] และทุกอย่างอื่นเป็นเรื่องโง่ มาดูกันว่าทำไมผู้ใช้ยังสามารถป้อนค่า "โง่" เหล่านั้น
ความผิดพลาด
%^
ผู้ใช้ป้อนค่า 56 แต่กดผิดพลาดShiftขณะป้อน (ตัวอย่างเช่นเนื่องจากบนแป้นพิมพ์ภาษาฝรั่งเศสคุณต้องกดShiftเพื่อป้อนตัวเลขและผู้ใช้สลับระหว่างแป้นพิมพ์ภาษาฝรั่งเศสกับ QWERTY อย่างต่อเนื่อง)
ในทำนองเดียวกันคุณสามารถรับตัวเลขพร้อมบางสิ่งบางอย่างหลังจากหรือก่อนหน้าหรือในระหว่าง:
56q
ที่นี่ผู้ใช้อาจป้อนตัวเลขตามด้วยแท็บเพื่อย้ายไปยังฟิลด์ถัดไป แทนการกด ⇆ ผู้ใช้กดคีย์เพื่อนบ้าน
ความเข้าใจผิดและการตีความที่ผิด
อินพุตว่างอาจเป็นปกติที่สุด ผู้ใช้จินตนาการว่าฟิลด์นี้เป็นตัวเลือกหรือไม่ทราบว่าจะใส่อะไรในฟิลด์นี้
56.5
ผู้ใช้คิดว่าค่าจุดลอยตัวเป็นที่ยอมรับ ผู้ใช้ไม่ถูกต้องและแอปพลิเคชันควรอธิบายอย่างสุภาพว่าเหตุใดจึงยอมรับเฉพาะค่าจำนวนเต็มหรือข้อกำหนดเริ่มต้นผิดและเหมาะสมที่จะให้ผู้ใช้ป้อนค่าทศนิยม
none
ผู้ใช้เข้าใจผิดว่าเมื่อถามถึงพื้นที่ที่อาจใช้งานแอพนี้คาดว่าจะมีตัวเลข สิ่งนี้อาจบ่งบอกถึงส่วนต่อประสานผู้ใช้ที่ไม่ดี ตัวอย่างเช่นการถามผู้ใช้“ งานเนื้อที่ดิสก์ควรใช้มากน้อยเพียงใด?” เชิญให้ป้อนข้อมูลประเภทนี้ในขณะที่เขตข้อมูลที่มีเครื่องหมายเปอร์เซ็นต์ต่อไปนี้จะได้รับการป้อนข้อมูลประเภทนั้นน้อยลงเพราะ“ ไม่มี%” ความรู้สึกมาก
150
ผู้ใช้เข้าใจความหมายของเปอร์เซ็นต์ในกรณีนี้ บางทีผู้ใช้อาจต้องการบอกว่างานสามารถใช้พื้นที่ 150% ของพื้นที่ที่ใช้อยู่ในปัจจุบันดังนั้นหากใช้ดิสก์ 2 TB, 100 GB จะถูกใช้งานอาจใช้ 150 GB ส่วนติดต่อผู้ใช้ที่ดีขึ้นสามารถช่วยได้ ตัวอย่างเช่นแทนที่จะมีฟิลด์อินพุตเปล่าที่มีเครื่องหมายเปอร์เซ็นต์ต่อท้ายหนึ่งอาจมีสิ่งนี้:
[____] % of disk space (2 TB)
เมื่อผู้ใช้เริ่มพิมพ์ข้อความก็จะเปลี่ยนข้อความทันทีเพื่อให้เป็น:
[5___] % of disk space (102.4 GB of 2 TB)
การรับรอง
ตัวเลขหรือตัวเลขขนาดใหญ่ที่มีจุดลอยตัวสามารถแสดงต่างกันได้ ยกตัวอย่างเช่นจำนวน 1,234.56 1,234.56
สามารถเขียนเหมือนว่า: การแสดงข้อความของหมายเลขเดียวกันจะแตกต่างกันไปตามวัฒนธรรม ในฝรั่งเศส, 1 234,56
หมายเลขเดียวกันจะถูกเขียนเช่นนี้ ดูเครื่องหมายจุลภาคที่คุณไม่คาดหวังและช่องว่าง
การคาดหวังรูปแบบที่เจาะจงโดยใช้สถานที่เฉพาะจะทำให้คุณมีปัญหาไม่ช้าก็เร็วเพราะผู้ใช้จากประเทศต่าง ๆ จะมีนิสัยการเขียนตัวเลขวันที่และเวลาที่แตกต่างกัน
มนุษย์กับคอมพิวเตอร์
Twenty-four
มนุษย์ธรรมดาไม่ได้คิดแบบเดียวกับคอมพิวเตอร์ “ ยี่สิบสี่” เป็นตัวเลขจริงโดยไม่ขึ้นกับสิ่งที่พีซีจะบอกคุณ
แม้ว่า (1) ระบบส่วนใหญ่จะไม่จัดการกับการป้อนข้อมูลประเภทนี้ทั้งหมดและ (2) ผู้ใช้เกือบทุกคนจะไม่นึกถึงการป้อนตัวเลขที่เขียนด้วยตัวอักษรแบบเต็ม แต่ก็ไม่ได้หมายความว่าอินพุตนั้นโง่ ในAbout Face 3 Alan Cooper ชี้ให้เห็นว่าการไม่ใช้งานอินพุตนั้นเป็นเครื่องบ่งชี้ว่าคอมพิวเตอร์ไม่สามารถปรับตัวเข้ากับมนุษย์ได้และโดยพื้นฐานแล้วอินเตอร์เฟสควรจะสามารถจัดการอินพุตเหล่านั้นได้อย่างถูกต้อง
สิ่งเดียวที่ฉันจะต้องเพิ่มในสมุดที่อลันคูเปอร์ก็คือว่าในหลายกรณีตัวเลขจะถูกเขียนในตัวเลขโดยไม่ได้ตั้งใจ ความจริงที่ว่าคอมพิวเตอร์คาดหวังให้ผู้ใช้ทำผิดพลาด (และจะไม่ยอมให้ผู้ใช้ที่เขียนถูกต้อง) เป็นสิ่งที่น่ารำคาญ
Unicode
5𝟨
Unicode ขอสงวนความประหลาดใจของตัวเอง: ตัวละครที่มีหน้าตาเหมือนกันจะไม่เหมือนกัน ไม่เชื่อ คัดลอกวางกับเครื่องมือสำหรับนักพัฒนาของเบราว์เซอร์ของคุณและกด"5𝟨" === "56"
Enter
เหตุผลที่สตริงเหล่านั้นจะไม่เท่ากันก็คือว่าอักขระ Unicode ไม่ได้เป็นเช่นเดียวกับตัวละคร𝟨
6
สิ่งนี้จะสร้างสถานการณ์ที่ลูกค้าโกรธโทรมาโดยบอกว่าแอปของคุณไม่ทำงานแสดงภาพหน้าจอของอินพุตที่ดูถูกต้องและแอปของคุณอ้างว่าอินพุตนั้นไม่ถูกต้อง
ทำไมทุกคนถึงป้อนอักขระ Unicode ซึ่งดูเหมือนเป็นตัวเลขคุณจะถาม? ในขณะที่ฉันไม่คาดหวังให้ผู้ใช้ป้อนโดยไม่ตั้งใจ แต่การคัดลอกวางจากแหล่งอื่นอาจทำให้เกิดปัญหานั้นและฉันมีกรณีที่ผู้ใช้ทำคัดลอกวางของสตริงที่มีอักขระ Unicode ซึ่งจะไม่ ปรากฏบนหน้าจอ
ข้อสรุป
นี่คือกรณีที่คุณได้รับสำหรับช่องใส่หมายเลขประถม ฉันจะให้คุณจินตนาการถึงสิ่งที่คุณสามารถจัดการกับรูปแบบที่ซับซ้อนมากขึ้นเช่นวันที่หรือที่อยู่
คำตอบของฉันมุ่งเน้นไปที่สิ่งที่คุณเรียกว่า "โง่" การทดสอบไม่ได้เกี่ยวกับการตรวจสอบเส้นทางแห่งความสุข นอกจากนี้ยังเกี่ยวกับการตรวจสอบว่าแอปของคุณไม่แตกเมื่อผู้ใช้ที่ประสงค์ร้ายกำลังป้อนสิ่งแปลก ๆ โดยเจตนาพยายามทำลายมัน ซึ่งหมายความว่าเมื่อคุณขอเปอร์เซ็นต์คุณยังมีการทดสอบสิ่งที่เกิดขึ้นเมื่อผู้ใช้มีการตอบสนองกับสตริงที่มี 1,000,000 ตัวอักษรหรือจำนวนลบหรือตารางบ๊อบบี้