บั๊กของ WordPress ที่ส่งผลเฉพาะกับผู้ใช้ถนัดซ้าย
(shkspr.mobi)- บนอุปกรณ์มือถือมีปัญหาที่ กล่องตอบกลับคอมเมนต์ เปิดขึ้นมาอย่างกะทันหันระหว่างเลื่อนหน้าจอ และผู้ดูแลเว็บไซต์ที่เลื่อนด้วยนิ้วโป้งขวาไม่สามารถทำให้ปัญหาเกิดซ้ำได้
- สาเหตุมาจากลิงก์ reply ทางฝั่งซ้ายของหน้าและการจัดการ
touchstartของ WordPress ซึ่งการเลื่อนด้วยนิ้วโป้งซ้ายอาจนำไปสู่การแตะลิงก์โดยไม่ตั้งใจได้ - บั๊กนี้เคยถูกรายงานไว้แล้วใน WordPress Trac เมื่อ 7 ปีก่อน และโค้ดที่เกี่ยวข้องถูกเพิ่มเข้าไปในรีโพซิทอรีพัฒนา WordPress ตั้งแต่ปี 2017
- ในอดีตจำเป็นต้องมีการ หลีกเลี่ยงดีเลย์ 300ms เพื่อแยกความต่างระหว่างการแตะกับการซูมด้วยการแตะสองครั้ง แต่จากบทความของ Chrome ในปี 2013 และข้อมูลของ FastClick ในปี 2015 ก็ถือเป็นปัญหาที่ล้าสมัยไปแล้ว
- การแก้ไขทำโดย ลบโค้ดไม่กี่บรรทัด ออกจาก WordPress และมุ่งลดพฤติกรรมตอบกลับคอมเมนต์ที่ไม่พึงประสงค์ระหว่างการเลื่อนบนมือถือ
การปรับแต่งบล็อกและ JavaScript ของคอมเมนต์
- มีการใช้ การปรับแต่งแบบกำหนดเอง หลายอย่างบน WordPress ที่ติดตั้งแบบพื้นฐาน เพื่อรีดประสิทธิภาพของบล็อกให้มากที่สุด
- ลดการใช้ JavaScript ลงให้เหลือน้อยที่สุด และจัดให้ฟังก์ชันต่าง ๆ ทำงานได้แม้ไม่มี JavaScript
- อย่างไรก็ตาม บางฟังก์ชันก็ยังได้ประโยชน์จาก JavaScript และตัวอย่างที่เห็นชัดที่สุดคือ ระบบคอมเมนต์
ปัญหาที่ปรากฏเฉพาะตอนเลื่อนด้วยมือซ้าย
- ผู้อ่านรายหนึ่งแจ้งบั๊กของเว็บไซต์ โดยระหว่างเลื่อนหน้า กล่องคอมเมนต์ จะโผล่ขึ้นมาอย่างกะทันหันและรบกวนการใช้งาน
- ผู้ดูแลเว็บไซต์เองก็เลื่อนหน้าอยู่บ่อยครั้ง แต่ใช้เพียงนิ้วโป้งขวา จึงไม่เคยพบปัญหาเดียวกัน
- ผู้ใช้ที่รายงานบั๊กเลื่อนด้วยมือซ้าย และลิงก์ reply ที่เป็นต้นเหตุก็อยู่ทางซ้ายของหน้า
- เหตุการณ์ทัชที่ไม่ค่อยปรากฏเมื่อเลื่อนด้วยนิ้วโป้งขวา อาจเกิดขึ้นโดยไม่ตั้งใจได้เมื่อเลื่อนด้วยนิ้วโป้งซ้าย
การจัดการ touchstart ของ WordPress
- ปัญหานี้เคยถูก รายงานใน WordPress Trac เมื่อ 7 ปีก่อน
- ในปี 2017 นักพัฒนา WordPress ได้ เพิ่ม
touchstartlistener ให้กับการคลิกลิงก์ - เบราว์เซอร์ในอดีตไม่สามารถแยกได้อย่างแน่ชัดว่าเหตุการณ์ทัชคือจุดเริ่มต้นของการคลิก หรือเป็นจุดเริ่มต้นของการซูมด้วยการแตะสองครั้ง
- วิธีที่ให้เหตุการณ์ทำงานก่อนเมื่อมีการทัชบนลิงก์ สามารถมองได้ว่าเป็นการจัดการเพื่อหลีกเลี่ยง ดีเลย์ 300ms ในเวลานั้น
ปัญหาดีเลย์ 300ms ที่หมดไปแล้ว
- ดีเลย์ 300ms เวลาการแตะไม่ใช่ปัญหาที่ต้องจัดการด้วยวิธีแบบเดิมมานานแล้ว
- บทความในบล็อกนักพัฒนา Chrome ปี 2013 กล่าวถึงการหายไปของปัญหาดีเลย์ดังกล่าว
- แม้อ้างอิงตาม ข้อมูลของ FastClick ปี 2015 ปัญหานี้ก็ไม่ใช่ประเด็นหลักที่ต้องแก้อีกต่อไปแล้ว
- ดังนั้นจึงไม่ชัดเจนว่าทำไมในปี 2017 จึงมีการเพิ่มโค้ดในลักษณะที่ไปรบกวนผู้ใช้ที่เลื่อนด้วยมือซ้าย
วิธีแก้ไขและผลที่คาดหวัง
- หลังจากมีการรายงานบั๊กไป 7 ปี ก็มีการคอมมิต PR แก้ไขของ WordPress
- การแก้ไขนี้ไม่ใช่การเปลี่ยนแปลงที่ซับซ้อน แต่เป็นการ ลบโค้ดไม่กี่บรรทัด ออกจาก WordPress
- การเปลี่ยนแปลงนี้อาจช่วยลดปัญหาที่ลิงก์ reply ทำงานโดยไม่ตั้งใจระหว่างการเลื่อนบนมือถือ จนทำให้กล่องตอบกลับคอมเมนต์เปิดขึ้นมา
- ไม่มีฟีเจอร์จำกัดการเข้าถึงตามความถนัดมืออย่าง
<meta handed="right">และการเปลี่ยนแปลงครั้งนี้มุ่งป้องกันเหตุการณ์ทัชที่ไม่พึงประสงค์
1 ความคิดเห็น
ความคิดเห็นจาก Lobste.rs
มีหลายอย่างในโลกนี้ที่ออกแบบโดยยึด คนถนัดขวา เป็นหลักมากเกินไป แม้แต่ข้อความโฆษณาบนปากกา ก็มักวางทิศทางให้อ่านได้เมื่อถือด้วยมือขวา
แต่ถึงอย่างนั้น การใช้ชีวิตเป็นคนถนัดซ้ายก็เหมือนมีฟีเจอร์บล็อกโฆษณาติดตัวมาตามธรรมชาติอยู่บ้าง
“sinister disposition” นี่ตลกดี จำได้เลยว่าวันที่ได้รู้ว่า sinister กับ dexterous (dexter) แปลตรงตัวว่า ‘ซ้าย’ กับ ‘ขวา’ ตามลำดับ
ปรากฏการณ์ทางวัฒนธรรมที่ว่า ออกนอกบรรทัดฐาน → ชั่วร้าย ซึ่งเรายังคงแบกรับกันอยู่ทุกวันนี้ ยังน่าสนใจเสมอ
น่าจะเป็นเพราะคำดั้งเดิมที่หมายถึงซ้ายกลายเป็นคำต้องห้าม แล้วถูกแทนที่ด้วยคำใหม่ จากนั้นคำใหม่นั้นก็กลายเป็นคำต้องห้ามอีก วนซ้ำไปเรื่อย ๆ
[1]: https://reddit.com/r/asklinguistics/…
ปกติคนเราถือมือถือด้วย มือข้างที่ถนัด เท่านั้นหรือเปล่า? ผมถนัดซ้าย แต่ใช้มือถือด้วยสองมือแทบจะสุ่ม ๆ พอ ๆ กัน และนึกว่าทุกคนก็เป็นแบบนั้น
ตอนแรกถือมือถือด้วยมือขวาแล้วใช้มือซ้ายควบคุม แต่เมื่อเวลาผ่านไป นิ้วโป้งขวาเริ่มทำงานมากขึ้นเรื่อย ๆ จนสุดท้ายกลายเป็นจุดควบคุมหลัก
เมาส์ก็ใช้ด้วยมือขวา เพราะตอนเด็ก ๆ สายเมาส์ในห้องคอมพิวเตอร์สั้นเกินกว่าจะย้ายไปใช้ฝั่งซ้ายได้
ผมเองก็ถนัดซ้าย แต่มีหลายอย่างที่ทำด้วยมือขวา เช่น เขียนหนังสือ ในการเล่นเปียโนมือขวาก็เป็นมือเด่น และวิธีที่เพลงส่วนใหญ่ถูกเขียนขึ้นมาก็คงมีผลแน่นอน มือถือก็ใช้ทั้งสองมือ
แต่ถ้าเกินสองสามประโยคก็จะพิมพ์ด้วยนิ้วโป้งทั้งสองข้าง
น่าสนใจที่งานอื่นแทบทั้งหมดทำด้วยมือขวา แต่กับมือถือกลับเอนเอียงไปทาง ถือและใช้ด้วยมือซ้าย
ไม่แน่ใจว่าทำไม แต่คงเพราะใส่มือถือไว้ในกระเป๋าซ้าย ส่วนกระเป๋าสตางค์กับกุญแจไว้ทางขวา การใช้กุญแจและหยิบกระเป๋าสตางค์สะดวกกว่าถ้าใช้มือที่ถนัด สงสัยเหมือนกันว่าผมแปลกหรือเปล่า
สุดท้ายการเลื่อนหน้าจอหรืองานพื้นฐานก็ทำด้วยมือซ้าย แต่เวลาพิมพ์ข้อความยาว ๆ มักจะถือด้วยมือซ้ายแล้วใช้มือขวาปัดพิมพ์
การใช้
touchstartตรงนั้นผิดตั้งแต่แรกแล้วเมาส์ ทัช และ pointer ควรถูก activate ตอนปล่อย ไม่ใช่ตอนกดลง แต่จุดที่เริ่มกดต้องอยู่บน element เดียวกัน ส่วนอีเวนต์คีย์บอร์ดจะ activate ตอน keydown ไม่ใช่ keyup อย่างไรก็ตาม กรณีที่ปุ่มทำงานด้วย
Spaceแปลกตรงที่เป็น keyup และไม่เหมือนเมาส์ตรงที่ไม่สนใจด้วยว่า keydown เกิดบน element ไหนสามารถลองความเป็นไปได้ต่าง ๆ ด้วยอะไรแบบ
data:text/html,<button onclick=this.textContent=Math.random()>One</button><button onclick=this.textContent=Math.random()>Two</button>ได้การเตรียม activate ที่
touchstartเช่น เริ่มดึงข้อมูลจากเซิร์ฟเวอร์ล่วงหน้าถ้าจำเป็น น่าจะโอเค แต่การ สั่งให้ทำงานจริง ยังไม่ควรเกิดขึ้น ทว่าelement.addEventListener( 'touchstart', clickEvent );จัดการตรงนี้ผิดพอดีไม่เข้าใจว่าเรื่องนี้เกี่ยวอะไรกับ คนถนัดซ้าย
เป็นพฤติกรรมเฉพาะของทัชแพดที่คนใช้เมาส์เลยไม่รู้หรือเปล่า?