อย่าใช้แอตทริบิวต์ตัวยึดตำแหน่ง

เผยแพร่แล้ว: 2022-03-10
สรุปอย่างย่อ ↬ แอตทริบิวต์ตัวยึดตำแหน่งมีปัญหาจำนวนที่น่าประหลาดใจที่ทำให้ไม่สามารถส่งมอบสิ่งที่สัญญาไว้ได้ มาชี้แจงว่าทำไมคุณต้องหยุดใช้

แนะนำโดยเป็นส่วนหนึ่งของข้อกำหนด HTML5 แอตทริบิวต์ตัวยึดตำแหน่ง "แสดงถึงคำใบ้สั้น ๆ (คำหรือวลีสั้น ๆ) ที่มีวัตถุประสงค์เพื่อช่วยเหลือผู้ใช้ในการป้อนข้อมูลเมื่อตัวควบคุมไม่มีค่า คำใบ้อาจเป็นค่าตัวอย่างหรือคำอธิบายสั้น ๆ ของรูปแบบที่คาดไว้”

คุณลักษณะที่ดูเหมือนตรงไปตรงมานี้มีปัญหาจำนวนหนึ่งที่น่าประหลาดใจที่ทำให้ไม่สามารถส่งมอบสิ่งที่สัญญาไว้ได้ หวังว่าฉันจะเกลี้ยกล่อมให้คุณหยุดใช้

ถูกต้องทางเทคนิค

ปัจจัยการผลิตเป็นประตูที่อีคอมเมิร์ซเกือบทั้งหมดต้องผ่าน โดยไม่คำนึงถึงความรู้สึกของคุณที่มีต่อการเอาใจใส่ในการออกแบบ ปัจจัยการผลิตที่ใช้ไม่ได้จะทิ้งเงินไว้บนโต๊ะ

การมีอยู่ของแอตทริบิวต์ตัวยึดตำแหน่งจะไม่ถูกตั้งค่าสถานะโดยซอฟต์แวร์ตรวจสอบการช่วยสำหรับการเข้าถึงอัตโนมัติ อย่างไรก็ตาม นี่ไม่ได้หมายความว่าจะใช้งานได้เสมอไป ท้ายที่สุดแล้ว การช่วยสำหรับการเข้าถึงนั้นเกี่ยวกับผู้คน ไม่ใช่มาตรฐาน ดังนั้นจึงเป็นเรื่องสำคัญที่จะต้องคำนึงถึงอินเทอร์เฟซของคุณในแง่ที่นอกเหนือไปจากการทำงานผ่านรายการตรวจสอบ

เรียกมันว่าการแก้ไข การออกแบบที่ครอบคลุม การเข้าถึงแบบสากล อะไรก็ได้ จิตวิญญาณของปรัชญาเหล่านี้ล้วนมุ่งสร้างสิ่งที่ผู้คน—ทุกคน—สามารถใช้ได้ เมื่อมองผ่านเลนส์นี้ placeholder ก็ไม่สามารถจับได้

ปัญหา

การแปล

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

คุณลักษณะหนึ่งที่เบราว์เซอร์ข้ามไปคือ placeholder ด้วยเหตุนี้ เนื้อหาของ placeholder จะไม่ได้รับการแปลและจะยังคงเป็นภาษาต้นฉบับที่เขียนขึ้น

เพิ่มเติมหลังกระโดด! อ่านต่อด้านล่าง↓

หากมีคนขอให้แปลหน้า ความคาดหวังก็คือเนื้อหาที่มองเห็นได้ทั้งหมดจะได้รับการอัปเดต ตัวยึดตำแหน่งมักใช้เพื่อจัดเตรียมคำแนะนำการจัดรูปแบบอินพุตที่สำคัญ หรือใช้แทนที่องค์ประกอบ label ที่เหมาะสมกว่า (เพิ่มเติมในส่วนนั้นเล็กน้อย) หากเนื้อหานี้ไม่ได้รับการอัปเดตพร้อมกับส่วนที่เหลือของหน้าที่แปล มีความเป็นไปได้สูงที่บุคคลที่ไม่คุ้นเคยกับภาษานั้นจะไม่สามารถเข้าใจและดำเนินการป้อนข้อมูลได้สำเร็จ

นี่ควรเป็นเหตุผลเพียงพอที่จะไม่ใช้แอตทริบิวต์

