THIS IS AN ACTUAL WEBSITE (a less profane and Oedipal manifesto for a better World Wide Web) © 2024 Matthew Graybosch released under CC BY-NC-SA 4.0 International EVERYTHING YOU NEED You may have forgotten, or never learned in the first place, but this is how a website should work. - A website should be a collection of one or more hypertext documents. - A website should fit into any screen. - A website should look consistent in all standards-compliant browsers. - A website should be accessible to all people, regardless of what assistive technologies they might need. - A website and its documents should be navigable by hyperlinks. - A website’s documents should be searchable using a browser’s “find in page” feature. - A website should be legible and present a coherent message. [1] - A website should not need JavaScript, but a little JavaScript can enhance the experience. - A website should not need CSS either, but browsers provide terrible default styles that probably haven’t been updated since 2001. WE HAVE THE TECHNOLOGY All that stuff that a website should be and do? We already have it. [2] Perhaps we always have. Tim Berners-Lee and his colleagues at CERN got this mostly right about 30 years ago, building on concepts from Project Xanadu to create a practical implementation of hypertext documents. The first website was built in 1989. It’s still available, and why shouldn’t it be? It’s nothing but a collection of hypertext documents. Never mind IE6; you could probably render it on a Tamagotchi or a toaster running NetBSD if you had to. Don’t forget that the very first web browser was built on and for a NeXT workstation, and the second was designed to run on dumb terminals. You could probably render this site in such old browsers, or at least NCSA Mosaic. However, such old browsers would mangle the text because they don’t support Unicode. In fairness, the first version of the Unicode standard wasn’t published until 1991. SELF-INFLICTED PROBLEMS This site would work just fine in pre-Unicode browsers from the 1990s if I had stuck to the 127-character ASCII character set and specified that encoding instead of UTF-8. But I’m used to Unicode text and being able to use typographic quotes. [3] As far as self-inflicted problems go, this is pretty mild. We do much worse to ourselves and each other, just to earn a living. - We use the wrong tools for the job. - We choose novelty for its own sake. - We stack abstractions atop one another like Jenga towers. THIS ISN’T ENTIRELY OUR FAULT I’ll admit it. Building websites is hard. A lot of what makes this a miserable experience arose out of the browser wars. It was bad enough that JavaScript was incredibly slow and janky at first [4], especially if you were used to strongly typed languages like C. It really didn’t help that the major browser vendors couldn’t agree on how to implement standards like HTML, CSS, or ECMAScript. Netscape did things in a particular way, and Microsoft insisted on doing things a different way. The W3C didn’t have enough authority to sit either party down and tell them to cool it with the proprietary extensions. Web developers got caught in the middle. They had to decide whether to support one browser or try to support both. Now it might be happening again, if Google decides they can afford to add proprietary functionality to Chrome. [5] Nevertheless, we can do better. Especially if we’re professional web developers. Does your blog really need all the JavaScript you’re using? Does it need to be built with React? Do you really need a build step that depends on Node and over 9,000 npm packages? Who are you trying to impress? Likewise to the people who slavishly imitate oedipal websites and brag about only needing 7 CSS declarations or think that using HTTPS and gzip matter. What good is asceticism for its own sake? You say it’s satire. You know full well that some people are going to take it literally. YOU MIGHT NEVER HAVE SEEN A WEBSITE BEFORE Like the person who has always shaved has no notion of their natural state, you have no notion of what a website is or could be. All you have ever seen are pale imitations of newspapers, magazines, and television. The web should be hypertext communicating messages that were at least meaningful to their authors. This is a real, sensibly dressed website. Look at it. If a college dropout like me can manage this, then so can you. THIS IS NOT SATIRE I won’t claim that this is 100% objective fact. It is my opinion alone, but free to a good home. While this had originally been a parody and response to more profane and oedipal sites, it’s become more than that to me. I wouldn’t have spent the weekend after my wife and I had been sick with influenza writing all of this text otherwise. The World Wide Web: a communications medium barely alive. We can fix it. We have the technology. We can make it better than it was. Better, stronger, faster... --- a parody of The Six Million Dollar Man’s opening monologue This popped into my head as my fever broke. I thought it was too good not to use even if it dates me. We have always had the technology. It’s time we learned to use it. SUGGESTIONS FOR BETTER WEBSITES The following are my preferences, which should not be mistaken for prescriptions. - Exhaust the possibilities of HTML before using CSS or JavaScript. - HTML5 form elements provide more functionality than you might have expected. - The element will let you serve images in bandwidth efficient formats like AVIF while still supporting JPEG or PNG as a fallback for visitors using Microsoft browsers. - You can use
and instead of building your own accordions. - Try the element before using a framework just because you want to pop up a modal. - You can integrate multimedia into your pages with the