หลักการสำคัญของการพัฒนาเว็บ: กฎแห่งสิทธิ์ขั้นต่ำ
- หนึ่งในหลักการสำคัญของการพัฒนาเว็บคือ 'กฎแห่งสิทธิ์ขั้นต่ำ' ซึ่งหมายถึงการเลือกภาษาระดับต่ำสุดที่เหมาะกับวัตถุประสงค์ที่กำหนด
- ในบรรดา HTML, CSS, JS นั้น HTML เป็นตัวเลือกที่ควรให้ความสำคัญที่สุด ตามด้วย CSS และสุดท้ายคือ JS
- แม้ JS จะยืดหยุ่นได้มากที่สุด แต่ก็มาพร้อมความเสี่ยง เช่น การโหลดล้มเหลว การใช้ทรัพยากรเพิ่มขึ้น และปัญหาด้านการเข้าถึง
สวิตช์แบบกำหนดเอง
- เมื่อต้องสร้างสวิตช์แบบกำหนดเองแทนเช็กบ็อกซ์ทั่วไปตามข้อกำหนดด้านดีไซน์ ก็สามารถทำได้ด้วย HTML และ CSS โดยใช้คลาสเทียม
:checked แทน JS
- เบราว์เซอร์จะเชื่อมโยงองค์ประกอบ input ที่อยู่ภายใน label ให้อัตโนมัติ และทำให้คลิกได้ จึงสามารถสลับสถานะได้โดยไม่ต้องมีตัวจัดการ JS เพิ่มเติม
ความสามารถเติมข้อความอัตโนมัติแบบเนทีฟ: Datalist
- แทนที่จะใช้ JavaScript สามารถใช้
datalist ซึ่งเป็นความสามารถในตัวของเบราว์เซอร์ เพื่อแสดงตัวเลือกที่ถูกกรองอัตโนมัติตามที่ผู้ใช้พิมพ์ได้
- ผู้ใช้สามารถพิมพ์ค่าที่ต้องการเอง หรือคลิกไอคอนดรอปดาวน์ที่เบราว์เซอร์เพิ่มมาเพื่อดูตัวเลือกทั้งหมดได้
ตัวเลือกสีแบบเนทีฟ
- แทนที่จะใช้ตัวเลือกสีที่ซับซ้อนและสร้างด้วย JS สามารถใช้ตัวเลือกสีแบบเนทีฟที่เขียนได้ด้วย HTML เพียงบรรทัดเดียว
- ในเบราว์เซอร์ที่ใช้ Chromium ยังมีความสามารถเพิ่มเติมในการเลือกสีจากตำแหน่งใดก็ได้บนหน้าจอ
แอคคอร์เดียน
- สามารถใช้องค์ประกอบ
details และ summary เพื่อซ่อนเนื้อหาไว้จนกว่าผู้ใช้จะต้องการ และช่วยปรับปรุงโครงสร้างของหน้า
- สามารถใช้แอตทริบิวต์
open เพื่อเปิดรายการใดรายการหนึ่งของแอคคอร์เดียนไว้เป็นค่าเริ่มต้นได้
โมดัลแบบโต้ตอบ
- สามารถใช้องค์ประกอบ
dialog เพื่อสร้างโมดัลสำหรับแสดงข้อมูลแก่ผู้ใช้หรือขอให้ผู้ใช้ป้อนข้อมูล
- ใช้ JS เพื่อเปิดโมดัล แต่ส่วนที่เหลือทั้งหมดสามารถจัดการได้ด้วย HTML และ CSS แบบเนทีฟ
บทสรุป
- บทความนี้แสดงให้เห็นว่าสามารถใช้ JS ให้น้อยลง และสร้างเว็บไซต์ที่ดีกว่าเดิมได้ด้วยการใช้ความสามารถของ CSS และ HTML ให้เต็มที่
- สิ่งสำคัญคือการทดสอบแนวทางการพัฒนาใหม่ ๆ โดยคำนึงถึงการเข้าถึง
ความเห็นของ GN⁺
- ประเด็นสำคัญที่สุดของบทความนี้คือ ในการพัฒนาเว็บ เราสามารถลดการพึ่งพา JS และใช้ความสามารถของ HTML กับ CSS ให้ได้มากที่สุด เพื่อปรับปรุงทั้งประสิทธิภาพและการเข้าถึง
- สิ่งที่น่าสนใจสำหรับนักพัฒนาเว็บคือ บทความนี้นำเสนอวิธีใหม่ ๆ ในการสร้างฟีเจอร์ที่เดิมคิดว่าทำได้ด้วย JS เท่านั้น ให้ทำได้อย่างง่ายและมีประสิทธิภาพมากขึ้น
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
มีการชี้ว่าบทความไม่ได้กล่าวถึงกรณีที่มีการใช้ JavaScript ในบางด้านเพราะมีความเข้ากันได้ดีกว่า
appearanceทาง MDN ระบุข้อควรระวังไว้มากมาย และแนะนำให้ทดสอบอย่างละเอียดโดยเฉพาะเมื่อใช้appearance: nonedatalistใช้งานไม่ได้บน Firefox Android และจะแสดงเป็นเพียงช่องกรอกข้อมูลธรรมดาdetailsและdialogแสดงความประหลาดใจที่แม้กระทั่งในปี 2023 เรายังเผชิญปัญหา UX ทั่วไปเกี่ยวกับฟอร์มและการป้อนข้อมูลของผู้ใช้อยู่
ไม่เคยรู้จัก
datalistมาก่อน แต่ดูเหมือนว่าจะทำงานได้ไม่ดีบน Chrome Androidมีการกล่าวถึงการเลื่อนแบบลื่นไหลแบบเนทีฟด้วย
scroll-behavior: smooth, แครูเซลแบบเนทีฟด้วยscroll-snap, และแอนิเมชันที่อิงกับการเลื่อนการใช้
<details>มีข้อดีคือสามารถค้นหาเนื้อหาด้วย Ctrl+F ได้ และในขณะที่ JavaScript accordion อาจเปิดไม่ได้ แต่<details>เปิดได้มีความเห็นว่า
datalistไม่ใช่ตัวเลือกที่เหมาะสม เว้นแต่จะเป็นเครื่องมือภายในมีความเห็นว่าหากทำตามมาตรฐาน HTML ทุกอย่างจะสม่ำเสมอและสามารถนำไปใช้กับเรื่องอย่างการเข้าถึงหรือการแปลภาษาได้ง่าย
ชี้ว่า CSS สามารถถูกใช้เป็นเครื่องมือที่ทำให้หน้าเว็บอ่านยากได้
กล่าวถึง "Rule of Least Power" เป็นหนึ่งในหลักการสำคัญของการพัฒนาเว็บ