מפשטים את תהליך הפיתוח לאינטרנט.
כשאנחנו מדברים עם מפתחים, באופן פרטני או באמצעות סקרים כמו State of CSS, אנחנו שומעים שוב ושוב את אותם הדברים. למפתחים קשה ליצור אתרים ואפליקציות שפועלים היטב בדפדפנים שונים, וקשה להם לדעת מתי בטוח להשתמש בתכונות חדשות ומעניינות.
מרווח ב-Flexbox
דוגמה למאפיין בעייתי: המאפיין gap מאפשר ליצור רווחים בין פריטים ב-grid או ב-flex, או בין עמודות בקונטיינר multicol. המאפיין column-gap קיים ב-multicol כבר הרבה זמן, אבל הוא הופיע לראשונה בפריסת רשת בתור grid-gap, יחד עם grid-column-gap ו-grid-row-gap.
מיד אחרי שהפריסה של רשת הופיעה בדפדפנים, השם של המאפיין שונה ל-gap, יחד עם row-gap ו-column-gap. לאחר מכן, הוגדר שהיא תפעל גם בפריסת Flex. שינוי השם נועד למנוע מצב שבו יש כמה נכסים שמבצעים את אותה פעולה.
.box {
display: flex;
gap: 1em;
}
המאפיין הזה הושק ב-Firefox לפריסות גמישות באוקטובר 2018. הוא הופיע ב-Chrome רק ביולי 2020, וב-Safari באפריל 2021. זה אומר שהיה פער של שנתיים ושישה חודשים לפני שיכולנו להשתמש ב-gap באופן בטוח. בפועל, רוב המפתחים נאלצו לחכות הרבה יותר זמן, כי הם היו צריכים לתמוך בגרסאות דפדפן ישנות יותר מהגרסה האחרונה. התמיכה ב-gap בפריסת flex הפכה לבעייתית יותר בגלל העובדה שאי אפשר להשתמש בשאילתות תכונות כדי לזהות תמיכה במרווחים בפריסת flex. המאפיין gap נתמך ברשת, ולכן הפונקציה @supports (gap:1em) תחזיר את הערך true.
בעיה נוספת היא שכאשר תכונה חדשה מגיעה לדפדפן אחד, אנשים מתחילים לדבר עליה ולשתף הדגמות. התהליך הזה מתחיל בדרך כלל הרבה לפני שהתכונה מופיעה בגרסה יציבה של דפדפן כלשהו. זה יכול לבלבל את המפתחים, או לפחות לתסכל אותם. כל הזמן מדברים בכל מקום על תכונות חדשות ומגניבות, ואז אתם מגלים שאתם לא יכולים להשתמש בהן כי אין תמיכה.
למה יש פערים בתמיכה?
בפוסט הזה אנחנו לא מאשימים דפדפן מסוים באיטיות. אם תבדקו את התכונות השונות של הפלטפורמה, תגלו שדפדפנים שונים מובילים בתכונות שונות.
רוב התכונות יפותחו כאב טיפוס בדפדפן אחד. לדוגמה, המפרט של פריסת הרשת נוצר לראשונה על ידי מיקרוסופט והוטמע בצורה ראשונית ב-Internet Explorer 10. מהנדס ב-Mozilla עבד הרבה כדי להבין איך רשת משנה צריכה להתנהג, ולכן התכונה הזו הגיעה קודם ל-Firefox. אנחנו רואים ש-Safari מוביל בפונקציות צבע חדשות ומעניינות.
יכול להיות שדפדפן אחד יוביל את הפיתוח של אב הטיפוס, אבל נציגים של כל הדפדפנים (וארגונים אחרים) בקבוצת העבודה של CSS דנים בתכונות של CSS. חשוב מאוד שאפשר יהיה להטמיע תכונה בכל הדפדפנים, ושהיא לא תהיה מתוכננת באופן שמונע את ההטמעה שלה בדפדפן מסוים. זה יוביל לפער קבוע בתמיכה, ולחוסר אימוץ של התכונה.
אבל כשמדובר בהטמעה של תכונה, צריך לתעדף אותה לצד כל התכונות האפשריות האחרות של הדפדפן הזה. ולפעמים דברים מתעכבים בגלל עבודה אחרת שצריך לעשות כדי לשפר את הדפדפן. דוגמה מצוינת לכך היא העבודה על RenderingNG ב-Chromium. זה סלל את הדרך להטמעה של subgrid, אבל הפער הארוך בין Firefox ל-Chromium בהשקת subgrid נובע מהצורך להטמיע מחדש את פריסת הרשת במנוע הרינדור החדש קודם.
הבעיות
יש כאן שתי בעיות. הראשונה היא בעיית יכולת הפעולה ההדדית, העובדה שיכול לקחת הרבה זמן מהרגע שתכונה מגיעה לדפדפן אחד ועד שהיא זמינה בכל מקום.
השנייה היא בעיה בהעברת המסרים. איך אפשר להבהיר איפה יש פערים בתמיכה? איך אנחנו יכולים לשתף תכונות חדשות בלי שכולם יצטרכו לחקור לעומק כל דבר כדי להבין עד כמה הוא נתמך?
יכולת פעולה הדדית
הדפדפנים כבר פועלים יחד כדי לפתור את בעיית יכולת הפעולה ההדדית. בשנה שעברה, Compat 2021 עזר לצמצם את הפער בתמיכה בכמה תכונות, כולל המאפיין gap בפריסת flex. השנה, המאמץ של Interop 2022 מתמקד ב-15 תכונות, וכבר יש התקדמות בחלק מהן.
אפשר לעקוב אחרי ההתקדמות במרכז הבקרה של Interop 2022.
העברת הודעות
הבעיה השנייה היא משהו שאני רוצה לעזור בו כשאנחנו מדברים על תכונות כאן ב-web.dev וב-developer.chrome.com. אני רוצה שהסטטוס של התכונות יהיה ברור מאוד כשאתם קוראים את התוכן שלנו, ושאנחנו נספק דרכים מעשיות לפתרון בעיות תמיכה.
השקנו כמה קורסים בסיסיים, ונוסיף עוד בהמשך. הקורסים האלה עוזרים לכם ללמוד איך לפתח לאינטרנט המודרני, באמצעות טכנולוגיות ליבה של פלטפורמת האינטרנט. צ'ק אאוט:
אנחנו פועלים כדי להתמקד בתוכן באתר הזה בדברים שאתם יכולים להשתמש בהם בבטחה. אנחנו עדיין לא שם, אבל בחודשים הקרובים תתחילו לראות שינוי קל לכיוון המעשי.
אנחנו גם תורמים לתיעוד של האינטרנט הפתוח באמצעות התמיכה שלנו בפרויקט Open Web Docs. כך אנחנו מוודאים שיש לנו תיעוד מעולה ב-MDN, יחד עם נתוני תאימות עדכניים לדפדפנים. אנחנו משתמשים בנתונים האלה כאן ב-web.dev כדי להציג תמיכה בתכונות. כאן אפשר לראות את התמיכה הנוכחית ב-gap בפריסה גמישה.
Browser Support
אם אתם רוצים לדעת עוד על החזון של Chrome לגבי האינטרנט, ועל הדברים שאנחנו בודקים בגרסאות המקור ובגרסאות למפתחים, תוכלו למצוא עוד ועוד תוכן בנושא באתר האחות שלנו – developer.chrome.com. יכול להיות שהתוכן שם יהיה ניסיוני, או שרק Chrome יתמוך בו כרגע, אבל נשמח אם תעיינו בו ותשלחו לנו משוב.
זו תקופה מרגשת מאוד לאינטרנט. אנחנו מקווים שנוכל לעזור לכם להוסיף תכונות חשובות מהר יותר, ולהבהיר את הפערים שקיימים, כדי שפיתוח אתרים יהיה מהנה יותר ופחות מתסכל.