I don’t disagree, but none of the things you pointed out are actually breakage as far as I can tell:
margin-left: em;
That was a typo for margin-left: 1em, but the browser ignoring the directive doesn’t actually do anything because it only ever appears immediately to then right of something that has margin-right: 1em. Fixed!
<li> list items which are… not… inside any <ol>/<ul> lists
Looks like at some point I missed the <ul>; added. (This is already only semantic—I have css removing all the list-specific display already)
I have no idea what <script nonce=”this-is-not-a-real-nonce” type=”text/javascript”> is supposed to do, but it very much makes me wonder if it’s doing what it’s supposed to do for anyone at all.
The validator is complaining because type="text/javascript" is no longer something you need to write, but it’s not really wrong to include it.
The nonce="this-is-not-a-real-nonce" is something I added when I temporarily served my site with a CSP (but without taking the time to fully set it up) as part of verifying that some other code I was testing on my site did the right thing in the presence of a CSP. It’s not doing anything, but also not breaking anything. This is annoying enough to rip out that I’m leaving it for now.
immaculate HTML/CSS and carefully code to the standards, you will still run into hilarious breakage for many users
As long as you verify that you’re coding to a standard that’s supported by the versions of the browsers you’re trying to support, what sort of breakage are you thinking about? This does happen (ex: Chrome/iOS advertising in its Accept header that it supported webp when it didn’t support inline webp) but it’s pretty rare, especially in the last ~5y.
For my own site I normally approach this by testing in multiple browser engines: Chrome + Firefox, sometimes also Safari. When I worked in this area professionally I additionally used careful A/B tests, but that’s not worth it for my personal site.
I don’t disagree, but none of the things you pointed out are actually breakage as far as I can tell:
I didn’t say they were. If you are ‘skating on thin ice’, you have by definition not fallen through and started to drown, because you can’t skate and drown simultaneously. (At least, I can’t.) My point is that you are engaged in sloppy coding practices, and so it’s unsurprising that you are making mistakes like casually assuming that MathML can be copied around or would be compatible with random web applications, when you should know that the default assumption is that MathML will be broken everywhere and must be proven supported. That Internet math support is parlous is nothing new.
because it only ever appears immediately to then right of something that has margin-right: 1em.
Until, of course, it doesn’t, because you refactored or something, and hit a spot of particularly thin ice.
but it’s not really wrong to include it.
Not at all. (My site has a few instances of unnecessary type declarations not worth ripping out.) I merely quoted that for the nonce part, which did concern me. CSP is one of the most arcane and frustrating areas of web dev, and the less one has to do with it, the better. Leaving in anything to do with CSRF or CSP or framejacking is indeed tempting fate.
As long as you verify that you’re coding to a standard that’s supported by the versions of the browsers you’re trying to support, what sort of breakage are you thinking about?
Web dev is crack & AIDS. We run into problems all the time where we code to a standard and then it breaks in Chrome or Firefox.
The day before yesterday I discovered that when I added dropcaps to my essay on why cats knock things over, it looked fine in Chrome… and bad in Firefox, because they define ‘first letter’ differently for the opening word ‘Q-tips’. (Firefox includes the hyphen in the “first letter”, so the hyphen was getting blown up to the size of the drop cap!) My solution was to put a space and write it ‘Q -tips’. Because we live in a world without a just and loving god and where standards exist to be honored in the breach.
Especially in Safari, which was created by a fallen demiurge in a twisted mockery of real browsers. Yesterday, Said had to fix a Safari-specific bug where the toggle bar breaks & vanishes on Safari. Worked fine everywhere else, coded against the standard… He also had to polyfill the standardized crypto.randomUUID (2021) for iOS.
And today Said removed the CSS-standardized-and-deployed-since-at-least-2015 property box-decoration-breakand-webkit-box-decoration-break from Gwern.net because it breaks in Safari. (‘webkit’ = ‘Safari’, for the non-web-devs reading this. Yes, that’s right, the Safari version breaks in Safari, on top of the standardized version breaking in Safari for which the Safari version was supposed to be the fix. Good job, Apple! Maybe you can fix that after you get around to fixing your Gill Sans which renders everything written in it full of random typos? And then make your browser hyphenation not suck?) He also had to remove hanging-punctuation due to its interaction with the link text-shadows on Safari, but arguably link text-shadows are a hack which hanging-punctuation shouldn’t try to play well with, so might be our fault.
I look forward to tomorrow. (That was sarcasm. If every day were like this, I would instead look forward to the sweet release of death.)
I don’t disagree, but none of the things you pointed out are actually breakage as far as I can tell:
That was a typo for
margin-left: 1em
, but the browser ignoring the directive doesn’t actually do anything because it only ever appears immediately to then right of something that hasmargin-right: 1em
. Fixed!Looks like at some point I missed the
<ul>
; added. (This is already only semantic—I have css removing all the list-specific display already)The validator is complaining because
type="text/javascript"
is no longer something you need to write, but it’s not really wrong to include it.The
nonce="this-is-not-a-real-nonce"
is something I added when I temporarily served my site with a CSP (but without taking the time to fully set it up) as part of verifying that some other code I was testing on my site did the right thing in the presence of a CSP. It’s not doing anything, but also not breaking anything. This is annoying enough to rip out that I’m leaving it for now.As long as you verify that you’re coding to a standard that’s supported by the versions of the browsers you’re trying to support, what sort of breakage are you thinking about? This does happen (ex: Chrome/iOS advertising in its
Accept
header that it supported webp when it didn’t support inline webp) but it’s pretty rare, especially in the last ~5y.For my own site I normally approach this by testing in multiple browser engines: Chrome + Firefox, sometimes also Safari. When I worked in this area professionally I additionally used careful A/B tests, but that’s not worth it for my personal site.
I didn’t say they were. If you are ‘skating on thin ice’, you have by definition not fallen through and started to drown, because you can’t skate and drown simultaneously. (At least, I can’t.) My point is that you are engaged in sloppy coding practices, and so it’s unsurprising that you are making mistakes like casually assuming that MathML can be copied around or would be compatible with random web applications, when you should know that the default assumption is that MathML will be broken everywhere and must be proven supported. That Internet math support is parlous is nothing new.
Until, of course, it doesn’t, because you refactored or something, and hit a spot of particularly thin ice.
Not at all. (My site has a few instances of unnecessary
type
declarations not worth ripping out.) I merely quoted that for the nonce part, which did concern me. CSP is one of the most arcane and frustrating areas of web dev, and the less one has to do with it, the better. Leaving in anything to do with CSRF or CSP or framejacking is indeed tempting fate.Web dev is crack & AIDS. We run into problems all the time where we code to a standard and then it breaks in Chrome or Firefox.
The day before yesterday I discovered that when I added dropcaps to my essay on why cats knock things over, it looked fine in Chrome… and bad in Firefox, because they define ‘first letter’ differently for the opening word ‘Q-tips’. (Firefox includes the hyphen in the “first letter”, so the hyphen was getting blown up to the size of the drop cap!) My solution was to put a space and write it ‘Q -tips’. Because we live in a world without a just and loving god and where standards exist to be honored in the breach.
Especially in Safari, which was created by a fallen demiurge in a twisted mockery of real browsers. Yesterday, Said had to fix a Safari-specific bug where the toggle bar breaks & vanishes on Safari. Worked fine everywhere else, coded against the standard… He also had to polyfill the standardized
crypto.randomUUID
(2021) for iOS.And today Said removed the CSS-standardized-and-deployed-since-at-least-2015 property
box-decoration-break
and-webkit-box-decoration-break
from Gwern.net because it breaks in Safari. (‘webkit’ = ‘Safari’, for the non-web-devs reading this. Yes, that’s right, the Safari version breaks in Safari, on top of the standardized version breaking in Safari for which the Safari version was supposed to be the fix. Good job, Apple! Maybe you can fix that after you get around to fixing your Gill Sans which renders everything written in it full of random typos? And then make your browser hyphenation not suck?) He also had to removehanging-punctuation
due to its interaction with the link text-shadows on Safari, but arguably link text-shadows are a hack whichhanging-punctuation
shouldn’t try to play well with, so might be our fault.I look forward to tomorrow. (That was sarcasm. If every day were like this, I would instead look forward to the sweet release of death.)