IBM®
本文へジャンプ
    Japan [変更]    ご利用条件
 
 
検索範囲検索:    
    ホーム    製品    サービス & ソリューション    サポート & ダウンロード    マイアカウント    
skip to main content

developerWorks Japan  >  XML | Web development  >

HTMLの将来、パート2:XHTML 2.0

W3CのHTML改良への取り組み

developerWorks
ページオプション

JavaScript を要するドキュメントオプションは表示されません

原文はこちら

原文はこちら


レベル: 初級

Edd Dumbill (edd@xml.com), Editor and publisher, xmlhack.com

2006年 1月 25日

2つのパートからなるこのシリーズでは、今後のHTMLに関してWeb制作者、ブラウザー開発者や標準化団体が提案しているさまざまな方法をEdd Dumbillが論じます。このシリーズでは、WHATWG仕様で実現される漸進的なアプローチと、W3Cにより提案された急進的なXHTMLのクリーンアップについて扱います。さらに、W3Cの新たなRich Client Activityについても概要を述べます。このパート2では、Eddは、将来のWebマークアップを指定するためにW3Cで進められている作業に重点を置いて説明します。

このシリーズの前回の記事では、過去の問題点を修正するためにも、Webページおよびアプリケーションに求められているタスクの要求の高まりを満たすためにも、HTMLのアップデートが必要であることを述べました。ブラウザー・ベンダーのゆるやかな連携であるWHATWG(Web Hypertext Application Technology Working Group)が進めているWeb Applications 1.0およびWeb Forms 2.0仕様の策定作業を説明しました。

この記事では、W3C(World Wide Web Consortium)による次世代のXHTML仕様の策定と、Ajaxアプリケーションによって例示されたような「リッチ・クライアント」動作に対する要求への対応について述べます。

W3Cには以下の4つのワーキング・グループがあり、それぞれが非常に興味深い仕様を策定しています。

  • HTML(現在はXHTML)
  • XForms
  • Web APIs
  • Web Application Formats

参考文献」に、それぞれへのリンクがあります。この記事では主にHTMLワーキング・グループの作業に重点を置いて説明しますが、Webの将来の方向性を探る意味でも、他のワーキング・グループの作業に触れておきましょう。

XForms

XFormsは、現在のHTMLフォームに取って代わるW3Cの仕様です。より豊富な機能を持ち、結果をXML文書として処理アプリケーションに渡すように設計されています。XFormsはモジュール方式なので、XMLに付加するだけでなく、どんなコンテキストでも使用できます。XFormsとHTMLフォームの主な違いは、次のとおりです。

  • XFormsは、ユーザー・インターフェースのプレゼンテーションをデータ・モデルの定義から切り離します。
  • XFormsでは、XML文書の作成と利用が可能です。
  • XFormsは、デバイスに依存しません。たとえば、音声ブラウザーとデスクトップ・ブラウザーで同じフォームを使用することができます。
  • XFormsでは、送信前に入力の検証と制約が可能です。
  • XFormsでは、スクリプティングを必要とせずに、多段階フォームが可能です。

モジュール化言語なので、XHTML 2.0はXFormsをフォーム機能モジュールとしてインポートします。




上に戻る


Web APIs

W3CのWeb APIsワーキング・グループは、クライアント・サイドのWebアプリケーション開発用の標準APIの仕様の策定を担当しています。このうち、最初の、そして最もなじみのあるものは、(WHATWGが記述しているテクノロジーでもある)Ajaxの中核をなすXMLHttpRequest機能です。プログラマーは、ECMAScriptなど、ブラウザー環境でサポートされている任意の言語から、これらのAPIを使用することができます。

仕様策定中のその他のAPIには、次のようなものがあります。

  • ブラウザーのWindowオブジェクトを扱うためのAPI
  • DOM Level 3 EventsおよびXPath仕様
  • 時限イベント用のAPI
  • XMPPやSIPなど、非HTTPネットワーキング用のAPI
  • クライアント側の持続ストレージ用のAPI
  • ドラッグ・アンド・ドロップ用のAPI
  • ダウンロード監視用のAPI
  • ファイル・アップロード用のAPI

これらのAPIはXHTML 2.0と並行して実装されるとは限りませんが、4年後のブラウザーは、この両方を統合して、Webアプリケーションのためのリッチなプラットフォームを提供することになるでしょう。




上に戻る


Web Application Formats

