質問: HTML5 では data-* 属性に 1. data- の後に1文字以上続くこと 2. XML-compatibleであること 3. ASCII大文字を含まないこと の3つを要求しています *-attributes `` の data-1 属性は上記3つを全て満たしているので HTML valid だと思うのですが、認識に間違いないでしょうか?
回答: 間違いありません。 規格上そう読めますし、dataset の setter のアルゴリズムでも数字で始まる名前をエラーにしません。下記のコードは Chrome, Edge, Firefox, Safari で動作します。 ``` document.body.dataset['012'] = 'value'; alert(document.body.getAttribute('data-012')); ``` だたし、数字で始めるとドット形式のアクセスは不可能になります。 ``` document.body.dataset.012 = 'value'; // SyntaxError ```