なぜ XHTML5 にしたかというと、 rnotepad.php (記事投稿エディタ)で、「投稿」ボタンが押されたときに、日付などの入力欄の入力チェックがしたかったからだ。
とりあえずやってみた感想だが、 input タグの要素に pattern で正規表現を使って入力してよい値を指定するのだが、それだけだと、未入力の場合素通りしてしまう。 required 要素も一緒に指定しておく必要がある。検索して見つけたサイトは、その注意点が漏れていた。
あと、 pattern で指定した形式ではなかった場合、「投稿」ボタンを押すと、「Please match the requested format.」( firefox )や「指定されている形式で入力してください。」( chrome )といったメッセージがツールチップ形式で表示されるのだが、どのような形式にする必要があるかは教えてくれないのだ。
こういう場合、例えば時刻であれば「00〜23を入力してください。」とツールチップに表示したいのだが、それができないので、 HTML5 の入力チェックは、いまいち役に立たないことが分かった。
今の HTML5 の入力チェック方式であれば、例えばフォームの入力欄付近にどのような形式で入力するかを正確に表示しておく必要があるが、これでは非常にうっとうしい状態になってしまう。やはり、ちゃんとやりたければ javascript などでごりごり書かないといけないようだ。もう一度言うが HTML5 の入力チェックは、「いまいち」なのである。
ちなみに、今回の作業で XHTML5 などというものが存在することを初めて知った。
rNote で使用されている xhtml1.1 との相違点が正確に知りたいところなのだが、ぱっと検索してみた限りでは、情報を発見できなかった。見つかったのは、ヘッダ部分の記述の例が少しと、 HTML5 の DOM のシリアライズに2種類あって、1つが HTML5 でもう一つが XHTML5 だという説明だけだった。各ブラウザの対応状況なども見つからなかったが、とりあえず firefox ではなんとなく動作しているようだ。