XHTML 2.0は、Webアプリケーションのユーザー・インターフェースに問題がありますが、それがすべてではありません。MozillaのXULやMicrosoftのXAMLなどのテクノロジーは、ユーザー・インターフェース用のリッチなXMLボキャブラリーを目指しています。

Web Application Formatsワーキング・グループは、XULやXAMLでユーザー・インターフェースを指定するための宣言フォーマットの開発と、カスタム・マークアップと既存テクノロジーを結びつける宣言言語XBL2の開発を担当しています。XBL2は、基本的に、プログラマーにとって、Webアプリケーション用の新しいウィジェットを書く手段となります。




上に戻る


なぜXHTML 2.0か

XHTML 1.0の目的は、HTMLからXMLボキャブラリーへの移行でした。これにより、大文字と小文字の区別、強制的に引用される属性値、開始タグと終了タグの対など、XML構文の制約がHTMLに導入されました。その上で、XHTML 2.0は、Webページをマークアップする言語としてのHTMLの問題の解消を目指しています。

W3CのSteven Pembertonは、アムステルダムで開催されたXTech 2005カンファレンス(「参考文献」を参照)でのプレゼンテーションの中で、XHTML 2.0の設計目標を次のように述べています。

  • できるだけXMLを使用する:XMLにすでにある言語機能については、重複や作り直しを避ける。
  • プレゼンテーションの構造化:CSSスタイルシートのおかげで、HTMLで明示的にプレゼンテーション・タグを使用する必要がなくなった。
  • HTMLを書きやすくする:HTMLの不要な特異性をなくす。
  • アクセシビリティと装置独立性の強化:文書の読み取り方法についての前提条件をできるだけ少なくする。
  • 多言語対応の強化。
  • より良いフォーム:長い間待ち望まれていた改良が必要。
  • スクリプティングの必要性をなくす:典型的なスクリプティングの用例をHTMLそのものに含める。
  • より良いセマンティクス:HTMLとセマンティックなWebアプリケーションとの統合を容易にする。

これらの目的は、確かに、HTMLを少しでも使ったことがある人にとっては賞賛に値するように思えます。これらがXHTML 2.0でどのように達成されたか、もう少し詳しく見ていくことにしましょう。




上に戻る


セクションとパラグラフ

もうずいぶん前のことになりますが、私がHTML初心者だったときには、この言語のテキスト構文要素にかなり困惑させられました。なぜ6種類もの見出しレベルがあり、それぞれどんなときに使えばよいのか。また、見出しが示しているセクションが見出しに含まれないのはなぜか。XHTML 2.0は、新しい<section>および<h>(heading:見出し)要素によって、これに答えています。

<section>
  <h>Level 1 heading</h>
  ...
  <section>
    <h>Level 2 heading</h>
    ...
  </section>
</section>

これはXHTML 1.0よりかなり論理的な配置であり、他の多くのマークアップ・ボキャブラリーのユーザーにとって親しみやすいことでしょう。プログラマーにとって大きなメリットは、見出しレベルのナンバリングをし直さなくても、数セクションのコンテンツを文書に含められることです。

そして、これらの見出しにCSSスタイリングを使用することができます。ブラウザーによるXHTML 2.0のデフォルトの実装として、これらのいくつかが事前定義されることになると予想されますが、明示的に書くとすれば、次のようになります(XHTML 2.0仕様からの抜粋)。

h {font-family: sans-serif; font-weight: bold; font-size: 200%}
section h {font-size: 150%} /* A second-level heading */
section section h {font-size: 120%} /* A third-level heading */

XHTML 1.0のもうひとつの論理面の変則性は、リストを使用するためにはパラグラフを閉じなければならないことです。実際、どんなブロック・レベル要素(ブロッククォート、フォーマット済みセクション、テーブルなど)を使う場合も、パラグラフを閉じなければなりません。このようなコンテンツを同じパラグラフの流れの一部として正しく使えるときに、こうしなければならないというのは、非論理的です。XHTML 2.0では、この制限がなくなりました。できないのは、パラグラフを別のパラグラフの中に入れることだけです。




上に戻る


イメージ

HTMLの<img>タグは、実際には、あまり柔軟性がありません。Pembertonが指摘したように、代用メカニズムはaltテキストしかなく(新しい画像形式の採用を妨げています)、altテキストをマークアップすることはできず、また、longdesc属性は使いづらいため、ほとんど使われていません。(longdescは、alt属性で表示されるよりも詳しい画像の説明があるURIを示すために使用されます。)

