การทำงานร่วมกัน 2022: เบราว์เซอร์ที่ทำงานร่วมกันเพื่อปรับปรุงเว็บสำหรับนักพัฒนาซอฟต์แวร์

เป็นครั้งแรกที่ผู้ให้บริการเบราว์เซอร์รายใหญ่ทุกรายและผู้มีส่วนเกี่ยวข้องอื่นๆ ได้ร่วมมือกันเพื่อแก้ไขปัญหาด้านความเข้ากันได้กับเบราว์เซอร์อันดับต้นๆ ที่นักพัฒนาเว็บตรวจพบเป็นครั้งแรก การทำงานร่วมกันในปี 2022 จะช่วยปรับปรุงประสบการณ์การพัฒนาเว็บใน 15 ด้านหลัก ในบทความนี้ คุณจะได้ทราบว่าเรามาถึงจุดนี้ได้อย่างไร โปรเจ็กต์มุ่งเน้นอะไร จะวัดความสำเร็จได้อย่างไร และวิธีติดตามความคืบหน้า

ทุกอย่างเริ่มต้นในปี 2019

เมื่อปี 2019 Mozilla, Google และบริษัทอื่นๆ ได้เริ่มความพยายามครั้งใหญ่ในการทำความเข้าใจประเด็นปัญหาของนักพัฒนาซอฟต์แวร์ในรูปแบบแบบสำรวจการประเมินความต้องการของนักพัฒนาซอฟต์แวร์ MDN และรายงานความเข้ากันได้ของเบราว์เซอร์ในเชิงลึก รายงานเหล่านี้ให้ข้อมูลโดยละเอียดที่นำไปใช้ได้จริงเพื่อแก้ปัญหาความท้าทายอันดับต้นๆ สำหรับนักพัฒนาซอฟต์แวร์ที่ใช้แพลตฟอร์มเว็บ และนำไปสู่ความพยายามอย่างต่อเนื่องในปี 2021

นอกจากนี้ Compat 2021 ยังนำไปสู่การสร้างรากฐานที่มั่นคงสำหรับฟีเจอร์ที่มีประสิทธิภาพ เช่น ตารางกริดของ CSS (มีการใช้งาน 12% และเติบโตอย่างมั่นคง) และ CSS Flexbox (การใช้งาน 77%) รวมถึงพร็อพเพอร์ตี้ gap ใน Flexbox ซึ่งช่วยแก้ปัญหาเบื้องต้นสำหรับนักพัฒนาซอฟต์แวร์เมื่อนำวิธีการเลย์เอาต์แบบใหม่มาใช้

เราดีใจที่ได้คะแนนกว่า 90% จากการติดตั้งใช้งานทั้งหมดในช่วงปลายปี 2021

การทำงานร่วมกันปี 2022 คืออะไร

การทำงานร่วมกันในปี 2022 เป็นเกณฑ์เปรียบเทียบตามที่ตัวแทนของการติดตั้งใช้งานเบราว์เซอร์หลักๆ 3 รายการ ได้รับการพัฒนาผ่านกระบวนการเสนอชื่อต่อสาธารณะ และตรวจสอบโดยใช้ข้อมูลจากผู้สนับสนุน Apple, Bocoup, Google, Igalia, Microsoft และ Mozilla

การเปรียบเทียบจะมุ่งเน้นไปยัง 15 ด้าน ซึ่งนักพัฒนาซอฟต์แวร์ระบุว่ามีปัญหาอย่างมากในกรณีที่ข้อมูลหายไปหรือมีปัญหาเกี่ยวกับความเข้ากันได้ในเบราว์เซอร์ต่างๆ ผู้ให้บริการเบราว์เซอร์ทั้งหมดตกลงที่จะมุ่งเน้นที่ด้านเหล่านี้ และทุกคนที่เกี่ยวข้องก็รู้สึกตื่นเต้นที่จะได้เริ่มต้นสร้างประสบการณ์การพัฒนา เพื่อเว็บที่สามารถวัดได้ดียิ่งขึ้น