แม้ว่าเราจะพูดถึงเรื่องการแปล แต่ก็ควรที่จะชี้ให้เห็นว่าสถานที่นั้นไม่เหมือนกับการตั้งค่าภาษา หลายคนตั้งค่าให้อุปกรณ์ของตนใช้ภาษาที่ไม่ใช่ภาษาราชการของประเทศที่รายงานโดยที่อยู่ IP ของเบราว์เซอร์ (ไม่พูดถึง VPN) และเราควรเคารพในสิ่งนั้น ตรวจสอบให้แน่ใจว่าได้อธิบายเนื้อหาของคุณตามความหมาย - เพื่อนบ้านของคุณจะขอบคุณ!

การทำงานร่วมกัน

การทำงานร่วมกันคือการทำให้ระบบต่างๆ แลกเปลี่ยนและทำความเข้าใจข้อมูล เป็นส่วนพื้นฐานของทั้งอินเทอร์เน็ตและเทคโนโลยีอำนวยความสะดวก

การอธิบายเนื้อหาของคุณอย่างมีความหมายทำให้สามารถทำงานร่วมกันได้ input ที่ทำงานร่วมกันได้ถูกสร้างขึ้นโดยการเชื่อมโยงองค์ประกอบ label กับมันโดยทางโปรแกรม ป้ายกำกับจะอธิบายวัตถุประสงค์ของช่องป้อนข้อมูล โดยให้บุคคลที่กรอกแบบฟอร์มพร้อมท์ให้ดำเนินการได้ วิธีหนึ่งในการเชื่อมโยง label กับ input คือการใช้แอตทริบิวต์ for ที่มีค่าที่ตรงกับ id ของอินพุต

หากไม่มีการจับคู่ for / id เทคโนโลยีอำนวยความสะดวกจะไม่สามารถระบุได้ว่าอินพุตมีไว้เพื่ออะไร การเชื่อมโยงแบบเป็นโปรแกรมได้จัดเตรียม API hook ที่ซอฟต์แวร์เช่นโปรแกรมอ่านหน้าจอหรือการจดจำเสียงสามารถใช้ หากไม่มีซอฟต์แวร์นี้ ผู้ที่อาศัยซอฟต์แวร์พิเศษนี้จะไม่สามารถอ่านหรือดำเนินการอินพุตได้

ไดอะแกรมแสดงให้เห็นว่าโค้ดถูกแปลงเป็นอินพุตที่แสดงผลอย่างไร และคุณสมบัติที่คำนวณของโค้ดนั้นถูกอ่านโดยเทคโนโลยีอำนวยความสะดวกอย่างไร รหัสคือการป้อนข้อความที่มีป้ายกำกับว่าชื่อของคุณ คุณสมบัติที่คำนวณได้ในรายการคือชื่อที่สามารถเข้าถึงได้ ซึ่งก็คือชื่อของคุณ และบทบาทของกล่องข้อความ
วิธีใช้มาร์กอัปความหมายสำหรับการนำเสนอด้วยภาพและเนื้อหาที่เข้าถึงได้ (ตัวอย่างขนาดใหญ่)

เหตุผลที่ฉันพูดถึงเรื่องนี้ก็คือ placeholder มักใช้แทนองค์ประกอบ label แม้ว่าฉันจะรู้สึกงุนงงเป็นการส่วนตัว แต่ดูเหมือนว่าจะได้รับความสนใจจากชุมชนการออกแบบ การคาดเดาความนิยมที่ดีที่สุดของฉันคือเอฟเฟกต์กริดที่มีความแม่นยำทางเรขาคณิต ซึ่งสร้างขึ้นเมื่อวางไว้ข้างๆ ฟิลด์อินพุตที่ไม่มีป้ายกำกับอื่นๆ ซึ่งทำหน้าที่เหมือนหญ้าชนิดหนึ่งของนักออกแบบ

แบบฟอร์มการสมัครของ Facebook หัวเรื่องเขียนว่า “ลงทะเบียน ได้ฟรีและจะเป็นตลอดไป” ตัวยึดตำแหน่งกำลังถูกใช้เป็นป้ายกำกับ เพื่อขอชื่อ นามสกุล หมายเลขโทรศัพท์หรืออีเมลของคุณ และสร้างรหัสผ่านใหม่สำหรับหน้าจอบัญชีของคุณ
ตัวอย่างของการทำให้ตารางป้อนข้อมูลจากเว็บไซต์สีน้ำเงินที่น่าอับอาย (ตัวอย่างขนาดใหญ่)

