2011-10-28 11 views
4

HTML5のplaceholder属性の使用について考えています。ブラウザがHTML5をサポートしていない場合は、jQueryをフォールバックとして使用できます。ただし、JSがオフの場合はどうすればよいですか?どのように進歩的な強化哲学を使用してこれを処理するのですか?HTML5とプレースホルダ:これを徐々に行う方法は?

+0

下のコメントでは、 'inputhol '(スタックオーバーフローの検索バーとしては現在流行っているように)というラベルを付けるために'プレースホルダ'を使用するセマンティクスは、プレースホルダを使って他のものを探したいと思うのは安全だと思います。あなたの意図した用途は何ですか? –

答えて

5

実際の<label>要素を表示してjsで非表示にするのはなぜですか?

// js file 
$('label').hide(); 

こうすれば、jsがないと、通常のラベルが表示されます。 jsを使用すると、ラベルが削除され、jqueryプレースホルダまたはhtml5プレースホルダのいずれかが表示されます。

+1

これがこれを行う唯一の方法で、私はそれが本当に「進歩的な強化」をしていると考えることができます。これを少し変更して、ラベルを隠すのではなく、JavaScriptコードが 'label'テキストから' placeholder'を動的に作成し、HTMLソースに重複する必要がなくなりました。 –

+0

意味的に間違っています。仕様から:「プレースホルダ属性をラベルの代替として使用しないでください。」 (参照:http://www.w3.org/TR/html5/common-input-element-attributes.html#the-placeholder-attribute) – StackOverflowNewbie

+0

ラベルを削除していない、隠している。意味的には、あなたは大丈夫です。スクリーンリーダーもラベルを取得します。 – swatkins