I tried reporting a bug through Adobe's bug form (https://www.adobe.com/cfusion/mmform/index.cfm?name=wishform), but there's no choice for Digital Editions, so I had to file it against Adobe Reader 2.0. As a result, I have no idea if the ADE team will ever even see the bug report. I'm hoping that by posting here, an actual human being from Adobe might have a prayer of reading it.
I'm seeing a number of significant spec compliance bugs in ADE:
1. The font-variant: small-caps CSS property does not work as expected. Normally, when this is seen, a reader would use the small cap feature of the OTF file to substitute alternate glyphs. Instead, font-variant: small-caps is ignored. By my reading of the spec, this feature is part of the EPUB 2.0.1 required subset. The only way to work around this bug involves creating a subset font that contains the small-caps letters in place of the normal lowercase letters, thus bloating the EPUB files unnecessarily.
2. Links containing images are broken. For example:
<a href="foo.html#bar"><img src="linkicon.jpg" /></a>
When you click such an image, nothing happens. That's a pretty serious spec compliance bug. (Image links have been a documented part of the HTML standard since at least June of 1993, just a few months after the IMG tag was added in the first place.) AFAIK, there's no real workaround possible for this bug. Such basic functionality either works or it doesn't.
3. ADE improperly ignores entire CSS files if it cannot understand anything in it. In particular, I've seen ADE break because of @media, @page (I think), and even "filter:alpha(opacity=0);".
This behavior clearly violates the EPUB 2.0.1 specification, which says that "any unsupported properties must be gracefully degraded per the CSS 2.0 specification." Throwing out the entire CSS file is not graceful.
The only way to work around this bug involves splitting ADE-incompatible CSS bits out into separate files. It works, but it is inexcusable that such a hack should be necessary. The only spec-compliant way to handle unknown CSS is to ignore the remainder of the current statement—up to the next semicolon for normal CSS declarations, or until after a matching open and close curly brace pair when ignoring entire declaration groups. The complete set of rules for parsing CSS are defined here:
Notice that at no point are you allowed to just give up, stop parsing, and throw out everything you've already parsed up to that point....
4. Unless this has been fixed recently, ADE does not appear to support the :before pseudo-element with the content: property. These CSS features are both part of the required subset of CSS specified in the EPUB 2.0.1 specification. For example, the classic centered section mark trick doesn't work:
5. Unless this has been fixed recently, the :first-letter pseudo-element does not work, making drop caps much, much uglier and more markup-heavy for no good reason. Again, that's part of the required subset specified in the EPUB 2.0.1 specification.
Each of these bugs is a rather egregious spec compliance bug that I'm having to work around with fairly extensive ADE-specific hacks. I'd like for those hacks to be able to go away, but that can't happen unless and until Adobe brings their reader into compliance.
Does anyone know of a better way to report bugs like this in a way that will actually reach Adobe's engineering team? I find it very disconcerting that ADE, which forms the basis for such a wide range of EPUB readers, has such serious compliance bugs and yet has absolutely no formal bug reporting mechanism, as far as I can tell.