HTML5には、hidden
コンテンツを非表示にするために使用できる新しいグローバル属性があります。
<article hidden>
<h2>Article #1</h2>
<p>Lorem ipsum ...</p>
</article>
CSSにはdisplay:none
ルールがあり、コンテンツを非表示にするためにも使用できます。
article { display:none; }
見た目は同じです。意味的に違いは何ですか?計算的に?
どちらを使用するかについて、どのようなガイドラインを検討する必要がありますか?
TIA。
編集:@newtronの応答(下記)に基づいて、さらに検索を行いました。このhidden
属性は昨年激しく争われ、(どうやら)HTML5仕様にはほとんど入っていませんでした。一部は冗長であり、目的がないと主張した。私が言えることから、最終的な評価は次のとおりです。私がWebブラウザーのみを対象にしている場合、違いはありません。(1つのページでは、Webブラウザーdisplay:none
が非表示属性を実装するために使用されたとさえ主張していました。)しかし、アクセシビリティを検討している場合(たとえば、コンテンツがスクリーンリーダーで読み取られることを期待している場合)、違いがあります。CSSルールdisplay:none
は私のコンテンツをWebブラウザーから隠すかもしれませんが、対応するariaルール(例えば、aria-hidden="false"
)それを読もうとするかもしれません。したがって、私は今、@ newtronの答えが正しいことに同意します。あなたの助けをありがとう@newtron。
hidden
属性が存在することさえ知りませんでしたが、構造/表示の分離に違反しているように思われるため、確かに良い質問です。