The browser should be the User's Agent, not the Web Developer's Agent. If I want to do something with my browser layout that a designer finds appalling, that should not be his concern.
If the web developer and designer really think that text should appear in tiny 5" columns no matter how wide my browser is, fine, then flow your design to display multiple side-by-side columns like a newspaper. Don't just fill my screen with whitespace.
I don’t really want text to reflow to be, like 23, inches wide or whatever. Books with 23 inch wide pages are quite rare, because, I think, that is too much horizontal space, scanning that far with you eyes can become a drag. Of course, if a page just uses the whole width uninterrupted for text I can just give it half the screen, so that is fine. But I’m curious, do you actually like the look of a page like that? Or is this just on principle—respect user choice and all that (if so, good principle!)
In general web devs seem to think way too much about the layout of pages, if they would just do the simple thing users could resize the window to their liking.
HN's handling of different browser widths is... pretty weird, at least on my Desktop Safari browser. Looks like from browser widths of 1920px and greater, HN maintains fixed size whitespace borders and scales the content width. Nice. When you shrink the window past 1600px, it holds the content size fixed and shrinks the borders. I guess the intent is to smoothly transition into a mobile design without the borders. Past 1516px, it removes the borders altogether, and seems to transition into this "mobile" design. Between there and around 610px, it seems to shrink the content width by discrete fixed amounts every 200px or so, to "keep up" with the browser width. Finally, below 610px or so, the site goes back to the non-mobile design, laying out as if the browser was 1600px wide (and actually truncating the right hand side of the text)--totally broken.
All that complexity--for a text only site! When they could just make the text 100% of the browser width and let me as the user decide what is comfortable to view. It's still much, much better than sites that just limit the content width to 600 pixels and fill everything else with whitespace!
It's fixable, of course, by "just" re-flowing the text to match the viewport size. On a desktop, pages of multi-column text at a readable font size are nice. On a phone, multi-column text would be annoying, but a smaller font size can be used because phones are typically held closer to the face than computer monitors. Getting the layout to work correctly like this isn't something I can actually remember ever seeing, but it'd provide a "best of both worlds" way of reading.
Continuing with scrolling as default instead of pagination after the switch to high-res wide screen monitors was a mistake by browser makers. The future of the web - I think - will be with browsers that are real user agents and open every web page in reader mode, with multi-media presented exactly as the user wants. No more letting web-sites control CSS.
As for web-apps, they are not the web, they are programs and should live as PWAs in the OS instead of as bookmarks in the browser.
Like you wrote, there is little reason for column view on phones. Their width is one column and no more. I agree with you that it's strange that we never see this, especially on blogs or newspaper websites, where column view should be used.
You say the browser “should” be your agent - but it is. You can use ‘reader’ mode or any number of browser extensions to tailor things for your own tastes, or even copy and paste the article text somewhere else to read it however you want. What you cannot reasonably expect is for every site to be ideal for your personal tastes out of the box.
Web sites are fast, flexible, responsive, readable, scrollable, accessible, and respectful of user preferences... by default, from the moment you add text between <body> tags. Then web developers add code and CSS to make them worse. Sometimes they make it better, but very often it's worse.
I've seen this argument come up before multiple times on HN, and it's wild to me. Having sensible CSS defaults is not a designer dictating that you are only able to see content one way. You might prefer to read text in a giant line spread across a giant monitor, and that's fine, but it's not a freedom thing. It's not denying your browser's role as a user agent that sites have CSS files.
Every single website (HN included) makes CSS decisions for the user. What colors should be used, what is the default contrast. Every single line of CSS on a website is a designer decision by a designer 2000 miles away from you about how they think that content should be presented. And if you don't like that, turn off CSS in your web browser. Assuming you're using Firefox (which you should be using), it's trivial to do.
Of course, browsers should allow overriding CSS, and (imo) they should make it easier to do so and more accessible to non-technical users. And yes, part of making a website that respects the browser as a user agent is shipping HTML that can be viewed unstyled and that is easy to override styles for. Ironically, HN does a horrible job of this -- the HTML is not semantic, the use of tables is so egregious that even stripping the CSS out doesn't really remove all of the styling. The site is really messy if you want to override anything. So that HN uses a design that happens to more closely align with what you want does not make the site more respectful of your browser as a user agent. It just means that you and the designer(s) happen to like the same design.
And in comparison, putting `max-width: 45em` on a text column is not even remotely user hostile, it is a very simple CSS property to override -- especially for designs that use single columns because you can change that CSS property without even worrying about reflow. `max-width` is a default that statistically works better for the majority of users even on large monitors (I use a 32 inch 4K monitor and max-widths make text on that monitor easier to read). But of course, some people are different, and that's fine. Go yell at the browser makers to allow easier CSS overrides, or turn off CSS entirely, or install an extension that lets you add CSS to given pages or spend a weekend building an extension that strips max-width out of stylesheets for every website you visit, or customize Firefox's userContent.css file. There are options here. And if you had made an argument about those options, I'd be 100% on board. CSS for websites should be treated as a default setting instead of as a requirement and browsers should support CSS overrides more easily out-of-the-box.
But the idea that designers are denying user agency by not making a proactive design decision to present by default the specific format you want to read -- it's just ludicrous. You're not asking for user freedom, you're asking for designers to target your preferences instead of other people's. Those two things are not the same.
Browsers allow you to disable styles altogether, but as you note, most sites are horribly broken in that mode. Even Google's home page, which should be dead simple, is horribly broken with CSS disabled. I think if browsers had spines and enabled users to be more opinionated about styles, web developers would respond by ensuring their sites worked better without them.
I'm still honestly a firm believer in the design technique of designing the HTML of a website before I start working on the CSS, and I know that a lot of people call that naive or say that it doesn't work... but I'm not saying that you can't revise the HTML later to fit a design, just that first I want to know what the content is and I want to treat the HTML as a primary rendering target, not an authoring language. I think there are a lot of benefits to that (one being that in addition to being more user-controllable and flexible, it also makes it much easier to do responsive design if you approach web design through that lens because page layouts become views of a unified block of content rather than completely separate isolated designs).
But I don't think including the CSS is where that process falls apart or that it's disrespecting the user or denying agency. It's like how if someone hands me a image of a block of text, my problem is not that the contrast in the image is too light or that it's the wrong color; my problem is that they handed me an image of a text document. If someone hands me a website that is so intrinsically tied to CSS that it's impossible for me to easily adjust column widths, that coupling is the problem more than the column widths.
Firefox does have some some great options around CSS control for partial or small adjustments but in typical Firefox fashion its best features are all hidden like Mozilla is embarrassed of them. I didn't bring up userContent.css to be dismissive; genuinely you should take a look at it if you've never used it before. I make heavy use of it for websites, everything from building grayscale modes when I want a website to be less distracting, to swapping layouts around. But it's a valid criticism that it's not user-facing and you need to go into advanced settings to even enable it. Browsers could do more.
news.ycombinator.com###hnmain:style(max-width:100ch)
Paste this line to uBlock Origin My filtersThat is completely subjective though, and the user has the option to not use a full screen browser to view the comments. I personally prefer it.
Then again, I rarely read HN on mobile. It's just not the kind of stuff I enjoy looking at when I'm "on the go." Perhaps that's why they never tweaked the layout for mobile?
> ...leading to overly wide text in comments if using a full screen browser.
IMO, that's a bug, both with HN, and with the "default" styling in a browser.
Array.from(document.querySelectorAll('*')).forEach(el => {el.style.resize='both'})See: https://github.com/plibither8/refined-hacker-news
Edit: You can use the F12 debugging pane to adjust the width of a single tab without resizing the window. It's kind-of a hack, though.
Just push F12 and drag.