iモード向けXHTMLで内部リンクを作る

携帯向け(特にiモード)向けのXHTMLを書いていて、ページ内リンク・内部リンクでえらく困ってしまったのでメモがてら記録。
最初、次の様に書いていたのだけど内部リンクにできなかった。


駄目な例(1)

<h1 id="foo">MENU</h1>
(中略)
<a href="#foo">menuへ戻る</a>


iモードシミュレータも「h1タグへのid要素の割り当ては無効です」と表示して、動作させても確かに機能していない。
そういえば、以前、古典的な書き方をした記憶もかすかにあったので次の様にも書いてみた。


駄目な例(2)

<a name="foo"></a>
<h1>MENU</h1>
(中略)
<a href="#foo">menuへ戻る</a>


これでもダメであった。
で、落ち着いてよく考えるともしかして以前は単純なHTMLで今回はXHTMLなので、このあたり気をつけないといけないのかな。と思ったら、案の定だった。
ドコモのページにHTMLとXHTMLの対応表が掲載されていた。

iモード対応HTMLとiモード対応XHTML比較表
http://www.nttdocomo.co.jp/service/imode/make/content/browser/xhtml/index.html


この中で見ると、Aタグのname要素はid要素に置き換えましょう。と書いてあるので、以下の様に書くときちんと内部リンクとして認識された。


正しい例

<a id="foo"></a>
<h1>MENU</h1>
(中略)
<a href="#foo">menuへ戻る</a>


相変わらずわかってないなぁ。と反省。
これ、auやsoftbankでも問題なく動作するのだろうか。気になるところ。