Strict w3c validation allows any data-* attributes, and any class.
Directives can be applied to DOM elements with any of:
<tag directive-name><tag data-directive-name>(*)<tag x-directive-name><tag directive_name><tag x_directive_name><tag data_directive_name>
At least the data- one is fully W3C compliant (provided you declare HTML5 doctype). So the following code validates (the attribute name, of course it fails for missing title, missing encoding etc):
<!DOCTYPE html>
<html>
<body data-ng-app="MyApp">
</body>
</html>