- CanIUse.com เป็นเว็บไซต์ที่ติดตามความเข้ากันได้ของเทคโนโลยีเว็บ แต่กลับแสดงอัตราการรองรับของ element พื้นฐานอย่าง
htmlไว้ที่ 97.34% ทำให้เกิดข้อสงสัยต่อการตีความตัวเลขนี้ - อัตราการรองรับนี้ดูเหมือนจะเชื่อมโยงกับ ข้อมูลความเข้ากันได้ของ MDN ที่ CanIUse.com ใช้งานอยู่ และน่าจะได้รับผลจากรายการย่อยบางส่วนในหน้า element
html - รายการที่เป็นปัญหาคือแอตทริบิวต์
manifestแบบเลือกใช้ และ secure context required ซึ่งทั้งสองอย่างเป็นรายการที่ไม่ได้ถูกทำให้เป็นมาตรฐานหรือถูกยกเลิกไปแล้ว - เมื่อมีการปะปนกันระหว่างเบราว์เซอร์ที่ไม่รองรับ เบราว์เซอร์ที่ไม่ทราบสถานะการรองรับ และวิธีจัดการกับเบราว์เซอร์รุ่นเก่า จึงทำให้แม้แต่ element พื้นฐานอย่าง
htmlก็มีอัตราการรองรับที่ไม่ตรงกับสัญชาตญาณ - หากดูตามเกณฑ์ “% of all tracked” และรวม support unknown เข้าไปด้วย ก็อาจมองได้ว่าเป็น 99.98% ทำให้มีความเป็นไปได้เรื่องความคลาดเคลื่อนจากการปัดเศษมากขึ้น แต่ตัวเลขของ CanIUse.com ก็ยังควรอ่านอย่างระมัดระวัง
ข้อสงสัยที่เกิดจากอัตราการรองรับ html 97.34%
- CanIUse.com ติดตามอัตราการยอมรับของเบราว์เซอร์ต่อเทคโนโลยีเว็บและความเข้ากันได้ของฟีเจอร์ พร้อมแสดงตัวเลขว่าฟีเจอร์นั้นใช้งานได้จริงมากน้อยแค่ไหน
- อัตราการรองรับของ element
htmlแสดงไว้ที่ 97.34%- ซึ่งต่ำกว่า element
audio - และ element
a,pก็แสดงอัตราการรองรับเท่ากันที่ 97.34%
- ซึ่งต่ำกว่า element
- การที่ element พื้นฐานของเว็บซึ่งถูกใช้งานมานานมากแล้วไม่ได้เป็น 100% ทำให้จำเป็นต้องตรวจสอบมากกว่าการดูตัวเลขความเข้ากันได้แบบผิวเผิน
รายการย่อยที่เห็นได้ในตารางความเข้ากันได้ของ MDN
- ข้อมูลจำนวนมากของ CanIUse.com ดูเหมือนจะดึงมาจาก MDN
- ในหน้า element
htmlของ MDN มีส่วนความเข้ากันได้ของเบราว์เซอร์ - ในตารางนี้ รายการที่มีเครื่องหมาย X สีแดงจำนวนมากมีอยู่สองอย่าง
- แอตทริบิวต์
manifestแบบเลือกใช้- ถูกยกเลิกแล้ว
- ไม่เคยถูกทำให้เป็นมาตรฐาน
- รายการที่เกี่ยวข้องคือ secure context required
- อยู่ในสถานะ Editor’s Draft
- ปัจจุบันไม่ได้อยู่ในเส้นทางมาตรฐาน
- การใช้งานที่เกี่ยวข้องกับ element
htmlก็ไม่เคยถูกทำให้เป็นมาตรฐานและถูกยกเลิกแล้ว
- แอตทริบิวต์
- แม้จะจริงที่แทบทุกเบราว์เซอร์ไม่รองรับสองรายการนี้ แต่เพียงเท่านี้ก็ยังไม่อธิบายอย่างชัดเจนว่าทำไมอัตราการรองรับรวมของ element
htmlจึงลดลงมาถึง 97.34%
ความเป็นไปได้จากเบราว์เซอร์รุ่นเก่าและความคลาดเคลื่อนจากการปัดเศษ
- เบราว์เซอร์บางตัวถูกแสดงเป็น Support Unknown และยอดรวมการใช้งานปัจจุบันของเบราว์เซอร์กลุ่มนี้คือ 1.27%
- Android Browser 2.1–4.3 ถูกแสดงว่าไม่รองรับ element
htmlแต่มีสัดส่วนการใช้งาน 0%- น่าสงสัยว่าการระบุว่าเบราว์เซอร์เก่าเหล่านี้ไม่รองรับ element
htmlนั้นถูกต้องจริงหรือไม่ - และก็ยังไม่ชัดเจนว่าความคลาดเคลื่อนจากการปัดเศษจะทำให้ 1.27% ขยายไปเป็น 2.66% ได้หรือไม่
- น่าสงสัยว่าการระบุว่าเบราว์เซอร์เก่าเหล่านี้ไม่รองรับ element
- หากเปลี่ยนเกณฑ์ข้างคำว่า “usage” ที่มุมขวาบนของ CanIUse.com เป็น “% of all tracked” แล้วนำค่าของเบราว์เซอร์ “support unknown” มารวม จะได้ 99.98%
- ภายใต้เกณฑ์นี้จะเห็นความเป็นไปได้ที่ตัวเลขปัจจุบันเกิดจากความคลาดเคลื่อนในการปัดเศษได้ง่ายขึ้น
- แต่แนวทางที่ CanIUse.com ใช้จัดการกับเบราว์เซอร์รุ่นเก่าใน element พื้นฐานอย่าง
htmlก็ยังชวนให้สับสนอยู่ดี
- CanIUse.com ยังเป็นแหล่งข้อมูลที่มีประโยชน์ แต่ตัวเลขอัตราการรองรับที่แสดงควรถูกอ่านโดยดูบริบทและเกณฑ์การคำนวณประกอบกัน
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ใน CanIUse มีตัวเลือก "% of all" อยู่เหนืออัตรา Global พอดี ถ้าเปิดไอคอนรูปเฟืองในหน้าฟีเจอร์ จะมีรายละเอียดเพิ่มเติมเกี่ยวกับวิธีคำนวณการใช้งาน ค่าเริ่มต้นคือ All Users ซึ่งถือว่าการใช้งานทั้งหมดของเบราว์เซอร์ที่ caniuse ไม่ได้ติดตามเป็นไม่รองรับ และถ้าเปลี่ยนเป็น All tracked users จะคำนวณเฉพาะเบราว์เซอร์ที่ถูกติดตาม ทำให้ได้ 98.71% ผลรวมของเบราว์เซอร์ที่สถานะการรองรับในกราฟเป็น Unknown คือ 1.27% และเมื่อเอา 1.27% บวกกับ 98.71% จะได้ 99.97999… จึงดูเหมือนมีผลจากการปัดเศษ ปัญหาจริง ๆ คือเบราว์เซอร์เหล่านั้นถูกแสดงเป็น Unknown และในทางปฏิบัติน่าจะถือได้ว่ารองรับองค์ประกอบ ``
wgetกันมาก และถ้ารวมไว้ด้วย เรื่องก็จะต่างออกไป ผมลองดูsrc/html-url.cแล้ว พบว่าในความเป็นจริงมันไม่รองรับ `` เลย และจัดการเป็น แท็กที่ไม่รู้จักผมติดใจที่เดิม MDN เคยย่อมาจาก Mozilla Developer Network แต่ตอนนี้เป็นแค่ MDN เฉย ๆ เลยลองค้นดู แต่ผมก็หา ชื่อเต็ม ไม่เจอเหมือนกัน
const heading = Mozilla Developer Network;— https://developer.mozilla.org/en-US/docs/Learn/Tools_and_tes...น่าสนใจที่ได้ยินว่าองค์ประกอบ
และก็มี อัตรารองรับ 97.34% เท่ากันพอดี องค์ประกอบทั้งสองนี้ก็ใช้ข้อมูลจาก MDN เหมือนองค์ประกอบ ``: https://caniuse.com/mdn-html_elements_a และ https://caniuse.com/mdn-html_elements_p ผมได้อัปเดตบทความให้สะท้อนเรื่องนี้แล้วใน CanIUse น่าจะแยก html-manifest ออกมาเป็นฟีเจอร์ต่างหากได้ และอยากย้ำอีกครั้งว่า MDN เป็นแหล่งข้อมูลที่ยอดเยี่ยมจริง ๆ
เว็บเพจแรกสุดไม่ได้ใช้ องค์ประกอบ
htmlhttp://info.cern.ch/hypertext/WWW/TheProject.htmlเรื่องนี้เกี่ยวกับ HTML ขั้นต่ำที่ถูกต้องหรือเปล่า? ในนั้นไม่มี แท็ก HTML
.ก็น่าจะผ่านโดยไม่มี errorไม่ใช่หรือ? แค่มันไม่ได้ระบุอย่างชัดเจนเท่านั้น จึงถูกอนุมานขึ้นมา ไม่ว่าจะเปิดหน้านั้นด้วยเบราว์เซอร์ใด ในหน้านั้นก็จะมีแท็กอยู่จึงเป็นตัวเลือก ดังนั้น HTML ที่ valid ที่สั้นที่สุดจึงมีแค่ตัวเดียว เพียงแต่มัน valid เฉพาะในบริบทบางอย่างเท่านั้นคำว่า “ข้อมูลจำนวนมากของไซต์มาจาก MDN” ค่อนข้างกำกวม เมทริกซ์การรองรับฟีเจอร์ที่เชื่อมกับ CanIUse มาจาก repository browser-compat-data ของ MDN ข้อมูลต้นทางขององค์ประกอบ HTML อยู่ที่นี่: https://github.com/mdn/browser-compat-data/blob/main/html/el... แต่ในนั้นไม่มีการทดสอบและข้อมูลการใช้งานที่ CanIUse ใช้อ้างอิงในการคำนวณอัตรารองรับ มีเพียงว่าเบราว์เซอร์เวอร์ชันใดรวมฟีเจอร์ใดไว้บ้าง CanIUse เองก็ชี้ไปยัง repository ของตัวเอง และในนั้นมีข้อมูลจำนวนมาก: https://github.com/fyrd/caniuse แต่ผมหาจุดเริ่มต้นที่ทำให้ค้นได้ง่ายว่าตัวเลขขององค์ประกอบเฉพาะมาจากไหนไม่เจอ ข้อมูลในนั้นก็ดูเหมือนจะจัดตามฟีเจอร์เป็นหลัก คำถามที่แม่นยำกว่าคือ CanIUse เอา การทดสอบองค์ประกอบ HTML และตัวเลขการใช้งาน มาจากที่ไหน และนั่นดูเหมือนเป็นประเด็นหลัก
อัตรารองรับขององค์ประกอบ `` ไม่ควรต้องต่ำกว่าหรือเท่ากับองค์ประกอบอื่น ๆ ทั้งหมดอย่างน้อยที่สุดหรือ?
ไม่ได้หมายถึง “HTML ทั้งหมด” แต่เป็นเพียงอีกองค์ประกอบหนึ่งที่หมายถึง **องค์ประกอบรากของเอกสาร** เท่านั้น อย่างที่คนอื่นเขียนไว้ มันไม่ได้จำเป็นจริง ๆ ในการสร้างเอกสาร HTML ที่ valid และไม่มี error ด้วยซ้ำ สิ่งที่จำเป็นในตอนนั้นคือกับ body ที่ valid ประมาณนั้น เปรียบเทียบได้ว่า ความสามารถในการเข้าใจและ parse คำว่า “English” ในชื่อเรียงความอย่างถูกต้อง เป็นคนละเรื่องกับการรู้ความหมายของคำภาษาอังกฤษว่า “fustigate”“ดังนั้นจึงไม่มีคำตอบที่ชัดเจน ถ้ารู้ก็ช่วยบอกด้วย!”