رندر بهتر متن در مرورگرهای مبتنی بر Chromium در ویندوز

کورت کتی اشمیت
Kurt Catti-Schmidt
پاتریک بروست
Patrick Brosset

تاریخ انتشار: 12 فوریه 2025

کار یک موتور رندر وب بسیار گسترده است و بسیاری از این کارها، مانند استایل، رسانه، یا چیدمان، بر اساس استانداردها انجام می شود. این استانداردها تضمین می‌کنند که موتورهای مستقل می‌توانند با هم کار کنند، که باعث شکوفایی وب شده است. اما برخی از جزئیات دقیق تر، مانند نحوه رندر متن در سطح پیکسل، اغلب به تفسیر توسط نهادهای استاندارد واگذار می شود و معمولاً به سیستم عامل هایی که مرورگرها روی آنها اجرا می کنند تکیه می کنند.

در سال 2020، مایکروسافت اج فرصتی نادر داشت - جایگزینی کامل موتور رندر اصلی خود. Edge به Chromium منتقل شد ، از یک پلتفرم فقط ویندوز که در آن مستقیماً از APIهای Windows استفاده می‌کرد، و تبدیل به یک رندر وب بین پلتفرمی واقعی شد. قبل از تغییر به Chromium، Edge برای رندر متن به طور کامل به یک API ویندوز به نام DirectWrite متکی بود. با این حال، Chromium به Skia متکی است، یک موتور گرافیکی قدرتمند و منعطف چند پلتفرمی، که بسیاری از کدهای خاص سیستم عامل را از API خود استخراج می کند.

در طول انتقال Edge به Chromium، تیم Edge این فرصت را داشت که بازخورد کاربران خود را در مورد موتور رندر Chromium جمع‌آوری کند. یک بازخورد قابل توجه بود—بسیاری از کاربران Edge به اشتراک گذاشتند که متن "شسته شده" به نظر می رسد و با متن در قسمت های دیگر ویندوز سازگار نیست.

متن در Chrome در ویندوز قبل از 132 کاملاً پاک به نظر می رسید.

تیم این بازخورد را جدی گرفت و بررسی هایی را انجام داد. در حالی که Skia از DirectWrite در ویندوز برای عملکردهای خاصی مانند جستجوی فونت استفاده می کند، شطرنجی سازی متن نهایی در واقع مستقیماً توسط Skia انجام می شود. و یکی از عوامل اصلی در بازخورد "شسته شده" از کاربران، کنتراست داخلی و تنظیمات گاما برای رندر متن است.

دو تفاوت اصلی در کنتراست متن و مقادیر گاما بین موتور مبتنی بر کروم Edge و موتور قبلی آن آشکار شد. اول، Skia کنتراست متن و مقادیر گاما را از Windows ClearType Tuner دریافت نمی کند. ثانیاً، از مقادیر پیش‌فرض متفاوتی برای کنتراست متن و گاما نسبت به مقادیر استفاده شده توسط پشته متنی مبتنی بر DirectWrite Edge استفاده می‌کند.

تیم Edge سال گذشته پشتیبانی مستقیم برای رعایت مقادیر ClearType Tuner در Chromium اضافه کرد. این به کاربران مرورگر مبتنی بر Chromium امکان کنترل کنتراست متن و تنظیمات گاما را در ویندوز داد. در حالی که این گام مهمی در جهت درست بود، اکثر کاربران تمایل دارند کنتراست متن و تنظیمات گاما را در کل سیستم خود تنظیم نکنند. بنابراین مرحله بعدی در این سفر بررسی جدی تنظیم کنتراست متن پیش‌فرض و تنظیمات گاما برای محتوای متنی وب و UI مرورگر بود.

تغییر ظاهر متن در وب کار بزرگی است. وب همیشه متن سنگین بوده است و یک موتور متن با کیفیت بالا ضروری است. واضح بود که مقدار کنتراست متن باید افزایش یابد، اما برای تعیین میزان تنظیم آن به داده هایی نیاز بود.

تیم Edge آزمایش مقادیر مختلف کنتراست متن را در سال 2021 آغاز کرد. پس از تحقیقات زیادی که توسط کاربر انجام شد، اعضای Edge و Chromium به این نتیجه رسیدند که مقدار کنتراست 1.0 کاملاً با رندر متن Edge پیش از Chromium مطابقت دارد و در مقایسه با سایر برنامه‌های بومی ویندوز سازگار به نظر می‌رسد.

در تیم Edge، ما معتقد بودیم که تحقیقات و آزمایش‌های ما می‌تواند برای جامعه کلی Chromium در ویندوز مفید باشد، بنابراین یافته‌های خود را با تیم Chrome در Google به اشتراک گذاشتیم که آنها با آزمایش‌های خود آنها را تأیید کردند. سپس به فعال کردن مقدار کنتراست جدید به طور پیش‌فرض برای بیلدهای ویندوز، از Chrome 132، ادامه دادیم.

امروزه، همه کاربران مرورگرهای مبتنی بر Chromium در ویندوز می‌توانند از سال‌های گذشته تحقیق، آزمایش و پیاده‌سازی مشترک بهره ببرند.

متن پس از تعویض واضح و واضح به نظر می رسد.

تشکر ویژه از یان پرست، دانیل لیبی و آلیسون ماهر در مایکروسافت، و همچنین دومینیک روتشس، دیوید یونگ، بن واگنر و برایان عثمان در گوگل به خاطر مشارکتشان در این پروژه!