# Google Chrome 148 - Product: Google Chrome (https://whatsnew.fyi/product/google-chrome) - Vendor: Google - Date: 2026-05-05 - Version: 148 - Original notes: https://developer.chrome.com/release-notes/148 - Permalink: https://whatsnew.fyi/product/google-chrome/releases/148 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — CSS name-only container queries allow querying a container based on its container-name without requiring a container-type - **added** — CSS at-rule() function in @supports enables feature detection for CSS at-rules - **added** — Open Font Format avar2 support for improved variable font control over interpolation across multiple design axes - **added** — CSS revert-rule keyword rolls back the cascade to the previous rule - **added** — Lazy loading attribute for video and audio elements with loading="lazy" to defer media resource loading - **added** — CSS text-decoration-skip-ink: all value unconditionally applies ink-skipping to all glyphs including CJK characters - **added** — Web app manifest localization support for adapting names, descriptions, icons, and shortcuts based on user language and region - **added** — Web Serial API support on Android for connecting to serial devices - **fixed** — Correctly set dropEffect attribute for dragEnter, dragLeave, and dragOver events according to HTML specifications - **fixed** — Implement pointer event suppression on drag start by sending pointercancel, pointerout, and pointerleave events to drag sources Stable release date: May 5th, 2026 Unless otherwise noted, the following changes apply to Chrome 148 stable channel release for Android, ChromeOS, Linux, macOS, and Windows. ##### CSS and UI ###### CSS name-only container queries A CSS query container can be queried based on its container-name only, and the container does not need any container-type set: #container { container-name: --foo; } @container --foo { input { background-color: green; } }
Previously, @container required a container type in addition to the name. Tracking bug #40287550 | ChromeStatus.com entry | Spec ###### At-rule: CSS feature detection This feature adds an at-rule() function to CSS @supports which enables authors to feature-detect support for CSS at-rules. Tracking bug #40211832 | ChromeStatus.com entry | Spec ###### Open Font Format avar2 text shaping and glyph rendering Version 2 of the avar (Axis Variations) table enables font designers to create variable fonts with better control over interpolation. While the original variable font spec handles axes independently, avar2 allows axes to influence one another. This leads to fonts that are easier to use for content authors to use, and enable compact storage. Avar2 works by using the same familiar concepts of font variations, but applies the variable delta values to the design axis specifications itself. In addition, it lets you do this over a range of multiple axes. As an example, it lets font designers create "meta sliders" which control multiple variation axes at once, alleviating the user from fine-tuning and finding a useful corner of the font's design space. Avar2 gives font designers better control over the usable variation space of their font, and lets them coordinate the adjustment of design axes across several axes. By defining the relationships between axes mathematically within the avar version 2 table, fonts can achieve complex designs with fewer masters, leading to smaller file sizes, because the interpolation is stored more efficiently. Tracking bug #40246300 | ChromeStatus.com entry | Spec ###### The revert-rule keyword The revert-rule keyword rolls back the cascade to the previous rule, similar to how revert-layer rolls back the cascade to the previous layer. For example: div { color: green; } div { color: revert-rule; /* Effectively green */ } This is especially useful in combination with conditionals, because it lets you eliminate the current rule if some condition is not met: div { display: if(style(--layout: fancy): grid; else: revert-rule); } Tracking bug #393582263 | ChromeStatus.com entry | Spec ###### Lazy loading for video and audio elements Adds the loading attribute to