
@Steven - unsupported by the underlying language
I agree that this separation of semantics is what the w3c is aiming at but as Ken Hagen pointed out it is not supported by the underlying language. The exclamation mark is a specific presentation of a supposedly semantic element. Of course those fools back in the middle ages didn't think to invent CSS for their printing presses so its just something we will be stuck with for a while yet.
Just take a deep breath and accept that the underlying language that you are rendering was never designed to support this separation of presentation from semantics. Then relax.