HTML5 removes the 'frameBorder' and 'scrolling' attributes for the iframe element. So in order to have a validating HTML5 document, you're not allowed to use them.
In theory, CSS can pick up the task instead, so the HTML5 changes makes sense on the surface. HTML5 also introduces a new 'seamless' attribute to achieve what most people are trying to achieve anyway.
However, it all goes down hill from here…
IE does not support changing them via CSS, either via setting styles on the iframe element or by setting styles on the html/body elements of the frame contents.
And, no browsers support the 'seamless' attribute yet (so next time you hear someone say Chrome or Firefox supports HTML5, remember they're misinformed – there are actually quite a few HTML5 features not supported by any browser yet).
Unfortunately IE is so buggy you're not allowed to set 'frameBorder' or 'scrolling' after the iframe has rendered (you can do it for a new progmatically created iframe though).
One could progmatically re-generate the iframes, but that would result in the iframes double-loading, with pretty horrible consequences.
So the solution is missing: there is no choice but to produce invalid HTML5 if you want to support all browsers and use iframes.
So that kind of sucks, but in the end, validation is not the most important thing in the world. There's one simple trick we can use – only feed the invalid HTML to IE, via server-side detection. Then the compliant browsers and tools won't be tainted.
Another HTML5 problem…
IE (prior to version 9) will not understand CSS applied to tags it does not recognise, so you can't use the new HTML5 block-level tags because IE will default to them being inline and you can't style them with CSS. Fortunately there's a workaround:
HTML5 enabling script
HTML5 and iframes -- a mess