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.