logoalt Hacker News

charcircuityesterday at 11:54 PM5 repliesview on HN

>but it can’t validate CSS against a renderer which is fundamentally broken!

The epub standard doesn't say what version of CSS must be supported. There were no guarantees modern CSS would work so I wouldn't call the renderer broken.


Replies

gsnedderstoday at 12:07 AM

You are of course correct that ePub nowadays doesn’t mandate a given version of CSS (though earlier versions did!), but that doesn’t matter in this case: it’s non-conforming according to even CSS level 1 (1996), per https://www.w3.org/TR/REC-CSS1-961217#forward-compatible-par...

> illegal values, or values with illegal parts, are treated as if the declaration weren't there at all

So a conforming implementation would ignore that max-width property declaration, not raise an error.

And those earlier versions of ePub which defined a required subset of given CSS standards? The forwards-compatible parsing rules were part of their subset.

nightpooltoday at 12:06 AM

No, the CSS spec is specifically designed to be forwards compatible because of exactly this issue. Any invalid CSS rule should only cause that specific line to be ignored, not the whole stylesheet. And certainly even if your CSS parser chokes in some specific case, it shouldn't cause your ereader to fail to load the entire book!

acdhatoday at 12:09 AM

The parser is broken. The CSS standard says that parsers MUST ignore properties they don't recognize.

Ardrentoday at 12:13 AM

ePub3 is CSS2.1 (+ some extras) CSS21 standard says "Illegal values. User agents must ignore a declaration with an illegal value."

Ignore != Fatal error

ninth_anttoday at 12:06 AM

If the renderer completely fails because of a minor issue when parsing the css, that is broken.