XHTML 2.0では、この問題に対するお見事な解決策が導入されました。すなわち、どんな要素にもsrc属性を指定できるようになりました。これによりブラウザーは、要素の内容をURIの内容で置き換えます。単純な例では、これは画像です。しかし、ブラウザーが表示できるものであれば、SVGでも、XHTMLでも、その他のコンテンツ・タイプでもかまいません。

<img>タグそのものは残されていますが、その中にコンテンツを含めることができるようになりました。src属性の新しい運用は、次のマークアップ例のように、altテキストが要素の内容となることを意味します。

<p><img src="http://example.com/water.png">H<sub>2</sub>O</img></p>

これは日本語などの言語にとって特にうれしいニュースです。日本語でルビ(「参考文献」を参照)を付けるには、インライン・マークアップが必要ですが、今までの属性値では不可能でした。

XHTML 2.0は、<object>要素で、より一般的な画像包含形式を提供しています。この要素を使用すると、静止画や動画からFlashまたはJavaテクノロジーのような実行可能コードまで、どんな種類のオブジェクトでも含めることができます。これにより、ブラウザーの能力に応じて画質低下を手際よく処理するテクニックが可能になります。それぞれの内側に複数の<object>要素を埋め込むことができます。たとえば、一番外側にFlashムービーを置き、その内側にAVIビデオ・ファイルを置き、その内側に静止画を置き、そして最後に、ネストされたオブジェクトの中心にテキストを置くことができます。詳しくは、XHTML Object Module(「参考文献」にリンクがあります)を参照してください。




上に戻る


拡張可能なセマンティクス

HTMLではずいぶん前から、<address>と<title>など、意味的に関連のある要素がいくつかありました。これらで問題なのは、このような要素は数が少なく、拡張できないことです。一方、class属性を使用して、HTML要素にセマンティクスを与えようという試みもありました。これは、classの目的を当初の設計目的より広げようとするものであり、この属性はもっぱらCSSスタイリングの適用に使用されているため、あまり手際よく適用することはできません。(classの目的については異論があるかもしれませんが、後者については否定しようがありません。)

このようなその場しのぎの方法ではなく、XHTML 2.0では、文書内でRDFと同様のメタデータを指定する方法が導入されています。RDFステートメントは、主語、プロパティー、目的語の3つの部分(トリプル)から成ります。たとえば、英語では、「my car」、「is painted」、「red」というトリプルです。

about属性はrdf:aboutと同様の役目を果たし、RDFトリプルの主語を指定します。これは省略が可能で、省略された場合は、文書そのものが主語となります。property属性は、参照されるプロパティーのURIです(プレフィックスを適切に宣言することで、名前空間の省略形を使用できます。詳しくは、「参考文献」の「XHTML 2.0 Metainformation Attributes Module」を参照してください)。

最後に、トリプルの3番目の値は、aboutおよびproperty属性が適用される要素の内容、または、それが空の場合は、content属性の値によって与えられます。以下は、HTMLの<meta>タグの既存の用例から容易に類推できる単純な用例であり、ページ・ヘッダーで作成者を指定しています。

<html xmlns="http://www.w3.org/2002/06/xhtml2/" xml:lang="en">
  <head>
    <title>Edd Dumbill's Home Page</title>
    <meta property="dc:creator">Edd Dumbill</meta>
  </head>
  ...
</html>

今度は、Pembertonが挙げた例を見てください。これは、文書の実際の本文でのメタデータの使い方を示しています。

<h property="title">Welcome to my home page</h>

これは、見出しを文書のXHTML 2.0タイトルとして示し、インライン見出しとして指定しています。最後に、すべての文書でタイトルを2回書くことになります。

GRDDL(Gleaning Resource Description from Dialets of Language、「参考文献」を参照)というシンプルな変換テクノロジーのおかげで、XHTML 2.0文書からRDFメタデータを抽出する単一の標準ができました。

XHTML 2.0には、他にも多くの変更点がありますが、その多くは、XFormsなどの仕様の並行開発に関連しています。そのすべてについて説明する余裕はありませんが、XHTML 1.0から大きく前進したことは確かです。




上に戻る


XHTML 2.0でのその他の新しいおもちゃ

<pre><code>...</code></pre>と書くことにうんざりしていませんか? 新しい<blockcode>要素を使えるようになりました。

