docomo、au、softbankの携帯端末に対応したXHTMLを作る際、DOCTYPEの宣言の違いに注意する必要があります。
現在、キャリアごとに推奨されているDOCTYPEの宣言が異なります。
docomo
例:iモード対応XHTML 1.0用のDOCTYPE
<!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/1.0) 1.0//EN" "i-xhtml_4ja_10.dtd">
au
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
※参考:XHTML Basicの基本
softbank
<!DOCTYPE html PUBLIC "-//J-PHONE//DTD XHTML Basic 1.0 Plus//EN" "xhtml-basic10-plus.dtd">
ただし、現状の携帯端末の表現能力ではDOCTYPEによる表示の差異はほとんどないので、XHTML Mobile Profile、もしくはXHTML 1.0 Transitionalに準拠したDOCTYPEを3キャリア共通で宣言しても実用上は問題ありません。
XHTML Mobile Profile、XHTML 1.0 Transitionalに準拠したDOCTYPEの宣言は下記のとおりです。
XHTML Mobile Profile 1.0
<?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd" > <html xmlns="http://www.w3.org/1999/xhtml">
XHTML 1.0 Transitional
<?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
docomoのXHTML対応は注意が必要です。docomoの場合はCSSの記述はインラインのみが対応となっているので、外部CSSが使えません。
参考までに、3キャリア対応のXHTMLテンプレートは次の通りです。
<?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=Shift_JIS" /> </head> <body> </body> </html>
XHTML Mobile Profile 1.0がXHTML Basic1.1に統合されましたが、当分は各キャリアの対応待ちとになるので、しばらくは上記のような方法で問題ないと思います。