2017-06-19 42 views
1

私はそうReact/JSXで空のalt属性を指定する方法を教えてください。

function SomeImageComponent(props) { 
    return <img src={props.imgSrc} alt="" />; 
} 

しかし、これはDOMにレンダリングされ、私は私がのboolean型を参照のdevのツールでそれを点検などの反応コンポーネントでimg要素に空のalt属性を追加しようとしています

<img src="/path/to/cat.gif" alt /> 

これをVoiceOverでテストすると、valueless alt属性は無視され、イメージへのパスが読み込まれます。どうすれば属性値の空の文字列を返すことができますか?

+0

おそらく 'alt = {" "}'でしょうか? –

+0

残念ながら、上記と同じことをします – warmanp

+1

これは、devツールが空の属性を表示する方法です。要素を右クリックして[HTMLとして編集]を選択すると、空の文字列がそこに表示されます。 –

答えて

2

altalt=""は同じものです。 the specより:Just属性名

空の属性構文

属性は、4つの異なる方法で指定することができます。値は暗黙的に空文字列です。

...

それはあなたが通常のブール属性でこれを見ることは事実だが、それは、これらに限定されるものではありません。

例:

var imgs = document.querySelectorAll("img"); 
 
var alt0 = imgs[0].getAttribute("alt"); 
 
var alt1 = imgs[1].getAttribute("alt"); 
 
console.log("0 (" + typeof alt0 + "): '" + alt0 + "'"); 
 
console.log("1 (" + typeof alt1 + "): '" + alt1 + "'");
<img src="foo.png" alt> 
 
<img src="bar.png" alt="">

それは空白altが適切であるが、あなたがすべてでそれを供給している場合、あなたがしているだけで非常に少数の場所があることは注目に値しますおそらくそれらの場所を既に知っている誰か。 :-)

+1

だからあなたは正しい - これはJSXに関連していないことが分かる。これは、VoiceOverが空のalt属性をどのように処理するかと関係しています。空の文字列をalt属性として指定すると、イメージファイル名は読み込まれますが、alt属性に空白文字を1つ指定すると、イメージ全体がスキップされます。 – warmanp

+0

またFWIW私は空のalt属性を提供することがしばしばより有益だと信じています。 MITのWebアクセシビリティガイドラインでは、「ALTタグは頻繁に誤用されることが多く、過度に使用されることが多いため、ALTタグを空白(ALT = "")のままにしておけば、その下にあるキャプションでは、キャプションに一致する代替テキストは必要ありません。代替テキストを空白のままにしておくと、冗長性を避けることができます。 – warmanp

+0

仕様(https://www.w3.org/TR/html/semantics-embedded-content.html#the-img-element)は、設定されていないalt( "イメージ)と空の文字列に設定されたalt( "イメージは装飾的なものか補足的なものか) – Adam

関連する問題