สิ่งที่ต้องมุ่งเน้น 15 ประการ

ฟีเจอร์ต่อไปนี้จะเป็นหัวใจสำคัญของการทำงานร่วมกันปี 2022 บริษัทมีสาขาใหม่ 10 แห่ง และอีก 5 แห่งจาก Compat 2021 จุดที่เราโฟกัสใหม่มีดังนี้

เรียงซ้อนเลเยอร์

เลเยอร์ Cascade ช่วยให้นักพัฒนาเว็บควบคุมการเรียงซ้อนกันได้มากขึ้น ใช้สำหรับจัดกลุ่มตัวเลือกเป็นเลเยอร์ โดยแต่ละรายการจะมีความเฉพาะเจาะจงของตัวเอง คุณจึงไม่ต้องสร้างตัวเลือกคำสั่งซื้ออย่างรอบคอบหรือสร้างตัวเลือกที่เจาะจงมากเพื่อเขียนทับกฎ CSS พื้นฐาน

พื้นที่สีและฟังก์ชันสี CSS

หากต้องการใช้ฟังก์ชันสีในระบบออกแบบ คุณต้องใช้ค่า HSL, Sass, PostCSS หรือ calc() ฟังก์ชันสีที่มีใน CSS ทำให้สีสามารถอัปเดตได้แบบไดนามิก และพื้นที่ทำงานสีใหม่จะลบการจำกัดขอบเขตของ sRGB รวมถึงข้อจำกัดในการรับรู้ของ HSL

สี CSS ระดับ 5 มีฟังก์ชัน 2 รายการที่ทําให้ธีมแบบไดนามิกมากขึ้นในแพลตฟอร์มเว็บ ดังนี้

  • color-mix(): นำ 2 สีมาใช้และแสดงผลของการผสมสีในพื้นที่สีที่ระบุตามจำนวนที่ระบุ
  • color-contrast(): เลือกจากรายการสีซึ่งเป็นสีที่มีคอนทราสต์สูงสุดกับสีใดสีหนึ่งที่ระบุ

ฟังก์ชันเหล่านี้รองรับพื้นที่สีแบบขยาย (LAB, LCH และ P3) และนอกเหนือจาก HSL และ sRGB แล้ว ฟังก์ชันเหล่านี้จะมีค่าเริ่มต้นเป็นพื้นที่สี LCH แบบเดียวกัน

หน่วยวิวพอร์ตใหม่

ปัญหาในการจัดการการปรับขนาดวิวพอร์ตเห็นได้ชัดเจนทั้งในรายงานความเข้ากันได้กับเบราว์เซอร์ MDN 2020 และแบบสำรวจ State of CSS 2021 ใหม่ ค่า CSS และหน่วยระดับ 4 จะเพิ่มหน่วยใหม่สำหรับวิวพอร์ตขนาดใหญ่ที่สุด เล็กที่สุด และแบบไดนามิก ได้แก่ lv*, sv* และ dv* หน่วยเหล่านี้จะช่วยให้สร้างเลย์เอาต์ที่เติมเต็มวิวพอร์ตที่มองเห็นได้ในอุปกรณ์เคลื่อนที่ได้ง่ายขึ้น โดยนำแถบที่อยู่มาพิจารณาด้วย

ส่วนต่างๆ ของวิวพอร์ตสำหรับหน่วยของวิวพอร์ตแต่ละประเภท

นอกจากนี้ ทีมข้ามผู้ให้บริการที่อยู่เบื้องหลังการทำงานร่วมกันปี 2022 จะทำงานร่วมกันในการวิจัยและปรับปรุงสถานะการทำงานร่วมกันของฟีเจอร์การวัดวิวพอร์ตที่มีอยู่ ซึ่งรวมถึงหน่วย vh ที่มีอยู่

การเลื่อน