เอฟเฟกต์ป้ายกำกับลอยตัว ซึ่งเป็นลูกพี่ลูกน้องที่ใกล้ชิดกับปรากฏการณ์นี้ บางครั้งใช้แอตทริบิวต์ตัวยึดตำแหน่งแทน label เช่นกัน

สิ่งที่ควรค่าแก่การชี้ให้เห็นก็คือถ้าป้ายกำกับเชื่อมโยงกับอินพุตโดยทางโปรแกรม การคลิกหรือแตะที่ข้อความป้ายกำกับจะเน้นที่อินพุต เคล็ดลับเล็กๆ น้อยๆ นี้ให้พื้นที่เพิ่มเติมสำหรับการโต้ตอบกับอินพุต ซึ่งอาจเป็นประโยชน์ต่อผู้ที่มีปัญหาในการควบคุมมอเตอร์ ตัวยึดตำแหน่งที่ทำหน้าที่เป็นป้ายกำกับ เช่นเดียวกับป้ายกำกับแบบลอยไม่สามารถทำเช่นนั้นได้

ความรู้ความเข้าใจ

สำมะโนสหรัฐอเมริกาประจำปี 2559 ระบุว่ามีผู้คนเกือบ 15 ล้านคนที่รายงานว่ามีปัญหาด้านความรู้ความเข้าใจ และนั่นเป็นเพียงการนับเฉพาะบุคคลที่เลือกที่จะรายงานตนเองเท่านั้น จากการคาดการณ์นี้ เราสามารถสรุปได้ว่าข้อกังวลด้านความสามารถในการเข้าถึงทางปัญญาส่งผลกระทบต่อประชากรจำนวนมากในโลก

การรายงานตนเองเป็นสิ่งที่ควรค่าแก่การเรียกร้อง โดยที่บุคคลอาจไม่ทราบ หรือรู้สึกสบายใจที่จะแบ่งปันว่าตนมีสภาพการเข้าถึงทางปัญญา น่าเสียดายที่การเปิดเผยข้อมูลประเภทนี้ยังมีความอัปยศอยู่มาก เนื่องจากมักส่งผลกระทบต่อสิ่งต่างๆ เช่น โอกาสในการทำงานและที่อยู่อาศัย

ความรู้ความเข้าใจสามารถยับยั้งได้ตามสถานการณ์ หมายความว่ามันสามารถเกิดขึ้นกับคุณได้เป็นอย่างดี อาจได้รับผลกระทบจากสิ่งต่างๆ เช่น การทำงานหลายอย่าง การอดนอน ความเครียด การใช้สารเสพติด และภาวะซึมเศร้า ฉันอาจจะเหนื่อยนิดหน่อยที่นี่ แต่นั่นฟังดูเหมือนเงื่อนไขที่คุณจะพบได้ในงานสำนักงานส่วนใหญ่

จำ

ความกังวลด้านความรู้ความเข้าใจครอบคลุมถึงเงื่อนไขต่างๆ เช่น การสูญเสียความจำระยะสั้น อาการบาดเจ็บที่สมอง และโรคสมาธิสั้น สิ่งเหล่านี้ล้วนส่งผลต่อความสามารถของบุคคลในการเรียกคืนข้อมูล

เมื่อบุคคลป้อนข้อมูลลงในข้อมูลเข้า เนื้อหาตัวแทนจะหายไป วิธีเดียวที่จะกู้คืนได้คือลบข้อมูลที่ป้อน สิ่งนี้สร้างประสบการณ์ที่นำภาษานำทางออกทันทีที่บุคคลที่พยายามป้อนข้อมูลโต้ตอบกับมัน ไม่ค่อยดี!

ป้อนข้อมูลที่เรียกว่า "วันเกิดของคุณ" กำลังกรอก ตัวยึดตำแหน่งอ่านว่า "MM/DD/YYY" และภาพเคลื่อนไหวแสดงภาพบุคคลที่กรอกข้อมูลเพื่อไปยังส่วนปีและต้องลบข้อความเพื่อให้สามารถย้อนกลับและทบทวนว่าการจัดรูปแบบที่เหมาะสมคืออะไร
พวกเขาต้องการ MM/DD/YY หรือ MM/DD/YYYY? (ตัวอย่างขนาดใหญ่)

