[解決済み] hidden属性(HTML5)とdisplay:noneルール(CSS)の違いは何ですか?
質問
HTML5には新しいグローバル属性があります。
hidden
が追加され、コンテンツを隠すために使用することができます。
<article hidden>
<h2>Article #1</h2>
<p>Lorem ipsum ...</p>
</article>
CSSには
display:none
ルールがあり、これもコンテンツを隠すために使うことができます。
article { display:none; }
視覚的には同じです。 意味的にはどう違うのでしょうか? 計算機的に?
どちらを使うべきか、どのようなガイドラインを考慮すべきでしょうか?
TIA
EDIT
: newtronさんの回答(以下)をもとに、さらに検索してみました。 その
hidden
属性は昨年激しく議論され、(どうやら)かろうじて HTML5 の仕様に取り込まれたようです。 一部の人は、これは冗長であり、何の目的もないと主張しました。 私の知る限りでは、最終的な評価はこうです。 ウェブブラウザだけをターゲットにするのであれば、違いはない。 (あるページでは、ウェブブラウザは
display:none
を使用して hidden 属性を実装していると断言しているページもありました)。 しかし、アクセシビリティを考慮する場合(例えば、スクリーン リーダーの読者にコンテンツを読んでもらうことを想定している場合)には、違いがあります。 CSSルールの
display:none
はウェブブラウザから私のコンテンツを隠すかもしれませんが、対応するariaルール(例えば。
aria-hidden="false"
) はそれを読もうとするかもしれません。 したがって、私は今、@newtronの答えが正しいことに同意しますが、おそらく(議論の余地なく)私が望むほど明確ではありません。 ありがとう、@newtron さん。
どのように解決するのですか?
重要な違いは、どうやら
hidden
要素が、プレゼンテーションに関係なく常に非表示であることです。
hidden属性は、他のプレゼンテーションで正当に表示できる内容を隠すために使ってはいけません。例えば、タブ付きダイアログのパネルを隠すのにhiddenを使うのは不正確です。タブ付きインターフェースは単にオーバーフロー表示の一種であり、スクロールバーのある一つの大きなページで全てのフォーム制御を表示することも同様に可能だからです。もし何かが hidden とマークされたなら、それは例えばスクリーン・リーダーを含む全ての表示から隠されます。
http://dev.w3.org/html5/spec/Overview.html#the-hidden-attribute
CSSは異なるメディア/プレゼンテーションタイプをターゲットにすることができるので
display: none
は与えられたプレゼンテーションに依存します。例えば、ある要素には
display: none
を持つが、モバイルブラウザでは持たない。または、視覚的に隠されていても、スクリーン リーダーの場合は利用可能であることがあります。
関連
-
[CSSチュートリアル]cssのbackgroundとborderタグの例 詳細
-
[解決済み] SCSSとSassの違いは何ですか?
-
[解決済み] HTMLのid属性に有効な値は何ですか?
-
[解決済み] visibility:hiddenとdisplay:noneの違いは何ですか?
-
[解決済み] HTMLの "role "属性は何のためにあるのですか?
-
[解決済み] CSSセレクタの"~"(チルダ/スクイグル/ツイドル)はどういう意味ですか?
-
[解決済み] localStorage、sessionStorage、session、cookieの違いは何ですか?
-
[解決済み] display: inlineとdisplay: inline-blockの違いは何ですか?
-
[解決済み] Normalize.cssとReset CSSの違いは何ですか?
-
[解決済み] [Solved] What's the difference between <b> and <strong>, <i> and <em>?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[CSSチュートリアル】CSS たった1行のコードでアバターと国旗の一体化を実現
-
[CSSチュートリアル】CSS+HTMLで実現するトップナビゲーションバー機能
-
[CSSチュートリアル】ボックス内の複数要素を両端揃えの効果で実現するCSS
-
[CSSチュートリアル】background-positionプロパティのパーセンテージ値の使い方を探る
-
[css3] CSS3を使ってヘッダーアニメーション効果を作成する
-
[css3]赤いパケットのジッター効果を実現するCSS3
-
[CSSチュートリアル】CSS複合セレクタの具体的な使用方法
-
[解決済み] visibility:hiddenとdisplay:noneの違いは何ですか?
-
[解決済み】HTMLの「hidden」属性と「aria-hidden」属性の違いは何ですか?
-
[解決済み】JavaScriptでdivを表示・非表示にする。