アクセシビリティ要件を満たす一助として、XHTML 2.0では、どの本文要素でも指定できるrole属性ができました。たとえば、ページ内の純粋なナビゲーション要素にrole="navigation"と指定すると、読み上げエンジンによってインテリジェントに処理されます。

今のところ、ブラウザーは、Tabキーによるフォーカスの移動をある程度サポートしていますが、かなり恣意的です。新しいnextfocusおよびprevfocus属性によって、フォーカスが画面要素間を移動する順序を制御することができます。これは、ナビゲーション可能なユーザー・インターフェースの作成にとって、きわめて重要な機能となります。




上に戻る


XHTML 2.0に備える

高度な機能における変更点は多いものの、XHTML 2.0がHTMLであることに変わりはありません。新しい要素が追加されましたが、XHTML 2.0の大部分は、そのまま機能します。<h1>から<h6>までの要素は、<img>と同様、互換性を保つためにそのまま引き継がれました。

ただし、XHTML 2.0の使命は、構文として厳格な後方互換性を維持することではないので、現在のブラウザーのHTMLレンダラーでは、XHTML 2.0文書の豊かな表現力を処理することはできません。それにもかかわらず、現在のほとんどのWebブラウザーは、任意のXMLプラスCSSをうまく表示しており、XHTML 2.0の大部分も同じように表示できます。セマンティック面での機能強化を享受することはできないとしても。

XHTML 2.0での違いの中には、非常に重要なものもあります。最も注目すべきはXFormsへの移行であり、HTMLの非XML的な遺産からの完全な脱却です。したがって、今すぐあなたのサイトをXHTML 2.0対応に切り替えることはできませんが、将来のための準備を始めることはできます。

  • CSSの使用を真剣に考慮し、プレゼンテーション・マークアップをすべて取り除くように努力してください。
  • どのようにすれば、あなたのページにマイクロフォーマットを導入できるか考えてください。マイクロフォーマットでは、既存の標準を使用して、HTMLでメタデータを表現することができます(「参考文献」を参照)。
  • まだ始めていない場合は、XHTML 1.0を使ってみてください。今の時点で、XHTML 1.0ページを通常のHTMLと同様に表示させるのは、XHTML 1.0 HTML互換性ガイドラインに従って作られていれば可能ですが、厄介な問題が起きることもあります。XHTML 2.0をこのように表示することはできません。詳しくは、「参考文献」を参照してください。
  • X-Smilesブラウザー(「参考文献」を参照)を使ってみてください。これは、XHTML 2.0だけでなく、SVG、XForms、およびSMIL 2.0 Basicの機能をサポートしています。
  • XHTML機能に基づく新しいクライアント・システムを作成する場合は、XHTML 2.0を出発点とすることを真剣に考慮してください。

最後に、XHTML 2.0は仕様として最終的に確定されていないことに注意してください。この記事の執筆時点で、まだW3Cのワーキング・ドラフト段階であり、これは、勧告になるまでにいくつかの過程を経ることを意味します。重要なのは、勧告候補段階を経なければならないことです。この段階で、実装経験が収集されます。

W3C HTMLワーキング・グループ・ロードマップによると、XHTML 2.0は2007年まではW3C勧告にならないでしょう。つまり、2006年は、重要な導入経験を得るための年になるということです。




上に戻る


W3C XHTML 2.0とWHATWG HTML 5の比較

この2つの記事では、WHATWGのHTML 5とW3CのXHTML 2.0の両方について顕著な点を説明しました。この2つのイニシアチブは、まったくの別物です。草の根組織であるWHATWGが目指しているのは、HTML 4とXHTML 1.0の、ゆっくりとした段階的強化であり、一方、企業の支援を受けているXHTML 2.0は、HTML言語の包括的なリファクタリングです。

このような違いはありますが、この2つのアプローチは互換性がないわけではありません。WHATWG仕様の成果のうち、手軽に利用できるもののいくつかは、すでにブラウザーに実装されていますし、HTMLの事実上の拡張を記述したことは、WHATWGの功績のひとつです。この中でも、XMLHttpRequestなど、重要な部分については、W3CのRich Client Activity仕様に採用されるでしょう。WHATWGは、Web標準の世界の有用な触媒の役目も果たしています。

