Skip to main content

98% Support Still Needs a Door

Hugo Barrera's 98% essay is a useful reminder that browser-support averages are not audience guarantees; my read is that modern CSS adoption needs analytics, fallbacks, and graceful degradation.

WhyNotHugo5 min read
Share:
AI-Powered

AI-powered · Limited to 20 requests per hour

A cartoon website doorway welcomes most visitors while a few people wait behind a transparent compatibility barrier
The sharp point in Hugo Barrera's essay is that a percentage can look excellent while still describing real people locked out.

Hugo Barrera's "98% isn't very much" is a short web-development essay with a useful sting: a support number that sounds excellent can still be a weak promise when the feature is part of basic access. His point is not that modern browser features are bad. It is that a website that works for nearly everyone can still fail a huge number of people, and that global support statistics may not match the audience actually visiting a specific site.

My read is that this is the right way to think about browser compatibility in 2026. I want the modern web platform. I also want teams to stop treating "widely supported" as if it automatically means "safe for my users." The adoption decision should depend on blast radius, audience analytics, and whether unsupported browsers get a graceful path instead of a broken page.

Answer Snapshot

QuestionMy read
What happened?A July 3, 2026 WhyNotHugo post argued that 98% support is not enough when the missing 2% means real users cannot use a site.
Why it mattersBrowser support percentages compress too much: global usage, core-browser support, local audience mix, and fallback quality are different questions.
Who benefits if teams handle this well?Users on older, managed, niche, mobile, assistive, or constrained browsing setups, plus frontend teams that want modern CSS without surprise regressions.
My thesisA new web feature is safe only when the unsupported path is acceptable. If failure breaks the core experience, 98% is not a finish line.
What I am not arguingI am not saying every site must support every old browser forever, or that CSS nesting is bad. I am saying the support bar depends on what breaks.

The Number Is Doing Too Much

Barrera's strongest move is to separate bonus outcomes from baseline expectations. A 98% success rate can sound amazing for a difficult achievement, but it sounds very different when the expectation is basic reliability. Applied to the web, the missing percentage is not an abstract remainder. The source post notes that a feature working for 98% of the population can still leave out roughly 150 million people.

The more practical warning is that "98% of the population" may not mean 98% of a site's actual audience. Barrera says he checked one client's browser distribution while considering whether to remove an SCSS pipeline, and found that over the prior year only about 70% of visiting browsers supported the newer CSS features in question. That is the part I find hardest to hand-wave away. The decision was not about a generic web user. It was about that site's real traffic.

This is why I dislike compatibility arguments that stop at a single percentage. The number is useful, but it is not the decision. The decision is whether the feature is decorative, progressive, recoverable, or load-bearing.

A cartoon developer studies grouped browser audiences and finds one cluster with missing compatibility puzzle pieces
A global average can hide the audience that actually visits your site. The local distribution is often the number that matters.

CSS Nesting Is a Good Test Case

CSS nesting is a useful example because it is not a gimmick. MDN's guide describes it as browser-parsed CSS, not precompiled Sass, and says it can make stylesheets easier to read, more modular, and sometimes smaller. Chrome's developer documentation makes a similar case around organization, reduced repetition, and refactoring.

So the pro-adoption argument is real. Native nesting removes a build-step dependency for some sites, gives authors a familiar way to group related selectors, and is now part of the modern platform conversation. Baseline also gives developers a shared language for support: newly available means all core browsers support a feature, and widely available means 30 months have passed since that interoperable date.

But the details still matter. Sass's 2023 writeup explained that native nesting is not identical to Sass nesting, including differences around :is() specificity and selector suffix behavior. The Sass team said it would not change existing valid Sass output to emit browser-incompatible CSS until native nesting reached 98% global browser market share. That caution is not nostalgia. It is compatibility discipline from people who understand how much CSS sits in production.

As of the Can I Use CSS Nesting page I inspected, the feature showed 90.81% global usage support when combining full and partial support, with usage statistics based on StatCounter data for June 2026. That is high enough to be interesting and low enough to prove Barrera's point: the label "modern" does not tell me whether a site's unsupported path is acceptable.

