Basically, the fact is that, as you say, even though Microsoft is a member of W3C they have still moved outside the standards, does that mean that Microsoft are purely being belligerant, or is it simply that the standards didn't match up to what they wanted to achieve. If that's the case, is it Microsoft at fault, or do the standards need looking at? Are they up to the job they are set out for?
Take a look at Basic. 15 Years ago, Industry Standard basic had no 'Repeat...Until' or 'While....Do' loops, they were both Pascal instructions, Basic had to rely on 'For...Next' and 'If...Then...Goto' for it's loops. Eventually, as more versions of Basic adopted the Pascal looping commands, they became the Industry standard. That is how standards are supposed to work.