WCAG 2.0 実装方法集

メインコンテンツへスキップ

-

SVR5: HTTPヘッダーで主たる自然言語を指定する

適用(対象)

サーバサイド技術(HTTPヘッダーを設定するサーバサイドのスクリプト言語及びサーバ設定ファイルを含む)

これは、次の達成基準に関連する実装方法である:

解説

この実装方法の目的は、コンテンツの対象者を特定するために、ウェブページの主たる自然言語に関する情報を提供することである。HTTP Content-Language ヘッダーには、一つ以上の言語コードのリストを含めることが可能で、ユーザーエージェントとサーバとの間での言語ネゴシエーションに用いられる。ユーザーエージェントで言語設定が正しく設定されていれば、言語ネゴシエーションによってユーザーは自分が設定した自然言語に合うコンテンツを見つけることができる。

ただし、HTTP Content-Language ヘッダーは、コンテンツを処理するのに用いられる自然言語を特定するためのものではないことに注意しなければならない。コンテンツを処理する自然言語は、マークアップ言語のlang属性やxml:lang属性などによって特定することができる。

この実装方法は、lang属性またはxml:lang属性の例で明記されているように、文書の主たる自然言語をHTTP Content-Language ヘッダーで挙げるようにするものである。

訳注:【WCAGワーキンググループに確認中】言語ネゴシエーション (language negotiation) というのは、Accept-Languageによるコンテント・ネゴシエーションのことを指していると思われますが、このときネゴシエーションに使われるのは "Content-Language" ではなく、クライアントが送る "Accept-Language" の値です。現在、原文の記述に誤りがないかどうかを確認中です。

事例

事例 1: Javaサーブレット及びJSPによるコンテンツの自然言語設定

Java サーブレット又はJavaServer Pages(JSP)では、開発者は response.setHeader("Content-Language", lang)を用いることが可能で、"lang" は言語タグを表す(例えば、英語なら "en" ):

コード例:


…
public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException 
{
…
  response.setHeader("Content-Language", "en");
  PrintWriter out = response.getWriter();
…
}
	

事例 2: PHPによるコンテンツの自然言語設定

PHPでは、開発者は header メソッドで生のHTTPヘッダーを送ることができる。次の例では、自然言語をフランス語に設定している:

コード例:


<?php  header('Content-language: fr');  …  ?>  
	

参考リソース

この参考リソースは、あくまでも情報提供のみが目的であり、推薦などを意味するものではない。

W3C Internationalization FAQ: HTTP and meta for language information

Best Practice 9: Using HTTP or a meta tag to indicate audience in Internationalization Best Practices: Specifying Language in XHTML & HTML Content - W3C Working Group Note 12 April 2007.

Hypertext Transfer Protocol -- HTTP/1.0 (IETF Request for Comments 1945) (plain text)

Hypertext Transfer Protocol -- HTTP/1.1 (IETF Request for Comments 2616) (plain text)

header in the PHP Manual.

検証

チェックポイント

  1. Live HTTP Header ビューアを用いて、"Content-Language" ヘッダーの値を確認する。

  2. その値がウェブページの主たる自然言語と合致している。

判定基準

この実装方法がある達成基準を満たすことのできる実装方法である場合、この判定基準をクリアしていなかったとしても、そのことは必ずしもその達成基準が満たされていないことを意味しない。単にこの実装方法が正しく用いられておらず、この実装方法によって達成基準を満たしているとはいえないということである。

日本語訳における注記:

この文書の正式版は、W3Cサイトで公開されている英語の文書であり、この日本語訳には誤訳が含まれていることもありえます。なお、文中にある「日本語訳における注記」は、W3Cの原文にはないものであり、日本語訳監修者が追記したものです。