เมื่อความสามารถในการเรียกคืนข้อมูลของคุณถูกระงับ มันจะทำให้การปฏิบัติตามกฎที่หายไปเหล่านี้เป็นเรื่องที่น่ารำคาญ สำหรับข้อมูลป้อนเข้าที่มีความต้องการที่ซับซ้อนเพื่อตอบสนอง เช่น การสร้างรหัสผ่านใหม่ มันอยู่เหนือความรำคาญและกลายเป็นอุปสรรคที่ยากจะเอาชนะ

กำลังกรอกอินพุตที่เรียกว่า "สร้างรหัสผ่าน" ตัวยึดตำแหน่งอ่านว่า "8-15 อักขระ รวมทั้งตัวเลขอย่างน้อย 3 ตัวและสัญลักษณ์ 1 ตัว" และภาพเคลื่อนไหวแสดงภาพบุคคลที่กรอกข้อความต้องลบข้อความเพื่อให้สามารถย้อนกลับไปตรวจสอบข้อกำหนดของรหัสผ่านได้
เดี๋ยวนะ—ความยาวขั้นต่ำคือเท่าไร? พวกเขาต้องการอีกกี่หมายเลข? (ตัวอย่างขนาดใหญ่)

ในขณะที่ผู้ที่มีเทคโนโลยีซับซ้อนมากขึ้นอาจได้เรียนรู้กลเม็ดอันชาญฉลาด เช่น การตัดข้อมูลที่ป้อน การทบทวนเนื้อหาในตัวยึดตำแหน่งเพื่อรีเฟรชความทรงจำ จากนั้นวางกลับเข้าไปใหม่เพื่อแก้ไข ผู้ที่ไม่ค่อยมีความรู้ด้านเทคโนโลยีอาจไม่เข้าใจว่าทำไมเนื้อหาความช่วยเหลือถึง หายหรือจะเอาคืนยังไง

ความรู้ดิจิทัล

เมื่อพิจารณาว่าประชากรโลกออนไลน์มากขึ้นเรื่อยๆ ความรับผิดชอบตกอยู่กับเราในฐานะนักออกแบบและนักพัฒนาที่มีความรับผิดชอบ เพื่อทำให้คนเหล่านี้รู้สึกยินดี มุมเล็กๆ ของคุณบนอินเทอร์เน็ต (หรืออินทราเน็ต!) อาจเป็นหนึ่งในประสบการณ์ออนไลน์ครั้งแรกของพวกเขา โดยสมมติว่าผู้ใช้ปลายทาง "จะรู้ว่า" เป็นความเย่อหยิ่งธรรมดา

สำหรับผู้อ่านที่อยู่ในสหรัฐฯ การเตือนเบาๆ ว่าสิ่งใหม่อาจไม่ได้หมายถึงสิ่งแปลกปลอม การเข้าถึงกำลังเพิ่มขึ้นสำหรับชาวอเมริกันที่มีอายุมากกว่า ในขณะที่การรู้หนังสือดิจิทัลจะกลายเป็นเรื่องธรรมดาในหมู่ประชากรสูงอายุเมื่อเวลาผ่านไป ปัญหาการเข้าถึงก็เช่นกัน

สำหรับผู้ที่ไม่เคยพบมาก่อน ข้อความตัวยึดตำแหน่งอาจดูเหมือนเนื้อหาที่ป้อน ทำให้พวกเขาข้ามการป้อนข้อมูล หากเป็นฟิลด์บังคับ การส่งแบบฟอร์มจะสร้างประสบการณ์ที่น่าผิดหวังซึ่งพวกเขาอาจไม่เข้าใจว่าข้อผิดพลาดคืออะไร หรือจะแก้ไขอย่างไร หากไม่ใช่ฟิลด์บังคับ แบบฟอร์มของคุณยังคงมีความเสี่ยงที่ไม่จำเป็นในการรวบรวมข้อมูลสำรองที่อาจมีค่า

คุณประโยชน์

เนื้อหาวิธีใช้ตัวยึดตำแหน่งจำกัดอยู่เพียงสตริงข้อความคงที่เท่านั้น และอาจไม่เพียงพอต่อการสื่อสารข้อความเสมอไป อาจต้องมีการจัดรูปแบบเพิ่มเติม หรือมีมาร์กอัปที่สื่อความหมาย คุณลักษณะ รูปภาพ และรูปเคารพ

สิ่งนี้มีประโยชน์อย่างยิ่งในระบบการออกแบบที่เป็นผู้ใหญ่ ตัวเลือกการจัดสไตล์เพิ่มเติมที่สร้างขึ้นโดยการย้ายสตริงข้อความออกจากองค์ประกอบอินพุตหมายความว่าสามารถใช้ประโยชน์จากโทเค็นการออกแบบของระบบ และคุณประโยชน์ทั้งหมดที่มาพร้อมกับการใช้