さらに言えば、XHTML 2.0アプローチは、XML、CSS、およびECMAScriptのモジュール方式の処理が急速に定着しつつあるWebにとって、クリーンアップされたボキャブラリーを提供します。電話やデジタルTVなどの組み込みデバイスは、煩雑なHTMLというWebの遺産をサポートする必要がなく、純粋なXMLボキャブラリーとしてのXHTML 2.0のメリットを自由に活用することができます。さらに、アクセシビリティと多言語対応のための新しい機能により、XHTML 2.0は、ユニバーサルと言える初めてのXML文書ボキャブラリーであり、マークアップに基づく多くの試みにとって、健全かつ経済的な出発点となっています。

これまでと同様、HTMLの未来は変化に富み、ときには混乱もあるかもしれませんが、XHTML 2.0が最終的には広く受け入れられ、採用されることでしょう。Web上の唯一のXMLボキャブラリーだとしたら問題だったかもしれませんが、ブラウザーがSVG、XForms、その他のテクノロジーを扱えるようになってきた今、XHTML 2.0は、それらと同様、もうひとつのXMLベース・ボキャブラリーにすぎないように見えてきました。




参考文献

学ぶために
  • HTMLの将来に関する、この2回シリーズの第1回の記事を読んでください(developerWorks, 2005年12月)。

  • XHTML 2.0 specificationを参照してください。

  • XHTMLの開発に関する最新ニュースを入手するために、W3CのHTML Working Groupを見てください。

  • W3CのXForms pageを見てください。ここにはXForms Working Groupに関する情報が含まれています。

  • W3CのWeb APIs Working Groupは、クライアント・サイドWebアプリケーション開発用の標準APIの仕様化を行っています。

  • W3CのWeb Application Formats Working Groupは、ユーザー・インターフェースを規定するための宣言的フォーマットの開発を行っています。

  • Steven PembertonがXTech 2005で行ったプレゼンテーション、「XHTML2: Accessible, Usable, Device Independent and Semantic」を見てください。

  • Rubyの注釈について、さらに学んでください。日本語と中国語で、発音ガイドを提供するためにRubyの注釈が使われています。

  • XHTML 2.0のMetainformation Attributes Moduleは、HTML文書の中のRDFメタデータ仕様をサポートしています。

  • 任意のオブジェクトを含むために、XHTML 2.0のObject Moduleを使うことができます。

  • XHTML 2.0文書からRDF tripleを抽出したいのであれば、この変換技術、Gleaning Resource Descriptions from Dialects of Languages (GRDDL) を調べてみてください。

  • W3CによるXHTML Media Typesへの注記では、皆さんのWebサイトからXHTMLをサービスするためのベスト・プラクティスを記述しています。特に、XHTML 2.0をtext/htmlとしてサービスすべきでないことに注意する必要があります(これは、HTML Compatibility Guidelinesに従って作られたXHTML 1.0の場合では可能でした)。

  • Webページ上で人に読み取れる形の要素に対して、コンピューターにも解釈できる意味体系を持たせるための1つの方法として、Microformatsがあります。この方法は、今日のHTMLベースでの暫定的な意味体系と、将来のRDF互換XHTML 2.0メタデータとの橋渡しをするものです。


製品や技術を入手するために
  • X-Smilesブラウザーを見てみてください。これは、W3Cによる新しいクライアント技術(XHTML 2.0やSVG、XForms、SMILなど)の多くを、早期に(そして時には部分的に)サポートしている実験的なプラットフォームです。


著者について

Edd Dumbill氏はXML.com の編集長であり、XMLデベロッパーのためのニュース・サイトXMLhack の編集者兼発行者でもあります。Programming Web Services with XML-RPC (O'Reilly) の著者の1人であり、生命科学の知的財産を交換するPharmalicensing の共同設立者兼アドバイザーです。EddはXML Europe コンファレンスのプログラム司会者でもあります。




記事の評価


サイト改善のため、ご意見をお寄せください。こちらのフォームからお願いいたします。



 


 


不充分・不完全である大変素晴らしい
 


この記事を共有する

del.icio.us del.icio.us newsing newsing FC2ブックマーク FC2ブックマーク
Choix! Choix! ニフティクリップ ニフティクリップ Yahoo!ブックマーク Yahoo!ブックマーク
MM/memo MM/memo CZブックマーク CZブックマーク livedoorクリップ livedoorクリップ
はてなブックマーク はてなブックマーク Buzzurl(バザール) Buzzurl(バザール)




上に戻る


    日本IBMについて プライバシー お問い合わせ