รายงานแบบสำรวจการเลื่อนปี 2021 ยืนยันว่าฟีเจอร์การเลื่อนและความเข้ากันได้ของการเลื่อนนั้นนำไปใช้ได้ยากและมีหลายด้านที่ต้องปรับปรุง เราจะมุ่งเน้นที่การสแนปการเลื่อน ลักษณะการทำงานของการเลื่อน และลักษณะการทำงานของการเลื่อนมากเกินไป เพื่อช่วยให้การเลื่อนมีความสอดคล้องกันและราบรื่นมากขึ้นในแพลตฟอร์มต่างๆ

นอกจากนี้เรากำลังสำรวจข้อเสนอฟีเจอร์การเลื่อน Snap ใหม่อีกด้วย

ตารางย่อย

ค่า subgrid ของ grid-template-columns และ grid-template-rows หมายความว่ารายการตารางกริดที่ใช้ display: grid สามารถรับคําจํากัดความของแทร็กมาจากส่วนของตารางกริดระดับบนสุดที่นำมาใช้

เช่น คอมโพเนนต์การ์ด 3 รายการต่อไปนี้มีส่วนหัวและส่วนท้ายที่สอดคล้องกับส่วนหัวและส่วนท้ายของการ์ดที่อยู่ติดกัน แม้ว่าการ์ดแต่ละใบจะมีตารางกริดแยกเป็นอิสระก็ตาม รูปแบบนี้ใช้งานได้เนื่องจากการ์ดแต่ละใบเป็นรายการที่ครอบคลุม 3 แถวของตารางกริดระดับบนสุด จากนั้นจะใช้ตารางกริดย่อยเพื่อรับแถวเหล่านั้นลงในการ์ด

คอมโพเนนต์การ์ด 3 รายการที่ส่วนหัวและส่วนท้ายจัดเรียงไว้ระหว่างการ์ด
ดูสิ่งนี้บน CodePen

รวมอยู่ด้วย

  • การควบคุม CSS (พร็อพเพอร์ตี้ contain)
  • องค์ประกอบ <dialog>
  • ตัวควบคุมแบบฟอร์ม
  • การพิมพ์และการเข้ารหัส: รวมถึง font-variant-alternates, font-variant-position, หน่วย ic และการเข้ารหัสข้อความ CJK
  • Web Compat ซึ่งเน้นไปที่ความแตกต่างระหว่างเบราว์เซอร์ที่ทำให้เกิดปัญหาด้านความเข้ากันได้ของเว็บไซต์ที่ส่งผลกระทบต่อผู้ใช้ปลายทาง

ด้านต่างๆ ต่อไปนี้มีความคืบหน้าอย่างมากในโครงการ Compat 2021 แต่ก็ยังมีช่องทางสำหรับการปรับปรุงอยู่ นโยบายดังกล่าวจึงได้รวมอยู่ในการทำงานร่วมกันปี 2022 เพื่อให้แก้ไขปัญหาที่เหลือได้

  • สัดส่วนภาพ
  • เฟล็กซ์บ็อกซ์
  • GRid
  • การจัดตำแหน่งติดหนึบ
  • การแปลง

ความพยายามในการตรวจสอบ

นอกเหนือจากประเด็นที่มุ่งเน้น 15 ด้านแล้ว การทำงานร่วมกันปี 2022 ยังรวมความพยายามตรวจสอบ 3 รายการอีกด้วย สิ่งเหล่านี้มีปัญหาและจำเป็นต้องปรับปรุง แต่สถานะปัจจุบันของข้อกำหนดหรือการทดสอบยังไม่ดีพอที่จะให้คะแนนความคืบหน้าโดยใช้ผลการทดสอบ

  • กำลังแก้ไข, contenteditable และ execCommand
  • เหตุการณ์ตัวชี้และเมาส์
  • การวัดวิวพอร์ต

