Webの3つの問題を解決する「HTML5」とは何なのか:HTML5“とか”アプリ開発入門(1)(2/2 ページ)
最近よく目にする「HTML5」という言葉。JavaScriptのAPIやCSS3、SVGなどを含め、急速な広がりを見せつつある「HTML5」の基礎を学べる入門連載です。「HTML5を使うと、何ができるのか」「それを実現するには、どのようなプログラムを書いたらいいのか」をお届けします
HTML5が解決する、Webの“3つ”の問題とは
HTML5は、Webにとって計り知れないほど大きな意義を持つバージョンアップです。なぜなら、これまでのWebが抱えていたさまざまな問題を一挙に解決しようとする、とても意欲的なバージョンとなっているからです。
では、それらの問題とはどのようなもので、HTML5はそれらをどう解決しようとしているのでしょうか。
□ 【問題1】Webブラウザ間の互換性が低い
最初に挙げられるのは、Webブラウザ間の互換性の低さです。あるWebブラウザでは正常に動作するHTML/CSS/JavaScriptなどでできたWebプログラムが、ほかのWebブラウザでは動作しないというのは日常茶飯事です。
この問題の原因をひと言でいうなら、「仕様と実装が乖離(かいり)している」のが理由だといえるでしょう。仕様があいまいだったり、そもそも標準化されていない仕様だったり、さらにはWebブラウザが仕様に従っていなかったりと、仕様と実装の乖離はさまざまな原因から起こります。
→ 【解決】Webブラウザ間の互換性を向上させる
HTML5では、この問題を解決すべく、「すでにWebブラウザが実装している機能を詳細に分析し、そこから仕様を抽出する」という作業が広範にわたって行われました。これにより、既存のWebブラウザが備えている機能には「標準に準拠」しているというお墨付きを与えられます。
その仕様に従ったプログラムを書けば、どのWebブラウザでも動作する可能性が高くなり、Web開発者/デザイナにとって大変喜ばしいことになります。さらには、今後その機能を実装しようとするWebブラウザベンダにとっても、文書化された仕様が存在するので、実装が非常に楽になります。
□ 【問題2】文書内に埋め込まれた「意味」が不明確
次に挙げられる問題としては、「以前のHTMLは、文書構造の「意味」を表すための機能が不足していた」ということが挙げられます。
例えば、「見出し」「本文」といった文書構造を表すのに、これまでは<div>要素を用いることが一般的でした。しかし、<div>要素は厳密にいうと「意味を持たない」という意味の要素です。<div>が多用されたHTML文書は、開発者が目で見て読むのであれば、文書構造の意味を把握することは容易かもしれません。
しかし、例えば検索エンジンやスクリーンリーダーなどのプログラムにとっては、「どこからどこまでが重要な本文なのか」「この<ul>要素はナビゲーションメニューを表しているのか、文書中の個条書きなのか」すらも分からないのです。
→ 【解決】文書内に埋め込まれた「意味」を明確にする
HTML5では、この問題に対処するため、数多くの意味的要素(「セマンティックな要素」と呼ばれます)が追加されました。それだけではなく、Web文書のアクセシビリティ(障害を持つ人々にとっての扱いやすさ)を向上させるための仕様(WAI-ARIA)や、文書中に埋め込まれたデータの意味を明示するための仕様(Microdata)など、さまざまな周辺技術との統合も果たされています。
□ 【問題3】Webアプリの機能が制限されている
最後に挙げられる問題は、Webアプリ関係の機能が貧弱だったことです。Webアプリは、インターネットからダウンロードされてそのまま実行されるという性格を持つため、ユーザーのセキュリティを脅かすような機能は制限されてしかるべきです。
しかし、それを差し引いても、従来のWebアプリにできることはあまりに貧弱でした。何せ、アップロードするファイルを選択する際、複数のファイルを同時に選択することすらできなかったのです!
→ 【解決】よりリッチなWebアプリを構築可能にする
こうした機能の貧弱さを補うべく、現在さまざまなAPIが新たに提案されています。Webブラウザによる実装も急ピッチで進められており、「Webアプリだから不可能」といわれる機能は、近い将来かなり限られたものとなることでしょう。
今後は、HTML5“とか”の有用な使い方を紹介
こうして見てきたように、HTML5はWebが抱える問題を次々に克服し、Webを次のステージに進めようとしています。近い将来、「どんなUI(ユーザーインターフェイス)でもHTML5で書くのがアタリマエ」という時代が来るかもしれません。
それほど意義のあるバージョンアップなだけに、HTML5の仕様は膨大で、さらにいまも進化を続けています。こうした流れの速さは、少なくとも今後1、2年は収まることがないでしょう。
本連載では、「HTML5や、その周辺技術は何を可能にするのか」という切り口から、以下のようなテーマについて語っていきたいと思います。
- HTML5マークアップ
- HTML5の記述方法
- セクション関連要素
- 強化されたフォーム要素
- ルビ
- IFrameのサンドボックス化
- メニューとコマンド
- ……
- HTML5関連API
- ビットマップグラフィックを操作する(Canvas要素)
- ベクタグラフィックを操作する(SVG)
- 動画・音声を再生する(Video/Audio要素)
- オフラインWebアプリケーションを実現する
- クロスドメイン通信を実現する
- ローカルストレージを利用する(Web Storage、Indexed Database API)
- バックグラウンド処理(Web Workers)
- サーバプッシュを実現する(Server-Sent Events)
- ソケット通信を実現する
- ファイルの読み書き(File API/File Writer API)
- 位置情報取得(Geolocation)
- 情報を通知する(Web Notification)
- パフォーマンスを測定する(Web Timing、Resource Timing)
- モバイルデバイス用のAPI
- ……
- CSS3関連
- CSS3セレクタ
- CSS Transitions
- CSS Transforms
- CSS Animations
- Webフォント
- メディアクエリ
- ボックスレイアウト
- ……
ただし、WebブラウザによるHTML5の実装がまちまちであるという現状も加味して、「広く使える」機能を優先して紹介しようと考えています。従って、記事の順序はこのとおりになるわけではありません。
次回は連載の初回ということで、HTML5の基本的な記述方法や文法についてお話したいと思います。お楽しみに!
@IT関連記事
HTML5が拓く新しいWeb
新たなアプリのプラットフォームとなるHTML5に対してWebブラウザベンダの取り組みを聞くインタビュー
「デザインハック」コーナー
HTML5で何が変わる? InfoTalk#17 フォトレポート
Development Photography(6) HTML5で、アプリとWebの関係は、JavaScriptはどう変わる? コネクティ若狭氏&サイボウズ・ラボ竹迫氏が登壇した勉強会をレポート
自分戦略研究所 > 自分戦略研究室 2010/4/19
D89Web標準HTMLタグリファレンス
Web標準に基づいたXHTMLタグの正しいマークアップ方法のリファレンス一覧です。Web標準のタグリファレンスを7回連載でおさらいします
「デザインハック」コーナー
いまさら聞けないCSS/スタイルシート入門
Webデザインにあると便利なCSS。ちょっとサイトをステキにするためのスタイルシートです。基本の基本を学びませんか?
「デザインハック」コーナー
D89 CSS/スタイルシート リファレンス辞典
無数にあるCSS/スタイルシートのプロパティを大まかに分類し、1つずつ正しい使い方を紹介しながら、リファレンス辞典を完成させていく連載です。コードサンプルやDOMの指定方法まで丁寧に説明します
「デザインハック」コーナー
初心者のためのJavaScript入門
JavaScriptで本格的なプログラミングの世界へ。実用的なアプリケーションを作れるようになるまで
「Coding Edge」フォーラム
WebデザイナのためのHTMLチューニング入門
Webサイトを見た人の印象を良くするのか悪くするのかには“速度”が大きくかかわってきます。FirefoxのプラグインYSlowで測る7つの計測ポイントから“速い” HTMLの書き方を学びましょう
「デザインハック」コーナー
Webブラウザ別CSSハック&フィルタTips
Webブラウザの違いにより起こるレイアウトの表示ずれ問題に泣かされるWebデザイナのために、Webブラウザごとに使えるかどうかの表を交えながら問題を解決するためのさまざまなCSSハック&フィルタTipsをお届けします
「デザインハック」コーナー
Webブラウザ非互換性の温床となったのは何か?
AcidテストとWebブラウザの仕組み(前編) IE8.0やFirefox3.0の出現で、注目されるWebブラウザ。いまこそ、復習しよう。Webブラウザの非互換性の発生源を探ろう
「リッチクライアント & 帳票」フォーラム 2008/7/3
Webブラウザ標準適合性のわなとAcidテストの正体
AcidテストとWebブラウザの仕組み(後編) 1つのWebページを開くだけで100項目のWebブラウザの標準適合性が検証できるAcidテスト。Acidテストの正体に踏み込む
「リッチクライアント & 帳票」フォーラム 2008/7/31
著者紹介
株式会社オープンウェブ・テクノロジー 代表
白石俊平(@Shumpei)
Google API Expert(HTML5)
HTML5開発者コミュニティ「html5-developers-jp」管理人
HTML5関連でいろいろ活動中。いまはHTML5をビジネスに活用すべく、日々奮闘中です。第1弾サービス、「DaVinciPad」は順調に稼働中。趣味は子どもたちと遊ぶこと
著書
・「HTML5&API入門」(2010 日経BP社)
・「Google Gearsスタートガイド」(2007 技術評論社)
- HTML5のvideo/audio+JavaScript APIテクニック
- video/audio要素 HTML5で動画や音声を利用しよう!
- フォーム関連要素(終) HTML5で仕様になった入力値チェック+便利な3Tips
- フォーム関連要素(3) サイトのフォームを多機能にするHTML5の新要素5選
- フォーム関連要素(2) HTML5でinput要素に追加された新しいタイプ13連発
- フォーム関連要素(1) HTML5で既存のinputタイプに加わった6つの変更点
- (文書構造編:後編)HTML5 Outlinerで文書の“アウトライン”を確認する
- (文書構造編:前編)HTML5のセクションで“文書構造”を理解する
- HTML5の登場で、XHTMLは結局どうなったの?
- HTML5でWebページをマークアップするための基礎知識
- Webの3つの問題を解決する「HTML5」とは何なのか
Copyright © ITmedia, Inc. All Rights Reserved.