jahed.dev

Acknowledging The Fragmented Web

There's been a lot of talk about what the World Wide Web is and isn't. I'm not going into the history of all of it, but I'll share my opinions on the problem and a possible solution.

For clarity, I'll be using 'Web' to mean a collection of related websites and 'World Wide Web' as a collection of all public websites.

The Fragmented Web

There is no such thing as The One True Web. Where every document is properly linked together following the same approach. There never has been.

We have always had web pages where the end goal was to deliver something to the viewer's screen, not to be part of a Web. Whether it was using <table> layouts, Flash, Java or just improperly using tags and protocols.

Just because something is accessible via HTTP/S, doesn't mean it has to adhere to the choices set by the part of the Web I want to browse.

Choose Your Standards

Web Specifications are not requirements, they are standardised choices.

There was a time when I looked at the ever growing scope of web specifications and wondered how anyone could even implement it. There's just so much required, cross-platform OS-specifics, Graphics APIs, animations, VR/AR, Web Sockets, Web Assembly, Audio Programming, the list is infinite.

Now, I mainly see it as a choice. You don't need to have a browser implement all of these features. What's needed is a shared understanding amongst authors and readers about which Webs they are a part of.

Standards are specific to a website, not the author. Here are the standards which I try to follow for this website. Some of my standards can be automated using web specifications, some are subjective:

Other websites I've built have completely different standards. For example, FrontierNav requires JavaScript and can be data-heavy. I don't want users on a metered connection or on a low-end phone to stumble upon it, because it might cause them problems. Ideally, I want them to be warned before downloading anything at the browser-level.

Identifying Webs

Web Authors need to show which Webs they are targeting, if any. Basic solutions already exist, like Web Badges and Web Rings. We can use them to show our readers and other authors that they have a choice.

The hard part is actually knowing which Webs are available to choose from and knowing if you follow its standards. That requires community building, discovery and enforcement; which isn't easy. I don't know which specific Webs this website belongs to, so I could either start my own or ask around.

Enforcing Standards

To avoid non-compliant websites joining a Web they don't meet the standards for, Webs need to have a way to enforce compliance.

A basic implementation could allow readers to choose the standards they wish to follow, and browsers should only render websites that follow those standards.

For subjective standards like topics and presentation, we'd need a central whitelist. It would go something like:

  1. User adds Webs that they would like to browse.

    • Essentially using URLs like adding a search engine.
  2. Website provides list of all the Webs it's a part of.

    • Maybe a manifest file at the .well-known/webs.json
  3. Web Browser hits an endpoint to check if the domain is whitelisted for the Webs both the reader and website has opted-in to.

This process could work in reverse too for older websites, where Webs can whitelist websites without a manifest.

Conclusion

What I've shared in this article is of course not a solution. It's a basic idea. But I strongly believe there is a solution to the problems on the web today. The first step is to acknowledge the Fragmented Web rather than reject it. By embracing its nature we can greatly streamline our experience and grow better communities.

Thanks for reading.