تاریخ انتشار: 7 فوریه 2025
در آوریل 2024، پستی در این سایت اعلام کرد که Popover API به تازگی در دسترس است. با این حال، اشتباه کردیم، و popover از 27 ژانویه 2025 وارد Baseline میشود. این پست توضیح میدهد که چرا اشتباه کردهایم، و از آن زمان چه چیزی تغییر کرده است تا احتمال وقوع این اشتباهات کمتر شود.
Popover API چیست؟
Popover API یک روش داخلی برای ایجاد انواع مختلف پاپاور مورد استفاده در برنامه های کاربردی وب ارائه می دهد. قبلاً، این موارد از شما میخواست که از جاوا اسکریپت استفاده کنید و برای پیادهسازی آنها به شیوهای قابل دسترس بسیار مراقب باشید. 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>
چرا در آوریل 2024 خط پایه نبود؟
هنگامی که فایرفاکس اجرای پاپاور خود را در آوریل 2024 ارسال کرد، ما هنوز متوجه نشده بودیم که مشکل مهمی در iOS و iPadOS وجود دارد. در این مرورگرهای تلفن همراه، کلیک کردن در خارج از پاپاور آن را نمیبندد، این ویژگی به نام رد کردن نور شناخته میشود. این مشکلی است که باعث میشود اکثر توسعهدهندگان از استفاده از popover خوشحال نشوند. این بدان معنی است که نباید در ماه آوریل به عنوان Baseline گنجانده می شد و باید منتظر ماند تا باگ در Safari 18.3 برطرف شود.
چرا اشتباه متوجه شدیم؟
Baseline به کار ویژگیهای وب برای محاسبه زمانی که ویژگیها داخل یا خارج از Baseline هستند متکی است. اگر به یک فایل ویژگی فردی در آن پروژه نگاهی بیندازید، مانند فایل برای popover ، ویژگیهای فردی از دادههای Compat مرورگر موزیلا را مشاهده خواهید کرد. یک ویژگی وب معمولاً شامل تعدادی از این موارد است. این به این دلیل است که یک ویژگی در وب فقط یک ویژگی یا روش نیست، بلکه برای کار کردن به تعدادی از اجزای سازنده نیاز دارد. همچنین یک ویژگی یک مشخصات کامل نیست. برای مثال، مشخصات CSS اغلب شامل ویژگیهای فرعی است که هرگز پیادهسازی نشدهاند، یا فقط در یک زمینه خاص استفاده میشوند. کار ویژگیهای وب از ترکیبی از دادههای موجود و ورودی انسانی استفاده میکند تا مشخص کند که چه چیزی یک ویژگی پلتفرم وب را تشکیل میدهد، و مهمتر از همه، اینکه آیا اجرای جزئی به اندازه کافی جدی است که آن را خارج از خط پایه نگه دارد یا خیر.
در ماه فوریه، کار ویژگی های وب تا کامل شدن فاصله زیادی داشت. بنابراین، برای کمک به نشان دادن نحوه عملکرد Baseline، سعی کردیم ویژگیهای کلیدی را پیدا کنیم که بخشی از Baseline 2024 بدون تمام دادههای مورد نیاز برای انجام این کار است. روی کاغذ، یا بهتر است بگوییم در دادههای سازگار مرورگر که تا سپتامبر و زمانی که این مشکل مشخص شد، بهروزرسانی نشده بود ، به نظر میرسد popover گنجانده شده است. با این حال، به دلیل اینکه اشکال در iOS به اندازه کافی شدید بود تا از استفاده از پاپ اور جلوگیری کند، آماده نبود.
همچنین کمبود زیرساخت آزمایشی برای موبایل وجود داشت. پروژه تستهای پلتفرم وب راهی به ما میدهد تا بررسی کنیم که ویژگیهای پلتفرم وب در همه مرورگرها کار میکنند. اگر این مشکل حذف نور در یک مرورگر دسکتاپ اتفاق میافتاد، میدیدیم که آزمایشها با شکست مواجه میشدند، این مورد برای موبایل صدق نمیکرد.
چگونه در آینده از این امر اجتناب کنیم؟
ما در حال حاضر در مکان بسیار بهتری با داده ها هستیم. دادههای ویژگیهای وب تقریباً کامل است، و بنابراین ما میتوانیم با هر یک از ویژگیهایی که Baseline اعلام میکنیم، اطمینان بیشتری داشته باشیم.
به ویژه با این مشکل، بخشی از مشکل شناسایی مشکلی بود که فقط در تلفن همراه، در iOS رخ میداد. چند چیز در حال رخ دادن است که باید شناسایی مشکلات قابلیت همکاری در تلفن همراه را در آینده آسانتر کند. کار برای بهبود تست تلفن همراه در تستهای پلتفرم وب ادامه دارد، بنابراین باید بتوانیم جدا از دسکتاپ، زمانی که مرورگر تلفن همراه دارای مشکل است، بهتر تشخیص دهیم. ما همچنین قصد داریم این داده ها را در داشبورد webstatus.dev امسال در معرض دید قرار دهیم. اگر چنین مشکلی در آینده رخ دهد، باید نشانههای سریعتری مبنی بر وقوع آن به دست آوریم، امیدواریم قبل از اینکه ویژگی را در Baseline قرار دهیم.
ما همیشه می دانستیم که نقشه برداری از کل پلت فرم وب به عنوان مجموعه ای از ویژگی ها آسان نخواهد بود! با این حال، بحث هایی که ما در مورد پیاده سازی های جزئی، اشکالات، و آنچه در واقع یک ویژگی را تشکیل می دهد، بسیار ارزشمند هستند. این به ما کمک میکند تا بفهمیم چه چیزی واقعاً برای شما مهم است و سیگنالهای بهتری برای استفاده در هنگام برنامهریزی تلاشهایی مانند Interop 2025 به ما میدهد.