ความยาวของข้อความตัวยึดยังถูกจำกัดตามความกว้างของข้อมูลที่ป้อนเข้าไป ในโลกที่ตอบสนองและเน้นอุปกรณ์เคลื่อนที่เป็นอันดับแรก มีโอกาสสูงมากที่ข้อมูลสำคัญจะถูกตัดทอน:

อินพุตที่เรียกว่า Your YAMA Code ซึ่งมีตัวยึดตำแหน่งที่ตัดทอนซึ่งอ่านออก คุณสามารถหาโค้ดนี้ได้บน ba-
ฉันเดาว่าฉันจะไม่มีทางรู้ว่ารหัสนั้นอยู่ที่ไหน (ตัวอย่างขนาดใหญ่)

วิสัยทัศน์

ความคมชัดของสี

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

น่าเสียดายที่เทคนิคนี้มีแนวโน้มที่จะเกิดปัญหาเกี่ยวกับคอนทราสต์ของสี คอนทราสต์ของสีเป็นอัตราส่วนที่กำหนดโดยการเปรียบเทียบความส่องสว่างของข้อความและค่าสีพื้นหลัง ในกรณีนี้ จะเป็นสีของตัวแทนข้อความบนพื้นหลังของอินพุต

ดูอัตราส่วนความคมชัดของตัวยึดตำแหน่งเบราว์เซอร์ Pen Default โดย Eric Bailey (@ericwbailey) บน CodePen

ดูอัตราส่วนความคมชัดของตัวยึดตำแหน่งเบราว์เซอร์ Pen Default โดย Eric Bailey (@ericwbailey) บน CodePen

หากเนื้อหาของตัวยึดตำแหน่งมีอัตราส่วนคอนทราสต์ต่ำเกินไปที่จะรับรู้ หมายความว่าข้อมูลที่สำคัญในการกรอกแบบฟอร์มให้สำเร็จอาจไม่สามารถมองเห็นได้โดยผู้ที่มีปัญหาด้านการมองเห็น สำหรับขนาดฟอนต์อินพุตทั่วไปส่วนใหญ่ อัตราส่วนคือ 4.5:1

เช่นเดียวกับข้อกังวลด้านการเข้าถึงทั้งหมด ภาวะสายตาเลือนรางอาจเป็นแบบถาวรหรือชั่วคราว ทางชีวภาพหรือด้านสิ่งแวดล้อม หรือรวมกันก็ได้ ความพิการทางชีวภาพรวมถึงเงื่อนไขต่างๆ เช่น สายตายาว ตาบอดสี รูม่านตาขยาย และต้อกระจก สภาพแวดล้อมรวมถึงสถานการณ์ต่างๆ เช่น แสงจ้าของดวงอาทิตย์ในตอนกลางวัน การตั้งค่าความสว่างต่ำเพื่อประหยัดแบตเตอรี่ หน้าจอความเป็นส่วนตัว คราบไขมันและเครื่องสำอางที่ทิ้งไว้บนหน้าจอของคุณโดยการโทรครั้งล่าสุด และอื่นๆ

อัตราส่วนนี้ไม่ใช่ความชอบด้านสุนทรียะส่วนตัวที่ฉันพยายามบังคับคนอื่นโดยพลการ เป็นส่วนหนึ่งของชุดของกฎเกณฑ์ที่พัฒนาขึ้นอย่างอุตสาหะ ซึ่งช่วยให้มั่นใจได้ว่าผู้คนจำนวนมากที่สุดเท่าที่จะเป็นไปได้สามารถใช้งานเทคโนโลยีดิจิทัลได้ โดยไม่คำนึงถึงความสามารถหรือสภาวการณ์ของพวกเขา การละเลยกฎเหล่านี้อย่างมีสติถือเป็นการสมรู้ร่วมคิดในการยกเว้น

และนี่คือส่วนเสีย: ในการพยายามรวมแอตทริบิวต์ตัวยึดตำแหน่ง สีของเนื้อหาตัวยึดตำแหน่งที่มีความคมชัดสูงที่อัปเดตอาจมืดพอที่จะตีความว่าเป็นอินพุตที่ป้อน แม้กระทั่งโดยผู้ที่รู้หนังสือทางดิจิทัลมากขึ้น สิ่งนี้จะเหวี่ยงปัญหากลับไปสู่ปัญหาทางปัญญา

