正しい文法かどうか
アイコンフォントなどをi要素でマークアップすることがよくありますが、i要素の意味としてアイコンの意味はありません。そもそも、アイコンはテキストですらありませんので、HTML5の文法的には怪しいと考えて良いと思います。
The i element represents a span of text in an alternate voice or mood, or otherwise offset from the normal prose in a manner indicating a different quality of text, such as a taxonomic designation, a technical term, an idiomatic phrase from another language, transliteration, a thought, or a ship name in Western texts.
参考: 4.5 Text-level semantics — HTML5
ですが、アイコンを置くためにi要素を使うという風習があります。この風習が広まった背景には、以下のようなものが考えられますが、i要素を使う決定的な意味はありません。代用が可能ならより合った要素を使用すると良いのではないかと思います。
[Font Awesome](Font Awesome)の場合、i要素以外でも動作するので、span要素で代用することをお勧めします。
HTML
1<!DOCTYPE html>
2<html lang="ja">
3<head>
4 <meta charset="UTF-8">
5 <title>タイトル</title>
6 <link rel="stylesheet" href="http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css">
7 <style type="text/css">
8 * {
9 margin: 0;
10 padding: 0;
11 }
12 </style>
13</head>
14<body>
15<div class="box">
16 <span class="fa fa-camera-retro fa-5x"></span>テキスト
17</div>
18</body>
19</html>
SEOで不利にならないのか
SEOは、どうすれば有利になるか、不利になるか完全にわかるものではないので、一概にこうだということは言えませんが、ウェブマスター向けガイドライン(品質に関するガイドライン)に以下のような記述があることから、HTMLの文法も評価の対象にしている可能性が高いので、HTMLの文法を守っておくに越したことはないと思います。
<title> タグの要素と alt 属性の説明をわかりやすく正確なものにします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/12 19:26