Users should set the zoom level of their operating system to whatever makes user interface elements the optimal size for them -- menus, dialog boxes, filenames, toolbars, and so forth.
Then 12pt/16px will be perfectly readable as it was always designed to be.
I'm sick of websites where the body text is four times the size of the text in my menubar (by area). This trend has become increasingly common among tech bloggers and I'm constantly having to zoom out in my browser just to bring the text down to a reasonable size.
Stick with standards and let users modify zoom levels as they desire. If everybody follows the same standard, then users don't have to keep changing their zoom levels per site.
Come to think of it, that's not a terrible idea for a browser extension -- figure out the median text size, figure out the visual apparent size of the font by drawing a few characters to a canvas and measuring them, and then set the page zoom to compensate.
Voilá -- you never have to zoom again!
Therefore, I think the only true solution is to work from rendered pixels, and from there transform into whatever the user wants (font size, style, no advertisements, etc.)
So just because you don't agree with someone else's style doesn't mean it's wrong. It's not like it is preventing you from reading it. You're just upset you might have to do a little bit of work on your end and it's not being served exactly like you want it to be. The entitlement in today's society is beyond belief at this point.
To solve this once and for all, you'd have to take the rendered page, and turn it into something the user wants.
Advantages: 1. the user agent may apply the same general preferences to many different web sites (which all work in different ways and would require different CSS); 2. anything that's already rendered in images can still be transformed into a style preferred by the user. 3. it is technology independent so you could even use those style transformations in AR-goggles (e.g. to change the text on billboards) or on a TV.
A common reply, but that requires setting a zoom level on every site across all browsers on all devices.
A better solution for users is setting a legible size, and respecting their choice of base font size in the browser.
> the body text is four times the size of the text in my menubar
This is the same symptom of type being too small: poor design. Communicate the importance of legibility with your designers to help mitigate.
Applications are meant to be used and may need to be zoomed to maintain coherency among various widgets and controls. Likewise, art projects need to preserve their design intent.
Documents, meanwhile, are meant to be read and the user is going to best know what makes things legible for them. Ideally, publishers hint some presentation ideas but allow and anticipate that the user have final control, like you suggest.
Is HN a web application, an art project, or a document? IMO it's a mix of all of the above.
At the very least, setting the default header color to orange is an artistic decision.
I mostly include it for the sake of argument, the lines blur between the categories. Being a "document" is not a reason to avoid adding CSS.
Re: art, a counter to my argument would be Lubalin's, that we must sometimes reduce legibility to increase impact.
This trend to increase fonts and margins needs to stop. Desktops and browsers should have more control over how they display windows and text, we shouldn’t leave it to website designers to compensate for every single person’s preference. What’s next, an Age API based on IP location, which increases text size because they assume you’re presbyte?
This leads to being able to read 5 paragraphs on your phone but only 2 paragraphs on your desktop. I find it insane. Just let it stay at 16px; the result is still easier to read than the text on your phone, so why bother fiddling with that at all?
I'd even sympathize with a controversial take such that the font size should shrink on the desktop, not grow! The desktop is for utility, and info-density is one of the things it can support very well. Proof? My Emacs font is smaller than the base font in Firefox, yet I stare at Emacs text all day. And HN is, apparently, 12px.
Fonts, too. Everyone has their favorite fonts, but the font a web designer likes has no bearing on what's best or easiest to read for the user. Are they developing a website as an art piece, or to publish articles for real people (not bots) to read?
Ancillary styling for text that needs to stand out, or text that isn't part of the main flow, can be whatever. But I don't even agree with shrinking footnotes anymore. There's no lack of page real estate at the bottom; there's no reason to shrink "back matter" except to imply that you don't expect anyone to ever read any of it (footnotes, index, bibliography, etc. in long-form blogs or books).
When the web was created, HTML was meant to semantically describe text documents. But that isn’t an accurate description of the web today. Today, websites have complete control over their own visual appearance.
Users not knowing how to change their font or font size is not an excuse for website designers to choose fonts and font sizes whimsically, since they rarely base their decisions on good quality readability data. Browsers and other UAs need to step up and provide meaningful interfaces to choose those defaults at install time, and make it easy (and easily discoverable) to adjust.
This article is a really good overview of the subject:
https://www.smashingmagazine.com/2014/09/balancing-line-leng...
This goes right I to details, and the conclusion is that it depends on the distance between the reader and the screen, the eyesight of the reader (which gets worse as we age) and the size of the pixel on the screen:
Think of it as a "weakest-link" principle.
Web pages have no reason to use larger font than the user has in the menu bar, since the user is already sitting at the optimal distance for that font!
1
As they said, there's a lot of variability in how far people sit, which is a good time to remember the myth of the average[1]. You set default values to suit the "average" reader, but your efforts might serve a much smaller amount of people than you'd think -- because almost no one is "average". It's good to shoot for sane defaults, of course, but it could distract designers from strategies that would reliably serve all users. To start with, an actual safe assumption is that whoever the reader is, they've made sure that 16 CSS pixels is readable to them (even if it doesn't meet the ideal of 0.3 arc). They might have upscaled the whole OS UI or just sat closer -- either way, 16 CSS pixels still represents a size that's readable to that person. Going too far above this requires making some pretty bold assumptions which risks making users feel they're being treated like idiots or children.
2
Without sensors that measure physical distance-from-screen, I don't know how we would calculate the visual arcs anyway. We can only hope the user is average. And even if we had such sensors, there are two problems: (1) I'd prefer that iOS/Android just manage the system-wide zoom level, and then individual webpages need do nothing; and (2) it may be great and all to try for 0.3 arc as a default, but if I've scaled it up or down for any reason, I probably want that choice respected, which brings us back to point 1: you can safely assume that the user has adjusted their sitting distance to meet the arc-value they prefer! Yes, they could be idiots and wrong about what would be best for them, but they will still sit closer or zoom out, so you won't get the arc-value you were shooting for anyway! The more you upscale, the more the user downscales. So why fight? Why break expectations?
3
I don't know which font size represents 0.3 arc my screen, but I'll assume it's about 18 CSS pixels and I often experience that smaller text and tighter line-heights let me digest paragraphs and go through whole documents more quickly. The lower limit is very low, like 9px. I think studies need to split up what it means to "read fast":
If you're part of the majority who read one word at a time and subvocalize every word in your head, then what's ideal is probably very different from what's ideal for a speed-reader. In my experience, my reading speed scales to some extent with the total amount of text visible on the screen! So I want a lot of text on screen. That's why I like the default HN tiny font too. Notably, line-heights above 1.6 absolutely destroy my reading speed and I have to switch to Reader mode or just close the tab. My own website has 1.3.
I guess the same principles apply to reading carefully vs. "scanning"/"skimming". Every user cares about that. I think the people who designed the websites I hate probably just assumed that the user is reading everything carefully, but that makes the website a nightmare for users who are just trying to navigate and find their way around.
-----
[1] Excerpt from https://www.gse.harvard.edu/ideas/ed-magazine/15/08/beyond-a...:
> The Air Force concluded that Americans had gotten bigger over the past couple of decades and they simply needed to update their measurement of the average pilot. With the help of a young Harvard College graduate named Lieutenant Gilbert Daniels, they measured more than 4,000 pilots on 10 dimensions of size that seemed important for fitting into a cockpit — torso length and chest circumference, for example. The thinking was that once they redesigned the cockpit for the average pilot of the 1950s, controlling the plane would no longer be so troublesome. Most pilots, they assumed, would be within the average range on the majority of dimensions and that a good number would even be average on all 10 dimensions.
> “Do you know how many really were?” Rose says. “Zero.”
> Even when just three dimensions of size were picked, fewer than 3.5 percent of the pilots fell within the range defined by Daniels as average. Instead, what Daniels found is that every single pilot had what Rose calls a jagged profile. One pilot with long arms may also have long legs while another may not. Not everyone who was average height (5 feet 9 inches) had the same chest circumference or head size.
> Finally, the Air Force had its “aha” moment: If every pilot had a jagged profile and the cockpit was designed for the average pilot, it was actually designed for no one.
Otherwise the size of the type increases, the container does not, and the line lengths become very short.
It also depends on the amount of text. If you don’t have other content on the screen, it’s easy to justify increasing the font size.
i am regularly distracted by sites with huge font sizes, leading me to double check if i'm zoomed in. body texts generally average out to be around 20px, with many even larger.
can someone explain what's going on here? i'm assuming it has something to do with supporting both mobile and desktop, but are that many people explicitly setting the pixel size and/or 150% font size?
People have different vision. I am old and need it big. You are young and want all the text at once. Sites that don't easily adjust are bad (I'm looking at you mobile Slashdot!).
It made sense in 2007 when your monitor size was 1024x768 but I struggle to find out why @dang doesn’t update a couple of lines in a stylesheet to make this website more accessible almost 17 years later.
:root {
--font-size: 20px;
--font-weight: 500;
--border-radius: 5px;
--line-height: 1.6;
--spacing-min: 05px;
--spacing-mid: 10px;
--spacing-max: 20px;
--zoom-min: 110%;
--zoom-mid: 125%;
--zoom-max: 150%;
/* grays */
--color-50 : #f9fafb;
--color-100: #f3f4f6;
--color-200: #e5e7eb;
--color-300: #d1d5db;
--color-400: #9ca3af;
--color-500: #6b7280;
--color-600: #4b5563;
--color-700: #374151;
--color-800: #1f2937;
--color-900: #111827;
/* background */
--color-bg-cool-1: #eceff4;
--color-bg-cool-2: #e5e9f0;
--color-bg-cool-3: #d8dee9;
--color-bg-warm-1: #fdf6e3;
--color-bg-warm-2: #eee8d5;
--color-bg-warm-3: #fffcf0;
}
/* HackerNews - news.ycombinator.com */
table#hnmain {
zoom: var(--zoom-min);
margin: var(--spacing-mid) auto !important;
padding: var(--spacing-mid) !important;
max-width: 960px !important;
background: var(--color-100) !important;
/* border: 1px solid var(--color-200) !important;*/
border-radius: var(--border-radius) !important;
line-height: var(--line-height) !important;
}
table.fatitem .toptext {
color: var(--color-700) !important;
}
Edit: Typos!(which equates to 13px/0.8em).
I love HN but the CSS is outdated. Working on a fix ;)
So you can scale the size of the entire page to be bigger (to suit your needs).
https://support.google.com/chrome/answer/96810
https://support.apple.com/en-gb/HT207209
https://support.mozilla.org/en-US/kb/font-size-and-zoom-incr...
Good forbid I visit a site on a device that is not my own, requiring setting the zoom level again.
Legible design reduces to need to offload this work to the user.
Things like Userstyles and Arc Boosts are reducing the problem too.
Zooming on phones typically breaks the layout (making the viewport larger than the screen).
If I don't own the device I'm using, this solution doesn't work at all as well as simply saying a legible text size in the design.
I'm not sure why Hacker News uses this masochistic 12px/9pt font size for all these years though. I mean, it makes sense on a 21" 1024x768 display but that was 20 years ago