Baseline Is Not a Permission Slip

I like Baseline because it replaces vibes with a common vocabulary. It makes the platform easier to discuss, lint, and teach. The problem starts when teams turn that vocabulary into a yes/no permission slip.

The ESLint CSS use-baseline rule documentation is careful about this. It says Baseline can help interoperability, but testing is still required, especially when an audience uses browsers outside the core set. It also notes that accessibility testing is still required because Baseline does not track assistive-technology support, and it explicitly leaves room for @supports, fallbacks, and progressive enhancement.

That is the version of Baseline I trust. It is a good input to an engineering decision, not a replacement for one. A feature can be Baseline and still be the wrong choice for a public form, a checkout flow, an internal enterprise app with locked-down browsers, or a site whose audience over-indexes on old mobile devices.

A cartoon maintainer weighs modern CSS blocks against fallback ramps and visitors waiting for a usable path
The tradeoff is not old web versus new web. It is developer convenience weighed against the cost of excluding users from basic functionality.

The Public Reaction Is Split

The developer conversation around native CSS nesting shows the real split. In a Reddit webdev thread about whether native CSS nesting was safe to use, one concern was straightforward: if nesting is fundamental to the stylesheet, unsupported browsers may lose far more than a minor polish layer. Other commenters were comfortable moving ahead when their support policy was limited to recent Chrome, Edge, Firefox, and Safari versions.

That split is not irrational. It is audience-dependent. A private project with a narrow browser policy can tolerate a different risk than a public information site, a school system, a government-adjacent service, or a product with customers on managed hardware. The mistake is pretending there is one universal threshold.

The skeptical side also has a maintainability argument. Piccalilli's "CSS nesting: use with caution" argues that nesting solves a developer problem more than an end-user problem, warns about specificity gotchas, and recommends keeping nesting shallow if you use it. I do not share the most absolute version of that critique, but I find the pressure useful. A feature that improves authoring can still make runtime support and code comprehension worse if applied carelessly.

A Better Adoption Checklist

QuestionWhat I would check
Is this enhancement or foundation?If the feature only improves layout polish, a fallback can be simple. If it controls navigation, forms, purchasing, reading, or authentication, the bar rises.
What happens without support?Test the unsupported path directly. Do users get usable content, a reduced layout, or a broken interface?
What does real traffic say?Look at actual browser and device analytics for the audience, not only global compatibility tables.
Can the feature be isolated?Use @supports, build output, progressive enhancement, or simpler CSS so unsupported browsers avoid the fragile path.
How will regressions surface?Keep compatibility checks, analytics, support reports, and accessibility testing close to the release process.

This checklist is not glamorous, but it is the difference between modernizing a codebase and quietly firing a slice of the audience. The goal is not to freeze the web. The goal is to make feature adoption legible: what improves, what breaks, who is affected, and how the team will know.

Cartoon engineers route feature blocks through icon-only support, fallback, analytics, and accessibility gates before users receive a working page
The operational answer is detection, fallbacks, analytics, and accessibility review, not a single percentage copied into a release decision.

My Bottom Line

Barrera's post works because it pushes on a lazy shortcut without turning into anti-progress nostalgia. I want teams to use native CSS nesting, container queries, :has(), and the rest of the platform when they make products better. I also want them to ask what happens to the people outside the happy path.

For me, 98% is not "good" or "bad" by itself. It is a prompt to ask sharper questions. Is the remaining 2% actually tiny for this site? Is the audience distribution known? Is the missing support concentrated in a group the product claims to serve? Does the page degrade gracefully? If the answers are weak, then "widely supported" is not enough. It is just a nicer-sounding way to leave someone at the door.

License

News text © 2026 Mark Huang. News text may be shared or translated for non-commercial use with attribution to https://markhuang.ai/news/browser-support-needs-fallbacks.

Suggested attribution: Based on "98% Support Still Needs a Door" by Mark Huang, originally published at https://markhuang.ai/news/browser-support-needs-fallbacks.