Param element value attribute CDATA test (requires JS)
Key:

  = Carriage Return    = %0D

  = Line Feed          = %0A
   = Space              = %20
  = Non-breaking space = %A0
	   = Tab                = %09
value="
	 abcd
 	 abcd 
	"

Your browser's normalized value:
(The value is escaped so you can see the newlines etc.)
(The tests are the same whether the value uses entities or physical white space.)

From the results, you should see:

-IE, Konqueror and Safari Rules-
1. Replace character entities with characters
    No trimming of leading and trailing white space.
    No normalizing of white space.

-Firefox rules-
1. Replace character entities with characters.
2. Remove leading and trailing white space.
    Spaces are not considered white space
3  If java, remove all newlines, tabs etc. (Not sure why Firefox does this.)

-Opera rules-
1. Replace character entities with characters.
2. Ignore Line Feeds
   'Ignore' is interpreted here as "skip line feeds when reading in the value during parsing."
3. Replace each carriage return or tab with a single space

For the param element's value attribute specifically, 
the way IE, Konqueror and Safari do it is what I desire.

I might want to pass Line Feeds, Carriage Returns and Tabs to a plugin.
I might want to pass leading or trailing white space to a plugin.

Now, since object element attributes can be params to plugins too, they 
should also follow IE's rules., except for reserved attributes like 
data, classid, type, archive, width, height, codebase etc. where things 
should be normalized like HTML4 says.

Firefox's way (besides for java), provides the best of both worlds. You 
can pass newlines to plugins, but still have leading and trailing white 
space removed. I still prefer IE's way though.