เผยแพร่: 7 กุมภาพันธ์ 2025
ในเดือนเมษายน 2024 โพสต์ในเว็บไซต์นี้ได้ประกาศว่า Popover API พร้อมใช้งานเป็นเวอร์ชันพื้นฐานแล้ว อย่างไรก็ตาม เราเข้าใจผิด และป๊อปอัปจะเข้าสู่รุ่นพื้นฐานในวันที่ 27 มกราคม 2025 โพสต์นี้อธิบายสาเหตุที่เราเข้าใจผิด และสิ่งที่เปลี่ยนแปลงไปนับตั้งแต่นั้นเพื่อลดโอกาสที่จะเกิดข้อผิดพลาดเหล่านี้
Popover API คืออะไร
Popover API มีวิธีสร้างป๊อปอัปประเภทต่างๆ ที่ใช้ในแอปพลิเคชันเว็บอยู่แล้ว ก่อนหน้านี้ คุณต้องใช้ JavaScript และระมัดระวังอย่างยิ่งในการติดตั้งใช้งานในลักษณะที่เข้าถึงได้ API จะนําข้อมูลทั้งหมดนี้ไปไว้ในเบราว์เซอร์ และสร้างป๊อปอัปง่ายๆ ใน HTML ได้
<button popovertarget="my-popover">Open Popover</button>
<div id="my-popover" popover>
<p>I am a popover with more information. Hit <kbd>esc</kbd> or click away to close me.</p>
</div>
Why wasn't it Baseline in April 2024?
เมื่อ Firefox เปิดตัวการใช้งานป๊อปอัปในเดือนเมษายน 2024 เรายังไม่พบปัญหาสำคัญใน iOS และ iPadOS ในเบราว์เซอร์บนอุปกรณ์เคลื่อนที่เหล่านี้ การคลิกนอกป๊อปอัปจะไม่ปิดป๊อปอัป ฟีเจอร์นี้เรียกว่าการปิดเบาๆ ปัญหานี้จะทำให้นักพัฒนาแอปส่วนใหญ่ไม่พอใจที่จะใช้ป๊อปอัป ซึ่งหมายความว่าไม่ควรรวมไว้ในเบสไลน์เมื่อเดือนเมษายน และจะต้องรอจนกว่าข้อบกพร่องจะได้รับการแก้ไขใน Safari 18.3
เหตุใดเราจึงตัดสินผิดพลาด
ข้อมูลพื้นฐานจะอาศัยการทํางานของ web-features เพื่อคํานวณว่าฟีเจอร์อยู่ในหรือไม่ได้อยู่ในข้อมูลพื้นฐาน หากดูไฟล์ฟีเจอร์แต่ละรายการในโปรเจ็กต์นั้น เช่น ไฟล์สำหรับป๊อปอัป คุณจะเห็นฟีเจอร์แต่ละรายการจากข้อมูลความเข้ากันได้ของเบราว์เซอร์ Mozilla แสดงอยู่ โดยทั่วไปแล้ว ฟีเจอร์บนเว็บ 1 รายการจะมีการรวมเหล่านี้หลายรายการ เนื่องจากฟีเจอร์บนเว็บไม่ใช่แค่พร็อพเพอร์ตี้หรือเมธอดเดียว แต่ต้องใช้คอมโพเนนต์หลายรายการจึงจะทํางานได้ และฟีเจอร์ก็ไม่ใช่ข้อกำหนดทั้งหมด ตัวอย่างเช่น ข้อกำหนด CSS มักจะมีฟีเจอร์ย่อยที่ไม่เคยมีการใช้งาน หรือมีการใช้งานเฉพาะในบริบทหนึ่งๆ เท่านั้น การทำงานกับฟีเจอร์บนเว็บใช้ข้อมูลความพร้อมที่มีอยู่และข้อมูลจากผู้ใช้เพื่อพิจารณาว่าฟีเจอร์บนแพลตฟอร์มเว็บประกอบด้วยอะไรบ้าง และที่สำคัญคือการติดตั้งใช้งานเพียงบางส่วนร้ายแรงมากพอที่จะไม่รวมไว้ในข้อมูลพื้นฐานหรือไม่
เมื่อเดือนกุมภาพันธ์ที่ผ่านมา การทำงานเกี่ยวกับฟีเจอร์บนเว็บยังอีกยาวไกลกว่าจะเสร็จสมบูรณ์ ดังนั้น เราจึงพยายามหาฟีเจอร์หลักที่จะรวมอยู่ใน Baseline 2024 แม้จะยังไม่มีข้อมูลทั้งหมดที่ต้องการ เพื่อช่วยแสดงให้เห็นว่า Baseline จะทำงานอย่างไร ข้อมูลความเข้ากันได้ของเบราว์เซอร์ซึ่งไม่ได้อัปเดตจนถึงเดือนกันยายนเมื่อพบปัญหานี้ระบุว่ามีป๊อปอัปรวมอยู่ด้วย อย่างไรก็ตาม เนื่องจากข้อบกพร่องใน iOS ร้ายแรงมากพอที่จะป้องกันไม่ให้ใช้ป๊อปอัป ฟีเจอร์นี้จึงยังไม่พร้อมใช้งาน
นอกจากนี้ ยังขาดโครงสร้างพื้นฐานการทดสอบสําหรับอุปกรณ์เคลื่อนที่ด้วย โปรเจ็กต์การทดสอบแพลตฟอร์มเว็บช่วยให้เรามีวิธีทดสอบว่าฟีเจอร์ของแพลตฟอร์มเว็บทํางานในเบราว์เซอร์ทั้งหมด หากปัญหาการปิดโฆษณานี้เกิดขึ้นในเบราว์เซอร์บนเดสก์ท็อป เราจะเห็นว่าการทดสอบไม่ผ่าน แต่นี่ไม่ใช่กรณีสำหรับอุปกรณ์เคลื่อนที่
เราจะหลีกเลี่ยงปัญหานี้ในอนาคตได้อย่างไร
ข้อมูลของเราดีขึ้นมากแล้ว ข้อมูลฟีเจอร์บนเว็บเกือบเสร็จสมบูรณ์แล้ว เราจึงมีความมั่นใจมากขึ้นเกี่ยวกับฟีเจอร์ที่เราประกาศว่าเป็นฟีเจอร์พื้นฐาน
สำหรับปัญหานี้ ส่วนหนึ่งคือการตรวจหาปัญหาที่เกิดขึ้นใน iOS บนอุปกรณ์เคลื่อนที่เท่านั้น มีการเปลี่ยนแปลงบางอย่างที่จะช่วยให้การระบุปัญหาการทำงานร่วมกันบนอุปกรณ์เคลื่อนที่ง่ายขึ้นในอนาคต เรากําลังปรับปรุงการทดสอบอุปกรณ์เคลื่อนที่ในการทดสอบแพลตฟอร์มเว็บอย่างต่อเนื่อง เพื่อให้สามารถระบุได้ดีขึ้นเมื่อเบราว์เซอร์บนอุปกรณ์เคลื่อนที่มีปัญหาแยกจากเดสก์ท็อป นอกจากนี้ เรายังตั้งใจที่จะแสดงข้อมูลนี้ในหน้าแดชบอร์ด webstatus.dev ในปีนี้ด้วย หากเกิดปัญหาเช่นนี้ขึ้นในอนาคต เราควรจะทราบได้อย่างรวดเร็วว่าปัญหาเกิดขึ้นแล้ว หวังว่าเราจะทราบก่อนที่จะรวมฟีเจอร์นี้ไว้ใน Baseline
เราทราบดีว่าการแมปแพลตฟอร์มเว็บทั้งหมดเป็นชุดฟีเจอร์ไม่ใช่เรื่องง่าย อย่างไรก็ตาม การพูดคุยเรื่องการใช้งานบางส่วน ข้อบกพร่อง และองค์ประกอบของฟีเจอร์นั้นมีประโยชน์อย่างยิ่ง ข้อมูลนี้ช่วยให้เราทราบสิ่งที่สำคัญกับคุณจริงๆ ซึ่งจะเป็นสัญญาณที่ดีกว่าในการนำไปใช้วางแผนความพยายามต่างๆ เช่น Interop 2025