CSSを使って、なにかしらを非表示にするためのプロパティ指定、display: noneって、使い方には注意が必要かも、と思った話。ADPでも頻繁に使っているので、考えなおす必要があるなあと感じている。
理由そのいち。display:none(やvisibility: hidden)は、SEOスパムに用いられるということ。関係ないキーワードをあらかじめ書いておいて、display: noneをしておけば、IE6でデフォルトのまま使っているような人の画面には表示されず、検索エンジンには認識させることができる。むりやりたくさんキーワードを書き込むようなSEOスパムとして、がんがん利用できるわけだ。このため、必要があって使っている場合でも、最悪SEOスパムだと評価される恐れがある。
理由そのに。display: noneを認識しないUAがある。もっと正確に書くと、ほかのCSSプロパティは認識するのに、display: noneだけを認識しなかったり、display: noneを指定されているところを変なところに表示したりする、みたいな利用者やUAの存在を考えなければならない。このケースを考えていないと、制作者は消しているつもりでも、ある利用者の環境ではどこかとんでもないところに表示されてしまうことになる。具体的には、Macromedia Contributeはdisplay: noneを中途半端に解釈して、適当なところに表示してしまう(私の書き方の問題かもしれないが)。
適切な解決方法は、display:noneを使わないこと。または、表示されてもいいようにサイトを設計すること。後者は比較的面倒(どこに表示されるかまったくわからない)なので、使わない、というのが楽な方法かなあ。
トラックバックURL: http://adp.daa.jp/cgi/mt2/mt-tb.cgi/161