As someone with low vision, every time I try to read a long article (like this one) I have to make a text color white, a background color black, and text size bigger to make it easier to read. In lucky cases, Firefox's Reader View works rather well. (Although I needed to write a user style so that the contrast would be higher) In cases where Reader View doesn't work or I need to read other parts of a page, I have to write a user CSS with Stylish. It's so frustrating to do this for numerous times. My routine is like this: First, test if `body {color: white !important; background: black !important;}` works. If not, I would right click on a text, select Inspect Element, and look for the CSS rules affecting colors, after which I would write a user CSS to overwrite the rules found. Occasionally the CSS of a page is complicated and it would take me a long time to figure out which CSS rule I should overwrite.
Having done this for countless times, I started thinking as to why I need to do this (obviously given my condition). Why do I have to write a user CSS? Because like Firefox's Reader View, computers could do heuristics at best and when they fail a human has to tell computers which part of a page is text. Why does someone have to figure it out? Because HTML does not contain that information (except for pages that adapt HTML5 semantic tags).
I wish HTML were a bit more restrictive and a page couldn't be designed arbitrarily. For example, if the "Hyper Text" were a lightweight markup language like Markdown or reStructuredText rather than HTML, my life would have been much easier. Some people might say it would be too restrictive. But I have to point out that the standard way of transmitting text, which is by encoding a character to a code point with some character set, is already restrictive when compared with handwriting. We abandoned the freedom to draw characters arbitrarily for communicating machine- (and thereby visually-impaired-) friendly. Because we use character codes to transfer text, we can use any font we like almost everywhere with little effort. I just want the same thing to have happened in the Web.
Having done this for countless times, I started thinking as to why I need to do this (obviously given my condition). Why do I have to write a user CSS? Because like Firefox's Reader View, computers could do heuristics at best and when they fail a human has to tell computers which part of a page is text. Why does someone have to figure it out? Because HTML does not contain that information (except for pages that adapt HTML5 semantic tags).
I wish HTML were a bit more restrictive and a page couldn't be designed arbitrarily. For example, if the "Hyper Text" were a lightweight markup language like Markdown or reStructuredText rather than HTML, my life would have been much easier. Some people might say it would be too restrictive. But I have to point out that the standard way of transmitting text, which is by encoding a character to a code point with some character set, is already restrictive when compared with handwriting. We abandoned the freedom to draw characters arbitrarily for communicating machine- (and thereby visually-impaired-) friendly. Because we use character codes to transfer text, we can use any font we like almost everywhere with little effort. I just want the same thing to have happened in the Web.