ฟิลด์ที่อยู่อีเมลในหน้ารีเซ็ตรหัสผ่านของ GoFundMe มีตัวยึดตำแหน่งที่อ่านว่า email@address.com และตั้งค่าเป็นสีดำเข้มที่ทำให้ดูเหมือนอินพุตที่ป้อน ภาพหน้าจอ
สีข้อความตัวยึดบนหน้ารีเซ็ตรหัสผ่านของ GoFundMe ทำให้ดูเหมือนอินพุตที่ป้อน นอกจากนี้ ไอคอนเครื่องหมายถูกบนปุ่ม ขอรหัสผ่านใหม่ ทำให้ดูเหมือนว่าคำขอได้รับการประมวลผลแล้ว (ตัวอย่างขนาดใหญ่)

โหมดคอนทราสต์สูง

ระบบปฏิบัติการ Windows มีคุณลักษณะที่เรียกว่าโหมดความคมชัดสูง เมื่อเปิดใช้งาน จะกำหนดสีใหม่ให้กับองค์ประกอบอินเทอร์เฟซจากจานสีคอนทราสต์สูงพิเศษที่ใช้ตัวเลือกสีจำนวนจำกัด นี่คือตัวอย่างที่อาจมีลักษณะดังนี้:

ช่องป้อนข้อมูลที่มีป้ายกำกับว่า "จำนวนเงินบริจาค" และตัวยึดตำแหน่งที่อ่านว่า "$25.00" ภาพหน้าจอถูกถ่ายโดยใช้งานโหมดความคมชัดสูงของ Windows ดังนั้นองค์ประกอบตัวยึดตำแหน่งจึงดูเหมือนเนื้อหาข้อความที่ป้อน ภาพหน้าจอ
Windows 10 ตั้งค่าให้ใช้ธีม High Contrast Mode 1 ที่รัน Internet Explorer 11 (ตัวอย่างขนาดใหญ่)

ในโหมด placeholder สต์สูง เนื้อหาที่พักจะถูกกำหนดหนึ่งในสีคอนทราสต์สูงเหล่านั้น ทำให้ดูเหมือนข้อมูลที่เติมไว้ล่วงหน้า ดังที่ได้กล่าวไว้ก่อนหน้านี้ สิ่งนี้สามารถป้องกันไม่ให้ผู้คนเข้าใจว่าข้อมูลที่ป้อนเข้ามาอาจต้องการข้อมูลที่ป้อนเข้าไป

คุณอาจสงสัยว่าเป็นไปได้หรือไม่ที่จะอัปเดตสไตล์ในโหมดคอนทราสต์สูงเพื่อให้ตัวยึดตำแหน่งมีความเข้าใจมากขึ้น แม้ว่าจะกำหนดเป้าหมายโหมดคอนทราสต์สูงในคิวรี่สื่อได้ เราขอแนะนำให้คุณอย่าทำเช่นนั้น ผู้พัฒนา Front-end Kitty Giraudel กล่าวว่าดีที่สุด:

“โหมดคอนทราสต์สูงไม่ได้เกี่ยวกับการออกแบบอีกต่อไปแต่เป็นการใช้งานที่เข้มงวด คุณควรตั้งเป้าหมายให้อ่านง่ายที่สุด ไม่ใช่เพื่อความสวยงามของสี”

ผู้ที่อาศัยโหมดคอนทราสต์สูงใช้เพราะคาดเดาได้ การเปลี่ยนแปลงวิธีการนำเสนอเนื้อหาอย่างไม่เหมาะสมอาจรบกวนวิธีเดียวที่พวกเขาสามารถใช้คอมพิวเตอร์ได้อย่างน่าเชื่อถือ ในกรณีของการทำให้สีของตัวยึดตำแหน่งสว่างขึ้นเพื่อให้ดูเหมือนการใช้โหมดคอนทราสต์สูง คุณมีความเสี่ยงอย่างแท้จริงที่จะทำให้พวกเขาไม่สามารถรับรู้ได้

ทางออก

สรุป แอตทริบิวต์ตัวยึดตำแหน่ง:

  • ไม่สามารถแปลโดยอัตโนมัติ
  • มักใช้แทนฉลาก ล็อกเอาท์เทคโนโลยีอำนวยความสะดวก
  • สามารถซ่อนข้อมูลสำคัญเมื่อป้อนเนื้อหา
  • สามารถเป็นสีอ่อนเกินไปที่จะอ่านง่าย
  • มีตัวเลือกสไตล์ที่จำกัด
  • อาจดูเหมือนข้อมูลที่กรอกไว้ล่วงหน้าและถูกข้ามไป

