2009-05-11 13 views
0

既存のサイトのHTMLページを評価するためのJavaツールを作成し、画像にalt属性がない場合、その画像にalt = ""を挿入します。 1つのアプローチは、HTMLパーザ(HtmlCleanerのような)を使用してDOMを生成し、HTMLを書き戻す前にDOMの画像にalt属性を追加することです。欠けている画像のalt属性を確認して挿入してください

しかし、このアプローチでは、元のHTMLは元の状態に保たれず、予測できない副作用を引き起こす可能性があります。 HTMLページの既存の量が膨大であり、それらが整形式であるという保証はない。

これを達成するためのより安全な方法はありますか(元のHTMLをそのまま維持し、alt属性のみ追加する必要があります)。

答えて

2

私はregexpや他の文字列操作コードの恐ろしい混乱を書いていないので、これを行う別の方法はないと私は信じています。

私は質問をしますなぜあなたはこれをしたいですか?私が想像できる唯一の理由は何らかの自動検証に合格することですが、altタグが必要な理由は使い勝手の問題です。空のaltタグを追加しても、それを助けるわけではありません。あなたはただ問題を隠しているだけです。

代わりにaltタグが見つからない画像の周りに赤い枠線が表示され、フロントエンドのデザイナーにの意味のあるすべての画像に有意義なaltタグが追加されるようにすることをおすすめします。

+1

セクション508準拠のルールの1つに、装飾画像に空のaltタグが必要であることが必要です(読者ツールでaltとmissingの区別がつかないようにするため) –

+2

しかし、 altテキストが欠けており、それらをすべて装飾としてフラグを立てます。コンテンツ作成者が代替テキストなしでイメージを作成し、非装飾イメージに代替テキストを含めるように十分に訓練されている場合、装飾イメージ用の空のalt属性(タグではない)を追加するためにそれらをさらに訓練することは困難ではありません。 alt属性が欠けていると信じてはいけません。なぜなら、イメージは人間の誤りや無知ではなく装飾的なものだからです。 – Quentin

+0

良い点;私は間違いなくaltが自動的に装飾的なイメージを意味すると思いません。私がこのアプローチを検討することにつながるのは、サイトがすでに存在し、修正が必要であり、人間または機械が空のalt属性を装飾画像に追加する必要があるということです。いずれにせよ、コンテンツの人々は、とにかくすべての非装飾画像の記述を入れなければならないが、少なくともツールは他のタスクでそれらを助けることができる。 –

1

空のaltタグをレイアウトに追加するのは無意味です。私は最初の場所でaltタグを持つという目的を破っているという点で2番目のKrisとDavid Dorwardのコメントに同意します。

しかし、ここで何らかの動機がある場合は、javascript(または、好ましくはjQuery)を使用してブラウザでその事実の後に行うことができます。クライアントのブラウザは、元のHTMLを変更することはできませんし、完璧に整形されていない場合でも解析するのに十分なほどスマートです。

<script language="javscript"> 
$(function() { 
    $('img:not([alt])').attr('alt',''); 
}); 
</script> 

をそして、あなたはjQueryライブラリが含まれていることを確認します

のjQueryを使用して、あなたのページのheadセクションにこのスクリプトを配置します。

+0

興味深い。しかし、altは私の場合にはテキストの読者を助けるはずです。私が想定しているJavaScriptによって、すべての読者が動的に変更したDOMを実際に「読み込む」わけではありません。したがって、私が探している解決策は、altを追加するためにHTMLソースを静的に変更することです。 –

0

これまではJericho HTML Parser libraryを使用して、HTMLの解析に成功しました。不十分なHTMLでうまくいくはずです。しかし、元のHTMLを変更するでしょう。

0

ジェリコを使用して同じ例を提供できますか?私は、element.setAttributeまたはそれと同じものをAPIで見つけることができません。 サンプルコードを投稿できると非常に役に立ちます。

関連する問題