Since switching to make.clean.html=1 (with 1.76.1), I've been happy feeling like I can just change the CSS if need at some point to restyle HTML output in place.
But I'm starting to think the XSL ought to wrap a <pre> element around pre-formatted content, not just because of https://bugzilla.mozilla.org/show_bug.cgi?id=116083 but also because of http://www.w3.org/TR/html401/struct/text.html#h-9.1 and what I observed on an Apache server with mod_pagespeed.
<div class="programlisting" style="white-space: pre;">class Test
{
public static void main(String [] args)
{
System.out.println("This is a program listing.");
}
}</div>
Gets turned into this:
<div class=programlisting style="white-space: pre;">class Test
{
public static void main(String [] args)
{
System.out.println( "This is a program listing." );
}
}</div>
See http://lists.oasis-open.org/archives/docbook-apps/201203/msg00183.html
This was fixed in version 1.77.1 relerase.