อีส. ที่ไม่ดี แล้วเราจะทำอะไรกับมันได้บ้าง?

ออกแบบ

ย้ายเนื้อหาของตัวยึดตำแหน่งเหนืออินพุต แต่อยู่ใต้ป้ายกำกับ:

ข้อมูลที่ป้อนด้วยป้ายกำกับที่อ่าน หมายเลขรหัสพนักงานของคุณ และเนื้อหาความช่วยเหลือด้านล่างป้ายกำกับที่อ่าน สามารถพบได้ในโปรไฟล์อินทราเน็ตของพนักงานของคุณ ตัวอย่าง: a1234567-89 ID ตัวอย่างได้รับการกำหนดรูปแบบโดยใช้ฟอนต์แบบโมโนสเปซ
ตัวอย่างขนาดใหญ่

แนวทางนี้:

  • สื่อสารลำดับชั้นภาพและโครงสร้าง:
    • ข้อมูลที่ป้อนนี้มีไว้เพื่ออะไร
    • สิ่งที่คุณต้องรู้เพื่อใช้อินพุตให้สำเร็จและ
    • อินพุตนั้นเอง
  • แปลได้.
  • จะดูไม่เหมือนข้อมูลที่กรอกไว้ล่วงหน้า
  • สามารถมองเห็นได้ในสถานการณ์สายตาเลือนราง
  • จะไม่หายไปเมื่อมีการป้อนเนื้อหาลงในอินพุต
  • รวมมาร์กอัปความหมายและกำหนดสไตล์ผ่าน CSS ได้

นอกจากนี้ เนื้อหาความช่วยเหลือจะถูกเก็บไว้ดูเมื่อมีการเปิดใช้งานการป้อนข้อมูลบนอุปกรณ์ที่มีแป้นพิมพ์ซอฟต์แวร์ หากวางไว้ใต้อินพุต เนื้อหาอาจถูกบดบังเมื่อแป้นพิมพ์บนหน้าจอปรากฏขึ้นที่ด้านล่างของวิวพอร์ตของอุปกรณ์:

แป้นพิมพ์บนหน้าจอของ iOS บดบังข้อมูลเกี่ยวกับข้อกำหนดรหัสผ่านในอินพุต "ตั้งรหัสผ่าน" ภาพหน้าจอ
เนื้อหาที่ซ่อนอยู่โดยแป้นพิมพ์บนหน้าจอ แป้นพิมพ์ของบุคคลที่สามที่มีความสูงมากกว่าอาจมีความเสี่ยงที่จะบล็อกเนื้อหาที่สำคัญมากขึ้น (ตัวอย่างขนาดใหญ่)

การพัฒนา

ต่อไปนี้คือวิธีการแปลตัวอย่างที่ออกแบบของเราเป็นโค้ด:

 <div class="input-wrapper"> <label for="employee-id"> Your employee ID number </label> <p class="input-hint"> Can be found on your employee intranet profile. Example: <samp>a1234567-89</samp>. </p> <input name="id-number" type="text" /> </div>

นี่ไม่ใช่การออกจากการจับคู่แอตทริบิวต์ for / id แบบดั้งเดิมที่สามารถเข้าถึงได้มากเกินไป: องค์ประกอบ label เชื่อมโยงกับ input โดยทางโปรแกรมผ่านการประกาศ id ของ "รหัสพนักงาน" องค์ประกอบ p ที่วางอยู่ระหว่างองค์ประกอบ label และองค์ประกอบ input จะทำหน้าที่แทนแอตทริบิวต์ placeholder

“นั่นสินะ” คุณอาจจะสงสัย “ทำไมเราไม่ใส่เนื้อหาแทนที่ตัวยึดตำแหน่งทั้งหมดลงในองค์ประกอบ label ล่ะ ดูเหมือนว่าจะทำงานน้อยลงมาก!” คำตอบคือความสะดวกของนักพัฒนาไม่ควรมีความสำคัญเหนือประสบการณ์ของผู้ใช้

