HTML5 is surprisingly lax about using arbitrary attributes and tags: any attribute or tag without a dash in it could potentially conflict with a future version of the spec, but it doesn't go out of its way to forbid them either. data-* attributes are special in that they appear in the .dataset property in the DOM, but anything with a dash should be future-proof against the HTML spec.