HTML5 がリリースされてから長い時間が経ちますが、日々の仕事や個人の Web サイトに HTML5 を適用したいと考える人が増えています。人々は、おそらく自分自身に満足しているため、セクション、記事、アサイド、ナビなどの新しいタグの使用にますます慣れてきています。これらのラベルを複数の観点から理解しないと、さらに混乱した状況に陥る可能性があります。 HTML のアウトライン アルゴリズムは非常に重要なエントリ ポイントです。 まず 2 つの概要を見てみましょう。 これら2つは私の初期の作品です。当時は、特に2番目の構造をうまく書き、HTML5のタグも使って、新しい世界に足を踏み入れたと思っていました。 HTML アウトライン アルゴリズムを確認した後、これらのページをテストしましたが、本当にひどいものでした。最初のタイトルが紛らわしいのは言うまでもありませんが、「クリエイティブ ラインナップ」は実際には「ユーザー コメント」に従属しているのでしょうか? 2 番目についても、話すのは難しいです。名前のないものは一体何なのでしょうか?しかし、前進するためには常に辛い歴史を乗り越えなければなりません。 他の人がリファクタリングしたページアウトラインをいくつか見てみましょう。 視覚障害のあるユーザーで、これらの Web ページを閲覧するためにスクリーン リーダーに頼る必要があると想像してください。リーダーは階層的な方法で Web ページを解釈します。上記の Web ページのうち、必要な情報を取得するのに最も簡単だと思うのはどれですか。おそらく、この比較の後、誰もがアウトライン アルゴリズムが何であるかを知りたいと思うでしょう。 HTML アウトライン アルゴリズムとは何ですか? アウトライン アルゴリズムにより、ユーザー エージェントは Web ページから情報構造の目次を生成し、ユーザーにページの概要をすばやく提供できます。書籍、PDF、ヘルプドキュメントなどと同様に、明確なディレクトリ構造があるため、ユーザーは必要なコンテンツを簡単に見つけることができます。適切に構成されたアウトラインは、検索エンジンの最適化に適しているだけでなく、スクリーン リーダーを使用して Web を閲覧する視覚障害のあるユーザー (または弱視のユーザー) にとっても大きな助けになります。 ヘルプ ドキュメントのディレクトリ構造は次のとおりです。 すべてのページにはアウトラインがあります。Web ページのアウトラインを理解するために、簡単な例から始めましょう。 8月のおすすめ映画をテーマにした映画紹介ページを作りたいとします。ページ構造は次のようになります。
HTML4以前では、アウトラインを生成するためにhn(h1~h6)を使用していました。 HTML5 では、section、article、aside、nav などの新しいノード要素 (セクション コンテンツ) が導入され、いくつかの新しいルールが追加されています。これらについては後で詳しく説明します。 #p# hn 生成されたアウトライン おそらく HTML4 の構造は次のようになります。
ウェブページのアウトラインはタイトルの階層によって生成されていることがわかります。 このコードのアウトラインを確認したい場合は、Geoffrey Sneddon が作成したアウトライン ツール Outliner を試してみてください (強くお勧めします)。ファイルをアップロードしてコード スニペットを入力できます。オンライン Web ページのアウトラインを表示する場合は、ブラウザにプラグインをインストールできます: Chrome: HTML5 Outliner (推奨) / Web Devoloper、Firefox: Web Devoloper、Opera: HTML5 Outliner。 (HTML5 アウトライナーでは中国語の文字は文字化けして表示されるため、テスト時には英語に切り替えることをお勧めします。ブラウザプラグインでは中国語の文字を表示できます) 各見出しは暗黙のセクションを生成します。比較的低いレベルの次の見出しは、その子ノードになります。同じレベルまたはより高いレベルの見出しは、このノードを閉じて新しいノードを生成します。次のコードをテストできます。
または:
ノード要素によって生成されたアウトライン おそらく HTML5 の構造は次のようになります。
(まずは上記のコード内のさまざまな hn に注目してください) コードをアウトライナー ツールにコピーして表示します。生成されたアウトラインが、美しく書かれたレベルを持つ HTML4 と同じであることに驚きました。なぜhnの階層がここに表されていないのでしょうか? その理由は、アウトラインが見出し要素ではなくノード要素によって生成されるためです。 HTML5 の新しいタグ section、article、aside、nav は明示的なノード (明示的なセクション) を生成し、各明示的なノードには独自のタイトル構造があります (もちろん、HTML4 および HTML5 のアウトライン アルゴリズムにも準拠しています)。このため、HTML5 では複数の h1 の存在が許可されています。ただし、すべてのブラウザとスクリーン リーダーが HTML5 を完全にサポートする前に、タイトル構造と Graceful Degradation を同時に考慮することをお勧めします。したがって、上記の構造は次のように変更できます。
ここで注目すべきもう一つの疑問は、「上記コンテンツはXunlei Kankanによって提供されています」というフレーズは上記コンテンツのどの部分を指しているのかということです。 HTML4 構造では、この段落は暗黙のノード「The Escape from the Doom」に従属していますが、これは明らかに間違っています。 HTML5 アウトライン アルゴリズムはこの問題を非常にうまく解決します。 hn要素とノード要素の両方のアウトラインを生成する ページに暗黙的なノード (h1 ~ h6) と明示的なノード (セクションなど) の両方が含まれている場合、アウトラインはどのように生成されますか? 1 つだけ覚えておいてください。明示的なノードには暗黙的なノードを含めることができますが、その逆はあり得ません。
(コード1) このコードの概要は次のようになります。
ただし、このコードの概要は次のようになります。
タイトル要素によって生成された暗黙的なノードがノード要素によって生成された明示的なノードと出会うと、そのノードは閉じられ、同じレベルの次のノードが生成されます。 無題のセクション section、article、aside、navに加えて、HTML5では新しいノード要素も存在します。これらも使用してみましょう。
これをアウトライナーにコピーすると、nav にタイトル要素がないため、nav タグによって無題のセクションが生成されることがわかります。これはエラーではなく、また HTML5 構造が悪いとも考えられません。ただし、セクションや記事には適切なタイトルを付けることをお勧めします。どのようなタイトルを付ければよいかわからない場合は、div を使用する方が適切かもしれません。div がまだあることを忘れないでください。 ルートノード 重要な原則については前に説明しました。明示的なノードには暗黙的なノードを含めることができますが、その逆はあり得ません。リスト 1 によって生成されたアウトラインに気付くかもしれません。
タイトル要素 h1 (「8 月の映画おすすめ」) に続くノード要素セクション (「国内映画」) がその子ノードになります。暗黙的ノードに明示的ノードを含めることはできませんか?このとき、ルートノードを知っておく必要があります。 ルート ノードは独自のアウトラインを生成でき、そのタイトルとノードは祖先のアウトラインには影響しません (祖先のアウトラインには表示されません)。現在、ルート ノードは 6 つあります。 1. 本文、2. 引用ブロック、3. 詳細、4. フィールドセット、5. 図、6. td テストすることができます:
定義ドキュメントでは、ノード要素は最も近い祖先ルートノードまたはノード要素の子ノードであると規定されています。コード 1 のタイトル要素 h1 (「8 月の映画おすすめ」) は本文のタイトルであり、ノード要素 section (「国内映画」) は本文の子ノードです。 もう 1 つ非常に重要な点があります。ドキュメントのタイトルは、ドキュメント内でノード要素ではない最初のタイトル要素です。次のコードをテストするのは非常に明確です。
このプロセス中に、もう一つの混乱する点にも遭遇しました。
理由は単純で、ヘッダーとフッターはノード要素ではないからです。 hグループ Hgroup は理解しやすく、使いやすいです。その機能は、ドキュメントのアウトラインに影響を与えずにサブタイトルを追加できるようにすることです。表示順序に関係なく、最上位のタイトルのみがアウトラインに表示されます。
要約する この記事の執筆時点では、HTML5 アウトライン アルゴリズムを完全にサポートしているブラウザーはないようです。しかし、これは HTML5 アウトライン アルゴリズムの研究には影響しません。現在、私たちは HTML5 + CSS3 の使用に熱心に取り組んでいます。 HTML5 アウトライン アルゴリズムを理解すると、新しいタグの使用法をより深く理解できるだけでなく、最も基本的なページ構造をより最適化して理解するのにも役立ちます。タイトル要素によって生成されるアウトラインでも、セマンティクスの兆候である完璧な階層構造を持つことができます。 この問題に注意を払うよう私に思い出させてくれた Daanzi に特に感謝します。 参考研究論文: http://www.osmn00.com/rebuild/223.html http://www.456bereastreet.com/archive/201103/html5_sectioning_elements_headings_and_document_outlines/ http://coding.smashingmagazine.com/2011/08/16/html5-and-the-document-outlining-algorithm/ http://html5doctor.com/outlines/ https://developer.mozilla.org/en-US/docs/HTML5 ドキュメントのセクションとアウトライン オリジナルリンク: http://cued.xunlei.com/log047 【編集者のおすすめ】
|
<<: App Store 中国地域がアルゴリズムを調整?一部のアプリではフルネームによる検索が機能しません
人間の目には、以下の 3 つの画像はそれぞれ異なるもの、つまり鳥、犬、馬に見えます。しかし、機械学習...
病気の診断から交響曲の作曲、車の運転から道徳的な判断に至るまで、人間が行えるあらゆる作業を機械が実行...
家庭でますます一般的になりつつある掃除ロボットは、ほこりを吸い取るだけでなく、個人のプライバシーも「...
政府は、他の経済的、社会的進歩と同様に、AI とデータの競争力を重視すべきです。研究への投資や技術リ...
現在、新型コロナウイルス感染症のパンデミックが世界的に拡大し、私たちの知る世界は大きく変化しています...
IoT が広く普及したことにより、さまざまな目的のためのスマートな接続型ガジェットの開発が促進され...
Alpha GO が人間の囲碁プレイヤーに勝利して以来、AI はビジネス界全体で最もホットな用語に...
[[348520]]建設現場は、人々とピースが適切なタイミングで組み合わさる必要がある巨大なパズルの...
最近、わが国の科学技術分野は新たな躍進を遂げました。ドローンによる「橋渡し」の力を借りて、量子ネット...
脆弱性の管理は、セキュリティ専門家にとって最優先事項の 1 つです。セキュリティ チームは、サイバー...
[[383142]]人工知能、またはよく耳にする AI とは、人間が作った機械が示す知能を指し、コン...
この魅力的な旅をさらに深く探究する中で、モノのインターネット (IoT)、スマート交通システム、エネ...