label要素を隠すにはCSS

WCAG 2.0のためのCSSテクニック

一般的にはすべてのフォームコントロールに視覚的なラベルを付与するのが最善ですが、そのコントロールを囲っているテキストの記述そして/あるいはそのコントロールが含んでいるコンテンツ次第では、視覚的なラベルが不要な場合があります。しかしながらスクリーンリーダのユーザは、コントロールを耳にしたときにその目的が理解できるよう、個々のフォームコントロールに対し明確にラベルが付けられていることを必要とします。ラベルはposition: absoluteを指定するか、heightおよびwidth値を0にしoverflow:hiddenを指定するか、あるいはdisplay:none を指定することにより、表示しないようにすることができます。これらのテクニックはラベルが目の見えるユーザに対して表示されることを防ぎますが、スクリーンリーダーはそのラベルが非表示であっても読み上げるでしょう。ブラウザ側でCSSが無効化されていれば、すべてのユーザに対しラベルが表示されます。

一般的な音声ブラウザだと思われているホームページ・リーダー3.01はdisplay:noneを全く読み上げないので、ラベルの存在がわからない。(3.04は未確認)

そうなると読み飛ばしリンクにも使用できない。position: absoluteが現実的な手段のようです。

Posted

コメント

はじめまして。書き込み失礼します。
お伺いしたいことがあり、よろしければお答え頂ければと思います。

【やりたい事】
数箇所あるlabelの内のひとつをCSSで指定してレイアウトする。

の様にclass等が指定されていない時など、CSSでどのように表記したらよいのでしょうか。

a

.item label ?aaa {padding-left: 5px;}

たとえば当方でCSSしか触れない場合など、指定するのは可能なのでしょうか。よろしくお願い致します。

投稿者 morimo :

classやidを付加する方法がないと、該当のlabel要素を特定することができないので、複数のlabel要素の内のひとつだけをコントロールすることは難しいと思います。

投稿者 @Style :