Catatan Editor: postingan berikut ditulis oleh Frédéric Wang, Mitra di Igalia
Selama tiga tahun berturut-turut, AMP Project bekerja sama dengan Igalia untuk menangani laporan bug dan permintaan perbaikan dari komunitas Web. Tugas khusus meliputi triase bug, proses debug dan analisis, menulis pengujian, menyediakan patch, dan diskusi dengan berbagai aktor platform Web. Ini tidak hanya berperan penting untuk mempercepat tujuan AMP project secara signifikan, tetapi juga secara umum bermanfaat bagi semua developer dan pengguna platform Web.
Entri blog ini menjelaskan aktivitas kami tahun ini, dengan fokus pada bug dan fitur WebKit/iOS. Namun, upaya Web platform interoperability kami sesekali meluas ke komunitas browser lain dan juga grup standardisasi.





Resize Observer

Intersection Observer diluncurkan dalam iOS 12.2 berkat Engineer Google Ali Juma. Ini adalah JavaScript API baru untuk memantau perubahan di titik temu elemen target dengan elemen ancestor atau dengan viewport dokumen tingkat atas secara tidak bersamaan.

Resize Observer adalah API serupa  yang kami implementasikan awal tahun ini di bawah tanda preferensi. JavaScript API ini memungkinkan developer Web untuk secara tidak bersamaan mengamati kapan suatu elemen diubah ukurannya, apa pun sebabnya. Ini tersedia di iOS 13 beta dan tanda preferensi yang sesuai telah diaktifkan secara default di trunk, jadi kami berharap fitur ini tersedia di rilis iOS 13.





Scroll

Apple mengambil alih tugas yang kami mulai tahun lalu untuk membuat <iframe> elemen dapat di-scroll dan perilaku ini sekarang diaktifkan secara default di versi iOS 13 terbaru. Perbaikan bug lain yang melibatkan elemen-elemen yang dapat di-scroll tersedia untuk scroll-snap-align, scrollability setelah resize indikator find-in-page setelah scroll serta untuk berbagai regresi iOS 13 yang terkait dengan scroll flickering dan jittering.

Peningkatan telah diimplementasikan untuk parameter ScrollIntoViewOptions API scroll. Dukungan untuk penyelarasan scroll logis diluncurkan di iOS 13. Kami juga melanjutkan upaya kami untuk mendukung parameter IDL scroll-behavior serta properti CSS dan kami berharap untuk menyelesaikannya di semester berikutnya. Saat mengerjakan ini, kami juga mendeteksi dan memperbaiki bug Chrome yang terkait dengan metode scrollIntoView(), termasuk kasus-kasus ketika terdapat scrollbar atau ketika scroller menggunakan mode penulisan non-default.

Masalah browser interoperability yang lama untuk pengguna terkait dengan nilai scrollLeft, scrollTop, dan API sejenis yang tidak konsisten dan salah satu pencapaian penting kami adalah memastikan perilaku standar yang lebih reliabel ketika mengatur atau mendapatkan koordinat scroll. Kami memperkenalkan opsi untuk membuat Chrome menggunakan nilai standar dalam mode penulisan non-default dan berencana meluncurkannya, setelah memastikan bahwa itu tidak akan menyebabkan kerusakan serius. Demikian pula, Apple memutuskan untuk mengaktifkan perubahan 2018 kami ke scroller viewport pada semua port WebKit.

Selain perbaikan bug rutin, kami mulai menerapkan fitur scroll menarik lainnya, termasuk kustomisasi overscroll dan overscroll-behavior yang merupakan API yang kuat bagi developer web untuk mengontrol apa yang terjadi ketika scroller mencapai batas-batasnya. Kami mengharapkan lebih banyak kemajuan tahun depan.





Resource Loading

Tujuan menarik yang lain adalah untuk memberikan lebih banyak kekuatan kepada pembuat Web untuk mengontrol loading behaviour. Secara khusus, ini memungkinkan kemampuan untuk mengontrol privasi dan mengoptimalkan tata letak halaman.

Atribut referrerpolicy telah diterapkan untuk menentukan berapa banyak informasi perujuk yang harus dimasukkan dalam permintaan yang terkait dengan loading resources elemen HTML. Ini hanya diterapkan untuk elemen <iframe> dan <script> serta tersedia di iOS 13 di bawah experimental feature flag. Kami akan terus berbicara dengan Apple untuk melihat kapan ini bisa diaktifkan secara default atau diterapkan untuk elemen lain.

Atribut imagesrcset dan imagesizes pada <link rel=preload> juga telah diterapkan dan tersedia di iOS 13 di bawah experimental feature flag. Atribut ini memberikan kemungkinan untuk melakukan preload gambar responsif yang diwakili oleh elemen <img> dengan atribut srcset serta ukuran yang relevan dan mengoptimalkan pemilihan ukuran yang sesuai untuk perangkat pengguna.

Kami juga mulai mengirimkan patch untuk mendukung atribut lazyload pada elemen <img> dan <iframe>. Atribut ini memungkinkan pembuat Web untuk mengindikasikan bila memuat konten elemen dengan lazyload adalah ide yang bagus (mis. jika mereka tidak terlihat di viewport sampai pengguna melakukan scroll ke situ) atau bila konten mereka harus segera dimuat. Petunjuk ini sangat membantu browser untuk mengoptimalkan pemuatan sumber daya.

Yang terakhir, kami membuat dukungan eksperimental untuk atribut intrinsic size di WebKit. Proposal ini dimaksudkan guna membantu browser untuk menentukan rasio aspek atau ukuran gambar sebelum isinya benar-benar dimuat, untuk menghindari perubahan posisi post-load tambahan. Proposal ini telah digantikan oleh pendekatan berbasis CSS murni yang menangani kasus penggunaan yang sama. Eksperimen kami bermanfaat untuk diskusi antara vendor browser serta CSS WG, dan kami berencana untuk menulis ulang patch untuk mengimplementasikan pendekatan berbasis CSS di WebKit.





Kesimpulan

Kolaborasi antara AMP project dan Igalia untuk memajukan Platform Web telah sangat berhasil. Ada beberapa tugas yang tertunda dan ide-ide baru yang harus dikerjakan sehingga kami menantikan untuk melanjutkan kerja keras ini tahun depan!