unbeforeunload, è un evento "inventato" da Microsoft, usato solo sui suoi browser (dalla versione 4 in poi) e solo su quelli per Windows, quindi il w3c non lo prevede tra il codice standard.
Se vuoi validare la pagina, dovrai anche trovare un DTD che lo supporti, prova sul sito Microsoft.
Ma francamente non capisco a cosa ti serva, puoi senz'altro usare onunload.