Ngày phát hành: 7 tháng 2 năm 2025
Vào tháng 4 năm 2024, một bài đăng trên trang web này đã thông báo rằng Popover API là API cơ sở mới có sẵn. Tuy nhiên, chúng tôi đã nhầm và cửa sổ bật lên sẽ chuyển sang Đường cơ sở kể từ ngày 27 tháng 1 năm 2025. Bài đăng này giải thích lý do chúng tôi đã hiểu sai và những thay đổi đã diễn ra để giảm khả năng xảy ra những sai lầm này.
Popover API là gì?
Popover API cung cấp một cách tích hợp để tạo nhiều loại cửa sổ bật lên được sử dụng trong các ứng dụng web. Trước đây, bạn phải sử dụng JavaScript và phải cẩn thận triển khai các tính năng này theo cách dễ tiếp cận. API này đưa tất cả thông tin này vào trình duyệt và bạn có thể tạo một cửa sổ bật lên đơn giản theo cách khai báo trong 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>
Tại sao không phải là Giá trị cơ sở vào tháng 4 năm 2024?
Khi Firefox triển khai tính năng bật lên vào tháng 4 năm 2024, chúng tôi chưa phát hiện thấy vấn đề đáng kể nào trên iOS và iPadOS. Trên các trình duyệt dành cho thiết bị di động này, thao tác nhấp vào bên ngoài cửa sổ bật lên sẽ không đóng cửa sổ đó, một tính năng được gọi là đóng nhẹ. Đây là vấn đề khiến hầu hết các nhà phát triển không muốn sử dụng popover. Điều này có nghĩa là lỗi này không nên được đưa vào Dòng cơ sở vào tháng 4 và cần phải đợi cho đến khi lỗi được khắc phục trong Safari 18.3.
Tại sao chúng tôi nhầm lẫn?
Đường cơ sở dựa vào tác vụ web-features (tính năng web) để tính toán thời điểm các tính năng nằm trong hoặc ngoài Đường cơ sở. Nếu xem một tệp tính năng riêng lẻ trong dự án đó, chẳng hạn như tệp cho cửa sổ bật lên, bạn sẽ thấy các tính năng riêng lẻ trong Dữ liệu tương thích với trình duyệt Mozilla được liệt kê. Một tính năng web thường chứa một số thành phần này. Lý do là một tính năng trên web không chỉ là một thuộc tính hoặc phương thức duy nhất, mà cần có một số thành phần để hoạt động. Tính năng cũng không phải là toàn bộ thông số kỹ thuật. Ví dụ: thông số kỹ thuật CSS thường bao gồm các tính năng phụ chưa bao giờ được triển khai hoặc chỉ được sử dụng trong một ngữ cảnh cụ thể. Công việc về tính năng web sử dụng kết hợp dữ liệu về phạm vi cung cấp hiện có và dữ liệu do con người nhập để xác định những gì cấu thành một tính năng của nền tảng web, và quan trọng là liệu việc triển khai một phần có đủ nghiêm trọng để loại bỏ tính năng đó khỏi Đường cơ sở hay không.
Vào tháng 2, công việc về các tính năng web vẫn còn rất nhiều việc phải làm. Do đó, để giúp minh hoạ cách hoạt động của Baseline, chúng tôi đã cố gắng tìm ra các tính năng chính sẽ có trong Baseline 2024 mà không cần tất cả dữ liệu cần thiết. Trên lý thuyết, hay đúng hơn là trong dữ liệu về khả năng tương thích của trình duyệt được cập nhật cho đến tháng 9 khi phát hiện vấn đề, có vẻ như popover đã được đưa vào. Tuy nhiên, do lỗi trên iOS đủ nghiêm trọng để ngăn việc sử dụng cửa sổ bật lên, nên tính năng này chưa sẵn sàng.
Ngoài ra, còn thiếu cơ sở hạ tầng kiểm thử cho thiết bị di động. Dự án Kiểm thử nền tảng web cung cấp cho chúng ta một cách để kiểm thử xem các tính năng của nền tảng web có hoạt động trên tất cả trình duyệt hay không. Nếu vấn đề đóng bằng ánh sáng này xảy ra trong trình duyệt dành cho máy tính, chúng ta sẽ thấy các bài kiểm thử không thành công, nhưng điều này không xảy ra với thiết bị di động.
Làm cách nào để tránh điều này trong tương lai?
Chúng tôi đã có được dữ liệu tốt hơn nhiều. Dữ liệu về các tính năng trên web gần như đã hoàn tất, vì vậy, chúng tôi có thể tự tin hơn với bất kỳ tính năng nào mà chúng tôi đang khai báo là Đường cơ sở.
Cụ thể, với vấn đề này, một phần là do xác định được vấn đề chỉ xảy ra trên thiết bị di động, trong iOS. Sẽ có một vài điều xảy ra giúp việc xác định các vấn đề về khả năng tương tác trên thiết bị di động trở nên dễ dàng hơn trong tương lai. Chúng tôi đang nỗ lực cải thiện tính năng kiểm thử thiết bị di động trong Kiểm thử nền tảng web để có thể xác định chính xác hơn thời điểm trình duyệt di động gặp vấn đề, tách biệt với máy tính. Chúng tôi cũng dự định cung cấp dữ liệu này trên trang tổng quan webstatus.dev trong năm nay. Nếu một vấn đề như thế này xảy ra trong tương lai, chúng ta sẽ nhận được các chỉ báo nhanh hơn về việc vấn đề đã xảy ra, hy vọng là trước khi chúng ta đưa tính năng này vào Baseline.
Chúng tôi luôn biết rằng việc liên kết toàn bộ nền tảng web dưới dạng một tập hợp tính năng sẽ không hề dễ dàng! Tuy nhiên, các cuộc thảo luận mà chúng ta đang có về việc triển khai một phần, lỗi và những gì thực sự tạo nên một tính năng là vô cùng có giá trị. Điều này giúp chúng tôi xác định những điều thực sự quan trọng với bạn, từ đó có được các tín hiệu tốt hơn để sử dụng khi lên kế hoạch cho các nỗ lực như Interop 2025.