Earlier quoted context omitted.
> and against people who push their preferences on me. > The sensible default is to follow user preferences. > W3C best practice is to let user agent render text as appropriate. But nothing about including CSS goes against this. CSS is clientside rendering, it has nothing to do with forcing preferences on anyone. Your browser has the ability to override provided styles and either modify or ignore CSS. If it doesn't t…
Maybe it's defeatable, but it's still fighting against user preferences. Not sure how you can make that sound palatable. The analogy is if the text documents dictated the editor settings, what font, size, color scheme and keybindings to use because emacs defaults are not to the document author's preferences. >There's no downside to having optional defaults that users can partially override or fully ignore at their ow…
It's not "defeatable", you're not fighting anybody. You can turn off CSS in Firefox in 2 clicks: View -> Page Style -> No Style. What's happening here is that you're being served a text document, and optionally, if you want to, you can download a separate list of styles that will make it look pretty.
This is like buying a bag of cheese at the grocery mart and getting mad that the a recipe on the side of the package is trying to force you to cook a certain way. Nobody is trying to force you to do anything, we'd just like to have the option of having sensible defaults that look nice without being forced to write custom CSS clientside for every website we visit.
And if it's really that awful of a problem for you, then file a pull request with your user agent to get rid of CSS. It's not the website's fault that your user agent is requesting random files from the Internet without your permission. It's not the server's job to tell your user agent how to display HTML and whether or not to use CSS. Your agent doesn't have to do any extra work here, it just needs to stop going out of its way to request extra files on every website it visits. How is it the server's problem if your user agent can't do that?
You're making this out like CSS has to be "circumvented" or something, but it is easier to build a user agent that ignores CSS than one that consumes it. It's less work, not more.
> The analogy is if the text documents dictated the editor settings
They basically do in Emacs: most specialized buffer-types like Magit and Org ship with their own modes that they expect you to use that have their own keybindings and settings. And Org literally does what you're describing. It allows you to override variables locally per-buffer[0]; everything from column widths to TODO colors to indentation to list styles can be specified using CSS-style declarations at the start of a file.
This is also really common in the terminal world for things like manpages; many manpages will use terminal escape codes to color/bold text, and most hard-code their own indentation using whitespace. And even in regular documents, rich text files and PDFs allow you to specify color information and fonts.
The main difference in all of these examples is that most of them are less user-controllable than CSS is. I can't override how a PDF displays; I can't easily change the indentation in a manpage. Globally disabling buffer settings in Org-mode can be problematic because styling information is mixed with functional information like archive locations. In contrast, I can easily disable and override CSS, and it won't affect the actual content of the page at all.
> That's what GNU docs do, they use defaults
No, not by your standards. The GNU docs do ship CSS. The docs ship with multiple style resets, they set the font size in code blocks, they override list styles, they set fonts as well. So GNU docs are willing to override user preferences for code blocks, just not to make the page work well on widescreen displays.