Question: AngularJS documentation [says](https://code.angularjs.org/1.0.8/docs/guide/directive) `Optionally the directive can be prefixed with x-, or data- to make it HTML validator compliant.`.

Example markup:

1. no prefix: `<input ng-model="name">`
2. `data-` : `<input data-ng-model="name">`
3. `x-` : `<input x-ng-model="name">`

The `x-` prefix is faster to type than `data-`, but the tutorials I have seen used either no prefix or `data-`, so my question is: are there any reasons I might want to use `data-` rather than `x-`?

Answer: 
The advantage of using a `data-` prefix rather than an `x-` prefix is that `data-` prefixes are guaranteed to remain available to authors as they like, whereas an `x-` prefix might one day be used for a browser-specific purpose, possibly conflicting with yours. Note that `x-` are not conforming according to HTML5.
To avoid conflicts between your application attributes and future attributes that could be defined in HTML, the w3.org defined and normalized a specific scheme, the `data-*` attribute. See [the norm](http://www.w3.org/TR/2011/WD-html5-20110525/elements.html#embedding-custom-non-visible-data-with-the-data-attributes). 

Use it

* to reduce the risk of incompatibilities
* to let other coders and tools recognize that those attributes contain application specific data

Besides, using the normalized data attribute lets you use the [element.dataset](https://developer.mozilla.org/en-US/docs/Web/API/element.dataset) property and some libraries, for example jQuery, provide you specific utilities.