24 comments

  • matsemann5 hours ago
    I was also thinking about charsets, BOM (byte order marks) and other shenanigans that had to be correct in the top of the file for things to display as expected. At least it was a struggle for 13 year old me why sometimes æøå showed up completely broken, and sometimes not. Today it feels like a solved issue, all files are UTF-8 all the way and it just works.<p><a href="https:&#x2F;&#x2F;www.w3.org&#x2F;International&#x2F;questions&#x2F;qa-byte-order-mark.en.html" rel="nofollow">https:&#x2F;&#x2F;www.w3.org&#x2F;International&#x2F;questions&#x2F;qa-byte-order-mar...</a>
    • skobes3 hours ago
      It is still important to declare UTF-8 either in &lt;meta&gt; or Content-Type header, otherwise it will usually default to Windows-1252. Yay compatibility!
  • nness5 hours ago
    Forever burnt into my mind is PNG alpha work-arounds in IE:<p><pre><code> filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=&#x27;image.png&#x27;);</code></pre>
    • matsemann5 hours ago
      Hah, my thought as well, was a part of my standard page setup. And then using those transparent pngs to do rounded borders with 9 images nested within 9 divs!<p>Edit: and down memory lane: the spacer.gif
      • justsomehnguy1 hour ago
        I have some bad news for you: &quot;inspect&quot; the whitespace to the left of any comment here.
      • DonnyV3 hours ago
        Using images for rounded corners.....ugh. I forgot all about that.
      • kijin4 hours ago
        9 divs? That sounds pretty modern. I remember tables with 9 cells, with cellspacing=0 cellpadding=0 to remove spaces between those cells.
        • aduty4 hours ago
          I remember both and I&#x27;m thankful that we were able to leave it behind.
    • bbx5 hours ago
      Ha, fantastic line that one. Transparent pngs caused so much unnecessary trouble in IE6, it was very annoying, and limited our options as graphic designers.
  • CM305 hours ago
    Reminds me of how awkward HTML doctypes used to be. Nowadays it&#x27;s very simple, but in the past? You had to refer to the URL of the doctype declaration on every page<p>&gt; &lt;!DOCTYPE html PUBLIC &quot;-&#x2F;&#x2F;W3C&#x2F;&#x2F;DTD XHTML 1.0 Strict&#x2F;&#x2F;EN&quot; &quot;<a href="http:&#x2F;&#x2F;www.w3.org&#x2F;TR&#x2F;xhtml1&#x2F;DTD&#x2F;xhtml1-strict.dtd" rel="nofollow">http:&#x2F;&#x2F;www.w3.org&#x2F;TR&#x2F;xhtml1&#x2F;DTD&#x2F;xhtml1-strict.dtd</a>&quot;&gt;<p>This plus the X-UA-Compatible stuff mentioned in the article meant that for many people, the first few lines of code on a web page were something they probably copied from a tutorial or reference document every time, at least if they didn&#x27;t have a CMS handy.
    • Telemakhos3 hours ago
      You only <i>had</i> to include a doctype if you needed to turn on strict XML rendering or do fun things with XSLT. It was great if you wanted to convert, say, TEI to something browsers could read.<p>You were always, since the days of HTML 1.0, able to use just &lt;html&gt; to open your document without a doctype. It would be in tag-soup mode, but for most documents (rather than applications) that was fine. Not only do you not need a doctype, but you don&#x27;t even need a &lt;head&gt; statement... browsers will generate one if you leave it out.
      • Klonoar3 hours ago
        I am almost positive that there was one version of IE where having any space or newline before the DocType would trigger quirks mode.
      • zdragnar3 hours ago
        Technically yes, but the struggle to keep IE out of quirks mode was real, and that meant a doctype and head and all the things.
    • TeMPOraL4 hours ago
      Like many, I ended up memorizing the pattern at some point, and then typing it from memory.
      • edoceo3 hours ago
        My editor had templates and snippets. Very lux in 2000.
  • rickcarlino4 hours ago
    Server side image maps are a fun one also: <a href="https:&#x2F;&#x2F;rickcarlino.com&#x2F;2021&#x2F;what-were-server-side-image-maps.html" rel="nofollow">https:&#x2F;&#x2F;rickcarlino.com&#x2F;2021&#x2F;what-were-server-side-image-map...</a>
    • BorisMelnik1 hour ago
      oh man &lt;map&gt; and &lt;area&gt; yes kids today just don&#x27;t know the pain we went through.<p>this is back when every single byte mattered and saving a few MB was the difference between a good user experience and a bad one.<p>for those that never used this, you would do something like<p>&lt;img src=&quot;funnycats.jpg&quot; usemap=&quot;#funnycats-map&quot;&gt;<p>&lt;!-- the map defines clickable zones --&gt; &lt;map name=&quot;funnycats-map&quot;&gt; &lt;shape=&quot;rect&quot; coords=&quot;34,44,270,350&quot; href=&quot;cats.html&quot;&gt; &lt;&#x2F;map&gt;<p>most ppl used something like Dreamweaver but bad-asses would do their own coordinates.
      • gavinray1 hour ago
        My web dev experience began right before ES6, when browsers still did not do parallel asset loads and so spritesheets were common<p>Why could you not have defined elements overlayed using high z index that were clickable, like invisible divs?
        • jgraham6 minutes ago
          Server side image maps predate javascript. They were in early versions of Mosaic.<p>Client side image maps and the script element were (AFAICT) both introduced in Netscape 2.<p>Even when scripting was introduced, you didn&#x27;t necessarily have the ability to move elements around freely on the page. I think (but I&#x27;m not certain) that it wasn&#x27;t until Netscape 4 era that you had enough layout primitives to implement the multi-layer positioning approach to custom clickable areas.
  • cprecioso6 hours ago
    I&#x27;d only add the Safari Pinned Tabs `meta` tag (<a href="https:&#x2F;&#x2F;developer.apple.com&#x2F;library&#x2F;archive&#x2F;documentation&#x2F;AppleApplications&#x2F;Reference&#x2F;SafariWebContent&#x2F;pinnedTabs&#x2F;pinnedTabs.html" rel="nofollow">https:&#x2F;&#x2F;developer.apple.com&#x2F;library&#x2F;archive&#x2F;documentation&#x2F;Ap...</a>), which had you define a simple black and white SVG. This image would get used when a user pinned your tab in Safari, in color when active and black when inactive.
  • intrasight5 hours ago
    Lots of mud at the base of the wall. I think it&#x27;s a good sign. It&#x27;ll be a bad sign if this list does&#x27;t grow.<p>I do bemoan the loss of the &lt;?xml-stylesheet?&gt; processing instruction and the JavaScript XSLTProcessor API.
  • forgotmypw174 hours ago
    Thank you so much for this amazing resource. One of my projects is a hyper-compatible framework that builds websites that span the compatibility spectrum from Netscape 3.x to today&#x27;s browsers, and this is very helpful.
    • OuterVale4 hours ago
      Oh, that is so great to hear. Glad to provide it! While writing I was very much thinking about it from the perspective of stripping things out, rather than incorporating legacy code for legacy contexts. Really interesting to think about that line of usage.
  • duskwuff1 hour ago
    &gt; Smart Tags was a system Microsoft introduced in Internet Explorer 6 which would automatically inject hyperlinks into pages.<p>Smart Tags was present in some <i>beta</i> versions of MSIE6, but was removed before release. The MSSmartTagsPreventParsing meta tag never did anything useful - by the time its use was widespread, the feature it controlled had already been killed.
  • Semaphor6 hours ago
    Ohh, conditional comments. We had so many IE holdouts on our site, I think only around 2021 I removed the last IE specific fallbacks, and I think some conditional comments were a thing until 2020.<p>I’m not sure when I removed a bunch of `msapplication-<i>` fields, but probably after 2021 ;)<p>I guess I can remove `apple-touch-</i>` and `application-name` stuff next…
    • icameron30 minutes ago
      Conditional comments are still part of HTML email templates. Though soon will be dead I hope. Thanks &quot;classic&quot; Outlook!
  • 1010084 hours ago
    This was not a HTML snippet by itself, but I remember early 2000s almost every website had three small icons somewhere: Set as homepage, Add to favorites, Contact (an envelope&#x2F;email icon). I think I never used them (I didn&#x27;t use Favorites back then, don&#x27;t know why), but it was nice to see that they were available.
  • testycool2 hours ago
    Love the UX and aesthetic of this site!
  • jszymborski3 hours ago
    I recall adding the page transitions to my website c. 2003ish with FrontPage!<p>Also, an aside, but it&#x27;s seldom these days that I see inspirational page design but this page is gorgeous.
  • myfonj3 hours ago
    There is similar collection in the joshbuchea&#x2F;HEAD project, in DEPRECATED.md [0].<p>(It reminds me to finally gather and record remaining info about<p><pre><code> &lt;meta name=&quot;keywords&quot; content=&quot;...&quot;&gt; </code></pre> that&#x27;s missing in both documents…)<p>[0] <a href="https:&#x2F;&#x2F;github.com&#x2F;joshbuchea&#x2F;HEAD&#x2F;blob&#x2F;master&#x2F;DEPRECATED.md" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;joshbuchea&#x2F;HEAD&#x2F;blob&#x2F;master&#x2F;DEPRECATED.md</a>
    • OuterVale3 hours ago
      Keywords aren&#x27;t (completely) dead (yet), unfortunately. <a href="https:&#x2F;&#x2F;bsky.app&#x2F;profile&#x2F;vale.rocks&#x2F;post&#x2F;3muylxyhg5222" rel="nofollow">https:&#x2F;&#x2F;bsky.app&#x2F;profile&#x2F;vale.rocks&#x2F;post&#x2F;3muylxyhg5222</a><p>Mention of usage by Yandex: <a href="https:&#x2F;&#x2F;yandex.com&#x2F;support&#x2F;webmaster&#x2F;en&#x2F;controlling-robot&#x2F;metatags" rel="nofollow">https:&#x2F;&#x2F;yandex.com&#x2F;support&#x2F;webmaster&#x2F;en&#x2F;controlling-robot&#x2F;me...</a>
    • dchest2 hours ago
      Why is meta keywords deprecated? I use them for my custom website search. I don&#x27;t care that external search engines don&#x27;t index it.
  • derek_foreal2 hours ago
    Unfortunately the comments are still used by email developers having to code for Outlook
  • hk__22 hours ago
    &gt; The Protocol for Web Description Resources (POWDER) succeeded PICS but was also unsuccessful in its intentions<p>At least they were quite inspired for the naming.
  • LoganDark6 hours ago
    Love the ruby tags on Chinese text!!
    • rhdunn4 hours ago
      Ruby tags apply to other scripts as well like Japanese and Korean. See <a href="https:&#x2F;&#x2F;www.w3.org&#x2F;TR&#x2F;css-ruby-1&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.w3.org&#x2F;TR&#x2F;css-ruby-1&#x2F;</a>.
    • voidUpdate4 hours ago
      can they be applied to any text? might be useful if you have a hard to pronounce english word
      • robin_reala3 hours ago
        I’ve used them on Latin before.
    • OuterVale4 hours ago
      I use them whenever I have an excuse!
  • BorisMelnik1 hour ago
    &lt;blink&gt;blink&lt;&#x2F;blink&gt;
  • werdnapk2 hours ago
    Unexpected ending.
  • RobotToaster6 hours ago
    GeoURLs seem like they would still be useful today.
    • jszymborski3 hours ago
      It could be cool! Folks could use hCards rather than ICBM for that.<p><a href="https:&#x2F;&#x2F;microformats.org&#x2F;wiki&#x2F;h-card" rel="nofollow">https:&#x2F;&#x2F;microformats.org&#x2F;wiki&#x2F;h-card</a>
    • kijin4 hours ago
      I hope they support drones these days. ICBMs are too expensive and can&#x27;t hit your coordinates as accurately.
  • netol5 hours ago
    About Twitter Embeds:<p>&gt; These meta tags (and some other, less frequently used ones) were used on Twitter when generating link embeds. However, the documentation and card validator are no longer accessible (previously at <a href="https:&#x2F;&#x2F;dev.twitter.com&#x2F;cards&#x2F;getting-started" rel="nofollow">https:&#x2F;&#x2F;dev.twitter.com&#x2F;cards&#x2F;getting-started</a> and <a href="https:&#x2F;&#x2F;cards-dev.twitter.com&#x2F;validator" rel="nofollow">https:&#x2F;&#x2F;cards-dev.twitter.com&#x2F;validator</a> respectively). X falls back to the widely respected Open Graph meta tags, making the Twitter-specific declarations largely useless. They should be removed in favour of Open Graph tags. Further, they should be removed because X is an awful site with poor moderation that is owned by a man who publicly performed a Nazi Sieg Heil salute and has directly contributed to the rise of fascism in the United States of America and globally, among other horrors.<p>Ok but I believe `twitter:card` has no OG equivalent and still works?
    • tosti3 hours ago
      Well, that escalated quickly. If my client wants Twitter tags, I&#x27;ll write those Twitter tags. If my client wants dancing hamsters, I&#x27;ll add those dancing hamsters. I don&#x27;t care who Elon Musk is and what he did. I don&#x27;t know the guy, but I do know my wife and family and they want food on the table.
      • Tepix3 hours ago
        Luckily, some people have enough money to be able to afford ethical inaction.
        • tosti3 hours ago
          Good for them.
          • DonHopkins26 minutes ago
            It&#x27;s so refreshing to see courageous people bravely standing their ground who don&#x27;t believe Heiling Hitler on international TV and publically humiliating and abusing their trans daughter online is a bridge too far. It&#x27;s so unfair to criticize anyone for doing something you&#x27;d do too if given the platform and opportunity. Once you disown and kick your own child out of the street instead of accepting them for who they are, you&#x27;ll have lower grocery bills just like you voted for.
  • deanebarker4 hours ago
    I thought PICS was a well-designed framework. I was disappointed when it didn&#x27;t take off.
  • lapcat4 hours ago
    I would add this:<p><pre><code> &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt; </code></pre> All you need is initial-scale=1, not width=device-width, which is redundant.<p>&quot;You do not need to set every viewport property. If only a subset of the properties are set, then Safari on iOS infers the other values. For example, if you set the scale to 1.0, Safari assumes the width is device-width in portrait and device-height in landscape orientation.&quot; <a href="https:&#x2F;&#x2F;developer.apple.com&#x2F;library&#x2F;archive&#x2F;documentation&#x2F;AppleApplications&#x2F;Reference&#x2F;SafariWebContent&#x2F;UsingtheViewport&#x2F;UsingtheViewport.html#&#x2F;&#x2F;apple_ref&#x2F;doc&#x2F;uid&#x2F;TP40006509-SW26" rel="nofollow">https:&#x2F;&#x2F;developer.apple.com&#x2F;library&#x2F;archive&#x2F;documentation&#x2F;Ap...</a><p>I&#x27;ve confirmed the behavior in testing.
    • phil-pickering3 hours ago
      The latest MDN recommendation is to use only width=device-width, with initial-scale being mostly redundant.<p>Source: <a href="https:&#x2F;&#x2F;developer.mozilla.org&#x2F;en-US&#x2F;docs&#x2F;Web&#x2F;HTML&#x2F;Reference&#x2F;Elements&#x2F;meta&#x2F;name&#x2F;viewport#viewport_width_and_screen_width" rel="nofollow">https:&#x2F;&#x2F;developer.mozilla.org&#x2F;en-US&#x2F;docs&#x2F;Web&#x2F;HTML&#x2F;Reference&#x2F;...</a>
    • netol4 hours ago
      This may be Safari-specific? Google recommends setting both: <a href="https:&#x2F;&#x2F;developer.chrome.com&#x2F;docs&#x2F;lighthouse&#x2F;best-practices&#x2F;viewport" rel="nofollow">https:&#x2F;&#x2F;developer.chrome.com&#x2F;docs&#x2F;lighthouse&#x2F;best-practices&#x2F;...</a>
      • OuterVale4 hours ago
        You don&#x27;t need both, but you should have the width set. From that page:<p>&gt; A page fails the audit unless all of these conditions are met:<p>&gt; - The document&#x27;s &lt;head&gt; contains a &lt;meta name=&quot;viewport&quot;&gt; tag.<p>&gt; - The viewport meta tag contains a content attribute.<p>&gt; - The content attribute&#x27;s value includes the text width=.<p>I researched and tested this extensively the other day. `&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot;&gt;` is all you need. <a href="https:&#x2F;&#x2F;vale.rocks&#x2F;micros&#x2F;20260902-1350" rel="nofollow">https:&#x2F;&#x2F;vale.rocks&#x2F;micros&#x2F;20260902-1350</a>
        • lapcat4 hours ago
          &gt; I researched and tested this extensively the other day. `&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot;&gt;` is all you need.<p>This is incorrect. Try adding an &lt;img&gt; that&#x27;s wider than the device width. Then the whole page gets zoomed and the text unreadably small.
          • OuterVale3 hours ago
            The same will happen regardless in the case of content extending beyond the width of the viewport. With `initial-scale=1` it&#x27;ll be a horizontal overflow, without it&#x27;ll zoom out. I argue that the latter is preferable (<a href="https:&#x2F;&#x2F;vale.rocks&#x2F;micros&#x2F;20260908-1315" rel="nofollow">https:&#x2F;&#x2F;vale.rocks&#x2F;micros&#x2F;20260908-1315</a>) but either way should never reach users due to the usability fails and <i>major</i> accessibility issues.
            • lapcat3 hours ago
              &gt; I argue that the latter is preferable<p>I disagree vehemently. I couldn&#x27;t disagree more. The text has to be readable. If you force the reader to zoom in order to read the text, your website is fundamentally broken.<p>Moreover, neither of these considerations apply to images: &quot;you risk having content off-screen which cannot be focused by a keyboard&quot; &quot;A user is extremely unlikely to think to scroll horizontally to see the rest of a document&quot;<p>&quot;There is even great president for it with documents on the web&quot; Typo: precedent.<p>&gt; either way should never reach users<p>This seems practically unavoidable with images, especially screenshots for example. Device widths vary, image widths vary. There is no magical image width that fits every device width, unless the image is very narrow. Moreover, I try to avoid JavaScript altogether when possible, so I don&#x27;t want custom JS image viewers all over the place.
  • 2d8a875f-39a2-43 hours ago
    oh god, so many hacks, so many hacks<p>::facepalm emoji::
  • slipperybeluga2 hours ago
    [dead]