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.
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!
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.
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's browsers, and this is very helpful.
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.
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/email icon). I think I never used them (I didn't use Favorites back then, don't know why), but it was nice to see that they were available.
I'd only add the Safari Pinned Tabs `meta` tag (https://developer.apple.com/library/archive/documentation/Ap...), 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.
Reminds me of how awkward HTML doctypes used to be. Nowadays it's very simple, but in the past? You had to refer to the URL of the doctype declaration on every page
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't have a CMS handy.
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.
I’m not sure when I removed a bunch of `msapplication-` fields, but probably after 2021 ;)
I guess I can remove `apple-touch-` and `application-name` stuff next…
> 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 https://dev.twitter.com/cards/getting-started and https://cards-dev.twitter.com/validator 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.
Ok but I believe `twitter:card` has no OG equivalent and still works?
All you need is initial-scale=1, not width=device-width, which is redundant.
"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." https://developer.apple.com/library/archive/documentation/Ap...
You don't need both, but you should have the width set. From that page:
> A page fails the audit unless all of these conditions are met:
> - The document's <head> contains a <meta name="viewport"> tag.
> - The viewport meta tag contains a content attribute.
> - The content attribute's value includes the text width=.
I researched and tested this extensively the other day. `<meta name="viewport" content="width=device-width">` is all you need. https://vale.rocks/micros/20260902-1350
https://www.w3.org/International/questions/qa-byte-order-mar...
Edit: and down memory lane: the spacer.gif
I do bemoan the loss of the <?xml-stylesheet?> processing instruction and the JavaScript XSLTProcessor API.
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
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't have a CMS handy.
I’m not sure when I removed a bunch of `msapplication-` fields, but probably after 2021 ;)
I guess I can remove `apple-touch-` and `application-name` stuff next…
> 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 https://dev.twitter.com/cards/getting-started and https://cards-dev.twitter.com/validator 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.
Ok but I believe `twitter:card` has no OG equivalent and still works?
"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." https://developer.apple.com/library/archive/documentation/Ap...
I've confirmed the behavior in testing.
> A page fails the audit unless all of these conditions are met:
> - The document's <head> contains a <meta name="viewport"> tag.
> - The viewport meta tag contains a content attribute.
> - The content attribute's value includes the text width=.
I researched and tested this extensively the other day. `<meta name="viewport" content="width=device-width">` is all you need. https://vale.rocks/micros/20260902-1350
This is incorrect. Try adding an <img> that's wider than the device width. Then the whole page gets zoomed and the text unreadably small.