7日目:言語を設定する
英語でも日本語でも他の言葉でも、どの言語が使われてるのか、書いてる本人はわかってるよね。ならそれを読んでる人とその人が使ってるソフトに教えてあげよう。
誰がトクする?
- ジャッキーが助かるよ。彼女の使ってるスクリーンリーダー (JAWS) はページがどこの言語で書かれてるか判断してからじゃないと、読み上げるときどう発音していいかわかんないもん。どの言語で書かれてるか指定してない場合、JAWS はどれ使ってるか推測してページを読み上げるんだけど、間違った言語だと思っちゃう可能性がある。特にタグとか、普通に使う言葉じゃないものが含まれると、ソフトが混乱することがよくあるんだ。
- それとGoogle の役に立つな。英語でもそうだけど、他の言語で書いてるならなおのこと成果は大きいよ。Google Zeitgeist によれば、Google ユーザの 50% は英語以外の言語を使って検索してる。このユーザの中にはGoogle 表示設定 で、使ってる言語のページの検索結果だけ表示(日本語なら「日本語のページだけから検索する」とか)にしてる人も多い。Google が使ってる言語自動判別アルゴリズムは他のサーチエンジンのよりはいいけど、わざわざ Google を困らせることもないじゃない?
どうしたらいい?
まずは正しい2文字の言語コードを調べること。使ってる言語が英語の場合は "en
"; フランス語の場合は "fr
"; 日本語なら "ja
"。他の言語は ここで言語コードを調べてね。このコードは大文字でも小文字でもどっちでもいいよ。
そしたらその言語コードを <html>
に書き込もう。どういう風に書くかはどのバージョンの HTML を使ってるかによって変わってくる。DOCTYPE
を確認して、次に書いた中から合ったヤツを書いてください。:
HTML 4
のどれかを使ってるとき。<html>
タグをこう変えて。(例では日本語だから "ja" だけど使う言語によって直してね。):<html lang="ja">
XHTML 1.0
のどれかを使ってるとき。<html>
タグをこう変えてほしい。(言語は2か所とも指定してください。):<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
XHTML 1.1
を使ってるとき。<html>
タグをこう変えてください。(ここも例は日本語だけど、同じように使う言語によって直してね。):<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
DOCTYPE
のときと同じで、ちゃんとサイト内の全ページで言語を指定してね。
おまけ。同じページ上で2つ以上の言語を使ってる場合はどうするか。そういうときは各要素ごとに言語指定することができるんだ。例えば HTML 4 を使ってて、内容のほとんどがドイツ語で書いてあるけど、英語の記事を引用するとするよね?そんな場合こうすればいい:
<html lang="de"> ... <blockquote lang="en"> ... </blockquote>
さらなる情報源(全部英語)
- 言語コードリスト
- HTML 仕様書の
lang
属性 - Jim Thatcher著スクリーンリーダーの
lang
属性のサポート現状(2001年執筆)について。スクリーンリーダーの言語自動判別アルゴリズムは「当てにならない」って書いてる。彼が言うならホントだろうね。Jim自身がホームページ・リーダーのアルゴリズムをデザインしたんだから。この記事が書かれたあと、他のスクリーンリーダーはlang
属性に関するサポートを補足してきてるけど、まだイマイチなとこがある。こういうこともあるから、ちゃんと言語を設定することってやっぱり大事なんだ。