ด้วยการใช้ aria-describedby เพื่อเชื่อมโยง input กับองค์ประกอบ p โดยทางโปรแกรม เรากำลังสร้างลำดับความสำคัญของข้อมูลสำหรับโปรแกรมอ่านหน้าจอที่มีความเท่าเทียมกันกับสิ่งที่ผู้เรียกดูโดยไม่ต้องใช้โปรแกรมอ่านหน้าจอ aria-describedby ช่วยให้แน่ใจว่าเนื้อหา p จะได้รับการอธิบายเป็นลำดับสุดท้าย หลังจากเนื้อหาของ label และประเภทของข้อมูลเข้าที่เกี่ยวข้อง

กล่าวอีกนัยหนึ่ง นั่นคือสิ่งที่อินพุตต้องการ ต้องการ เป็นข้อมูลประเภทใด จากนั้นความช่วยเหลือเพิ่มเติมหากคุณต้องการ — สิ่งที่คนจะได้รับประสบการณ์หากพวกเขาดูอินพุตแบบฟอร์ม

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

การรวมเนื้อหาความช่วยเหลือไว้เป็นส่วนหนึ่งของ label ทำให้ใช้รายละเอียดโดยไม่จำเป็น label ควรสื่อความหมายแต่กระชับ การเพิ่มข้อมูลลงในป้ายกำกับมากเกินไปอาจให้ผลลัพธ์ที่ตรงกันข้ามกับที่ต้องการ ทำให้จำนานเกินไปหรือทำให้หงุดหงิดเกินกว่าจะฟังจนจบ อันที่จริง แนวทางการเข้าถึงเนื้อหาเว็บมีกฎที่กล่าวถึงสิ่งนี้โดยเฉพาะ: เกณฑ์ความสำเร็จ 2.4.6 และ 3.3.2

ตัวอย่าง

นี่คือโซลูชันที่ใช้ในโค้ดสด:

ดู ปากกา อย่าใช้แอตทริบิวต์ตัวยึดตำแหน่งโดย Eric Bailey (@ericwbailey) บน CodePen

และนี่คือวิดีโอที่แสดงให้เห็นว่าโปรแกรมอ่านหน้าจอยอดนิยมจัดการกับมันอย่างไร:

ทางออกที่ดีกว่า

“ยิ่งอินเทอร์เฟซต้องการผู้ใช้น้อยลงเท่าไหร่ ก็ยิ่งเข้าถึงได้มากขึ้นเท่านั้น”

— อลิซ บ็อกซ์ฮอลล์

ความคิดสุดท้าย: คุณต้องการข้อมูลตัวยึดตำแหน่งเพิ่มเติมหรือไม่?

โซลูชันฟรอนต์เอนด์ที่ดีใช้ประโยชน์จากแอตทริบิวต์อินพุตพิเศษและแนวปฏิบัติในการตรวจสอบความถูกต้อง เพื่อป้องกันการถ่ายโอนงานพิเศษไปยังบุคคลที่เพียงต้องการใช้ไซต์หรือแอปของคุณโดยให้ความซับซ้อนน้อยที่สุด

การเขียนคำโฆษณาที่ดีจะสร้างป้ายกำกับที่อธิบายวัตถุประสงค์ของข้อมูลที่ป้อนได้อย่างชัดเจนและรัดกุม ทำงานได้ดีพอที่นี่และฉลากจะตัดความคลุมเครือ โดยเฉพาะอย่างยิ่งหากคุณทดสอบก่อน

ประสบการณ์ผู้ใช้ที่ดีคือทั้งหมดที่เกี่ยวกับการสร้างกระแสอัจฉริยะที่ยึดเอาความต้องการ ความต้องการ และความต้องการของผู้คนโดยใช้ประโยชน์จากข้อมูลที่มีอยู่เพื่อขจัดคำถามที่ไม่จำเป็นออกไปให้ได้มากที่สุด

การช่วยเหลือผู้ที่ใช้เว็บไซต์หรือเว็บแอปของคุณหมายถึงการพิจารณาสิ่งที่คุณให้ความสำคัญเมื่อคุณท่องอินเทอร์เน็ต โดยการไม่ตั้งสมมติฐานเกี่ยวกับสถานการณ์ของผู้อื่น รวมถึงเทคโนโลยีที่พวกเขาใช้ คุณสามารถทำส่วนของคุณเพื่อช่วยป้องกันการกีดกัน

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

ยืนอยู่บนไหล่ของยักษ์ ขอบคุณ Roger Johansson, Adam Silver, Scott O'Hara และ Katie Sherwin ที่เขียนเรื่องนี้