Ralph the blue background is a foreground image which is why it gets printed because most browsers print foreground images by default (apart from opera I believe which you may have to set up). The text turns black because there is no background colour for the text and the fact that an image has been shimmed underneath is neither here nor there to the brower so the text gets changed to black.
If this didn't happen automatically then all print outs would have masses of missing text because background colours and background images are not printed by default in most cases.
I am a bit disturbed by a browser trying to dictate what font color my text should be when I state it should be white, but then again, it is what it is
Yes it can be a problem when you have to second guess something but I guess for most people the automatic behaviour is more desirable. Its better to have text in the wrong colour that is readable but not desirable to have white text on white backgrounds when printed.
I think we just have to accept that printing has its own rules and do the best we can.