【注意】この文書にはより新しいバージョンが存在します: WCAG 2.1 達成方法集

WCAG 2.0 達成方法集

Skip to Content (Press Enter)

-

SVR5: HTTP ヘッダーにデフォルト言語を指定する

達成方法に関する重要な情報

この達成方法 (参考) の使用法と、この達成方法が WCAG 2.0 達成基準 (規定) とどのように関係するのかに関する重要な情報については、WCAG 達成基準の達成方法を理解するを参照のこと。適用 (対象) のセクションは、その達成方法の範囲について説明しており、特定の技術に関する達成方法の存在は、その技術があらゆる状況で WCAG 2.0 を満たすコンテンツを作成するために使用できることを意味するものではない。

適用 (対象)

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

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

解説

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

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

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

訳注: 言語ネゴシエーション (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

Declaring metadata about the language(s) of the intended audience in Authoring HTML: Language declarations - W3C Working Group Note 3 June 2014.

RFC 7321 3.1.3.2. Content-Language

header in the PHP Manual.

検証

手順

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

    訳注: 「Live HTTP Header」が正確に何を指すのか不明であるが、代わりに各種ブラウザの開発ツールで確かめることができる。リソース読み込み時間の測定  |  Tools for Web Developers  |  Google Developersネットワークモニター - 開発ツール | MDNMicrosoft Edge DevTools - Network - Microsoft Edge Development | Microsoft Docs がそれぞれ参考になる。

  2. その値がウェブページの主たる自然言語と一致していることを確認する。

期待される結果

この達成方法が「十分な達成方法」の一つである場合、この手順や期待される結果を満たしていなければ、それはこの達成方法が正しく用いられていないことを意味するが、必ずしも達成基準を満たしていないことにはならない。場合によっては、別の達成方法によってその達成基準が満たされていることもありうる。