ผู้ให้บริการเบราว์เซอร์และผู้มีส่วนเกี่ยวข้องอื่นๆ จะทำงานร่วมกันในการปรับปรุงการทดสอบและข้อมูลจำเพาะสำหรับขอบข่ายต่างๆ เหล่านี้ เพื่อที่จะได้รวมอยู่ในความพยายามนี้ในอนาคต

การวัดความสำเร็จและการติดตามความคืบหน้า

คะแนนต่อเบราว์เซอร์คือ 71 คะแนนสำหรับ Chrome และ Edge, 74 คะแนนสำหรับ Firefox, 73 คะแนนสำหรับ Safari Technology Preview.

หน้าแดชบอร์ดการทดสอบแพลตฟอร์มเว็บที่มีอยู่จะใช้เพื่อติดตามความคืบหน้าในส่วนที่มุ่งเน้น 15 ด้าน ในแต่ละพื้นที่ มีการระบุชุดการทดสอบ จากนั้นจะมีการให้คะแนนเบราว์เซอร์เพื่อเทียบกับการทดสอบเหล่านี้ โดยจะให้คะแนนสำหรับแต่ละพื้นที่และคะแนนรวมของทั้ง 15 ด้าน

ติดตามความคืบหน้าได้โดยดูจากแดชบอร์ดของ Interop 2022 ตลอดทั้งปี คุณสามารถติดตามดูความคืบหน้าและดูว่าแพลตฟอร์มที่คุณสร้างให้นั้นพัฒนาขึ้นอย่างไรบ้าง

รูปภาพตารางที่มีคะแนนของหลายพื้นที่สำหรับเว็บเบราว์เซอร์หลักๆ ทั้งหมด
ดูคะแนนทั้งหมดของเบราว์เซอร์ตามด้านโฟกัสที่ wpt.fyi/interop-2022

การเปลี่ยนแปลงนี้จะส่งผลต่อนักพัฒนาแอปอย่างไร

เป้าหมายของความพยายามในการทำงานร่วมกันเป็นระยะเวลาหลายปีในรูปแบบของ Compat 2021, การทำงานร่วมกันปี 2022 และอื่นๆ อีกมากมายคือการรับรู้และแก้ปัญหาที่นักพัฒนาแอปพบเจอมาตลอดหลายปี เครื่องมือนี้ไม่ใช่การทำงานบนเบราว์เซอร์เพียงอย่างเดียว แต่เป็นการร่วมมือกันอย่างมีประสิทธิภาพระหว่างผู้ให้บริการเบราว์เซอร์รายใหญ่และเพื่อนๆ ทั้งหมดเพื่อปรับปรุงแพลตฟอร์มเว็บในทุกส่วน

โดยมีเป้าหมายเพื่อให้นักพัฒนาซอฟต์แวร์ใช้แพลตฟอร์มเว็บได้อย่างน่าเชื่อถือและไว้วางใจได้ เพื่อให้มีเวลามากขึ้นในการสร้างประสบการณ์การใช้งานเว็บที่ยอดเยี่ยม แทนที่จะต้องคอยแก้ปัญหาความไม่สอดคล้องของเบราว์เซอร์

บอกให้เราทราบว่าคุณคิดอย่างไร

เรายินดีรับฟังความคิดเห็นเกี่ยวกับการปรับปรุงที่เกิดขึ้นในช่วง Compat 2021 หรือฟีเจอร์ใดก็ตามที่รวมอยู่ในการทำงานร่วมกันปี 2022 ฟีเจอร์ใดต่อไปนี้จะสร้างความแตกต่างให้กับงานของคุณได้มากที่สุด คุณตื่นเต้นกับเรื่องอะไรจริงๆ แจ้งปัญหาเกี่ยวกับที่เก็บ GitHub หรือแจ้งให้เราทราบทาง Twitter

ดูข้อมูลเพิ่มเติมเกี่ยวกับการทำงานร่วมกันปี 2022 ได้จากแหล่งข้อมูลต่อไปนี้